Estendendo/modificando comandos do pacote legal

Estendendo/modificando comandos do pacote legal

Comecei a usar o coolpacote para minhas matemáticas, principalmente para integrais, mas também para funções trigonométricas. Eu gostaria de obter coisas como uma função seno-quadrado, por exemplo, usando um código como \Sin[2]{x}yielding sin²(x). Além disso, gostaria de adicionar uma sincfunção, por exemplo, sei que poderia simplesmente redefinir o \Sincomando, mas gostaria de mantê-lo consistente com o coolpacote.

Seguindo a cooldocumentação de implementação do pacote1estupidamente, tentei o seguinte que não está funcionando:

\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}

Claro, o próximo passo seria tornar isso também sinc²possível.

Como isso é possível?

Responder1

Primeiro de tudo você esqueceu \makeatlettere \makeatother; então é simples:

\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}

Não tenho certeza de onde \sinc^{2}(x)está a vantagem.

insira a descrição da imagem aqui

informação relacionada