latexdiff 和 \let

latexdiff 和 \let

我将这一行添加到我的文档中以便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.')*';

相关内容