amsbook、lstdoc 和 section 的问题

amsbook、lstdoc 和 section 的问题

代码

\documentclass{amsbook}
\usepackage{lstdoc}
\begin{document}
\chapter{Chapter}
\section{Section}
\end{document}

产生错误消息

Missing } inserted. [\section{Section}]or forgotten \endgroup. [\section{Section}]

那里发生了什么?如果用 替换,效果很好amsbookbook有什么建议吗?

答案1

重要的信息不是错误文本本身,而是问题所在的识别。以下是完整的错误记录:

! Missing } inserted.
<inserted text> 
                }
l.5 \section{Section}

? 
! Extra }, or forgotten \endgroup.
\l@section ...obreak \hb@xt@ \@pnumwidth {\hss #2}
                                                  \par \endgroup 
l.5 \section{Section}

? 

所以问题在于\l@section 这个的定义不同——参数数量不同—— amsbook.cls(7 个参数)和book.cls (5 个参数)。

lstdoc.sty\l@section以与 定义的方式平行的方式 重新定义book.cls,因此不兼容。

可以通过插入以下三行来修复 \usepackage{lstdoc} 恢复amsbook定义:

\makeatletter
\renewcommand{\l@section}{\@tocline{1}{0pt}{1pc}{}{}}
\makeatother

其他目录级别也可能需要恢复,而且由于这是我第一次研究这个问题,我不能完全确定长文档中的其他内容是否也会受到影响。

相关内容