我在章节标题格式方面遇到了问题。我只想更改每个章节的首字母,但对于图表和表格章节列表,它不起作用。
以下是示例:
\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}