新定义的命令(见下文)在装有 MiKTeX 2.9 的 Windows 和装有 MacTeX 的 Mac 上均可运行。在另一个装有全新安装的 MiKTeX 的 Windows(在 Mac 中运行)上以及在装有 MacTeX 的 Mac OS 上的同一台 Mac 上,该命令均不起作用。
我们使用的文件完全相同。scrartcl 类就用在这里。
命令:
\newcommand{\mysection}[1]{%
\refstepcounter{section}%
\sectionmark{#1}%
\addcontentsline{toc}{section}{\numberline{\thesection}#1}%
}
失败分布上的错误消息(调用命令时):
Argument of \XKV@d@fine@k@y has an extra }.
<inserted text>
\par
l.6 \mysection{Die rationalen Zahlen $\Qe_0^+$}
更新
我通过 MiKTeX 更新管理器更新了所有软件包,现在也出现了错误。我创建了一个 MWE。有趣的是,它适用于类 article,但不适用于 scrartcl:
\documentclass{scrartcl}
\newcommand{\mysection}[1]{%
\refstepcounter{section}%
\sectionmark{#1}%
\addcontentsline{toc}{section}{\numberline{\thesection}#1}%
}
\begin{document}
\tableofcontents
\mysection{test}
\end{document}
错误信息是:
Argument of \reserved@a has an extra }.
<inserted text>
\par
l.11 \mysection{test}
答案1
添加
\listfiles
到您的文档并比较两台机器上列出的软件包版本。更新任何不同步的软件包(xkeyval
最有可能给出错误消息)。
您添加的 MWE 显示缺少\protect
\documentclass{scrartcl}
\newcommand{\mysection}[1]{%
\refstepcounter{section}%
\sectionmark{#1}%
\addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}%
}
\begin{document}
\tableofcontents
\mysection{test}
\end{document}