DeclareMathOperator и widearcarrow с kpfonts

DeclareMathOperator и widearcarrow с kpfonts

Название говорит само за себя, я использую пакет kpfonts и хотел бы объявить математический оператор, который имеет widearc сверху. Однако при компиляции я не получаю никакой дуги.

\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вупаковка.

Связанный контент