Der Titel sagt alles. Ich verwende das Paket kpfonts und möchte einen mathematischen Operator deklarieren, der oben einen Widearc hat. Beim Kompilieren erhalte ich jedoch keinen Arc.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{
kpfonts
}
\DeclareMathOperator{\dSing}{\widearcarrow{Sing}}
\DeclareMathOperator{\sSing}{\widehat{Sing}}
\begin{document}
\[\dSing(X) \quad \widearcarrow{Sing}\quad\sSing(A)\]
\end{document}
Beachten Sie, dass der Befehl widehat funktioniert.
Vielen Dank für Ihre Hilfe!
Antwort1
Offensichtlich funktionieren die mathematischen Akzente aus Familie 3 nicht in \operatorname
.
Sie können eine Schnittstelle auf niedrigerer Ebene verwenden:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{kpfonts}
\DeclareRobustCommand{\dSing}{%
\mathop{\widearcarrow{\mathrm{Sing}}}\nolimits
}
\DeclareMathOperator{\sSing}{\widehat{Sing}}
\begin{document}
\[
\dSing(X) \quad \widearcarrow{Sing} \quad \sSing(A)
\]
\end{document}
Antwort2
Ersetzen Sie \newcommand
durch \DeclareMathOperator
und Ihr Code funktioniert perfekt.
Um die Unterschiede zwischen \newcommand
und \DeclareMathOperator
zu erfahren, empfehle ich Ihnen, sich diesen Link anzusehen:neuer Befehl vs. DeclareMathOperator
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{kpfonts}
\newcommand{\dSing}{\widearcarrow{\mathrm{Sing}}}
\newcommand{\sSing}{\widehat{\mathrm{Sing}}}
\begin{document}
\[\dSing(X) \quad \widearcarrow{Sing}\quad\sSing(A)\]
\end{document}
Antwort3
\renewcommand{\d}[1]{\widearcarrow{\text{#1}}}
\def\dSing{\d{Sing}}
Ich weiß nicht, warum es so funktioniert, aber es funktioniert. Vielleicht ist es ein Merkmal der Definition von widearcarrow
in derPaket.