使用 titlesec 将多行大写章节标题居中

使用 titlesec 将多行大写章节标题居中

我需要的东西和Rob28... egreg 的回答到目前为止当然是完美的,但除此之外,我的一些标题很长,我必须在 LaTeX 选择的其他地方拆分它们。

我发现没有办法同时满足这三个需求:\MakeUppercase\filcenter使用 \\ 将标题行剪切到我想要的位置

\documentclass[letterpaper,12pt]{book}
\usepackage{titlesec}

\titleformat{\chapter}[display]
    {\normalfont\Large\rmfamily\filcenter}
    {\MakeUppercase{\chaptertitlename} \thechapter}
    {1pc}
    {\MakeUppercase}

\begin{document}

\chapter[Palaeographical Profile]{Palaeographical\\% I need this line to be split here
        Profile}

\end{document}

答案1

我认为,使用可配置的类可以更容易地实现这些功能scrbook

\documentclass[letterpaper,12pt,chapterprefix]{scrbook}

\let\raggedchapter\centering
\renewcommand*{\chapterlineswithprefixformat}[3]{%
  \MakeUppercase{#2#3}%
}

\setkomafont{chapter}{\normalfont\Large}

\begin{document}

\chapter[Palaeographical Profile]{Palaeographical\\
        Profile}

\end{document}

在此处输入图片描述

但是,使用标准类,titlesec它应该可以工作,如果您使用\protect\\而不是\\

\documentclass[letterpaper,12pt]{book}
\usepackage{titlesec}

\titleformat{\chapter}[display]
  {\normalfont\Large\rmfamily\filcenter}
  {\MakeUppercase{\chaptertitlename} \thechapter}
  {1pc}
  {\MakeUppercase}

\begin{document}

\chapter[Palaeographical Profile]{Palaeographical\protect\\% I need this line to be split here
        Profile}

\end{document}
\documentclass[letterpaper,12pt,chapterprefix]{scrbook}

\let\raggedchapter\centering
\renewcommand*{\chapterlineswithprefixformat}[3]{%
  \MakeUppercase{#2#3}%
}

\setkomafont{chapter}{\normalfont\Large}

\begin{document}

\chapter[Palaeographical Profile]{Palaeographical\\
        Profile}

\end{document}

在此处输入图片描述

顺便说一句:对于大写字母的打印,建议使用字母间距。例如,您可以使用microtype来实现它。

答案2

我建议不要使用,\\而是针对这种情况使用不同的命令,以便您可以以不同的方式使用它。

\documentclass[letterpaper,12pt]{book}
\usepackage{titlesec}

\titleformat{\chapter}[display]
  {\normalfont\Large\rmfamily\filcenter}
  {\MakeUppercase{\chaptertitlename} \thechapter}
  {1pc}
  {\SafeMakeUppercase}

\ExplSyntaxOn
\NewDocumentCommand{\titlebreak}{}{\unskip\space\ignorespaces}
\NewDocumentCommand{\SafeMakeUppercase}{m}
 {
  \group_begin:
  \seq_set_split:Nnn \l_tmpa_seq { \titlebreak } { #1 }
  \seq_set_map:NNn \l_tmpb_seq \l_tmpa_seq { \MakeUppercase{##1} }
  \seq_use:Nn \l_tmpb_seq { \\ }
  \group_end:
 }
\ExplSyntaxOff


\begin{document}

\tableofcontents

\chapter{Palaeographical \titlebreak Profile}

\end{document}

在此处输入图片描述

目录

在此处输入图片描述

相关内容