텍스트 모드에서만 활성 문자

텍스트 모드에서만 활성 문자

나는 아포스트로피를 입력할 때 이 기호를 선호하기 때문에 '를 대체할 다음 코드가 있습니다 .\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}

여기에 이미지 설명을 입력하세요

관련 정보