不久前,我设法找到了这个代码片段,它使我的章节标题看起来很花哨:
\titleformat{\chapter}[display]
{\normalfont\Large\raggedleft}
{\MakeUppercase{\chaptertitlename}%
\rlap{\resizebox{!}{1.5cm}{\thechapter} \rule{7cm}{1.5cm}}}
{10pt}{\huge\bfseries\raggedright}
\titlespacing*{\chapter}{0pt}{30pt}{20pt}
这使得我的标题看起来像这样:
这很好。唯一的问题是,当涉及到两位数章节时,我最终会得到这样的结果:
右边的东西对我来说有点太短了。我不完全理解代码,因为它是从某个我不记得的模板网站获得的。我尝试摆弄代码中的参数,但没有成功。如果有人想编译它,这里有一个最小的工作示例:
\documentclass{book}
\usepackage{titlesec, graphics,geometry,lipsum}
\geometry{a4paper, portrait, margin=1in}
%Chapter Headers
\titleformat{\chapter}[display]
{\normalfont\Large\raggedleft}
{\MakeUppercase{\chaptertitlename}%
\rlap{\resizebox{!}{1.5cm}{\thechapter} \rule{7cm}{1.5cm}}}
{10pt}{\huge\bfseries\raggedright}
\titlespacing*{\chapter}{0pt}{30pt}{20pt}
\setcounter{chapter}{9}
\begin{document}
\chapter{Logic}
\lipsum
\end{document}
答案1
您只重叠了\thechapter
+\rule
结构。这意味着, 越宽\thechapter
,\rule
可见的结构就越少。您可能想要移动内容 - 其中应该包括对 的引用\chaptertitlename
。
我已经通过使用应用了上述建议adjustbox
的重叠工具:
\documentclass{book}
\usepackage{titlesec,geometry,lipsum}
\usepackage[export]{adjustbox}
\geometry{a4paper, portrait, margin=1in}
%Chapter Headers
\titleformat{\chapter}[display]
{\normalfont\Large\raggedleft}
{\adjustbox{lap=.7\width}{\MakeUppercase{\chaptertitlename}%
\resizebox{!}{1.5cm}{\thechapter} \rule{7cm}{1.5cm}}}
{10pt}{\huge\bfseries\raggedright}
\titlespacing*{\chapter}{0pt}{30pt}{20pt}
\begin{document}
\setcounter{chapter}{8}
\chapter{Logic}
\lipsum[1-3]
\chapter{Logic}
\lipsum[1-3]
\end{document}
您会注意到黑色块的大小会发生变化,因为定位是基于“ \chaptertitlename
+ \thechapter
”的宽度。如果您想要一个固定的黑色块,您可以考虑以下方法:
\documentclass{book}
\usepackage{titlesec,graphicx,geometry,lipsum}
\geometry{a4paper, portrait, margin=1in}
%Chapter Headers
\titleformat{\chapter}[display]
{\normalfont\Large\raggedleft}
{\mbox{}\rlap{\hspace{.5in}\llap{\MakeUppercase{\chaptertitlename}%
\resizebox{!}{1.5cm}{\thechapter}} \rule{7cm}{1.5cm}}}
{10pt}{\huge\bfseries\raggedright}
\titlespacing*{\chapter}{0pt}{30pt}{20pt}
\begin{document}
\setcounter{chapter}{8}
\chapter{Logic}
\lipsum[1-3]
\chapter{Logic}
\lipsum[1-3]
\end{document}
答案2
这是你想要的吗?Titlesec
有自己的开关:\filleft,\filright,\filcenter
,而不是\raggedright,\raggedleft
:
\documentclass{book}
\usepackage{titlesec, graphics,geometry,lipsum}
\geometry{a4paper, portrait, margin=1in, showframe}
%Chapter Headers
\titleformat{\chapter}[display]
{\normalfont\Large}
{\filleft\MakeUppercase{\chaptertitlename}%
{\resizebox{!}{1.5cm}{\thechapter} \rule{7cm}{1.5cm}}}
{10pt}{\huge\bfseries\raggedright}
\titlespacing*{\chapter}{0pt}{30pt}{20pt}
\setcounter{chapter}{9}
\begin{document}
\chapter{Logic}
\lipsum
\end{document}