在 \addcontentsline 中使用字体大小调整命令对 ccfonts 或 cmbright 不起作用

在 \addcontentsline 中使用字体大小调整命令对 ccfonts 或 cmbright 不起作用

如果您在代码中注释掉 \large,它就会起作用。目录级别无关紧要。有什么想法吗?

\documentclass{article}

%\usepackage{ccfonts}
\usepackage{cmbright}

\begin{document}

           \addcontentsline{toc}{section}{{%
                   \large
                    foo\hfill}}%

\end{document}

答案1

ToC 实际上是写入文件 ( .toc) 的,写入此文件的宏通常会被展开,这导致了此处的问题。您应该从展开中\protect选择字体:\large

在此处输入图片描述

\documentclass{article}
\usepackage{cmbright}
\begin{document}

\addcontentsline{toc}{section}{{%
  \protect\large
  foo}}%
\addcontentsline{toc}{section}{{%
  %\protect\large
  bar}}%

\tableofcontents
\end{document}

上述文件.toc如下所示:

\contentsline {section}{{\large foo}}{1}
\contentsline {section}{{bar}}{1}

如果你不\protect这样做,那么它看起来像:

\contentsline {section}{{\edef \def 12.5{12.5}{\def 12.5{####2}}\edef \def 12.5{12.5}\relax \fontsize {12}{12.5}\selectfont foo}}{1}
\contentsline {section}{{bar}}{1}

并且很明显参数用法####2没有上下文\contentsline,导致错误。

.toc如果(和)包含错误信息,则可能必须删除它.aux,然后才能在后续运行中成功编译。

相关内容