我想知道是否可以定义一组模式,例如只能使用一种模式。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