Next: Compatibility in ptx, Previous: Input processing in ptx, Up: ptx invocation [Contents][Index]
出力のフォーマットを決めるのは、主として -O と -T オプションだが、
両者については、以下のオプション一覧で説明している。-O も -T
も指定されず、しかも、GNU の拡張が有効な場合、ptx
プログラムは、
ダム端末に適した出力フォーマットを選択する。
各キーワードは一行の中央に表示され、前後の文脈がその左右に出力される。
コンコーダンスとしての出力が一目でわかるように
(訳注: すなわち、どれがキーワードで、どれがその前後の語句かわかりやすいように)、
各フィールドはきちんと揃えられる。おまけの機能として、次のものがある。
参照箇所情報の自動作成が -A オプションによって選択され、
参照箇所が左側の文脈の前に表示される場合には
(すなわち、-R オプションが選択されていない場合には)、
参照箇所の後ろにコロンが追加される。こうしておくと、参照箇所を
GNU Emacs の next-error
処理にうまく渡せるようになるのである。
このデフォルトの出力フォーマットでは、改行やタブのようなホワイトスペース文字は、
それぞれ単にただ 1 個のスペースに変換されるだけであり、
連続するスペースをわざわざ圧縮するようなことは行われない。
この動作は、将来変更されるかもしれない。そうしたホワイトスペース文字を除いて、
使用している 256 文字からなる文字セット中のほかのすべての文字は、
入力から出力へと手を加えずにそのまま送り出される。
出力フォーマットは、以下のオプションによって、さらに制御される。
出力行の各フィールドは、ホワイトスペースによって区切られるが、 そのフィールド同士の間隔の最小サイズを指定する。
最終的に出力される各行の最大長を指定する。 参照箇所を使用する際、その長さが最大長に含まれるかどうかは、 -R オプションを付けるか付けないかよって決まる。 -R オプションを指定しない場合、 すなわち、参照箇所が左の文脈より前に表示される場合は、すべての参照箇所中の最大長が、 出力行の最大長の長さの内に含まれることになる。-R オプションを指定した場合、すなわち、参照箇所が右の文脈より後に表示される場合は、 参照箇所や、それに先行するフィールドの区切りが占める領域は、 出力行の最大長の長さに含まれない。
参照箇所情報の自動生成を選択する。 ファイル名と行番号からなる参照箇所が自動的に生成されて、各入力行に付くことになる。 ファイル名と行番号は 1 個のコロンで区切られる。 ただし、標準入力から読み込んでいる場合は、ファイル名は空になる。 -A と -r の両方のオプションが指定されている場合は、 入力中にある参照箇所情報が読み込まれた上で本文から外されることは -r 単独の場合と同じだが、出力時に使用されるのは、自動生成された参照箇所の方である。 すなわち、入力中にある参照箇所情報は、自動生成されたもので置き換えられる。
デフォルトの出力フォーマットでは、-R オプションを使用しない場合、 -r や -A オプションの働きによって生成される参照箇所は、 出力行の左の端、すなわち、左の文脈の前に表示される。それに対して、 デフォルトの出力フォーマットで -R オプションを指定した場合、 参照箇所が表示されるのは、各出力行の右端、すなわち、右の文脈の後ろになる。 ほかのいかなる出力フォーマットにおいても、基本的に -R オプションは無視されるが (訳注: デフォルト以外の出力フォーマットでは、 -R オプションがあってもなくても、参照箇所は右端に出力される)、 それでも、-R オプションが付いていると、参照箇所の長さが、-w で指定した出力行全体の長さの内に入らないという働きだけは残る。
このオプションは、GNU の拡張が無効であるときは、常に自動的に選択される。
このオプションを指定すると、出力に省略があった場合、それを示すために文字列 string を使用するようになる。ほとんどの出力フィールドは、理論上では、-S オプションで何を選択するかによって、現在の行、または、現在の文の、先頭や末尾に向かって伸びて行くものである。 しかし、-w オプションによって長さを変更できるとは言え、 出力行には許される最大長というものがあり、 その最大長はさらにさまざまな出力フィールドで使用する領域に分割されている。 従って、フィールドは、それを収納する現在の出力行の先頭や末尾を越えて伸ばすことができないために、 切り詰めなければならないことがあり、そういうときに、省略が行われるのである。 省略の指標として使用されるデフォルトの文字列は、1 個のスラッシュである。 これは、-F / と指定した場合と同じだ。
string には、-F … のように 1 個以上の文字を指定してもよい。 また、string が空文字列 (-F "") の場合には、 省略のフラグは立てられないことになり、従って、省略の指標は一切付加されない。
このオプションの引数中では、ユーザーの便宜のために、
C 言語で見られるような、よく使うバックスラッシュ・エスケープシーケンスの多くが、
ptx
そのものによって認識され、対応する文字に変換されるようになっている。
nroff
や troff
、あるいは TeX
で処理するのにふさわしい出力フォーマットを生成するとき、
‘xx’ の代わりに使用する別の文字列 string を指定する。
(訳注: -O や -T オプションを参照。)
出力フォーマットとして、nroff
や troff
で処理するのに適した形式を選択する。各出力行は次のようになる。
(訳注: 下記の tail と head については、前節 --sentence-regexp
オプションの説明の終わりから 2 番目のパラグラフをご覧いただきたい。
ref は参照箇所である。)
.xx "tail" "before" "keyword_and_after" "head" "ref"
従って、あとは、出力の整形を担当する roff のマクロ ‘.xx’ を出力ファイルに書き込めばよいことになる。この出力フォーマットは、 GNU の拡張が無効なときのデフォルトである。‘xx’ を別のマクロ名に変更するには、 -M オプションを使用すればよい (訳注: -M "xx" のように、‘xx’ の部分のみ指定する)。
この出力フォーマットでは、改行やタブのような非表示文字は、
それぞれただ 1 個のスペースに変換されるだけで、
連続するスペースをわざわざ圧縮するようなことは行われない。
ダブルクォート文字 ‘"’ はそれぞれ二重化されるので、
nroff
や troff
によって正しく処理される。
出力フォーマットとして、TeX で処理するのに適した形式を選択する。 各出力行は、次のようになる。 (訳注: 下記の tail と head については、前節 --sentence-regexp オプションの説明の終わりから 2 番目のパラグラフをご覧いただきたい。 ref は参照箇所である。)
\xx {tail}{before}{keyword}{after}{head}{ref}
従って、あとは、出力の整形を担当する \xx
コマンドの定義を出力ファイルに書き込めばよいことになる。
なお、参照箇所の生成が行われていない場合、すなわち、-A オプションも
-r オプションも指定されていない場合には、
各 \xx
呼び出しの最後の引数は出力されないことに注意していただきたい。
‘xx’ を別のマクロ名に変更するには、-M オプションを使用すればよい
(訳注: -M "xx" のように、‘xx’ の部分のみ指定する)。
この出力フォーマットでは、‘$’, ‘%’, ‘&’, ‘#’, ‘_’
のような特殊文字のいくつかは、自動的にバックスラッシュで保護される。
中カッコ ‘{’, ‘}’ は、一対のドル記号とバックスラッシュとで保護される
(強引に数式モードにするわけだ)。
バックスラッシュそのものは、\backslash{}
というシーケンスになる。
同形の他の文字と区別するために文字の上下に付ける発音区別符のうち、
サーカムフレックスとチルダは、それぞれ \^{ }
と \~{ }
というシーケンスになる (訳注: 実際には { }
の位置に
a なり e なりといった文字が来る)。
使用している文字セット中の他の発音区別符が付いている文字についても、
可能なかぎり、適切な TeX のシーケンスが生成される。それ以外の文字について言うと、
改行やタブのような非表示文字や、ASCII の文字セットに属さない他のすべての文字は、
単にただ 1 個のスペースに変換され、連続するスペースをわざわざ圧縮するようなことは行われない。
TeX のための特殊文字の処理は以上のようなものだが、
改善する方法があれば、作者までお知らせいただきたい。
Next: Compatibility in ptx, Previous: Input processing in ptx, Up: ptx invocation [Contents][Index]