latexdiff:完全忽略宏?

latexdiff:完全忽略宏?

我为图形定义了一个“便利宏”:

\def\Figure#1#2#3#4#5{
\begin{figure*}[htp]
\includegraphics[scale=#4,angle=#5]{#1}
\caption{#2}
\label{#3}
\end{figure*}
}

当我更改其中的任何组件(标签、标题、文件)时,latexdiff 会将其标记如下:

\DIFdelbegin %DIFDELCMD < \Figure{figures/param_fits/c:G0.38+0.04_0_h2coratio_minaxis.pdf}
%DIFDELCMD < %%%
\DIFdelend \DIFaddbegin \Figure{figures/param_fits/c:G0.38+0.04_0_h2coratio.pdf}
\DIFaddend {text}
{fig:parsonbrightness}{0.5}{0}

编译时会导致以下错误:

! Missing number, treated as zero.
<to be read again>
                   f
l.2042 {fig:parsonbrightness}{0.5}
                                  {0}

我尝试了一些配置:

latexdiff --append-mboxsafecmd="Figure,RotFigureTwoAA,RotFigureThreeAA" --append-safecmd="Figure,RotFigureThreeAA,RotFigureTwoAA"

但结果是:

\DIFdelbegin \DIFdel{\mbox{%DIFAUXCMD
\Figure{figures/param_fits/c:G0.38+0.04_0_h2coratio_minaxis.pdf}
}%DIFAUXCMD
}\DIFdelend \DIFaddbegin \DIFadd{\mbox{%DIFAUXCMD
\Figure{figures/param_fits/c:G0.38+0.04_0_h2coratio.pdf}
}%DIFAUXCMD
}\DIFaddend {text}
{fig:parsonbrightness}{0.5}{0}

构建时会导致以下错误:

! Argument of \Figure has an extra }.
<inserted text>
                \par
l.2036 }
        \DIFdelend \DIFaddbegin \DIFadd{\mbox{%DIFAUXCMD    

有人能指出我正确的方向,以保持这些宏不受影响,或者更好的是,正确处理标题并忽略文件名的更改?

(相关但未解答:http://www.latex-community.org/forum/viewtopic.php?f=5&t=24811

答案1

避免 \Figure 的不同参数之间有空格,或者尝试 --allow-spaces 选项。

对于第二个问题(“更好的是……”):只有当您重新定义宏,使标题成为最后一个参数时,才能正确处理标题(即在那里标记更改)。然后您可以使用 --append-textcmd=Figure 如果
您无法重新定义宏,则无法执行此操作。

相关内容