Tenho o seguinte código para substituir '
, \textquotesingle
porque prefiro esse símbolo quando digito um apóstrofo.
\makeatletter
\catcode`\'=\active
\def'{\textquotesingle}
\makeatother
O problema é que quando eu quero escrever uma derivada de uma função ela não compila, tenho que digitar \text{'}
, mas nem fica bom, deve ficar um pouco inclinado.
Então, eu queria saber se é possível criar '
um caractere ativo apenas no modo de texto e não no modo matemático, para que eu possa digitar facilmente \[ f'(x) \]
.
Responder1
Você precisa diferenciar entre o modo texto e matemático, mas também atualizar a macro interna que aguarda outra '
no modo matemático para cuidar do novo código da categoria.
\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}