我有以下代码来替换'
,\textquotesingle
因为当我输入撇号时我更喜欢这个符号。
\makeatletter
\catcode`\'=\active
\def'{\textquotesingle}
\makeatother
问题是,当我想编写一个函数的导数时,它无法编译,我必须输入\text{'}
,但它看起来甚至不太好,它应该看起来有点倾斜。
所以我想知道是否有可能仅'
在文本模式下而不是在数学模式下创建活动字符,这样我就可以轻松输入\[ f'(x) \]
。
答案1
您需要区分文本和数学模式,还需要更新期待'
数学模式中的另一个宏来处理新的类别代码的内部宏。
\documentclass{article}
\makeatletter
\catcode`\'=\active
\protected\def'{\ifmmode\expandafter\active@math@prime\else\textquotesingle\fi}
\gdef\pr@m@s{%
\ifx'\@let@token
\expandafter\pr@@@s
\else
\ifx^\@let@token
\expandafter\expandafter\expandafter\pr@@@t
\else
\egroup
\fi
\fi}
\makeatother
\begin{document}
It's $f'$ or $f''$
\end{document}