LaTeX 自动避免重复内容

在编辑自动化文档时,很容易出现在文档多处提及相同内容的情况。例如,描述某具体设备的图片,在多个工艺中都会用到,而又无法确定工艺出现顺序,或者对于不同企业,工艺不尽相同。这时我们可能会希望,latex帮助我们保留第一次出现的图片,而不输出后出现的相同图片,并且维护所有对这张图片的引用。

要实现此功能,直觉地感到:

  1. 代码要能判断某个指令或标签是否已经被定义;
  2. 若已经定义,则不执行任何操作;
  3. 若未定义,则定义之,并输出内容。

在tex底层,存在一个识别指令名是否被定义的指令:\@ifundefined{指令名不带斜杠}{执行内容}

对于该指令,有两点需要注意:

  1. 指令的名称包含符号 @,需要在使用之前执行\makeatletter将其视为一般字符,在之后执行\makeatother恢复其为特殊符号;
  2. 第一个参数是不带斜杠的指令名,允许由其他宏指令组成。

而在已知一个要定义的名称,而这个名称需要由上下文决定的宏指令构成时,\newcommand就不适用了,因为它不支持从文本创建指令。此时需要tex的另一个指令:\@namedef{指令名不带斜杠}{执行内容}

对于该指令,也同样需要注意之前提到了两点注意事项。

下面给出一个tex文件片段:

.......

\newcommand\UserDefinedVar{Once
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值