替换 .tex 文件中的字符串然后由 latex 编译

替换 .tex 文件中的字符串然后由 latex 编译

该文档由不同的文件创建,并使用 包含\input{filename.tex}。在所有这些文件中,我想用新字符串替换一个字符串,但不丢失语法并提取编辑器提供的检查。

例如用替换latex或。LatexCustom-\LaTeX{}

一个更好的解决方案是不定义必须替换文本的附加命令。我正在寻找类似于 C/C++#define指令的形式。

使用 chickenize 进行更新

使用时

\addtosubstitutions{latex}{Latex}
\substitutewords

biblatex 无法生成 .bbl

使用时

\addtosubstitutions{latex}{Latex\ae}
\substitutewords

错误是

(/usr/share/texlive/texmf-dist/tex/luatex/chickenize/chickenize.tex)) [\directlu
a]:1: invalid escape sequence near '\T'.
\addtosubstitutions ...tosubstitutions("#1","#2")}

l.84 \addtosubstitutions{latex}{Latex\ae}

答案1

\addtosubstitutions宏无法正确转义字符串。您可以在调用中使用以下方法修复它\addtosubstitutions

\addtosubstitutions{latex}{\luaescapestring{Latex\ae}}

或者你可以覆盖定义

\def\addtosubstitutions#1#2{
  \directlua{addtosubstitutions("\luaescapestring{#1}","\luaescapestring{#2}")}
}
\addtosubstitutions{latex}{Latex\ae}

梅威瑟:

\documentclass{article}

\usepackage{chickenize}
\def\addtosubstitutions#1#2{
  \directlua{addtosubstitutions("\luaescapestring{#1}","\luaescapestring{#2}")}
}
\addtosubstitutions{latex}{Latex\ae}
\substitutewords

\begin{document}

latex

\end{document}

在此处输入图片描述


我提交了拉取请求针对上游源来修复此错误,因此新版本可能不需要此解决方法。

相关内容