在 ConTeXt 中,是否可以使用模式仅提取文档的部分内容,比如仅提取练习?
我的天真尝试是
\defineenumeration[exercise][
before={\startmode[Quest]\blank[line]},
after={\blank[line]\stopmode},
]
\starttext
\input knuth
\startexercise
\input tufte
\stopexercise
\input knuth
\stoptext
但这甚至无法编译。我最终想要的是:
运行后context file.tex
我得到了完整的文档。
跑步context --mode=Quest file.tex
我只得到练习(在枚举练习中定义的)。
如果可能的话,我还希望不必在每次出现练习时都\startmode
进行打字。\stopmode
答案1
如果您不介意稍微修改源文件,这里有一个使用translate
模块的解决方案。
\defineenumeration[exercise]
\usemodule[translate]
\translateinput[startexercise][stopnotmode\startexercise]
\translateinput[stopexercise][{stopexercise\startnotmode[question]}]
\enableinputtranslation
\starttext\startnotmode[question]
Random text
\startexercise
Content of exercise 1
\stopexercise
More random text
\startexercise
Content of exercise 2
\stopexercise
More random text
\stopnotmode\stoptext
请注意,我已将和替换\starttext
为。\starttext\startnotmode[question]
\stoptext
\stopnotmode\stoptext
当您使用 编译文件时context test.tex
,输出为:
当您使用 进行编译时context --mode=question test.tex
,输出为: