如果我处于对齐状态,如何进行分支?

如果我处于对齐状态,如何进行分支?

编辑:

似乎我可以\noalign\bgroup在 之前使用\halign。没问题。但是我如何测试我是否在 halign 组中?我可以编写自己的 if,但最好询问 tex 的状态,而不是引入自己的状态变量。

原始问题:

       \halign 表宏的纯 TeX 嵌套

为什么我不能嵌套使用我的 \begindescrows 宏,或者我怎样才能更改命令以便可以嵌套它:

\def\begindescrows #1,#2,#3.{\begingroup\baselineskip 2em\parindent 0pt
    \parskip 6pt plus1pt minus1pt
    \def\bullet{#1}
    \setbox0=\hbox{{\datefont ~\bullet~~ }} \def\dateSize{#2}
    \def\descSize{#3}
    \def\dcol{\hsize \descSize}
    \def\fcol{\hsize \dateSize}
    \def\desc##1{\vtop{\tolerance=5000\dcol\baselineskip 1.1em ##1\vskip 1em}}
    \def\date##1 -- ##2:{\vtop{\datefont\tolerance=5000\fcol\parskip0pt\baselineskip 1.1em
\hskip-\wd0\copy0 ##1 --\hfill\break
##2\par\vskip 1em}}
    \def\row ##1 -- ##2:##3\cr{\date ##1 -- ##2: &\desc{##3}\cr}
\halign\bgroup##\hfil&##\hfil\cr
}
\def\enddescrows{\crcr\egroup\endgroup\par\vskip -1em plus .5em\noindent}

\begindescrows von,3.5cm,13cm.
\row November 2006 -- now:      Some time went by.\cr
\begindescrows als,2.5cm,10cm.
\row This -- makes: no sense, but actually I want to nest a command similar to \\begindescrows.\cr
\enddescrows
\enddescrows
\bye

错误日志如下:

$ pdftex --file-line-error testfile.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdftex)
 restricted \write18 enabled.
entering extended mode
 encTeX v. Jun. 2004, reencoding enabled.
(./testfile.tex
Runaway definition?
#1 -- #2:#3\hfil 
./testfile.tex:19: Forbidden control sequence found while scanning definition o
f \row.
<inserted text> 
                }
<to be read again> 
                   \endtemplate 
<template> \hfil \endtemplate 

\begindescrows ...m}} \def \row ##1 -- ##2:##3\cr 
                                                  {\date ##1 -- ##2: &\desc ...
l.19 \begindescrows als,2.5cm,10cm.

? X
No pages of output.
Transcript written on testfile.log.

答案1

我发现在宏内部不使用 \noalign 会更简单,但在外部(我知道我在 \halign 内部)使用会更简单。因此

\begindescrows ...

可以简单地嵌套在任何级别,使用

\noalign{\begindescrows ...
....
\enddescrows}

实际上,从宏外部可以看到嵌套和对齐特性是件好事。

相关内容