自定义 latexdiff 默认(UNDERLINE)输出样式

自定义 latexdiff 默认(UNDERLINE)输出样式

我使用 来latexdiff突出显示 tex 文档两个版本之间的差异,使用默认样式UNDERLINE。此样式将添加的文本格式化为蓝色,并带有波浪下划线,将删除的文本格式化为红色,并带有删除线。

我感兴趣的是格式化输出,使得添加的文本为蓝色,但是没有波浪下划线(删除的文本与之前一样为红色)。是否有命令可以实现此目的?我无法从手册页

另一种方法是修改CCHANGEBAR样式,将添加的文本格式化为蓝色,将删除的文本格式化为红色,但没有删除线,然后为删除的文本添加删除线(我的问题是如何)。

答案1

没有标准选项可以执行此操作,但您可以创建自己的前言文件来latexdiff替换突出显示命令。在标准运行之后,您需要做的latexdiff就是将写入的行复制latexdiff到 diff 文件的标题中,并更改那些不符合您风格的行。对于您来说,要更改的命令是\DIFadd默认的

\providecommand{\DIFadd}[1]{{\protect\color{blue}\uwave{#1}}} %DIF PREAMBLE

波浪下划线是由 生成的\uwave{...},因此删除它我们得到

\providecommand{\DIFadd}[1]{{\protect\color{blue}#1}}

完整的前言文件如下

\RequirePackage[normalem]{ulem}
\RequirePackage{color}\definecolor{RED}{rgb}{1,0,0}\definecolor{BLUE}{rgb}{0,0,1}
\providecommand{\DIFadd}[1]{{\protect\color{blue}#1}}
\providecommand{\DIFdel}[1]{{\protect\color{red}\sout{#1}}}                    
\providecommand{\DIFaddbegin}{}
\providecommand{\DIFaddend}{}
\providecommand{\DIFdelbegin}{}
\providecommand{\DIFdelend}{}
\providecommand{\DIFaddFL}[1]{\DIFadd{#1}}
\providecommand{\DIFdelFL}[1]{\DIFdel{#1}}
\providecommand{\DIFaddbeginFL}{}
\providecommand{\DIFaddendFL}{}
\providecommand{\DIFdelbeginFL}{}
\providecommand{\DIFdelendFL}{} 

如果你调用它,preamble.tex可以latexdiff通过

latexdiff -p preamble.tex old.tex new.tex > diff.tex

new.tex

\documentclass{article}

\begin{document}

The text now starts with this.

\end{document}

old.tex

\documentclass{article}

\begin{document}

The text started with this.

\end{document}

这会产生diff.tex一个

示例输出

答案2

另一个选择是使用文本编辑器编辑文件 latexdiff,将行从

\providecommand{\DIFadd}[1]{{\protect\color{blue}\uwave{#1}}} %DIF PREAMBLE

\providecommand{\DIFadd}[1]{{\protect\color{blue}#1}}

如上所述。这样,就不需要创建任何可渗透的文件了。

相关内容