将特殊字符重新定义为宏

将特殊字符重新定义为宏

我想将一些特殊字符重新定义为宏。本质上,我想告诉 lualatex 在遇到某些特殊字符(例如 á、ḿ 等)时执行一些用户定义的命令。

我找到了这个解决方案。 http://www.tex.ac.uk/FAQ-activechars.html

\catcode`\z=\active
\def z{Yawn, I'm tired}%

不幸的是,我认为它不适用于特殊字符。当我在上面的代码中将 á 放在 z 的位置时,我收到以下错误:

!Improper alphabetic constant.

有什么建议吗?还请帮忙添加相关标签。

答案1

您的 á 不是单个字形,而是a带有组合重音符号 U+0301 的字形。使用正确的字形 U+00E1 即可正常工作:

\documentclass{article}

\begin{document}
\catcode`\á =\active
\def á {Yawn, I'm tired}%
á 
\end{document}

相关内容