我要定义一个宏专门用来吃分段符号

如果不是分段符号,则保留并退出这个宏的处理。否则的话,需要一直吃下去。


1.宏的定义


\long\def\filter#1{\ifx#1\par\expandafter\filter\else#1\fi}

解释如下:

1.1.\long的作用,一般的宏是不允许使用分段符号\par来充当参数的。要允许宏接收分段符号充当参数,那就在\def前面增加一个\long

1.2.\def的作用:

  1.2.1.\def后面的\filter是宏名;

  1.2.2.#1是输入模板(用来和输入的内容做匹配这样才能提取参数)

  1.2.3.{...}这个是输出模板

1.3.大括号里面的输出模板

  1.3.1.\ifx#1\par.A..\else.B..\fi:这个负责把输入的参数和\par进行比较,匹配得上就执行A部分,匹配不上就执行B部分

  1.3.2.\expandafter\filter这个是让\filter延迟展开,也就是先处理后面的\else。否则的话:\fiter会把\else当成输入进行过滤。

1.4.expand后面的filter为什么没有提供参数?此时的filter被延迟展开了,等后面的token生成出来了,自然会继续处理。并且把后面生成的符号当做输入处理。

2.宏的测试

{\filter






%在这之前的所有空白都会被吃掉




test
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值