LaTeX技巧920:NEWIF的用法

\newif 是plain TeX(LaTeX2ε中依然支持)中创建逻辑变量,变量(variable)、控制序列(control sequence)、命令(command)、宏(macro)在TeX中基本是同义词的方法,语法很简单:
\newif\ifboolcondition
简单的语法却有不简单的含义!简单的说,这同时创建了三个命令: \ifboolcondition 创建逻辑变量ifboolcondition(只有true/false两种状态),并根据相应的状态执行相应的代码,需要配合\fi一起使用,即一旦通过\newif创建了逻辑变量ifboolcondition,在实际使用时一般的形式为:
\ifboolcondition

…%ifboolcondition为true时的输出

\else

…%ifboolcondition为false时的输出

\fi
\boolconditiontrue\ifboolcondition 设置为true。注意,这个命令不包含if! \boolconditionfalse\ifboolcondition 设置为false。注意,这个命令不包含if! 默认的,\newif\ifboolcondition 命令创建一个false状态的逻辑变量\ifboolcondition ,即\new\ifboolcondition 等价于:\new\ifboolcondition \boolconditionfalse 。 有了\newif创建逻辑变量,关于分支的处理就方便多了:在合适的时候使用\xxxtrue或者\xxxfalse设置\xxx逻辑变量的状态,通过监测\xxx的状态决定输出的文本即可。

举例

\newif\ifstudent

\def\printstudent{\ifstudent here is a student. \else here is not a student.\fi}

\studenttrue\printstudent

\studentfalse\printstudent
输出结果为: here is a student. here is not a student.

勿滥用newif

TeX提供了大量的\if开头的条件判断命令,比如\if 、\ifx 、\ifodd 、\ifnum 、\ifdim 、\ifvmode 、\ifhmode 、\ifmmode 、\ifinner 等等,显然应该优先使用这些预定义的条件判断命令。当以上命令无法表达当前的逻辑关系时,才考虑使用\newif自定义逻辑变量。 选自:http://softlab.sdut.edu.cn/blog/subaochen/2017/08/newif%E7%9A%84%E7%94%A8%E6%B3%95/
分享到:
未经允许不得转载:LaTeX技巧920:NEWIF的用法
已有 条意见

    最新文章

    加载中...
      本站提供专业LaTeX排版、咨询、定制服务,请点击下图咨询详情


      全国首个精品的LaTeX视频教程,大牛带着你入门,让LaTeX学习不再纠结,请点击下图咨询详情

      热门评论

        本月人气文章

        联系我们

        交流QQ群:91940767
        本站QQ号:343083553
        邮箱联系latexstudio@qq.com
        淘宝店铺latexstudio.taobao.com 提供排版,模板定制,培训,图片处理,视频教程等LaTeX服务。

        关注微信公众号: latex2015

        如果您投稿或者希望加入我们团队,请发送您的简历到latexstudio@qq.com。

        科技艺术的完美融合,专业精致的排版体验

        联系我们联系我们