我尝试设置当前文档的布局。但是在自定义章节编号时遇到了问题。
我想要类似 bjornstrup 风格的布局并使用 titleformat。
我该如何格式化 \chapternumber 以在前台进行调整?或者有什么解决方法吗?也许我的 {-20pt} 完全错了,还有一种更简单的方法可以在定义的区域中设置 chapternumber?
谢谢您的帮助。
这是我的 MWE:
\documentclass[12pt,a4paper,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[explicit]{titlesec}
\usepackage{blindtext}
\usepackage{xcolor}
\titleformat
{\chapter}
[display]
{\Huge\bfseries\itshape}
{\textcolor{gray}{\thechapter}}
{-20pt}
{\colorbox{gray!30}{\parbox[c][40pt][c]{\linewidth}{\Large\scshape\centering#1}}}
\begin{document}
\chapter{I am the first Chapter}
\blindtext
\end{document}
我的输出如下:
答案1
您可以将章节编号放在灰色框内,如下所示:
{\colorbox{gray!30}{\rlap{\raisebox{20pt}[0pt][0pt]{\textcolor{gray}{\thechapter}}}\parbox[c][40pt][c]{\linewidth-2\fboxsep}{\Large\scshape\centering#1}}}
顺便说一句,我减小了 的宽度\parbox
,2\fboxsep
以便colorbox
和文本一样宽。您需要使用\usepackage{calc}
才能使其工作。或者,您可以设置\fboxsep
为0pt
。
答案2
使用block
样式,并在的最后一个参数中使用章节编号\titleformat
:
\documentclass[12pt,a4paper,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[explicit]{titlesec}
\usepackage{blindtext}
\usepackage{xcolor}
\titleformat
{\chapter}
[block]
{\Huge\itshape\bfseries}
{}
{0pt}
{\colorbox{gray!30}{\makebox[0pt]{~\raisebox{13pt}[0pt]{\color{gray}\thechapter}}\parbox[c][40pt][c]{\linewidth}{\Large\scshape\centering#1}}}
\begin{document}
\chapter{I am the first Chapter}
\blindtext
\end{document}