鉴于这个 MWE;
\documentclass[12pt]{report}
\usepackage{fontspec}
\def\ee{\=e\=e}
\begin{document}
sh\ee{n}g ur k\=asn
\end{document}
有没有办法消除花括号,防止宏处理器混淆并寻找另一个宏名?类似于\=a
不消耗以下 s 的方法。我刚刚注意到,\ee
由于我没有足够的 LaTeX-Fu 来纠正,除了用一对闭合括号之外,还会消耗以下空间{}.
答案1
使用 LuaLaTeX 是可以实现的。您可以添加一个回调,对每一行进行后处理,以\ee
将的实例替换为\ee
,即添加一个空格。gsub
是全局替换,因此一行中的所有出现都将被替换。您可以添加其他带有其他gsub
行的宏。
\documentclass[12pt]{report}
\usepackage{luacode}
\def\ee{\=e\=e}
\def\oo{\=o\=o}
\begin{luacode}
function addspace(line)
line = string.gsub(line, "\\ee", "\\ee ")
line = string.gsub(line, "\\oo", "\\oo ")
return line
end
luatexbase.add_to_callback("process_input_buffer", addspace, "easytyping")
\end{luacode}
\begin{document}
sh\eeng ur k\=asn \oong \eeng
\end{document}
但我建议sh\ee ng ur k\=asn \oo ng \ee ng
您自己打字,这样很容易习惯,并且可以省去后期处理的麻烦。