使用 displaystyle 时子堆栈中的垂直对齐

使用 displaystyle 时子堆栈中的垂直对齐

我定义\underin命令使其第一个参数出现在第二个参数下方,\in中间有一个旋转。它看起来很小,所以我还\dunderin通过添加一个\displaystyleinto来定义一个命令\underin。以下是代码:

\documentclass{article}
\usepackage{amsmath,mathtools}

\newcommand{\underin}[2]{
    \ensuremath{\underset{\substack{
        \rotatebox{90}{$\in$} \\
        \mathclap{#1}
    }}{#2}}
}

\newcommand{\dunderin}[2]{
    \underin{\displaystyle#1}{#2}
}

\begin{document}
\[
\underin{a}{A} \underin{b}{B} \underin{c}{C} \quad
\dunderin{a}{A} \dunderin{b}{B} \dunderin{c}{C}
\]
\end{document}

结果如下:

在此处输入图片描述

看起来在第一种情况下内容是按照中线对齐的,而在第二种情况下内容是按照上升线对齐的。但是为什么呢?

我知道如何通过\vpantom在每个中插入来解决问题\dunderin,但我也对使用某种数组环境以易于扩展的方式正确对齐它的解决方案感兴趣。目标是产生类似于下图的东西:

在此处输入图片描述

答案1

通过在您的定义中添加\strut,正如我在评论中指出的那样,我认为它可以解决问题(至少对于这个 MWE 而言)。

\documentclass{article}
\usepackage{amsmath,mathtools}

\newcommand{\underin}[2]{
    \ensuremath{\underset{\substack{
        \rotatebox{90}{$\in$} \\
        \mathclap{#1}
    }}{#2}}
}

\newcommand{\dunderin}[2]{
    \underin{\displaystyle\strut#1}{#2}
}

\begin{document}
\[
x \in \dunderin{a_1}{A}\cdot \dunderin{b_2}{BB} \cdot \dunderin{c_3,d_4}{CCC}
   \cdot \dunderin{e^f}{I}
\]
\end{document}

在此处输入图片描述

如果正如 OP 所指出的那样,需要处理不同垂直尺寸的下集,则 TABstack 方法可以处理:

\documentclass{article}
\usepackage{mathtools,tabstackengine}
\stackMath

\def\swin{\protect\rotatebox{90}{$\in$}}

\begin{document}
\[
\TABbinary
x \in \tabbedShortunderstack{
  A& \cdot & BB & \cdot & CCC & \cdot & I\\
\swin&&\swin&&\swin&&\swin \\
  a_1 && b_2 && c_3,d_4 &&\frac{e^f}{2}
}
\]
\end{document}

在此处输入图片描述

相关内容