嵌套 \halign

嵌套 \halign

TeX 按主题分类,第 25.3.2 章“序言中的括号计数”中指出“对齐可以嵌套”。可能是因为序言中的括号。

我怎样才能嵌套两个 \halign?

这不起作用:

\halign {% started in vertical mode
  {\halign {#\cr δ\cr }}& #\cr % preamble
  ε& ζ\cr } % spaces after & are discared

\halign {#& #\cr % simple preamble
  {\halign {#\cr δ\cr }}ε& ζ\cr }

您可以在上方看到我如何嵌套 \halign。如果不清楚,请解释第 25.3.2 章并给出一两个示例。

注意:我知道可以使用如下所示的 \vbox 来实现,但这不是我的问题。我想理解本书的这一章,而不是解决对齐问题。

\everycr = {}
\tabskip = 0 pt plus 1 fill
\halign to \hsize {#\cr
                   outer text\cr
                   \vbox {\halign to \hsize {#\cr inner text\cr }}\cr }

附带问题:你的代码能在 LaTeX 中运行吗?在 XeLaTeX 中呢?

答案1

我认为,为了\halign在外部的前导码中嵌套一个\halign,您需要将一个隐藏\halign在扫描仪中,最简单的方法是使用额外的宏扩展(\zz此处),您还需要一个\vbox才能回到垂直模式。

这将获取外部每行的第一个单元格\halign并将其作为内部的第一行\halign,并将其置于中心x

在此处输入图片描述

\def\zz#1{\vbox{\halign{\strut\hss##\hss\cr#1\cr x\cr}}}

\halign {% started in vertical mode
  \zz{#}& #\cr % preamble
  aaaa& b\cr
  zzzzz& c\cr 
}


\bye

相关内容