如何trackchanges
在图形标题中使用包宏?
\documentclass{article}
\usepackage[margins]{trackchanges}
\addeditor{NH}
\begin{document}
%Non-Problematic
\begin{figure}[htbp]
\caption{My Caption}
\end{figure}
%Problematic
\begin{figure}[htbp]
\caption{My Caption with \change[NH]{Old}{New} Text}
\end{figure}
%Problematic
\begin{figure}[htbp]
\change[NH]{ %
\caption{My Caption with Old Text}
}{
\caption{My Caption with New Text}
}
\end{figure}
\end{document}
答案1
正如 @Jagath AR 所指出的,第一个问题是margins
选项,因为它使用了 a \marginpar
,而这在浮点数中是不允许的。margins
您可以做的不是关闭选项,而是重新定义内部命令,这样浮点数中的此类更正就会以内联方式打印。
对于第二个问题,使用最后的图,\caption
默认情况下这不是一个脆弱的命令,因此如果将其作为另一个命令的参数包含在内,则应该使用\protect
它。
\documentclass{article}
\usepackage[margins]{trackchanges}
\newcommand{\inlineText}[2]{\footnotesize\UserLabel~#2}
\let\oldmarginText\marginText
\makeatletter
\renewcommand{\marginText}[2]{%
\@ifundefined{@captype}{\oldmarginText{#1}{#2}}{\inlineText{#1}{#2}}%
}
\makeatother
\addeditor{NH}
\begin{document}
\begin{figure}[htbp]
\caption{My Caption}
\end{figure}
An ordinary \change[NH]{change}{difference}.
\begin{figure}[htbp]
\caption{My Caption with \change[NH]{Old}{New} Text}
\end{figure}
%Problematic
\begin{figure}[htbp]
\centering
Figure
\change[NH]{%
\protect\caption{My Caption with Old Text}%
}{%
\protect\caption{My Caption with New Text}%
}
\end{figure}
\end{document}
答案2
包选项margins
导致了问题,因为轨道更改被写为边注。这对于浮动来说是不可能的。因此,如果您删除该选项,margin
第一个问题将得到解决。第三个图也导致了问题。我现在已经删除了第三个图并更改了包选项,以inline
使您的 MWE 生成 PDF。
\documentclass{article}
\usepackage[inline]{../LatexPackage/trackchanges}
\addeditor{NH}
\begin{document}
%Non-Problematic
\begin{figure}[htbp]
\caption{My Caption}
\end{figure}
%Problematic
\begin{figure}[htbp]
\caption{My Caption with \change[NH]{Old}{New} Text}
\end{figure}
\end{document}