nterm ファイル・フォーマット

目的

nroff コマンドの端末駆動テーブルについて説明します。

説明

nroff コマンドは、ドライバー・テーブルを使用して、印刷端末、特殊なワード・プロセッシング端末 (Diablo、Qume、または NEC Spinwriter メカニズムなど)、または特殊な出力フィルター・プログラムなど、さまざまなタイプの出力装置の出力をカスタマイズします。 これらの駆動テーブルは ASCII ファイルとして書き込まれ、 /usr/share/lib/nterm/tab.Name ファイルにインストールされます。ここで、 Name 変数は端末タイプの名前です。

駆動テーブルの最初の行には、端末の名前を入れる必要があります。これは、組み込み空白文字 (スペース、タブ、および改行文字の任意の組み合わせ) を含まないストリングです。 ドライバー・テーブルの次の部分は、以下のように構造化されています。

  • bset [整数]
  • breset [整数]
  • hor [整数]
  • vert [整数]
  • newline [整数]
  • char [整数]
  • em [整数]
  • halfline [整数]
  • adj [整数]
  • twinit [文字ストリング]
  • twrest [文字ストリング]
  • twnl [文字ストリング]
  • hlr [文字ストリング]
  • hlf [文字ストリング]
  • flr [文字ストリング]
  • bdon [文字ストリング]
  • bdoff [文字ストリング]
  • iton [文字ストリング]
  • itoff [文字ストリング]
  • ploton [文字ストリング]
  • plotoff [文字ストリング]
  • up [文字ストリング]
  • down [文字ストリング]
  • right [文字ストリング]
  • left [文字ストリング]
  • codeset [文字ストリング]

これらのフィールドの意味は次のとおりです。

項目 説明
bset (bset) 設定するビットを指定します。c_oflag出力前の termio 構造体のフィールド。
短音符号 (breset) リセットするビットを指定します。c_oflag出力前の termio 構造体のフィールド。
または 1 インチの 1/240 単位で水平解像度を指定します。
バージョン 縦方向の解像度を 1/240 インチ単位で定義します。
改行 1 インチの 1/240 の単位で改行 (改行) 文字によって移動されるスペースを定義します。
CHAR 文字サイズの量子 (1/240 インチ単位) を定義します (つまり、1 文字は char 単位の幅の倍数です)。
EM メモリー・スペースのサイズを 1/240 インチ単位で定義します。
ハーフライン 1/2 行送り (または半反転改行) 文字によって移動されるスペースの量を、1/240 インチ単位で定義します。
ADJ 空白の量子を 1 インチの 1/240 単位で定義します。つまり、空白は幅が adj 単位の倍数です。
注: これがスペース文字のサイズより小さい場合、 nroff コマンドはプロット・モードを使用して小数点以下のスペースを出力します。 また、 -enroff コマンドに切り替えると、次のようになります。 adj 変数は、 nroff コマンドによって hor 変数と等しく設定されます。
ツインイット nroff コマンドに適したモードで端末を初期化するために使用する一連の文字を指定します。
twrest 端末を通常モードに復元するために使用する一連の文字を指定します。
twnl (twnl) 1 行下に移動するために使用する一連の文字を指定します。
HLR 2 分の 1 行上に移動するために使用される文字のシーケンスを指定します。
hlf (hlf) 1/2 行下に移動するために使用される一連の文字を指定します。
FLR 1 行上に移動するために使用する一連の文字を指定します。
Bdon ハードウェアの太字体モードをオンにするために使用する一連の文字を指定します (ある場合)。
bdoff (bdoff) ハードウェアの太字体モードをオフにするために使用する文字のシーケンスを指定します (ある場合)。
iton (iton) ハードウェア・イタリック・モードをオンにするために使用する文字のシーケンスを指定します (ある場合)。
itoff ハードウェア・イタリック・モードをオフにするために使用する文字のシーケンスを指定します (ある場合)。
プロット (ploton) ハードウェア・プロット・モード (Diablo タイプのメカニズムの場合) をオンにするために使用する文字のシーケンスを指定します (存在する場合)。
プロット (plotoff) ハードウェア・プロット・モード (Diablo タイプのメカニズムの場合) をオフにするために使用する文字のシーケンスを指定します (存在する場合)。
UP プロット・モードで 1 つ上に移動するために使用する一連の文字 (vert) を指定します (ある場合)。
Down プロット・モードで 1 つ下 (vert) に移動するために使用される文字のシーケンスを指定します (ある場合)。
プロット・モードで 1 つの解像度単位 (hor) を右に移動するために使用する文字のシーケンスを指定します (ある場合)。
LEFT プロット・モードで 1 つの解像度単位 (hor) を左に移動するために使用する文字のシーケンスを指定します (ある場合)。
コードセット CodeSetName 特定の出力装置のコード・セットを指定します。 CodesetName は、 iconv コマンドで使用する任意の有効な名前です。 コード・セットは、文字セット・セクションのフォント記述ファイル内の文字項目を定義します。 コード・セット・フィールドはオプションです。 コード・セット・フィールドを使用する場合は、「左」フィールドの後、および文字セット・セクション (指定されている場合) の前に指定する必要があります。 デフォルトは IBM-850です。

nroff コマンドは、指定された CodesetName および現行ロケールによって暗黙指定されたコード・セットを使用して、入力文字にコード・セット変換が必要かどうかを判別します。 iconv 関数は、必要に応じてコード・セット変換を実行するために使用します。

駆動テーブルのこの部分は固定形式です。項目の順序を変更することはできません。 各エントリーは、空白文字で区切られた 2 つのフィールド (コメントなし) を含む別々の行に配置する必要があります。以下に例を示します。

bset    0
breset  0
Hor     24

駆動テーブルのこの最初の部分の後に、次の語だけを含む行が続きます。charset次に、組み込みたい特殊文字のテーブルを指定します。 つまり、以下のように、 nroff コマンドが 2 文字の名前で認識するすべての非 ASCII 文字を指定します。 \(hynroff コマンドがワードを検出しない場合は、charset予期していた場合は、エラー・メッセージを出して処理を終了します。

その後の各定義charset1 行になり、以下の形式になります。

chname width output

このchnamefield は、特殊文字の (2 文字の) 名前です。widthフィールドは, その幅 (EMS 単位) です。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 ディレクトリーに入れます。 次に、 tab.xyzという名前を付けます。 ここで、 xyz 変数は端末の名前であり、 -T フラグを使用して nroff コマンドに渡す名前でもあります。 次に例を示します。

nroff -Txyz

ファイル

項目 説明
/usr/share/lib/nterm/tab.名前 端末ファイルが入っています。