Git-latexdiff

简单的来说,latex 上面做批注并不是很简单的。因为批注本身时针对 PDF,而不是 LaTeX。 所以,这个论文修改了之后再给导师啊之类的看的时候就要手动标注(黄色荧光笔)。一旦论文有30、40页,然后还写得很烂的时候,标注就很坑了。所以目光移到了 git-latexdiff。

安装

官方仓库 https://gitlab.com/git-latexdiff/git-latexdiff 中有安装的说明。 Windows 中直接执行 windows_install.cmd 就可以,然后 *nix 系统中则是需要执行 make install,如果提示权限不足的话,则需要 sudo 权限。按照仓库里面 README 显示,存在 make install 无法执行的情况,所以如果还是不行的话, 可以尝试 make install-bin

还有一个关键的事情是,无论使用的时 texlive 还是 MikTeX 或者其他什么的,关键的一个问题是一定要安装一个叫 latexdiff 的工具 ,这个工具才是具体比较 LaTeX 源文档的关键工具。这个工具的安装可以在网上找到,百度 “texlive 安装宏包” 或者 “MikTeX 安装宏包” 就可以了,这样就能知道要怎么安装包了,然后要安装的包是 latexdiff

使用

首先说明使用命令 git latexdiff -hman git-latexdifflatexdiff -hman latexdiff 这些命令可以查看 git-latexdiff 和 latexdiff 的帮助说明。

用法也比较简单,要比较两个 commit 之间的内容的话

git latexdiff OLD NEW

其中 OLDNEW 两个部分时对应的是旧的和新的 commit (或者是分支)。然后如果要比较当前的工作空间(尤其是还有内容没有提交的时候,那就需要将 NEW 或者 OLD 替换成 --,也就是两个英文下的横线。

多文件

如果是多文件的话,那么需要 latexdiff 这个命令开启 --flatten 这个命令,这样就可以将 \input\include 这样的命令所引用的内容替换为 相关文件对应的内容。然后如果是使用的 git latexdiff 的话,那就需要开启 --latexdiff-flatten 这个命令。

BibTeX

git latexdiff 传入 --run-bibtex 参数后,可以执行 BibTeX。如果是 BibLaTeX,那么参数是 --run-biber

清理

git latexdiff 会在一个临时目录生成相关的文档并编译成 PDF。生成完毕后会删除临时文件夹中的内容。 --cleanup 参数可以控制清理策略,策略包括三种: 啥也不删 (none), 保留 PDF (keeppdf,这个是默认策略),保留全部 (all)。

引擎

默认使用的是 PDFLaTeX 引擎,如果要替换引擎的话,使用这些参数: --xelatex--lualatex--latextectnoic。当然也可以使用 latexmk --latexmk

latexdiff 的参数

如果在使用 git latexdiff 的时候需要一些高级的操作,就需要像 latexdiff 传递参数。对于 git latexdiff 来说,无法识别的参数,尤其是 latexdiff 的参数,都会被传递给 latexdiff