假设我有
\starttext
\startitemize[a]
\item Some task to do
\startmode[solution]
Proposed solution
\stopmode
\item Some other task
...
\stopitemize
\stoptext
我希望解决方案在顶层呈现(即不像项目内容那样缩进),但我还想继续项目标记(因此简单地退出itemize
并稍后重新打开它是行不通的,因为它会a.
重新开始)。
我发现的第一件事是indentnext
属性,它不应该在项目的以下段落中缩进。我尝试了这两件事,但都没有奏效:
\setupitemgroup[itemize][nextindent=no]
\startitemize[a]
和:
\startitemize[a][nextindent=no]
解决方案仍然缩进。根据 wiki,这应该可行,但我不知道该怎么做。有什么建议吗?
答案1
虽然该解决方案continue
确实有效,但我认为它并不是真正意义上的“ConTeXt 方式”。我会采用更高的抽象,并为练习和解决方案创建定制环境。
\defineenumeration
[exercise]
[
text=,
alternative=left,
numberconversion=a,
headstyle=,
stopper=.,
width=fit,
]
% You cannot wrap modes into \start...\stop
% http://tex.stackexchange.com/a/319269/10995
\startmode[solution]
\definestartstop[solution]
\stopmode
\startnotmode[solution]
\definebuffer[solution]
\stopnotmode
\starttext
\startexercise
\input knuth
\stopexercise
\startsolution
\input ward
\stopsolution
\startexercise
\input zapf
\stopexercise
\stoptext
屏幕截图是在solution
启用模式的情况下排版的。
答案2
使用“ continue
”关键字可以\startitemize
:
\starttext
\startitemize[a]
\item Some task to do
\stopitemize
\startmode[solution]
Proposed solution
\stopmode
\startitemize[a,continue]
\item Some other task
...
\stopitemize
\stoptext