使用子堆栈进行总和的垂直对齐

使用子堆栈进行总和的垂直对齐

和与积通常垂直居中。但是,我发现下面的代码看起来有点傻,和表达式上方有很大的垂直空间:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
    \max_{y\in Y} \left\{ \sum_{\substack{x\in X\colon \\ f(x) = y}} g(x,y) \right\}
\]
\end{document}

在此处输入图片描述

有没有合理的方法来解决这个问题,或者我应该忍受这个奇怪的额外空间?(我想这是一个关于如何正确排版这类东西的问题,也是一个关于 LaTeX 的技术问题。)

答案1

我建议你分别用和替换自动调整大小指令\left和。更好的方法是考虑\right\Bigl\Bigr不是使用花括号来表示手头的表达式。通过指令“紧密排列”数学列表中的元素\smashoperator(参见下面的第三项)也可能是一个好主意。

另一个问题是:使用\colonin a\substack似乎会导致一些令人不快的间距问题 - 请参阅下面的前两个术语。使用{:}Instead of \colon- 请参阅下面的第三个术语 - 可以解决间距问题。

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools} % for \smashoperator macro
\begin{document}

\begin{align*}
  &\max_{y\in Y} 
  \left\{ 
     \sum_{\substack{x\in X\colon \\ f(x) = y}} g(x,y) 
  \right\}  \\[2\jot]
  &\max_{y\in Y} 
  \Bigl\{ 
     \sum_{\substack{x\in X\colon \\ f(x) = y}} g(x,y) 
  \Bigr\}  \\[\jot]
  &\max_{y\in Y} 
     \smashoperator{\sum_{\substack{x\in X{:} \\ f(x) = y}}} g(x,y) 
\end{align*}

\end{document}

相关内容