如何在数学运算符下方写文字

如何在数学运算符下方写文字

我想实现这个目标

这

但如果我使用

\mathrm{argmax}_{y\in\mathcal{Y}}

确实如此不是放在y\in\mathcal{Y}下面argmax。我该如何解决这个问题?

答案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}

相关内容