我在 中使用矩阵Plain TeX
,列间距太大。由于我还更改了纸张尺寸,矩阵超出了页面的一侧。一个最小示例是
\input eplain
$$
A =
\left\{
\matrix{
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
}
\right\}
$$
\bye
\hskip
我可以在每行前面插入一个来缩小列数&
,但这会使源代码难以阅读。有没有更好的方法来控制这个间距?
答案1
这是 Plain,不是eplain
。 的定义在列之间\matrix
使用\quad
。您可以定义一个新的宏,该宏采用另一个参数作为间距:
\input eplain
\catcode`@=11
\def\xmatrix#1#2{\null\,\vcenter{\normalbaselines\m@th
\ialign{\hfil$##$\hfil&&\hskip#1\hfil$##$\hfil\crcr
\mathstrut\crcr\noalign{\kern-\baselineskip}
#2\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
\catcode`@=12
$$
A =
\left\{
\xmatrix{3pt}{
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
}
\right\}
$$
\bye
答案2
您可以\quad
在组内重新定义;这样,当组完成时它会被恢复(最初,我在组之前重新定义它,并在组之后手动重置它;感谢 morbusg 的提醒,为我节省了两行代码)。
\input eplain
$$
\def\quad{\hskip1ex\relax}
A =
\left\{
\matrix{
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
(1&1&(1&0&0)^6&||&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1^{30})\cr
}
\right\}
$$
\bye