预定义样式

预定义样式

我正在使用 latexdiff 比较两个 tex 文件,它会突出显示最终 PDF 中的任何更改(添加或删除)。有没有办法只突出显示新添加的部分,而不突出显示已删除的部分?

答案1

预定义样式

如果你看看手动的您将看到有一些预定义样式,它们以不同的方式标记事物。这些是、、 、 、 、 、 和UNDERLINECTRADITIONALTRADITIONAL默认 CFONT设置FONTSTRIKEINVISIBLE要 使用样式,请调用CHANGEBARCCHANGEBARCULINECHBARCFONTCBHBARUNDERLINETRADITIONALlatexdiff

latexdiff --type=TRADITIONAL old.tex new.tex > diff.tex

其中一个可能更符合您的喜好。如果不是,您可以选择使用自定义前言。

更新:在 1.1.0 版本中,latexdiff有一种新样式,称为 ,BOLD这可能正是您想要的。新文本以粗体排版,删除的文本则直接删除。(我安装的是 1.0.4 版本,没有这种样式。感谢frederik 提到了这一点

自定义序言

如果你打开.tex由 生成的文件latexdiff,你会看到序言中有一个类似这样的部分:

%DIF LATEXDIFF DIFFERENCE FILE
%DIF DEL old.tex   Sat Jun 20 10:36:29 2015
%DIF ADD new.tex   Sat Jun 20 10:36:36 2015
%DIF PREAMBLE EXTENSION ADDED BY LATEXDIFF
%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 SAFE PREAMBLE %DIF PREAMBLE
\providecommand{\DIFaddbegin}{} %DIF PREAMBLE
\providecommand{\DIFaddend}{} %DIF PREAMBLE
\providecommand{\DIFdelbegin}{} %DIF PREAMBLE
\providecommand{\DIFdelend}{} %DIF PREAMBLE
%DIF FLOATSAFE PREAMBLE %DIF PREAMBLE
\providecommand{\DIFaddFL}[1]{\DIFadd{#1}} %DIF PREAMBLE
\providecommand{\DIFdelFL}[1]{\DIFdel{#1}} %DIF PREAMBLE
\providecommand{\DIFaddbeginFL}{} %DIF PREAMBLE
\providecommand{\DIFaddendFL}{} %DIF PREAMBLE
\providecommand{\DIFdelbeginFL}{} %DIF PREAMBLE
\providecommand{\DIFdelendFL}{} %DIF PREAMBLE
%DIF END PREAMBLE EXTENSION ADDED BY LATEXDIFF

此代码块定义了如何标记差异。具体来说,该\DIFdel命令定义了已删除文本的标记:

\providecommand{\DIFdel}[1]{{\protect\color{red}\sout{#1}}}

您会看到,它被定义为红色,并被删除。

使用自定义前言

latexdiff将前言部分复制到新文件,并将其另存为diffpreamble.tex。然后根据自己的喜好修改上述命令。如果希望删除的部分被简单地删除,请将命令修改\DIFdel

\providecommand{\DIFdel}[1]{}

最后,在调用时latexdiff,告诉它使用这个前言文件

latexdiff --preamble=diffpreamble.tex old.tex new.tex > diff.tex

例子

随着old.tex

\documentclass{article}
\begin{document}

This is some text.

\end{document}

new.tex作为

\documentclass{article}
\begin{document}

This is some stuff.
And more.

\end{document}

latexdiff --preamble=diffpreamble.tex old.tex new.tex > diff.tex按照上述建议的修改,将得到以下输出:

在此处输入图片描述

答案2

对我来说这个在Linux上有效:

首先通过以下方式创建一个 tex 文件 '\providecommand{\DIFdel}[1]{}':

echo \\providecommand{\\DIFdel}[1]{} > diff.tex

然后通过以下方式将 latexdiff 的结果添加到该文件:

latexdiff old.tex new.tex >> diff.tex

相关内容