将 \operatorname 与 \mathnormal 和 \mathrm 结合使用

将 \operatorname 与 \mathnormal 和 \mathrm 结合使用

相关问题:
排版数学运算符的平方

\operatorname将其参数转换为函数符号,左右两侧有适当的空格。但是,我经常需要在这些符号上应用下标和上标。所以我想定义类似

\documentclass{article}

\usepackage{amsmath,amssymb}

\newcommand\f[2]{
    \operatorname{\mathnormal{f}_{\mathnormal{#1}}^{\mathnormal{#2}}}
}

\begin{document}
\begin{equation*}
  \f{2}{n}
\end{equation*}
\end{document}

请注意,\operatorname{\mathnormal{f}}_{#1}^{#2}(下标和上标在 之外\operatorname)会使下标离字母 太远f

问题就从这里开始:由于\operatorname内部应用于\mathrm其参数,\f{2}{n}因此将指数排版n为直立:

错误1

另一方面,如果我写

\newcommand\f[2]{
    \operatorname{\mathnormal{f}_{\mathnormal{#1}}^{\mathnormal{#2}}}
}

然后数字的字体就会改变:

错误2

当组合字母(或其他运算符)和数字时,这会变得非常棘手,例如\f{2mn\cdot x}{\frac{c}{2}}

错误3

有没有办法得到“正确”的字母是否能同时得到“正确”的数字?那就是: 期望

答案1

目前尚不清楚您想要的布局到底是什么(也许问题中的完整最小示例和图像会有所帮助)。

的主要功能\operatorname是提供多字母运算符,如 log 等,如果您想要数学斜体 f,似乎您只需要其中之一,具体取决于您希望限制去往何处。

另一个功能是给它操作符间距,即在参数前留一个小间隙,所以也许第一种或第二种形式就是你正在寻找的?

$ f_1^2 x $

$ \mathop{f_1^2} x $

$ \mathop{{}f}_1^2 x $

$ \mathop{{}f}\limits_1^2 x $

在此处输入图片描述

相关内容