空白行宏

groff 为宏编写者提供了一个有用的扩展,即可以定义一个宏,该宏在输入文件中存在空白行时执行。 此功能首先在准备宏命令文件本身时很有用,因为任何渗入的空白行都会出现在输出文档中。 稍后,空白行宏可以重新分配给例如用户的文档的默认段落格式。

在宏集合顶部附近定义的以下宏将通过stderr警告用户文件中存在任何空白行

\# continuing the alias scheme:
.ALIAS     BLANKMAC    blm
.ALIAS     MESSAGE     tm
.ALIASNR   _FILE       .F
.ALIASNR   _LINE       .c
\# define the macro:
.MACRO     GOTBLANK    __END__
.  MESSAGE \
Notice: blank line in file \\n[_FILE], line \\n[_LINE].
.__END__
\# assign this macro to fire at blank lines:
.BLANKMAC  GOTBLANK
在宏命令文件末尾,空白行宏可以重新分配给另一个宏,例如默认段落控制
.BLANKMAC  <p>
还要从这个例子中注意到,在 groff 处理期间报告消息的技术可以构建到任何宏定义中。
.MACRO  MYMACRO  __END__
(some stuff here) . MESSAGE Execution of \\$0 in file \\n[_FILE], line \\n[_LINE]. (some more stuff) .__END__
Groff 启用了\\$0宏内部的转义符来列出调用宏的名称。 在开发宏时,这些消息可用于显示内部变量的状态,并在其他方面帮助调试。
© . All rights reserved.