帮助更改标题格式

帮助更改标题格式

不久前,我设法找到了这个代码片段,它使我的章节标题看起来很花哨:

\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} 

在此处输入图片描述

相关内容