멋진 패키지의 명령 확장/수정

멋진 패키지의 명령 확장/수정

cool저는 수학, 특히 적분뿐만 아니라 삼각 함수에도 패키지를 사용하기 시작했습니다 . 예를 들어, \Sin[2]{x}항복 과 같은 코드를 사용하여 사인 제곱 함수와 같은 것을 얻고 싶습니다 sin²(x). 또한 기능을 추가하고 싶습니다 sinc. 예를 들어 명령을 간단히 재정의할 수 있지만 패키지 \Sin와 일관성을 유지하고 싶습니다 cool.

cool패키지 구현 문서 에 따라1어리석게도 나는 작동하지 않는 다음을 시도했습니다.

\documentclass{article}
\usepackage{cool}
\renewcommand{\Sin}[2][]{\sin^{#1}\COOL@decide@paren{Sin}{#2}}
\newcommand{\COOL@notation@SincParen}{p}
\DeclareMathOperator{\SincSymb}{Si}
\newcommand{\Sinc}[1]{\SincSymb\COOL@decide@paren{Sinc}{#1}}
\begin{document}
  \begin{align}
    \Sin{x} \\ % should produce the normal cool sin
    \Sin[2]{x} \\ % should produce sin^2
    \Sinc{x} % should produce sinc
  \end{align}
\end{document}

물론, 다음 단계는 또한 sinc²가능하게 만드는 것입니다.

이것이 어떻게 가능합니까?

답변1

우선 잊어버렸 \makeatletter습니다 \makeatother. 그러면 간단합니다.

\documentclass{article}
\usepackage{cool}

\makeatletter
\renewcommand{\Sin}[2][]{%
  \sin\if\relax\detokenize{#1}\relax\else^{#1}\fi\COOL@decide@paren{Sin}{#2}%
}
\newcommand{\COOL@notation@SincParen}{p}
\DeclareMathOperator{\sinc}{sinc}
\newcommand{\Sinc}[2][]{%
  \sinc\if\relax\detokenize{#1}\relax\else^{#1}\fi\COOL@decide@paren{Sinc}{#2}%
}
\makeatother

\begin{document}

\begin{gather*}
\Sin{x}    \\ % should produce the normal cool sin
\Sin[2]{x} \\ % should produce sin^2
\Sinc{x}   \\ % should produce sinc
\Sinc[2]{x}   % should produce sinc^2
\end{gather*}

\end{document}

장점이 어디에 있는지 잘 모르겠습니다 \sinc^{2}(x).

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

관련 정보