使用 kpfonts 声明数学操作符 (DeclareMathOperator) 和 widearcarrow

使用 kpfonts 声明数学操作符 (DeclareMathOperator) 和 widearcarrow

标题说明了一切,我正在使用 kpfonts 包,我想声明一个数学运算符,该运算符顶部有一个宽弧。但是,当我编译时,我没有得到任何弧。

\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包裹

相关内容