Aktives Zeichen nur im Textmodus

Aktives Zeichen nur im Textmodus

Ich muss durch den folgenden Code ersetzen ', \textquotesingleda ich dieses Symbol bevorzuge, wenn ich ein Apostroph eingebe.

\makeatletter
\catcode`\'=\active
\def'{\textquotesingle}
\makeatother

Das Problem besteht darin, dass wenn ich eine Ableitung einer Funktion schreiben möchte, diese nicht kompiliert wird. Ich muss eingeben \text{'}, was aber nicht einmal gut aussieht. Es sollte etwas schief aussehen.

Daher habe ich mich gefragt, ob es möglich ist, 'ein aktives Zeichen nur im Textmodus und nicht im Mathematikmodus zu erstellen, sodass ich problemlos tippen kann \[ f'(x) \].

Antwort1

Sie müssen zwischen dem Text- und dem Mathematikmodus unterscheiden, aber auch das interne Makro aktualisieren, das 'im Mathematikmodus auf ein anderes wartet, um den neuen Kategoriencode zu berücksichtigen.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen