枚举环境后不调用 \everypar 命令

枚举环境后不调用 \everypar 命令

为什么当我使用枚举环境时,命令 \everypar 不会调用。我在我们的包中使用 \everypar,我需要的是,即使在枚举环境之后,everypar 也会调用。请帮我解决这个问题。非常感谢大家的帮助。

\documentclass{article}
\newcommand{\logging}{\message{new paragraph}}
\begin{document}
\section{test}
\begin{enumerate}
\item test
\item new test
\end{enumerate}
\everypar{\logging}

Test

New test

test again
\end{document}

答案1

处理此类冲突的通常方法是隐藏原始内容\everypar并使其显示两个标记列表,一个新的\everypar(将由 latex 设置)和一个\myeverypar您可以设置的标记列表:

\documentclass{article}
\let\oldeverypar\everypar
\newtoks\everypar
\newtoks\myeverypar
\oldeverypar{\the\everypar\the\myeverypar}
\newcommand{\logging}{[here]\message{new paragraph}}
\begin{document}
\section{test}
\begin{enumerate}
\item test
\item new test
\end{enumerate}
\myeverypar{\logging}

Test

New test

test again
\end{document}

在这种情况下,我添加了排版,[here]以便更容易地看到哪些段落触发了\logging命令,只是为了调试。

相关内容