我一直试图从以下小例子康特克斯花园工作無果。
\starttext
\usemodule[database]
\def\SendMe#1#2#3#4{\framed
[align={flushleft,lohi},
width=4cm,
height=2.5cm]{#1\crlf#2\crlf\crlf\uppercase{#3\crlf#4}}}
\defineseparatedlist[Address][separator={;},command=\SendMe]
\startAddress
NTG;Maasstraat 2;NL-5836 BB Sambeek;The Netherlands
Dante~e.V.;Postfach 101840;D-69008 Heidelberg;Germany
\stopAddress
\stoptext
上下文让我想到了这一点:
...
resolvers > modules > loaded: 'database'
(/usr/share/texmf/tex/context/base/m-database.mkiv<+ /usr/share/texmf/tex/context/base/m-database.lua>)
! Argument of \SendMe has an extra }.
<inserted text>
\par
<to be read again>
}
\doprocessdatabase ...rameter \c!command \!!es , }
}
l.13 \stopAddress
?
不幸的是,目前我没有机会使用最新最好的 ConTeXt/LuaTeX 软件包进行测试。我的版本是:ConTeXt 2012.05.21 23:16 和 LuaTeX beta-0.71.0-2012050800 (rev 4406)。
那么这个示例是否过时了(它是 2006 年的)?现在应该如何实现?或者这是 ConTeXt/LuaTeX 的一些回归错误?或者也许有人可以确认这确实适用于最新版本?
答案1
您可以使用 mkII: 运行它,texexec <file>
然后它就可以工作了。
m-database 的 mkiv 版本仅适用于 这样的设置command=\framed
。模块内的文档仅引用从 csv 列表创建的表。