LaTex 中的红线标记

LaTex 中的红线标记

我正在尝试为文档从一个修订版到另一个修订版创建一个简短的更改列表。并且只想显示一组字符串上的红线。即

旧字符串:我昨天去了动物园

新字符串:我今天去了动物园。

差异字符串:我昨天、今天去了动物园。

答案1

LyX 可以做到这一点:

平均能量损失

但是,这些更改存储在其自己的文件格式 ( .lyx) 中,而不是存储在导出的 LaTeX ( .tex) 源或 PDF 中。

对于纯 LaTeX 解决方案或查看 PDF 中的更改,您可以使用该包changes

\documentclass{article}
\usepackage{changes}
\begin{document}

I \added{went}\deleted{when} to the zoo \added{today}\deleted{yesterday}

\end{document}

微波辐射计

如果您想要最终的 PDF 版本,只需使用以下选项加载包final

\usepackage[final]{changes}

但还可以做更多的事情: 3型

\documentclass{article}
\usepackage{changes}
\definechangesauthor[name={me}, color=magenta]{Fran}
\definechangesauthor[name={you}, color=red]{you}
\begin{document}
I \added[id=Fran]{went}\deleted[id=Fran]{when} to the zoo 
\added[id=Fran]{today}\deleted[id=you]{yesterday}
\listofchanges
\end{document}

变化在 CTAN 上获取更多选项。

另一个解决方案:

1)old.tex

\documentclass{article}
\begin{document}
I when to the zoo yesterday
\end{document}

2)new.tex

\documentclass{article}
\begin{document}
I went to the zoo today
\end{document}

3)在终端中:

texdiff old.tex new.tex diff.tex

4)编辑diff.tex:手动添加一些前言来定义\TLSins\TSLdel(否则您无法编译文件)。结果必须是这样的:

\documentclass{article}
\usepackage{xcolor}
\colorlet{ins}{blue} 
\colorlet{del}{red}
\usepackage{ulem}
\newcommand\TLSins[1]{\cbstart{}\textcolor{ins}{\uline{#1}}\cbend{}}
\newcommand\TLSdel[1]{\cbdelete{}\textcolor{del}{\sout{#1}}}
\begin{document}
I \protect\TLSdel{when} \protect\TLSins{went} to the zoo \protect\TLSdel{yesterday} \protect\TLSins{today}
\end{document}

4型

答案2

您还可以尝试latexdiff包裹。

基本上,它是一个您执行的 diff 脚本

latexdiff new.tex old.tex > diff.tex

然后您可以编译diff.tex并检查差异。

% new.tex
\documentclass{article}
\begin{document}
I went to the zoo today.
\end{document}

% old.tex
\documentclass{article}
\begin{document}
I when to the zoo yesterday
\end{document}

并且脚本产生

在此处输入图片描述

相关内容