Ant*_*gan 50 man documentation text-formatting
下载 Bash 的源代码后,我浏览了doc
目录并遇到了以下文件:
这些控制字符不会显示在 Git Web 界面提供的表示中,但可以下载实际文件并在 Vim 等文本编辑器中检查。
在file
on 上运行命令会bash.0
打印以下输出:
bash.0: ASCII text, with overstriking
Run Code Online (Sandbox Code Playgroud)
我以前从未遇到过这种文件格式,我想知道它的用途是什么以及如何使用。在 Web 上搜索短语“ASCII 文本,加粗”并不是很有启发性。
Ste*_*itt 44
Overstriking 是一种用于nroff
(参见Troff 用户手册)的方法,用于提供比纯 ASCII 允许的更多排版可能性:
_
)é
通过叠印产生e
与’
)以及目标输出设备允许的各种其他符号。
在 中bash
,这些.0
文件由 直接生成nroff
,Makefile
规则如下
.1.0:
$(RM) $@
-${NROFF} -man $< > $@
Run Code Online (Sandbox Code Playgroud)
您可以使用less
;查看此类文件。它将处理重击序列并酌情替换它们:
less bash.0
Run Code Online (Sandbox Code Playgroud)
最初nroff
的输出目标是打字机式的输出设备,每次收到退格字符时都会进行备份;过度打击会产生所需的视觉输出。正如chirlu所指出的,由于连续打击不可避免的错位,两次打击同一个角色通常会导致更大胆的外观;油墨沉积量的增加也会有所帮助。
(troff
有针对性的排版机。)
Tho*_*key 18
在网络上搜索“退格”和“重击”会得到更好的结果。
该文件是一个手册页 - 使用nroff
. 通常,诸如此类的文件bash.0
只是简单地生成和丢弃。不久前,他们被保存下来,以减少man
程序的工作。而不是/usr/share/man/man1
,您的手册页将被读取/usr/share/man/cat1
。阅读catman
例如的描述。
nroff
是用于格式化手册页和其他文件的 Unix 命令。回到最初编写时,还有其他几个实用程序,每个实用程序都有自己的标记语言。我至少用过十几种不同的。但他们都以相同的方式解决了打印强调文本的问题:使用马车控制。 退格很明显,因为它们没有在其他纯文本文件中使用。 制表符,回车,行饲料和形式,饲料都在纯文本文件中的作用(虽然形式原料是远远不那么重要比他们原先)。
nroff
使用下划线表示斜体,用大写表示粗体。该技术已过时:它对于可以在同一位置打印多个字符的硬拷贝设备很有用。很少有视频终端会这样做。在terminfo(5)
,那将是
over_strike os os terminal can over-
strike
Run Code Online (Sandbox Code Playgroud)
或更完整:
如果终端重击(而不是在字符被击倒时清除位置),那么它应该有
os
能力。
在通常情况下,显示在视频终端给定行/列上的最后一个字符将是全部。 nroff
组织输出,以便将带下划线的字符写为下划线、退格和实际字符。这样做可以确保没有重击功能的终端会打印一些有用的东西。
在列出的极少数具有重击能力的视频终端中,我看到了DEC gt40,我使用了大约三年(1976-1979)。那个系统上没有 Unix(它运行 RT-11),但我写了一个text formatter,使用相同类型的 overstruck 文本。最终,我需要硬拷贝,并编写了一个实用程序来实现这一点——比如col
,也许——但要解决一个相关的问题。当终端有很多带下划线的文本时,它的打印速度非常慢,直到我的程序重新组织了文本以减少向前/向后运动之间的切换量。
有了视频终端,就没有这个必要了。但他们不会过度打击。相反,我们有识别下划线并显示下划线的程序,或者有groff
可能显示彩色文本而不是下划线(和粗体)的程序。
进一步阅读:
甚至更早以前,它是一种在高尔夫球打印机上打印的方法,其工作方式类似于旧打字机,并且可以打印的字符集非常有限。因此,nroff 使用旧电传打印机的字节流来表示“在屏幕上”应该如何显示。
归档时间: |
|
查看次数: |
4118 次 |
最近记录: |