\halign 前言中的 \crcr 有什么用途?

\halign 前言中的 \crcr 有什么用途?

我知道 的目的是成为/中的\crcr一种“备份\cr” ,因为它只在不会导致连续出现两个时添加一个。尽管如此,它似乎还是进入了序言,在那里它看起来只是 的稍长版本。例如, 的普通 Tex 定义:\halign\valign\cr\halign\cr\matrix

*\show\matrix
> \matrix=macro:
#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 }%
  }%
}\,.

(我添加了一些格式)。我不明白为什么序言会以\crcrwhen结尾\cr,效果也一样好,是仅有的TeXbook 提到的选项,在这种情况下, when\crcr似乎不能起到备份的作用。现在,\cr第三 \crcr在这里确实有这个特殊的功能,但在非常简单的对齐中

\halign{#\crcr x}

尽管如此,你还是会得到“缺失\cr插入”的错误。我在其他地方见过这个习语,所以我假设它一些但我不知道原因是什么。

答案1

对于使用 的一个解释\crcr可能是,它让 的重新定义\cr留给用户去决定。

@TH. 的回答就是一个例子如何使用 \valign?他重新定义\cr

\def\cr{\crcr\noalign{\hfil}}

这样就可以在列之间添加胶水\valign。我认为这非常聪明。

相关内容