我将这一行添加到我的文档中以便l@chapter
稍后重新定义:
\let\oldlchapter\l@chapter
现在 latexdiff 创建了这个,但无法编译:
\let\oldlchapter\DIFadd{\l@chapter
}
我该如何修复此问题?
答案1
首先,latexdiff 旨在与 LaTeX 文档语法配合使用,而不是原始的 TeX 命令,例如\let
。在这种情况下,对 latexdiff 进行小幅更改会导致正确的行为(见下文 - 这已在开发版本中实现GitHub 上的 latexdiff并将包含在 1.2.1 版及以上版本中(截至 2017 年 1 月 3 日尚未发布)。
更一般地说,使用环境\DIFnomarkup
(您需要定义它什么也不做)来保护 TeX 命令不被 latexdiff 处理。有关更详细的解释,请参阅 latexdiff 手册或手册页。
latexdiff 所需的更改:
找到以下行:
my $cmdoptseq='\\\\[\w\d\*]+'.$extraspace.'(?:(?:<'.$abrat0.'>|\['.$brat0.'\]|\{'. $pat_n . '\}|\(' . $coords .'\))'.$extraspace.')*';
并添加一个@字符,如下所示:
my $cmdoptseq='\\\\[\w\d@\*]+'.$extraspace.'(?:(?:<'.$abrat0.'>|\['.$brat0.'\]|\{'. $pat_n . '\}|\(' . $coords .'\))'.$extraspace.')*';