我定义\underin
命令使其第一个参数出现在第二个参数下方,\in
中间有一个旋转。它看起来很小,所以我还\dunderin
通过添加一个\displaystyle
into来定义一个命令\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}