条件 If-then-else/xIf-then-else 包

条件 If-then-else/xIf-then-else 包

我目前正在准备一个关于标题中提到的软件包的演示文稿。我的问题是,我真的不明白为什么有人会在 LaTeX 文档中使用条件语句。使用这种语句有什么好处?你能给我一个现实世界的应用程序吗,它们对“主流”LaTeX 用户有什么实际帮助?

答案1

无论您是否使用该\ifthenelse语法,都可以进行各种测试。

例如你可以:

  • 测试图像的高度是否大于或小于其宽度,然后决定旋转图像或将其设置在横向页面上,或其他适当的位置

  • 在序言中设置一个布尔标志,然后有条件地包含文档的各部分,例如带有或不带有注释的演示文稿或带有或不带有答案的问答表。

  • 在一个框中对一些文本进行试验排版,然后测试最终的大小(或换行的严重程度或其他),并使用不同的设置(例如较小的字体大小)重复测试,最后使用一个框。

  • 你可以进行测试并改变计数器的呈现方式,例如进行交叉引用第 3.2 节如果你还没有进入第 3 章,而只是第 2 节如果你是

  • 您可以测试 \day 并根据需要使用stnd或来制作 6 月 17 日等等。rd

许多这些测试可用作特定的包命令,例如varwidth用于试用设置,或varioref用于变体引用和几个用于日期格式化的包,但总是可以想到要测试的东西,而这些命令没有在包中定义。

答案2

条件句的使用贯穿了LaTeX 内核帮助排版分节单元等。最终用户的可用性通常允许创建可以通过更改变量来更改的文档。也就是说,您无需创建两个单独的文档,每个文档的内容基本相同,只是有一些细微的变化,而是可以创建一个基于变量的单个文档。

举一个实际的例子,假设有人为学生写一份试卷。他们将整个试卷写成一组问题和答案,每个答案都写在answer相应问题之后的环境内(比如说)。现在您可以使用comment包裹打印不带答案的文档(使用\excludecomment{answer}),以准备实际考试;\includecomment{answer}当您想要完整的解决方案时,则打印带有答案的文档(使用)。

另一个示例来自交叉引用包varioref允许用户\vref{<ref>}以这样一种方式指定,即引用根据其相对于引用对象的位置而变化;“参见多于“ 或者 ”以下“而不是一些绝对的参考”参见第节1.2“。

来自 LaTeX 内核的另一个示例:使用 打印整数以使其始终有两位数\two@digits。这是来自内核的定义:

\def\two@digits#1{\ifnum#1<10 0\fi\number#1}

读作伪代码,\two@digits{<num>}首先检查(条件)是否<num>小于 10。如果是,则打印0,然后打印<num>。这确保小于 10 的数字前面会有0。这种条件允许在需要数字宽度时进行一致的排版。当然,它也可以在其他环境中使用。

ifthenxifthen包裹被考虑过时的因为有还有其他选择,但原理是一样的。

相关内容