使用 fncychap 时出现“!\reserved@a 定义中的参数编号非法”

使用 fncychap 时出现“!\reserved@a 定义中的参数编号非法”

我正在尝试编译一个文档,但是启动时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完全避免,因为它提供的样式在印刷上非常有争议。

相关内容