我有一些文件使用寄存器来跟踪项目,然后将其显示在列表中:
\defineregister[animals][pagenumber=no, indicator=no, before=, n=1]
\def\definegetanimal{\animals}
\define[1]\defineanimal{#1}
\starttext
\defineanimal{cat}
\defineanimal{pig}
\defineanimal{sheep}
\placeregister[animals]
\stoptext
我需要对寄存器进行一些非常简单的格式化,但无论我尝试什么似乎都没有效果。
在一个文档中,我需要在列表中显示寄存器:
\defineregister[animals][pagenumber=no, indicator=no, before=\item, n=1]
\def\definegetanimal{\animals}
\define[1]\defineanimal{#1}
\starttext
\defineanimal{cat}
\defineanimal{pig}
\defineanimal{sheep}
\startitemize[n]
\placeregister[animals]
\stopitemize
\stoptext
在另一个文档中,我需要列表中的每个项目都单独显示在页面上(即在之后放置分页符):
\defineregister[animals][pagenumber=no, indicator=no, before=, n=1, after=\pagebreak]
\def\definegetanimal{\animals}
\define[1]\defineanimal{#1}
\starttext
\defineanimal{cat}
\defineanimal{pig}
\defineanimal{sheep}
\placeregister[animals]
\stoptext
这些都不起作用,而且我找不到任何其他\setup
命令来帮助配置寄存器列表中出现的项目的外观。
如何在 ConTeXt 中格式化寄存器内的项目?
答案1
如果我理解正确的话,你需要设置\textcommand
:
%\setuppapersize[A6]
\defineregister[animalsi]
[pagenumber=no,
indicator=no,
n=1,
before=,
textcommand=\groupedcommand{\startitem}{\stopitem}]
\defineregister[animalsii][animalsi]
[textcommand=\groupedcommand{}\page]
\animalsi{Ne}
\animalsi{ultra}
\animalsi{crepidam}
\animalsii{Feliz}
\animalsii{bicentenario}
\animalsii{Perú}
\starttext
\startitemize[n]
\placeregister[animalsi]
\page
\placeregister[animalsii]
\stopitemize
\stoptext
对于别名等,在我看来\let<whatever macro name I choose>\animalsi
比解决方案更短更直接\define
。