如何可靠地检查 ConTeXt 中的文档变量是否为空?

如何可靠地检查 ConTeXt 中的文档变量是否为空?

考虑以下 MWE:

\startdocument[title=]
  \doifemptyvariableelse{document}{title}{True}{\documentvariable{title}}
  Test
\stopdocument

基本上,我有一个带有 title 变量的文档。现在我想检查该变量是否为空 ( \doifemptyvariableelse)。它不是简单地输出正确的分支并退出当前代码,而是吞噬接下来的两个标记,这感觉不对。

是否有一些简单的方法来检查文档变量是否为空,并且不会吞噬以下标记?

答案1

您可以使用\doifdocumentvariableelse(在 中定义file-job.mkvi),它使用\doifsomething。例如:

\startdocument[title=]
  \doifdocumentvariableelse{title}{\documentvariable{title}}{False}

  %% is the same as:
  %% \doifsomethingelse{\documentvariable{title}}{\documentvariable{title}}{False}

  Test
\stopdocument

相关内容