矩阵列间距

矩阵列间距

我在 中使用矩阵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

在此处输入图片描述

相关内容