如何使用 latexdiff 生成 marked-up manuscript

latexdiff & Perl 安装

  1. github 仓库进 release 下载,然后存放任意位置解压缩即可
  2. Perl 直接 google 搜索,官网安装 Strawberry Perl 即可,需要注意的是,为了 powershell 里可以全局调用,需要进环境变量,在 path 里添加 Strawberry Perl 的安装目录。如果是用 chocolatey 包管理器安装的,大概率会自动添加进环境变量,因为家里网访问 github 突然有了问题,所以未作尝试。

运行

  1. 把 old.tex 和 new.tex 放到一个文件夹里,在此文件夹内打开 powershell,也可以通过 cd 命令进入此文件夹 example
  2. 运行代码调用 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 却可以直接调用他!