带有 etocname 的 TOC 条目大写

带有 etocname 的 TOC 条目大写

etoc我正在尝试在课堂上自定义目录book,但无法应用MakeUppercase\etocname我正在使用本地目录,hyperref以防fancyhdr万一。

我的主要问题是:

  1. 我该如何表达尊重\etocnameMakeUppercase我已经尝试了各种有/无{ }组合。我也试过了此解决方案,但它弄乱了\markboth我需要的命令。另一个解决方案当然可以,但我不想手动更改所有的partschapterssections此选项对我来说不起作用,因为我已经使用它titlesec来格式化文本内的外观chapters等。

我还想知道:

  1. 在哪里可以找到类中标准样式的 etoc 类代码?我目前正在猜测中每个级别的book字体大小和{start}代码。我在文档或其他地方找不到它。{finish}\etocsetstyleetoc

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}

作为参考,这里有一张我所说的“标准风格”的图片,这是我在不进行任何修改的情况下加载 MWE 所得到的etoc标准目录样式

答案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注意:我从你的代码中删除了第一个。

目录

相关内容