EN JA
TBL(1)
TBL(1) FreeBSD General Commands Manual TBL(1)

名称

tbl - troff のためのテーブル (表) フォーマッタ

書式

tbl [ -Cv ] [ files... ]

解説

本マニュアルでは、groff ドキュメントフォーマットシステムの一部である GNU バージョンの tbl について記述します。 tbl は、 troff ドキュメントに埋め込まれたテーブルの記述を troff が解釈できるコマンドに変換します。通常、それは groff-t オプションを指定することにより起動されます。 Unix tbl と高い互換性を持ちますが、GNU tbl の出力は Unix troff で処理することはできません。それは GNU troff で処理する必要があります。コマンドラインにファイル名が指定されなかった場合、標準入力から読み込まれます。ファイル名として - を指定した場合も標準入力から読み込まれます。

オプション

-C
空白か改行以外の文字が続くときでも、 .TS.TE を認識するために互換モードを有効にします。リーダ文字 (\a) は解釈されます。
-v
バージョン番号を表示します。

使用法

tbl はテーブルの記述子を .TS (テーブル開始) と .TE (テーブル終了) のマクロで括られているものと期待しています。 .TS マクロの直後の行は次のグローバルオプションを含むことが可能です (文字の大文字小文字は無視します -- Unix tbl は、すべて小文字かすべて大文字のオプションのみを受け付けます):
center
テーブルを中央寄せします (デフォルトは左寄せです)。別のキーワード centre も認識されます (これは GNU tbl 拡張です)。
delim( xy )
xyeqn(1) の開始および終端のデリミタとして使用します。
expand
テーブルを現在の行の長さと同じ幅にします。
box
テーブルを箱で囲みます。
doublebox
テーブルを二重箱で囲みます。
allbox
テーブルの各項目を箱で囲みます。
frame
box と同じです (GNU tbl のみ)。
doubleframe
doublebox と同じです (GNU tbl のみ)。
tab( x )
入力データ行の各項目を、タブの代りに文字 x で分離します。
linesize( n )
線または罫線 (例 box によるもの) を n ポイントタイプにします。
nokeep
ページブレークを抑止するために転換 (diversion) を使用しません (GNU tbl のみ)。通常 tbl は転換を使用し、テーブル内で望ましくないブレークを抑止しようとします。これは、独自に転換を使用しているマクロパッケージ、例えばフットノートが使用された場合などに、干渉する場合があります。
decimalpoint( c )
指定した文字を数値列の小数点として認識させます (GNU tbl のみ)。
nospaces
データ項目の先頭および末尾の空白を無視させます (GNU tbl のみ)。

グローバルオプションはセミコロンで終端される必要があります。オプションの後には空白があっても良く、引数は括弧で括られます。

グローバルオプションの後には、テーブルの各行の書式を記述する行が来ます。それぞれの書式行はテーブルの 1 行それ自身を記述しますが、例外は最後の書式行 (ピリオドで終端する必要があります) であり、これはテーブルの残りの行の書式を記述します。単一のキー文字が、テーブルの各行の各列を記述します。数行分の書式指定を、単一行にコンマで区切って指定可能です。

各キー文字の後に指定子を続けることができます。指定子は、対応する項目のフォントやポイントサイズを決定し、列の幅や列の間の間隔等を決定します。

