![带有 etocname 的 TOC 条目大写](https://linux22.com/image/468213/%E5%B8%A6%E6%9C%89%20etocname%20%E7%9A%84%20TOC%20%E6%9D%A1%E7%9B%AE%E5%A4%A7%E5%86%99.png)
etoc
我正在尝试在课堂上自定义目录book
,但无法应用MakeUppercase
。\etocname
我正在使用本地目录,hyperref
以防fancyhdr
万一。
我的主要问题是:
- 我该如何表达尊重
\etocname
?MakeUppercase
我已经尝试了各种有/无{ }
组合。我也试过了此解决方案,但它弄乱了\markboth
我需要的命令。另一个解决方案当然可以,但我不想手动更改所有的parts
、chapters
和sections
。此选项对我来说不起作用,因为我已经使用它titlesec
来格式化文本内的外观chapters
等。
我还想知道:
- 在哪里可以找到类中标准样式的 etoc 类代码?我目前正在猜测中每个级别的
book
字体大小和{start}
代码。我在文档或其他地方找不到它。{finish}
\etocsetstyle
etoc
Part
以下是我尝试改变TOC 样式的MWE :
\documentclass[a4paper]{book}
\usepackage{etoc}
\etocsetstyle{part}
{\parindent 0pt
\nobreak
\etocskipfirstprefix}
{\pagebreak[3]\bigskip}
{\large\MakeUppercase\bfseries
\etocifnumbered{\etocnumber{} \ \ \ \MakeUppercase \etocname}{}\nobreak\hfill \etocpage\par}
{}
\begin{document}
\tableofcontents
\markboth{contents}{} %I need the solution to work with this
\part{A Part}
\chapter{A Chapter}
\section{A Section}
\subsection{A subsection}
\end{document}
答案1
如果你可以切换到memoir
课堂,你可以这样做
\makeatletter
\settocpreprocessor{part}{%
\let\tempf@rtoc\f@rtoc%
\def\f@rtoc{%
\MakeUppercase{\tempf@rtoc}}}
\makeatother
(如果您使用超链接,请参阅回忆录手册第 162 页)。
否则,也许可以看看这里:目录中的章节标题要大写吗?
答案2
用来\etocthename
代替\etocname
。
\documentclass[a4paper]{book}
\usepackage{etoc}
\etocsetstyle{part}
{\parindent 0pt
\nobreak
\etocskipfirstprefix}
{\pagebreak[3]\bigskip}
{\large\bfseries
\etocifnumbered{\etocnumber{} \ \ \ \MakeUppercase \etocthename}{}\nobreak\hfill \etocpage\par}
{}
\begin{document}
\tableofcontents
\markboth{contents}{} %I need the solution to work with this
\part{A Part}
\chapter{A Chapter}
\section{A Section}
\subsection{A subsection}
\end{document}
如果你使用hyperref
并希望零件名称超链接,你将需要一个稍微复杂一点的
\etoclink{\MakeUppercase \etocthename}
完整示例:
\documentclass[a4paper]{book}
\usepackage{etoc}
\etocsetstyle{part}
{\parindent 0pt
\nobreak
\etocskipfirstprefix}
{\pagebreak[3]\bigskip}
{\large\bfseries
\etocifnumbered{\etocnumber{} \ \ \ \etoclink{\MakeUppercase \etocthename}}{}\nobreak\hfill \etocpage\par}
{}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\markboth{contents}{} %I need the solution to work with this
\part{A Part}
\chapter{A Chapter}
\section{A Section}
\subsection{A subsection}
\end{document}
\MakeUppercase
注意:我从你的代码中删除了第一个。