删除章节标题中的文本格式

删除章节标题中的文本格式

我在章节标题格式方面遇到了问题。我只想更改每个章节的首字母,但对于图表和表格章节列表,它不起作用。

以下是示例:

生成的 pdf

\documentclass[oneside]{book}

\font\chapterTextFont = Rothdn scaled 4500 \relax
\def\splitfirstchar#1#2\sentinel{
  \chapterTextFont\uppercase{#1}\LARGE\uppercase{#2}}
\def\chapterText#1{\splitfirstchar#1\sentinel}


\usepackage{titlesec}
\titleformat{\chapter}
  {\normalfont\LARGE\bfseries}{}{1em}{\chapterText}


\begin{document}

\listoffigures
\begingroup
\let\clearpage\relax
\chapter{Testing title}
\endgroup

\end{document}

也许可以通过删除文本格式\listfigurename并保存在另一个变量中来解决此问题,但我不知道如何做到这一点。

========= 编辑 2013/01/19 ========

找到最简单的解决方案乌尔丽克·菲舍尔(谢谢你!)

只是改变:

\def\chapterText#1{\splitfirstchar#1\sentinel}

到:

\def\chapterText#1{\expandafter\splitfirstchar#1\sentinel}

也谢谢你贡萨洛·梅迪纳卡尔科勒两个答案都有效。

答案1

这是一个扩展问题。无需显式重写\listfigurename(以及其他预定义名称,例如\listtablename),您可以这样做

\documentclass[oneside]{book}
\usepackage{etoolbox}

\font\chapterTextFont = Rothdn scaled 4500 \relax
\expandafter\def\expandafter\splitfirstchar#1#2\sentinel{
  \chapterTextFont\expandafter\uppercase{#1}\LARGE\uppercase{#2}}
\def\chapterText#1{\splitfirstchar#1\sentinel}

\patchcmd{\listoffigures}{\chapter*{\listfigurename}}{\chapter*{\expandafter\expandafter\chapterText{\listfigurename}}}{}{}
\patchcmd{\listoftables}{\chapter*{\listtablename}}{\chapter*{\expandafter\expandafter\chapterText\listtablename}}{}{}

\usepackage{titlesec}
\titleformat{\chapter}
  {\normalfont\LARGE\bfseries}{}{1em}{\chapterText}
\titleformat{name=\chapter,numberless}
  {\normalfont\LARGE\bfseries}{}{1em}{}

\begin{document}

\let\cleardoublepage\relax
\listoffigures
\listoftables
\chapter{Testing title}

\end{document}

答案2

在你的序言中添加以下几行:

\usepackage{etoolbox}
\patchcmd{\listoffigures}
  {\chapter*{\listfigurename}}
  {\chapter*{List of Figures}}
  {}
  {}
\patchcmd{\listoftables}
  {\chapter*{\listtablename}}
  {\chapter*{List of Tables}}
  {}
  {}

通过这种方式,我们进行修补\listoffigures\listoftables使用扩展名,结果如下(我已添加到\thechapter以防\titleformat万一您需要,如果您不想要它,请将其删除):

在此处输入图片描述

完整代码:

\documentclass[oneside]{book}

\font\chapterTextFont = Rothdn scaled 4500 \relax
\def\splitfirstchar#1#2\sentinel{
  \chapterTextFont\uppercase{#1}\LARGE\uppercase{#2}}
\def\chapterText#1{\splitfirstchar#1\sentinel}

\usepackage{titlesec}
\titleformat{\chapter}
  {\normalfont\LARGE\bfseries}{\Huge\thechapter}{1em}{\chapterText}

\usepackage{etoolbox}
\patchcmd{\listoffigures}
  {\chapter*{\listfigurename}}
  {\chapter*{List of Figures}}
  {}
  {}
\patchcmd{\listoftables}
  {\chapter*{\listtablename}}
  {\chapter*{List of Tables}}
  {}
  {}

\begin{document}

\begingroup
\let\clearpage\relax
\listoftables
\listoffigures
\chapter{Testing title}
\endgroup

\end{document} 

相关内容