Erweitern/Ändern von Befehlen aus dem Cool-Paket

Erweitern/Ändern von Befehlen aus dem Cool-Paket

Ich habe angefangen, das Paket für meine Mathematik zu verwenden cool, insbesondere für Integrale, aber auch für trigonometrische Funktionen. Ich möchte beispielsweise Dinge wie eine Sinus-Quadrat-Funktion erhalten, indem ich einen Code wie \Sin[2]{x}yielding verwende sin²(x). Außerdem möchte ich eine sincFunktion hinzufügen, z. B. weiß ich, dass ich den Befehl einfach neu definieren könnte \Sin, aber er soll mit dem coolPaket konsistent bleiben.

Befolgen der coolPaketimplementierungsdokumentation1dummerweise habe ich Folgendes versucht, was nicht funktioniert:

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

Der nächste Schritt wäre natürlich, dies auch sinc²möglich zu machen.

Wie ist das möglich?

Antwort1

Zuerst haben Sie \makeatletterund vergessen \makeatother; dann ist es ganz einfach:

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

Ich bin nicht sicher, wo der Vorteil \sinc^{2}(x)liegt.

Bildbeschreibung hier eingeben

verwandte Informationen