ConTeXt:互斥模式

ConTeXt:互斥模式

我想知道是否可以定义一组模式,例如只能使用一种模式。MWE 是:

\environment myEnvironment
\starttext
\startmode[modeA]
  This is mode A
\stopmode
\startmode[modeB]
  This is mode B
\stopmode
\stoptext

使用运行时显示“这是模式 A” context --mode=modeA file.tex ,使用运行时显示“这是模式 B” context --mode=modeB file.tex

附加问题是:有没有办法自动(我的意思是无需手动输入--result = newName)生成不同的输出文件(例如第一种情况下的file_modeA.pdf和第二种情况下的file_modeB.pdf)。

答案1

如果您不想在结果旁边指定模式,只需使用结果名称作为模式。例如,您可以使用以下示例调用

context --result=students test.tex

或者

context --result=teachers test.tex

启用同名模式。由于启用该模式是在 Lua 端进行的,因此您当然可以构建更为复杂的模式检查结构。

然后,您可以使用以下列出的所有可用模式检查命令来检查模式:花园。下面我用了\doifmode\doifnotmode但解决方案并不局限于这些。

\startluacode
context.enablemode{environment.arguments.result or ""}
\stopluacode

\starttext

\doifmode{students}{for student's eyes}
\doifnotmode{students}{for teacher's eyes}

\doifmode{teachers}{for teacher's eyes}
\doifnotmode{teachers}{for student's eyes}

\stoptext

相关内容