如何使用 latexdiff 生成 marked-up manuscript
latexdiff & Perl 安装
- github 仓库进 release 下载,然后存放任意位置解压缩即可
- Perl 直接 google 搜索,官网安装 Strawberry Perl 即可,需要注意的是,为了 powershell 里可以全局调用,需要进环境变量,在 path 里添加 Strawberry Perl 的安装目录。如果是用 chocolatey 包管理器安装的,大概率会自动添加进环境变量,因为家里网访问 github 突然有了问题,所以未作尝试。
运行
- 把 old.tex 和 new.tex 放到一个文件夹里,在此文件夹内打开 powershell,也可以通过 cd 命令进入此文件夹
- 运行代码调用 latexdiff 编译
example # general
latexdiff [ OPTIONS ] old.tex new.tex > diff.tex
# example
latexdiff -c ld.cfg -t UNDERLINE old.tex new.tex >aipsamp.tex
# options
# 这里的-c lf.cfg意思是调用配置文件lf.cfg来进行配置,里面给了一句`PICTUREENV=(?:picture|DIFnomarkup|align)[\w\d*@]*`用来跳过图片的对比,但是好像没用?
#-t UNDERLINE是使用下划线,但是好像也没用?
OPTIONS
- 根据官方文档,如果想要跳过某一个特定段落的对比,需要在 old.tex 和 new.tex 的相应段落前后添加上
, 除此之外,You must define the environment in the preambles of both old
and new documents,
\newenvironment{DIFnomarkup}{}{}
is a good choice to define it as a null-environment. 以下为示例:测试很好用example \newenvironment{DIFnomarkup}{}{}
\begin{document}
\begin{DIFnomarkup}
此处内容会被排除对比
\end{DIFnomarkup}
\end{document} - configration 一如既往是个巨大的议题,太难了,
latexdiff -h
可以查看帮助文件,但是不管是官方文档还是帮助文件,都太过简略了。
discussion
进 powershell 尝试 latexdiff -v, 首次运行会调用 MiKTek 安装 latexdiff 宏包,这样此处就有了个疑问,从 github 上下载的 latexdiff 是否真的有用到,而且我只是做了解压缩,并未添加环境变量,但是 powershell 却可以直接调用他!