使用 latexdiff 为图形内部的图形生成更改栏

使用 latexdiff 为图形内部的图形生成更改栏

我正在尝试利用latexdiff它突出显示文档不同版本之间的变化。我遇到的一件事是,有时图形中的图形会发生变化。显然,latexdiff无法判断两个具有相同文件名的图像是否不同,因此我只能重命名文件。但我注意到,尽管 latexdiff 在图形环境中生成了 diff 标记,但我没有看到它旁边的任何输出边距栏。

我尝试操作 FLOATSAFE/TRADITIONALSAFE/IDENTICAL 配置选项 - TRADITIONALSAFE 没有变化,而 IDENTICAL 只是破坏了编译步骤(这并不奇怪)。以下是 MWE:

给定两个 tex 文件:

特克斯

\documentclass[11pt]{article}
\usepackage{graphicx}

\begin{document}

\begin{figure}
    \centering
    \includegraphics[scale=0.1]{a}
    \caption{Figure A}
    \label{fig:a}
\end{figure}

\end{document}

豐特克斯

\documentclass[11pt]{article}
\usepackage{graphicx}

\begin{document}

\begin{figure}
    \centering
    \includegraphics[scale=0.1]{b}
    \caption{Figure B}
    \label{fig:b}
\end{figure}

\end{document}

并使用命令:

latexdiff -t CHANGEBAR a.tex b.tex >diff.tex

我得到:

差异.tex:

\begin{document}

\begin{figure}
    \centering
    \DIFdelbeginFL %DIFDELCMD < \includegraphics[scale=0.1]{a}
%DIFDELCMD <     %%%
\DIFdelendFL \DIFaddbeginFL \includegraphics[scale=0.1]{b}
    \DIFaddendFL \caption{Figure \DIFdelbeginFL \DIFdelFL{A}\DIFdelendFL \DIFaddbeginFL \DIFaddFL{B}\DIFaddendFL }
    \DIFdelbeginFL %DIFDELCMD < \label{fig:a}
%DIFDELCMD < %%%
\DIFdelendFL \DIFaddbeginFL \label{fig:b}
\DIFaddendFL \end{figure}

\end{document}

我想知道是否有人想出了一个不错的解决方法。理想情况下,整个图形都会有一个更改栏 - 我并不关心是标题还是图片发生了变化,只是图形以某种方式发生了变化。

答案1

您可以使用 changebar 包,但需要更改 \DIFaddbegin/end 和 \DIFaddbegin/end 命令,而不是 \DIFadd/del,就像 -t 选项所做的那样。

按照以下序言,您的 MWE 可以工作;调整 changebar 包的选项以适应您的驱动程序。

%DIF UNDERLINE PREAMBLE %DIF PREAMBLE
\RequirePackage[normalem]{ulem} %DIF PREAMBLE
\RequirePackage{color}\definecolor{RED}{rgb}{1,0,0}\definecolor{BLUE}{rgb}{0,0,1} %DIF PREAMBLE
\providecommand{\DIFadd}[1]{{\protect\color{blue}\uwave{#1}}} %DIF PREAMBLE
\providecommand{\DIFdel}[1]{{\protect\color{red}\sout{#1}}}                      %DIF PREAMBLE
%DIF 
\RequirePackage[pdftex]{changebar} %DIF PREAMBLE
\providecommand{\DIFaddbegin}{\protect\cbstart} %DIF PREAMBLE
\providecommand{\DIFaddend}{\protect\cbend} %DIF PREAMBLE
\providecommand{\DIFdelbegin}{\protect\cbdelete} %DIF PREAMBLE
\providecommand{\DIFdelend}{} %DIF PREAMBLE
%DIF IDENTICAL PREAMBLE %DIF PREAMBLE
\providecommand{\DIFaddFL}[1]{\DIFadd{#1}} %DIF PREAMBLE
\providecommand{\DIFdelFL}[1]{\DIFdel{#1}} %DIF PREAMBLE
\providecommand{\DIFaddbeginFL}{\DIFaddbegin} %DIF PREAMBLE
\providecommand{\DIFaddendFL}{\DIFaddend} %DIF PREAMBLE
\providecommand{\DIFdelbeginFL}{\DIFdelbegin} %DIF PREAMBLE
\providecommand{\DIFdelendFL}{\DIFdelend} %DIF PREAMBLE
%DIF END PREAMBLE EXTENSION ADDED BY LATEXDIFF

我通过运行latexdiff -f IDENTICAL --show-preamble然后手动编辑中间块获得了此信息。使用 --preamble / -p 选项读取此序言。如果您只想在图形(真正浮动的环境,也包括表格)中使用更改栏,请改为更改 \DIFaddbeginFL 等命令

相关内容