答案1
您的文档中的问题是您将assignment
和放在keyword
同一个参数中,\setupitemize
但 ConTeXt 要求将这两种类型放在单独的参数中。
命令的定义\setupitemize
表明每种类型都有自己的参数。
由于两个参数都是选项,\doifelseassignment
当您仅为设置使用一个参数时,ConTeXt 将使用命令来决定您具有哪种类型的参数。
当参数包含时,=
它将被视为赋值并被keywords
忽略。
\starttext
\doifelseassignment{color=green,packed}
{Assignment list}
{Keyword list}
\stoptext
尽管 ConTeXt 将所有设置的两种参数类型分开,但仍然可以在命令的帮助下在同一个参数中混合和处理它们,但这\processassignlist
从未使用过并且应该避免。
\starttext
\define[1]\ShowKeyword
{Keyword: #1\par}
\processassignlist[color=green,packed]\ShowKeyword
\define[2]\ShowAssignment
{Key: #1, Value: #2\par}
\processassignmentlist[color=green,packed]\ShowAssignment
\stoptext