在 mathnormal 中排列数字

在 mathnormal 中排列数字

有没有一种简单的方法可以使用 来获得内衬数字(而不是旧式数字)\mathnormal{}?我想要$\mathnormal{abc123}$看起来像$abc123$

我的问题是我有一个运算符\Declaremathop[1]{Op^{#1}},其参数可以是数字或字母,并且在两种情况下我都希望参数看起来就像默认数学字体(使用$...$),但是:

  • \Declaremathoperator[1]{Op^{#1}}得到罗马字母;
  • \Declaremathop[1]{Op^\mathnormal{#1}}得到了旧式数字。

编辑:运算符实际上分为两部分,例如\Declaremathoperator{Op^{#1}Bla}这就是为什么我无法将参数从运算符声明中隔离出来。

答案1

我不知道\Declaremathop

间接地做:

\usepackage{amsmath} % for \operatorname
\newcommand{\Op}[1]{\operatorname{Op}^{#1}}

然后\Op{a}就会\Op{1}做正确的事。

\documentclass{article}
\usepackage{amsmath} % for \operatorname

\newcommand{\Op}[1]{\operatorname{Op}^{#1}}

\begin{document}
$\Op{a}\ne\Op{1}$
\end{document}

在此处输入图片描述

对于“两部分”运算符,只需利用 TeX 在连续运算符之间插入一个窄空格的事实,这样我们就可以使用以下命令删除该空格\!

\documentclass{article}
\usepackage{amsmath} % for \operatorname

\newcommand{\OpBla}[1]{%
  \operatorname{Op}^{#1}\!\operatorname{Bla}%
}

\begin{document}
$\OpBla{a}\ne\OpBla{1}$
\end{document}

在此处输入图片描述

答案2

数学运算中的正常指数

更新以解释带有egreg减号的测试,该减号(也许)不应转换为连字符:

数学运算 2 中的正常指数

\documentclass[12pt]{article}

\usepackage{amsmath}

\newcommand{\DeclareMathOp}[2]
    {\DeclareRobustCommand{#1}{\qopname\relax o{Op^{\fam-1 #2}bla}}}

%\newcommand{\DeclareMathOp}[2]{\DeclareMathOperator{#1}{Op^{\fam-1 #2}bla}}

\DeclareMathOp \testletter {abc}

\DeclareMathOp \testdigits {123}

\DeclareMathOp \testmixed {a1b2c3}

\DeclareMathOp{\testminus}{a-b}

\begin{document}
\Huge

$\testletter\neq \testdigits\neq \testmixed $

$\testminus$

\end{document}

相关内容