![如何用纯 TeX 编写垂直向量](https://linux22.com/image/284264/%E5%A6%82%E4%BD%95%E7%94%A8%E7%BA%AF%20TeX%20%E7%BC%96%E5%86%99%E5%9E%82%E7%9B%B4%E5%90%91%E9%87%8F.png)
我想在不使用命令的情况下在纯 TeX 中右移一个列向量\matrix
(否则它看起来太宽了)。我该怎么做?
答案1
我假设宽是指分隔符和内部内容之间的间距。
\matrix
是用宏定义的\thinmuskip
(即,默认情况下为) 。3 mu
\,
它的完整定义如下:
\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th
\ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
\mathstrut\crcr\noalign{\kern-\baselineskip}
#1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
\tightmatrix
因此,您可以通过复制上面的内容(不带“'s” )来制作自己的内容\,
,例如:
\def\tightmatrix#1{\null\vcenter{\normalbaselines\mathsurround=0pt
\ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
\mathstrut\crcr\noalign{\kern-\baselineskip}
#1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}}
\def\bmatrix#1{\left[\tightmatrix{#1}\right]}
$$ A \left[ \matrix{a_1\cr a_2} \right] B $$
$$ A \bmatrix{a_1\cr a_2} B $$ % can have more than two rows
$$ A {a_1\atopwithdelims[] a_2} B $$ % aka \brack only two rows
\bye
也许可以考虑将\vcenter
里面包裹起来\mathinner
。
以下是比较:
我最喜欢最后一个的整体间距,但对于超过两行的情况,您需要开始添加样式更改和分组,而且很快就会变得非常混乱。
答案2
以下是我使用 LaTeX MWE 更正的答案:
\documentclass{article}
\usepackage{plain}
\begin{document}
\begin{plain}
$$\left[\vcenter{\hbox{$\mathstrut a_1$}\hbox{$\mathstrut a_2$}}\right]$$
\end{plain}
\end{document}