该文档由不同的文件创建,并使用 包含\input{filename.tex}
。在所有这些文件中,我想用新字符串替换一个字符串,但不丢失语法并提取编辑器提供的检查。
例如用替换latex
或。Latex
Custom-\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}
我提交了拉取请求针对上游源来修复此错误,因此新版本可能不需要此解决方法。