在 itemize 之后使用 todo 时超出 TeX 容量

在 itemize 之后使用 todo 时超出 TeX 容量

我发现如果将多行待办事项放在 itemize 下方,就会出现错误。可能是什么原因造成的?

我正在编译背面,使用 pdfLaTex

错误:

TeX capacity exceeded, sorry [input stack size=5000].

\par ->\@restorepar 
        \clubpenalty \@clubpenalty \everypar {}\par \@endpefalse 
l.13 inline}

平均能量损失

\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage{todonotes}

\begin{document}

\begin{itemize}
    \item item
\end{itemize}
\todo[inline]{Two line 

inline}

\end{document}

答案1

\todo如果环境后面紧接着的是并且中间没有空行(\par`),则会发生错误。

这进行修改\todo,以便如果它检测到 latex 的显示环境代码(\if@endpe为真),它就会自动添加\par

\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage{todonotes}
\let\oldtodo\todo
\makeatletter
\renewcommand\todo{%
\if@endpe\par\fi
\oldtodo}
\makeatother

\begin{document}

\begin{itemize}
    \item item
\end{itemize}
\todo[inline]{Two line 

inline}

\end{document}

在此处输入图片描述

相关内容