我正在尝试利用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 等命令