我想重新定义一个字符(比如.
),使其执行其原来的功能并执行另一项任务(例如运行某些命令,比如\mycommand
)。
我写了下面的代码,但是不起作用。我该如何修正这个代码。
\documentclass{article}
\newcommand\mycommand{OK}
\catcode`\.=\active
\def.{.\mycommand}%
\begin{document}
Hello.
\end{document}
答案1
有几种方法可以做到这一点。一种是
\begingroup\lccode`~=`. \lowercase{\endgroup\def~}{.\mycommand}
\catcode`.=\active
执行完操作后,句号~
将变为活动句号,因为它仅更改字符代码,并且默认处于活动状态。替换文本中的句号仍具有其正常类别代码,该代码将永久附加到其上。\lowercase
~
但是你应该不是使句点处于活动状态。任何后续命令(例如)\hspace{1.5em}
都将引发令人费解的错误。