DeclareMathOperator と widearcarrow を kpfonts で使用

DeclareMathOperator と widearcarrow を kpfonts で使用

タイトルがすべてを物語っています。私はパッケージ kpfonts を使用しており、先頭に widearc を持つ数学演算子を宣言したいと考えています。しかし、コンパイルすると 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}

ここに画像の説明を入力してください

コマンド widehat が動作していることに注意してください。

ご協力いただきありがとうございます!

答え1

どうやら、家族 3 の数学のアクセントは では機能しないようです\operatorname

より低レベルのインターフェースを使用することもできます:

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

ここに画像の説明を入力してください

答え2

\newcommandの代わりにを置き換える\DeclareMathOperatorと、コードは完璧に動作します。

\newcommandとの違いについては、\DeclareMathOperatorこのリンクを参照することをお勧めします:newcommand と 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}

答え3

\renewcommand{\d}[1]{\widearcarrow{\text{#1}}}
\def\dSing{\d{Sing}}

なぜこのように動作するのかは分かりませんが、実際に動作します。これはwidearcarrowパッケージ

関連情報