纯 tex 文件上的 texdiff

纯 tex 文件上的 texdiff

我有两个 TeX 文件需要比较,我以为 texdiff 可以帮我做这件事。不幸的是,在手册页中,它显示

为了使 texdiff 正常工作,必须在 LaTeX 文档的序言中插入以下 LaTeX 代码:

\usepackage{xcolor} \usepackage{ulem} \usepackage{changebar}
\newcommand\TLSins[1]{\cbstart{}\textcolor{ins}{\uline{#1}}\cbend{}}
\newcommand\TLSdel[1]{\cbdelete{}\textcolor{del}{\sout{#1}}}

现在,我有点迷茫,因为我从未真正使用过纯 TeX,而且在 TeX 文件中使用 LaTeX 代码显然行不通。

例子:

让我们考虑一个非常简单的纯 TeX 示例。如果您使用包含以下内容的文件:

Let $D$ be a subset of $\bf R$ and let $f \colon D \to
{\bf R}$ be a real-valued function on $D$. The function $f$ is said to be
{\it continuous} on $D$ if, for all $\epsilon > 0$ and for all $x \in D$,
there exists some $\delta > 0$ (which may depend on $x$) such that if $y
\in D$ satisfies $$|y - x| < \delta$$ then $$|f(y) - f(x)| < \epsilon.$$

\bye

有了pdftex file.tex这个可以很容易地转换为

在此处输入图片描述

现在,如果你对文件进行了更改并将其存储在不同的名称下,则可以运行

texdiff file1.tex file2.tex diff.tex

你将获得以下内容diff.tex

Let $D$ be a subset of $\bf R$ and let $f \colon D \to
{\bf R}$ be a real-valued function on $D$. The function $f$ is said to be
{\it continuous} on $D$ if, for all $\epsilon > 0$ and for all $x \in D$,
there exists some $\delta > 0$ \protect\TLSins{(which may depend on $x$)} such that if $y
\in D$ satisfies $$|y - x| < \delta$$ then $$|f(y) - f(x)| < \protect\TLSdel{\epsilon$$ should hold.}
\protect\TLSins{\epsilon.$$}

\bye

命令\TLSinsTLSdel不存在于纯文本中TeX,,我无法只将\usepackage\newcommand放入此文件中。这行不通。

问题:标题必须是什么样子才能在纯 TeX 中正确定义所需的命令?

答案1

更改栏乌莱姆软件包似乎没有纯 TeX 等效项,但对于颜色,您只需 即可\input color。如果小心一点(使用\ifmmode...\fi等),您可以使用{\em ...}\underline{...}代替 乌莱姆更改栏会更难)。

最简单的方法文本差异要使它起作用,请将以下代码添加到 diff 文件的顶部:

\input color
\def\TLSins#1{{\color{blue}#1}}
\def\TLSdel#1{{\color{red}#1}}

这并没有强调或强调差异,也没有变化栏,但它确实显示了变化的位置:

在此处输入图片描述

当然,这将受到 (la)texdiff 的常见变化的影响。

相关内容