我想\min
通过下标扩展该函数。定义如下
\newcommand{\smoothmin}[1]{\operatorname*{min_{{#1}}}}
但是 的字体 和下标的字体不一样。我也试过#1
了\[ \smoothmin{P,0}_{i=0,\dots,n} \]
\newcommand{\smoothmin}[1]{\operatorname*{min_{\mathnormal{#1}}}}
,
但这没有帮助。
定义函数使两个下标采用相同字体的正确方法是什么?
答案1
\operatorname
不是适合这项工作的工具。你可以
\newcommand{\smoothmin}[1]{%
\operatorname*{min_{\mathgroup=-1 #1}}%
}
但输入如\smoothmin{P,-1}_{i=0,1,\dots,n}
会产生
因为在 的参数中减号变成了连字符\operatorname*
。
使固定:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\smoothmin}[1]{\mathop{\min\nolimits_{#1}}}
\begin{document}
\[
\smoothmin{P,0}_{i=0,\dots,n}
\]
\end{document}
关于在内联公式中也可以使用它的建议:
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\NewDocumentCommand{\smoothmin}{me{_}}{%
\mathop{\mathpalette\smoothmin@{{#1}{#2}}}%
}
\NewDocumentCommand{\smoothmin@}{mm}{\smoothmin@@#1#2}
\NewDocumentCommand{\smoothmin@@}{mmm}{%
% #1 = math style, #2 = subscript, #3 = optional condition
\ifx#1\displaystyle
\mathop{\min\nolimits_{#2}}\IfValueT{#3}{_{#3}}%
\else
\min_{#2\IfValueT{#3}{;\,#3}}%
\fi
}
\makeatother
\begin{document}
\[
\smoothmin{P,0}_{i=0,\dots,n}a_i
\]
\begin{center}
$\smoothmin{P,0}_{i=0,\dots,n}a_i$
\end{center}
\end{document}