最長の書式行が、テーブルに含まれる列数を指定します。書式行の末尾で欠けている書式記述子は `L' であると仮定されます。データ中の余分な列 (対応する書式項目が無いもの) は無視されます。

使用可能なキー文字は次の通りです:

c,C
項目を列の中で中央寄せします。
r,R
項目を列の中で右寄せします。
l,L
項目を列の中で左寄せします。
n,N
項目を数値的に揃えます。数値の単位位置が垂直に揃います。
s,S
左の直前の項目が、この列にも続きます。
a,A
この列の最長の行を中央寄せし、中央寄せされた行に従って他のすべての行を左寄せします。
^
直前の行の項目が、この列にも続きます。
_,-
この項目を水平行と置換します。
=
この項目を二重水平行と置換します。
|
対応する列は垂直罫線となります (2 個連続した場合には二重垂直罫線となります)。

最初のキー文字の左または最後のキー文字の右にある垂直バーは、テーブルの端の線を生成します。

以下の指定子は、列キー文字のサフィックスとして使用可能です:

b,B
fB の短縮形 (対象の項目をボールドにします)。
i,I
fI の短縮形 (対象の項目をイタリックにします)。
t,T
垂直に複数行の範囲となる項目を、垂直位置で中央から開始するのではなく、頂上部から開始します。
d,D
垂直に複数行の範囲となる項目を、垂直位置で中央から開始するのではなく、基底部から開始します (GNU tbl のみ)。
v,V
後に数値が続き、複数行のテーブルの項目における、垂直行間隔を指定します。符号付きの場合、現在の垂直行間隔が増加または減少されます (符号付きの 1 桁数ではなく符号付きの数値が使えるのは GNU tbl 拡張です)。垂直行間隔指定子の後に列間隔数を続けるには、1 個以上の空白で区切ります。対応するテーブルの項目がテキストブロックではない場合、効果無しです。
f,F
これらの指定子は、フォント名 (1 または 2 文字)、フォント番号 (1 桁)、括弧で括られた長い形式の名前が続きます (最後の形式は GNU tbl 拡張です)。 1 文字のフォント名の後には、後に続くものとの間に 1 個以上の空白が続く必要があります。
p,P
後に数値が続き、対象の欄のポイントサイズを変更します。符号付きの場合、現在のポイントサイズが増加または減少されます (符号付きの 1 桁数ではなく符号付きの数値が使えるのは GNU tbl 拡張です)。ポイントサイズ指定子の後に列間隔数を続けるには、1 個以上の空白で区切ります。
w,W
列の最小幅です。この後に、 troff(1) の幅の表現を括弧で括ったものか、単位無しの整数が続く必要があります。単位を指定しないと、en 単位が使用されます。インクルードされるテキストブロックのデフォルト行長としても使用されます。特定の列の幅の指定が複数回使用されると、最後の項目が使用されます。
x,X
これは GNU tbl の拡張です。これらの指定子のいずれかに、(1 文字か 2 文字の) マクロ名、または括弧で括られた長い名前が続きます。 1 文字のマクロ名は、後に続くものから 1 つ以上の空白で分離されなければなりません。ここで指定することができるマクロの名前は、テーブルを作成する前に定義されなければなりません。これはテーブルのセルテキストが出力される直前に呼び出されます。現在の実装では、このマクロは、ブロック入力が使用される場合にだけ呼び出されます、すなわち、`T{' と `T}' の間のテキストです。マクロは、テキストの調節、ハイフネーション、サイズ、またはフォントのようなテキストブロックのフォーマットを変更するために、簡単な troff リクエストだけを含むべきです。マクロは、 b, f または v のような他のセルの変更が出力された 後に 呼び出されます。したがって、マクロは他の変更記述子を上書きすることができます。
e,E
同じ間隔の列を作成します。
u,U
対応する列を半行分上に移動します。
z,Z
対応する列を、幅計算の対象から除外します。

キー文字に対する数値サフィックスは、en 単位での列セパレータと解釈されます ( expand オプションがオンの場合、これに比例します)。デフォルトの間隔は 3n です。

書式行の後には、テーブルの実際のデータを含む行が続きます。最後に .TE が来ます。各データ行中では、データは通常、タブ文字 (または tab オプションで指定された文字) で区切られます。長い入力行は、行の最後の文字を `\' とすることで、複数行に分割可能です (この文字は結合後に消えます)。

行を開始するドットに数値以外のものが続く場合、troff コマンドとして扱われ、無変更で渡されます。この場合、テーブルの位置は変わりません。

データ行が `_' または `=' だけから成る場合、その場所でそれぞれ、テーブル全体に渡る線または二重線が引かれます。データ行中の単一項目が `_' または `=' だけから成る場合、この項目がそれぞれ、線または二重線に置換され、隣りの項目を繋ぎます。データ行中の単一項目が `\_' または `\=' だけから成る場合、この項目がそれぞれ、線または二重線に置換されますが、隣りの項目を繋ぎません。

`\Rx' (`x' は任意の文字) のみから成るデータ項目は、列の幅だけ続く文字 `x' の繰り返しで置き換えられます (隣りの項目を繋ぎません)。

`\^' のみから成るデータ項目は、すぐ上の欄がこの行を通って下向きに続くことを意味します。

テキストブロックを使用することで、単にタブ間に置くには長過ぎるかもしれないデータを単一項目として入力できます。これは `T{' で開始し `T}' で終端します。前者は行末にあることが必要で、後者は行頭にあることが必要で、この後に (タブで区切られて) 他のデータが続くでしょう。デフォルトでは、テキストブロックは、 vw tbl 記述子によって上書きされるかもしれない、テーブルに入る前に有効であった設定でフォーマットされます。例えば、すべてのテキストブロックを左寄せにするためには、始めの .TS の直前に .na を挿入し、(テーブルの後に .ad) を挿入します。

テーブル中のデータの書式を変えるには、 .T& コマンドを使用します (行頭で使用します)。この後に、 .TS リクエストと同様に、書式とデータの行が続きます (グローバルオプションは駄目です)。

EQN との相互作用

tbl(1) は常に eqn(1) の前に呼ぶ必要があります ( groff(1) は自動的にプリプロセッサの正しい順序の面倒を見ます)。

GNU TBL 拡張

列数には限界がありませんし、テキストボックス数にも限界がありません。テーブルのすべての行が、列の幅の決定に使用されます。最初の 200 行ではありません。テーブルの継続 ( .T&) 行は最初の 200 行に制限されません。

数字と英字の項目を同じカラムに印字することもできます。

数字と英字の項目を水平方向にまたがらせることもできます。

tbl3 で始まる名前のレジスタ、文字列、マクロ、転換名を使用します。 tbl を使う際には 3 で始まる名前の使用は避けるべきです。

バグ

複数ページにまたがる枠付きテーブルを表示する場合、それをサポートしているマクロパッケージと .TS H/ .TH を併用しなければなりません。テーブルの各ページの上部に表示されるべきヘッダが出ない場合、そのフォーマットセクションの直後に .TH を置いて下さい。複数ページのテーブルを keep/release マクロで囲んだり、その他の方法で迂回させないでください。

テーブル中のテキストブロックは 1 ページに収まらなければなりません。

bp リクエストは複数ページのテーブルでページブレークを強制するために使用することはできません。かわりに、 BP を以下のように定義して、

.de BP
 
.ie '\\n(.z'' .bp \\$1
 
.el \!.BP \\$1
 
..
 

bp のかわりに BP を使用して下さい。

テーブル中で直接\a を使用しても、リーダはうまく得られません (互換性モードを除いて)。これは正しい動作です: \a は、 解釈されない リーダです。リーダを得るためには、本物のリーダを使います。それには control A か以下を使用する必要があります:


.ds a \a
.TS
tab(;);
lw(1i) l.
A\*a;B
.TE

参考文献

Lesk, M.E.: "TBL -- A Program to Format Tables". 著作権の理由で、groff 配布に含めることができませんが、 World Wide Web (WWW) でタイトルを検索してコピーを見つけることができます。

関連項目

groff(1), troff(1)
17 January 2014 Groff Version 1.19.2