答案1
欢迎来到 TeX.SX!您可能遇到的问题是 TeX 有两种不同的数学排版模式:内联和显示。显示数学用于显示与浮动文本分开的数学公式,而内联数学则用于内联,即在其他周围文本的上下文中使用。
至于您的具体示例,{y \in \mathscr{Y}}
当您使用内联数学时,参数不会放在“argmax”下方。这是 TeX 做出的排版决定,以减少内联排版时数学公式占用的空间。如果您在 display-math 环境中使用命令,它将按您的意图排版:
上述输出由以下代码生成:
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator*{\argmax}{argmax}
\begin{document}
This is inline: $\argmax_{y \in \mathcal{Y}}$ and more text to follow.
\bigskip
This is not:
\[ \argmax_{y \in \mathcal{Y}} \]
\end{document}
答案2
只要你使用宏\DeclareMathOperator*
(由amsmath
包提供)来声明运算符,例如,
\DeclareMathOperator*{\argmax}{argmax}
TeX 会将运算符 -- 的参数放在此处:y\in\mathcal{Y}
--以下运算符本身 (a) 如果在显示样式数学模式中遇到该指令(除非被指令覆盖)或 (b) 如果在文本样式(或脚本或 scriptscript 样式)中\nolimits
运算符指令后跟while。\limits
下表对此进行了总结。第一列显示四种数学样式的默认行为,即不使用\nolimits
或\limits
。第二列显示覆盖默认值的结果,无论\nolimits
是显示样式数学的 via 还是\limits
其他三种数学样式的 via。
\documentclass{article}
\usepackage{amsmath} % for '\DeclareMathOperator*' macro
\DeclareMathOperator*{\argmax}{argmax}
\usepackage{array} % for '\newcolumntype' macro
\newcolumntype{L}{>{$}l<{$}}
\begin{document}
\renewcommand\arraystretch{1.5} % just for this example
\begin{tabular}{ LL >{\ttfamily}l }
\displaystyle \argmax_{y\in\mathcal{Y}}
& \displaystyle \argmax\nolimits_{y\in\mathcal{Y}}
& \string\displaystyle \\
\argmax_{y\in\mathcal{Y}} % '\textstyle' is the default
& \argmax\limits_{y\in\mathcal{Y}}
& \string\textstyle \\
\scriptstyle \argmax_{y\in\mathcal{Y}}
& \scriptstyle \argmax\limits_{y\in\mathcal{Y}}
& \string\scriptstyle \\
\scriptscriptstyle \argmax_{y\in\mathcal{Y}}
& \scriptscriptstyle \argmax\limits_{y\in\mathcal{Y}}
& \string\scriptscriptstyle
\end{tabular}
\end{document}