“Trackchanges”:尊重方程环境

“Trackchanges”:尊重方程环境

我在用跟踪变化用于监视 LaTeX 文档中的变化。

我在编译嵌入了方程式环境的 trackchange 标签时遇到了问题。这是一个 .tex 文件,它编译

\documentclass[A4]{article}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{trackchanges}
\begin{document}

\addeditor{alexm}
\section{dog}
Hello, this is an example file. \add[alexm]{Here I add text}.
There is a tree\remove[alexm]{but I remove a cat}. My hair is 
\change[alexm]{green}{red}.

\end{document}

此文件编译良好,并按预期生成了 .pdf。但现在显示一个等式:

\documentclass[A4]{article}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{trackchanges}
\begin{document}
\addeditor{alexm}
\section{dog}
Hello, this is an example file. \add[alexm]{Here I add text}.
There is a tree\remove[alexm]{but I remove a cat}. My hair is 
\change[alexm]{green}{red}.

Now with an equation it fails, but why?
\add[alexm]{some text
\begin{equation}
1+1=2
\end{equation}
and some more text.}

\end{document}

这会导致致命的编译错误。有没有办法防止它失败,有什么保护标签吗?如果它不能正确显示也没关系,只要它能编译就行,因为它无论如何都是用于草稿目的,但这将是一个奖励。

答案1

我相信这里最好的解决方案是使用\protect,因此:

\add[alexm]{some text
\protect \begin{equation}
1+1=2
\end{equation}
and some more text.}

可能满足您的需求。我也曾将其用于环境\protect之类的东西itemize

答案2

trackchanges包将其\add命令(大致)定义为设置其参数的颜色并将其传递给包\ul的命令soul以进行下划线。您根本无法将任何环境传递给命令\ul。(因此,不仅仅是方程式不起作用;没有环境会起作用。)据我所知,解决这个问题的唯一方法是永远不要将环境放在命令中\add,而是使用\add围绕添加的环境的命令。

编辑:(Matt Kolb 的解决方案) 看来仅在\add命令中保护环境确实有效:

\documentclass[]{article}
\usepackage{trackchanges}
\usepackage{amsmath, amsthm, amssymb}
\begin{document}
\addeditor{alexm}
\section{dog}
Hello, this is an example file. \add[alexm]{Here I add text}.
There is a tree\remove[alexm]{but I remove a cat}. My hair is 
\change[alexm]{green}{red}.

Now with an equation it fails, but why?

\add[alexm]{New equation
\protect\begin{equation}
1+1=2
\end{equation}
End new equation}
\end{document}

相关内容