我正在尝试编译一个文档,但是启动时pdflatex mydocument
得到以下输出:
! Illegal parameter number in definition of \reserved@a
<to be read again>
l.14 \tableofcontents
只要我将所有文档保存在同一个源文件中,一切都会顺利进行。当我将内容分成几个 .tex 文件并使用几个\input{}
命令“重新组合”时,错误首次出现。当我创建 MWE 时,我发现当我将所有内容放在同一个源文件中时,错误也会出现:
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage[Glenn]{fncychap}
\usepackage{graphicx}
\usepackage{imakeidx}
\begin{document}
\graphicspath{{images}}
\setcounter{tocdepth}{0}
\tableofcontents
\setcounter{tocdepth}{1}
\listoftables
\listoffigures
\part{Introduction}
My input here...
\mainmatter
\part{Content}
My input here...
\appendix
\part{Appendix}
My input here...
\end{document}
我认为这fncychap
与问题有关,因为如果我将其注释掉,一切都会正常运行,但我不明白问题出在哪里。
答案1
最小的例子是
\documentclass{book}
\usepackage[Glenn]{fncychap}
\begin{document}
\tableofcontents
\end{document}
我用 2012 年以后发布的 TeX Live 版本检查过它,总是有错误。
解决方法:
\documentclass{book}
\usepackage[Glenn]{fncychap}
\makeatletter
\let\@mkboth\@gobbletwo
\makeatother
\begin{document}
\tableofcontents
\end{document}
当然,最好的解决方法是fncychap
完全避免,因为它提供的样式在印刷上非常有争议。