是否“按原样”保留章节文本的部分内容,以免根据 titlesec 定义变为大写?

是否“按原样”保留章节文本的部分内容,以免根据 titlesec 定义变为大写?

拥有这个 MWE:

\documentclass{book}

\usepackage[explicit]{titlesec}

\titleformat{\chapter}[block]{\filcenter}{}{0pt}{\MakeUppercase{#1}}

\begin{document}
\chapter*{This should be all Uppercase.  "This text should remain as it is"}
\end{document}

哪个命令可以用来获取文本"This text should remain as it is" 不是是否受到 titlesec 大写定义的影响(见图)?

在此处输入图片描述

编辑:\titleformat根据 Gonzalo Medina 的评论,修复了的论点(见下文)。

答案1

另一个选择是加载textcase打包并使用\MakeTextUppercase而不是\MakeUppercase用于标题格式(无论如何,这都是一个好主意,可以防止\label标题中可能出现 s 和数学表达式的问题);现在您可以使用它\NoCaseChange来保留所需文本的大小写:

\documentclass{book}
\usepackage[explicit]{titlesec}
\usepackage{textcase}

\titleformat{\chapter}[block]
  {\filcenter\MakeTextUppercase{#1}}{}{}{}

\begin{document}

\chapter*{This should be all Uppercase. \NoCaseChange{This text should remain as it is}}

\end{document}

结果:

在此处输入图片描述

评论

您当前的定义\titleformat是错误的;第四个强制参数不能为空,因此我建议您将其更改为类似

\titleformat{\chapter}[block]
  {\filcenter}{}{0pt}{\MakeTextUppercase{#1}}

(请注意,由于没有制定有关计数器的规定,因此\chapter会产生未编号的章节)

答案2

对于临时用途,您可以定义一个包含固定文本的强命令:

在此处输入图片描述

\documentclass{book}

\usepackage[explicit]{titlesec}

\titleformat{\chapter}[block]{\centering {\MakeUppercase {#1}}} {} {} {} %

\begin{document}

\DeclareRobustCommand{\shouldremain}{This text should remain as it is}
\chapter*{This should be all Uppercase. \shouldremain}

\end{document}

如果你使用biblatex,您还可以使用

\usepackage{biblatex}
%...
\chapter*{This should be all Uppercase. \MakeSentenceCase{This text should remain as it is}}

相关内容