テキストモードでのみアクティブな文字

テキストモードでのみアクティブな文字

アポストロフィを入力するときはこの記号を使用するため、次のコード'を に置き換えます。\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}

ここに画像の説明を入力してください

関連情報