![将特殊字符重新定义为宏](https://linux22.com/image/318550/%E5%B0%86%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%E4%B8%BA%E5%AE%8F.png)
我想将一些特殊字符重新定义为宏。本质上,我想告诉 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}