我將以下程式碼替換'
為\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}