Расширение/модификация команд из пакета cool

Расширение/модификация команд из пакета cool

Я начал использовать coolпакет для своей математики, особенно для интегралов, но также и для тригонометрических функций. Я хотел бы получить такие вещи, как функция синус-квадрат, например, используя код, такой как \Sin[2]{x}yielding 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).

введите описание изображения здесь

Связанный контент