DeclareMathOperator und widearcarrow mit kpfonts

DeclareMathOperator und widearcarrow mit kpfonts

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}

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

Antwort2

Ersetzen Sie \newcommanddurch \DeclareMathOperatorund Ihr Code funktioniert perfekt.

Um die Unterschiede zwischen \newcommandund \DeclareMathOperatorzu erfahren, empfehle ich Ihnen, sich diesen Link anzusehen:neuer Befehl vs. DeclareMathOperator

Bildbeschreibung hier eingeben

\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 widearcarrowin derPaket.

verwandte Informationen