![如何沿数学轴对齐标记的数学表达式?](https://linux22.com/image/363065/%E5%A6%82%E4%BD%95%E6%B2%BF%E6%95%B0%E5%AD%A6%E8%BD%B4%E5%AF%B9%E9%BD%90%E6%A0%87%E8%AE%B0%E7%9A%84%E6%95%B0%E5%AD%A6%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%9F.png)
我有一堆公式和图表,我想将它们与下面的一些标签对齐呈现。每个项目都是一个略微复杂的公式,具有不同的高度和深度,如下所示:
$$\halign{\hfil#\hfil&&\quad\hfil#\hfil\cr
\vrule width 8em height 8em&$\left(\matrix{1&2&3\cr 2 1 3}\right)$&$X$\cr
\noalign{\vskip1em}
$a=123$&$b=456$&$c=789$\cr}$$
其中\vrule
代表某个图表。但是,如果我这样做,项目就不会在单元格内垂直居中。我可以将其添加\vfil
到单元格中,但这样项目就只能与其边界框对齐,而不是与数学轴对齐。有没有办法将单元格条目对齐成一行,以便它们都与同一个数学轴对齐?
答案1
我应用$\vcenter{\hbox{\vrule width 8em height 8em}}$
了该规则(图像)。
\documentclass{article}
\begin{document}
$$\halign{\hfil#\hfil&&\quad\hfil#\hfil\cr
$\vcenter{\hbox{\vrule width 8em height 8em}}$&$\left(\matrix{1&2&3\cr 2 1 3}\right)$&$X$\cr
\noalign{\vskip1em}
$a=123$&$b=456$&$c=789$\cr}$$
\end{document}
答案2
花些时间来定义有用的宏,以减轻您重复做同样事情的负担。
这里\xeqalign
模仿的是\eqalign
:
\catcode`@=11
\def\xeqalign#1{%
\null\vcenter{\openup\jot\m@th
\ialign{\hfil$\displaystyle{##}$\hfil&&\quad\hfil$\displaystyle{##}$\hfil\crcr#1\crcr}%
}%
}
\def\vcen#1{%
\vcenter{\hbox{$\m@th\displaystyle{#1}$}}%
}
\catcode`@=12
$$
\openup2\jot
\xeqalign{
\vcen{\vrule width 8em height 8em}&
\pmatrix{1&2&3\cr 2 1 3}&X\cr
a=123&b=456&c=789\cr
}
$$
\bye