![包含 pdfpages 包时未定义控制序列](https://linux22.com/image/297184/%E5%8C%85%E5%90%AB%20pdfpages%20%E5%8C%85%E6%97%B6%E6%9C%AA%E5%AE%9A%E4%B9%89%E6%8E%A7%E5%88%B6%E5%BA%8F%E5%88%97.png)
问题:
我尝试在我的 .tex 文件中包括以下包:
\usepackage{graphicx}
\usepackage{pdfpages}
为此我收到以下错误:
thesis.tex (line 186)
Undefined control sequence (\mainmatterSU ...)
我谷歌了一下并找到了这个: https://en.wikibooks.org/wiki/LaTeX/Errors_and_Warnings#Undefined_control_sequence
它告诉我这可能是一个拼写错误,但当我打开 .cls 文件并检查时,我得到了以下结果:
% MAINMATTER
\newcommand{\mainmatterSU}{
\begingroup
\cleardoublepage
\edef\x{\endgroup
\noexpand\mainmatter
\setcounter{page}{\the\value{page}}%
}%
\x
\cleardoublepage
\fancypagestyle{plain}
{
\fancyhead{}
\fancyfoot[LE,RO]{{\fontfamily{verdana}\selectfont\thepage}}
} % re-define plain page
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[LE,RO]{{\fontfamily{verdana}\selectfont\thepage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}
所以我在这里有点疯狂,因为我没有看到拼写错误或者仅仅包含一个包我可能做错了什么。
删除这两个包将会消除错误。
任何帮助都将不胜感激!
答案1
错误信息是
./thesis.tex:186: Undefined control sequence.
\@calc@post@scan ...st@scan \else \def \calc@next
{\calc@error #1}\fi \fi \f...
l.186 \mainmatter
所以未定义的命令是\calc@next
正如我在最初的评论中猜测的那样,这种\edef
用法是不正确的,并且在那种情况下并不安全,尽管如果没有加载\setcounter
通常不会检测到错误。放在calc
\noexpand
\setcounter