如何在多个 TeX 文件中替换表达式?

如何在多个 TeX 文件中替换表达式?

TeX我可以替换一个目录中文件中的一个字符串表达式的所有实例吗?

例如,假设我想同时替换多个文件中的所有\frac内容。\myfrac

答案1

您使用的是哪种操作系统?如果您使用的是基于 *nix 的操作系统(包括 Mac),那么最简单的方法可能是在命令行/终端中使用 TeX 执行此操作:

find /home/my/directory -type f -exec sed -i 's/OldString/NewString/g' {} \;

find(使用和的组合sed。)

因此你需要:

find /home/my/directory -type f -exec sed -i 's/frac/myfrac/g' {} \;

希望这可以帮助。

答案2

大多数高级文本编辑器都具有replace可以一次应用于整套文件的功能。

例如,记事本++Windows 上提供了此功能。正如对这个问题的另一个回答中提到的,如果您使用的是基于 *nix 的系统,您可以很容易地使用命令行。

答案3

如果您使用 Vim,您可以尝试以下操作:首先在 vim 中打开其中一个 .tex 文件。

通过在隐藏缓冲区中打开同一目录下的其他 .tex 文件来加载它们:

:args *.tex

现在目录中的所有 *.tex 文件都已加载到(隐藏)缓冲区中。您可以通过发出以下命令对每个文件应用标准替换命令:

:argdo %s/string1/string2/g | update

是范围(整个文件),s表示替换命令,字符串1找到并替换为字符串2在每一行上,G表示这是全局执行的(因此不仅仅是每行的第一个实例)。最后一部分| 更新替换完成后将自动保存所有文件。

因为反斜杠是“特殊”字符,所以您需要用另一个反斜杠将其转义。对于您的情况,您可以发出以下命令:

:argdo %s/\\frac/\\myfrac/g | update

相关内容