我不知道为什么我不能\stepcounter
在章节标题内调用。
例如,此代码可以正常工作:
\documentclass{article}
\newcounter{mycounter}
\begin{document}
\section{Title \themycounter}
\stepcounter{mycounter}
\end{document}
但是此代码遇到附加错误:
\documentclass{article}
\newcounter{mycounter}
\begin{document}
\section{Title \themycounter \stepcounter{mycounter}}
\end{document}
错误:
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.
d:/D-Repos/tmp/counter.tex:7: Missing \endcsname inserted.
<to be read again>
\MessageBreak
l.7 ...itle \themycounter \stepcounter{mycounter}}
答案1
你应该运行\stepcounter{mycounter}
前 \section
或者 - 如果它出现在 -通过指令\section
“保护”指令的参数中。(@DavidCarlisle 已经在评论中提到了第二种选择。)\stepcounter
\protect
附录(另请参阅下面 David Carlisle 的评论):如果你的文档包含指令\tableofcontents
,你应该不是使用第二种方法,否则编号会混乱。
\documentclass{article}
\newcounter{mycounter}
\renewcommand\themycounter{\Alph{mycounter}}
\begin{document}
\stepcounter{mycounter}\section{Title \themycounter}
\section{\protect\stepcounter{mycounter}Title \themycounter}
\end{document}