为什么不能定义一个命令来创建这样的表?我对列表执行同样的操作没有问题
列表命令:
\define[1]\docListBulleted
{\startitemize[before={\blank[small]},after={\blank[big]},inbetween={\blank[small]}] #1 \stopitemize}
梅威瑟:
\define[1]\tabd
{\startxtable
[option={stretch},split=yes]
#1
\stopxtable}
\starttext
\tabd{\NC Elements \NC Amount \NR}
\stoptext
当我尝试使用 /definestartstop 定义表时,会发生相同(或类似)的错误
梅威瑟:
\definestartstop
[Asdf]
[before={\startxtable},
after={\stopxtable}]
\starttext
\startAsdf
\startxrow
\startxcell
dddd
\stopxcell
\stopxrow
\stopAsdf
\stoptext
答案1
极端表(又称 xtables)是使用 Lua 缓冲区实现的。这些表与宏定义配合得不好,因为启动命令必须“看到”停止命令。从手册:
此外,除了它不起作用之外,您不应该使用它\definestartstop
来包装 xtable。只需使用\definextable
即可。
\define[1]\tabd{%
\startembeddedxtable
[option={stretch},split=yes]
#1
\stopembeddedxtable
}
\definextable
[Asdf]
[option=stretch,
split=yes]
\starttext
\tabd{\NC Elements \NC Amount \NR}
\startxtable[Asdf]
\startxrow
\startxcell
dddd
\stopxcell
\stopxrow
\stopxtable
\stoptext