nterm 文件格式

用途

描述 nroff 命令的终端驱动表。

描述

nroff 命令使用驱动表为各种类型的输出设备定制其输出,例如打印终端,特殊文字处理终端 (例如 Diablo , Qume 或 NEC Spinwriter 机制) 或特殊输出过滤器程序。 这些驱动表被写成 ASCII 文件,并安装在 /usr/share/lib/nterm/tab.Name 文件中,其中 Name 变量是终端类型的名称。

驱动表的第一行应包含终端的名称,这只是一个没有嵌入空格 (空格,制表符和换行符的任意组合) 的字符串。 驱动程序表的下一部分的结构如下所示:

  • bset [整数]
  • breset [整数]
  • hor [整数]
  • vert [整数]
  • newline [整数]
  • char [整数]
  • em [整数]
  • 半行 [整数]
  • adj [整数]
  • twinit [字符串]
  • twrest [字符串]
  • twnl [字符串]
  • hlr [字符串]
  • hlf [字符串]
  • flr [字符串]
  • bdon [字符串]
  • b多夫 [字符串]
  • iton [字符串]
  • itoff [字符串]
  • ploton [字符串]
  • plotoff [字符串]
  • up [字符串]
  • down [字符串]
  • right [字符串]
  • left [字符串]
  • codeset [字符串]

这些字段的含义如下所示:

描述
bset 指定要在c_oflagtermio 结构的字段。
喙傕笚喙堗竾 指定要在c_oflagtermio 结构的字段。
小时 以 1/240 英寸为单位指定水平分辨率。
还原 定义以 1/240 英寸为单位的垂直分辨率。
新行 定义由换行 (换行) 字符移动的空间,单位为 1/240 英寸。
char 定义字符大小的数量,单位为 1/240 英寸 (即,字符是宽 char 单位的倍数)。
em 定义 em 空间的大小 (以 1/240 英寸为单位)。
半行 定义以 1/240 英寸为单位的半换行 (或半反换行) 字符移动的空间量。
待续 定义一个以 1/240 英寸为单位的空格; 即,空格是宽的 adj 单位的倍数。
注: 如果这小于空格字符的大小,那么 nroff 命令使用散点图方式输出小数空格。 此外,如果使用 -e 切换到 nroff 命令, adj 变量由 nroff 命令设置为等于 hor 变量。
结对子 指定用于以适合 nroff 命令的方式初始化终端的字符序列。
折叠标记 指定用于将终端恢复到正常方式的字符序列。
twnl 指定用于下移一行的字符序列。
hlr 指定用于向上移动一半行的字符序列。
hlf 指定用于下移一半行的字符序列。
FLR 指定用于向上移动一行的字符序列。
密码 指定用于开启硬件粗体方式 (如果有) 的字符序列。
b多夫 指定用于关闭硬件粗体方式 (如果有) 的字符序列。
指定用于开启硬件斜体方式 (如果有) 的字符序列。
关闭 指定用于关闭硬件斜体方式 (如果有) 的字符序列。
绘图仪 指定用于开启硬件绘图方式 (对于 Diablo 类型机制) 的字符序列 (如果有)。
绘制 (plotoff) 指定用于关闭硬件绘图方式 (对于 Diablo 类型机制) 的字符序列 (如果有)。
向上舍入 指定用于在散点图方式下向上移动一个解析单元 (vert) 的字符序列 (如果有)。
向下舍入 指定用于在绘图方式下下移一个解析单元 (vert) 的字符序列 (如果有)。
向右 指定用于在绘图方式下向右移动一个解析单元 (hor) 的字符序列 (如果有)。
向左 指定用于在绘图方式下向左移动一个解析单元 (hor) 的字符序列 (如果有)。
代码集 CodeSetName 指定特定输出设备的代码集。 CodesetName 是用于 iconv 命令的任何有效名称。 代码集定义字符集部分的字体描述文件中的字符条目。 代码集字段是可选的。 如果使用,那么代码集字段必须跟在 "left" 字段之后,并在字符集部分之前 (如果提供)。 缺省值为 IBM-850

nroff 命令使用指定的 CodesetName 和当前语言环境隐含的代码集来确定输入字符是否需要代码集转换。 如果需要,将使用 iconv 函数来执行代码集转换。

驱动表的此部分是固定的格式; 不能更改条目的顺序。 条目应在单独的行上,每行应包含两个用空格分隔的字段 (不允许使用注释); 例如:

bset    0
breset  0
Hor     24

跟在驱动表的这第一部分后面,有一行只包含单词charset,然后指定要包含的特殊字符的表。 即,指定 nroff 命令通过 2 字符名称知道的所有非 ASCII 字符,例如 \(hy. 如果 nroff 命令找不到单词charset在期望的位置,它将终止处理并返回错误消息。

之后的每个定义charset占用一行并具有以下格式:

chname width output

chnamefield 是特殊字符的 (2 个字母) 名称,width字段是其在 em 中的宽度,outputfield 是要发送到终端以生成特殊字符的字符串和转义序列。

国际字符支持

对于大多数字符宽度与日语,中文和韩语相同的大型字符集的字体,将为 nterm 表的字符集部分提供原型字符。 这些原型字符指定不同字节长度的字符的宽度。 原型字符条目的代码字段必须包含单个 ? (问号)。 原型字符条目适用于在字符集部分中未显式定义的所有字符。 假定通过原型字符处理的字符的输出设备代码与字符的输入代码相同 (具有可能的代码集转换)。 以下是原型字符定义:

X1		Width		?		Represents the width of all one-byte characters not defined elsewhere.
X2		Width		?		Represents the width of all two-byte characters not defined elsewhere.
X3		Width		?		Represents the width of all three-byte characters not defined elsewhere.
X4		Width		?		Represents the width of all four-byte characters not defined elsewhere.

如果在此字段中有任何字段charset部分驱动表与输出设备无关,您可以将该特定序列指定为空字符串或省去该条目。 在 nroff 命令输出时,将忽略在此文件中没有定义的特殊字符。

你可以把charset因此可以通过将使用最多的字符放在第一位来加快 nroff 命令的速度。 例如:

charset
em 1-
hy 1-
\-1-
bu 1 +\bo

为新设备创建终端表的最佳方法是采用现有终端表并对其进行编辑以满足您的需求。 创建此类文件后,将其放在 /usr/share/lib/nterm 目录中。 然后,为其提供名称 tabxyz 其中 xyz 变量是终端的名称,也是通过 -T 标志传递 nroff 命令的名称。 例如:

nroff -Txyz

文件

描述
/usr/share/lib/nterm/tab。名称 包含终端文件。