【问题标题】:Avoid space before comma after macro宏后逗号前避免空格
【发布时间】:2018-08-20 22:07:19
【问题描述】:

我正在尝试使用 Groff 的 man 宏包编写手册页。具体来说,我想写一些类似以下的文字:

可以通过配置文件来配置守护进程。默认 此类文件的位置是 /etc/trolls.conf,这非常好。

所需的文本属性:

  • /etc/trolls.conf 以斜体显示
  • 后跟一个逗号,在斜体中 not
  • /etc/trols.conf 和逗号之间没有空格。

很难获得满足这些礼节的文本! 例如,以下将导致斜体逗号:

.SH 说明 守护进程可以通过配置文件进行配置。默认 此类文件的位置是 .I /etc/trolls.conf, 这很好。

另一方面,第二次尝试将在/etc/trolls.conf 和罗马逗号之间放置一个空格:

.SH 说明 守护进程可以通过配置文件进行配置。默认 此类文件的位置是 .I /etc/trolls.conf ,这是相当不错的。

有什么方法可以让它工作吗?

【问题讨论】:

  • 在编写手册页时,阅读 man 宏的手册页很有用,groff_man 您还可以在其中找到行尾的 \c 字符以避免空格,但您使用记录在案的.IR 宏的解决方案确实是首选。 Troff 是 40 多年前创建的,它的寿命在很大程度上说明了它的制作水平。
  • @meuh 感谢您的建议。我注意到建议的联机帮助页 (groff_man) 在我的操作系统 (Fedora) 上不可用。 groff-1.22.3-15.fc28.x86_64 包提供了 groff_man 联机帮助页,但结果却是 another variant
  • 我想这并不奇怪,因为\c 是“原始” troff,所以我怀疑很多人都知道它,或者任何奇怪的\f( 类型的内联命令,并且或许这样也好。我只知道它是因为我在 GNU 将其变为 groff 之前使用了 troff,并且复杂性爆炸了(从其他一些 groff 手册页判断)。您可以阅读原始 troff 排版包here。当计算机有 64kbytes 的内存时。
  • @meuh 我欠你一些尊重!

标签: manpage groff


【解决方案1】:

这种排版语言非常难(嗯,它也非常古老),最终我通过查看现有的手册页解决了这个问题!

解决方法如下:

.SH 说明 守护进程可以通过配置文件进行配置。默认 此类文件的位置是 .IR /etc/trolls.conf , 这很好。

.IR 宏实际上会在斜体 (I) 和罗马 (R) 之间交替,从而产生正确的渲染效果:

【讨论】:

    猜你喜欢
    • 2023-02-21
    • 2011-09-08
    • 1970-01-01
    • 2015-10-22
    • 2021-07-09
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多