简单的来说,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 -h
、 man git-latexdiff
、 latexdiff -h
、man latexdiff
这些命令可以查看 git-latexdiff 和 latexdiff 的帮助说明。
用法也比较简单,要比较两个 commit 之间的内容的话
git latexdiff OLD NEW
其中 OLD
和 NEW
两个部分时对应的是旧的和新的 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
、--latex
、tectnoic
。当然也可以使用 latexmk --latexmk
。
latexdiff 的参数
如果在使用 git latexdiff
的时候需要一些高级的操作,就需要像 latexdiff
传递参数。对于 git latexdiff
来说,无法识别的参数,尤其是 latexdiff
的参数,都会被传递给 latexdiff
。