ConTeXt:使用模式仅提取文档的部分内容

ConTeXt:使用模式仅提取文档的部分内容

在 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,输出为:

在此处输入图片描述

相关内容