ConTeXt:定义表命令

ConTeXt:定义表命令

为什么不能定义一个命令来创建这样的表?我对列表执行同样的操作没有问题

列表命令:

\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

相关内容