名称
eqn - troff 用の数式フォーマッタ
書式
eqn [ -rvCNR ] [ -d ] [ -T ] [ -M ] [ -f ] [ -s ] [ -p ] [ -m ] [ files... ]
コマンドラインオプションとパラメータの間に、空白を置くことが可能です。
解説
本マニュアルでは、groff ドキュメントフォーマットシステムの一部である GNU バージョンの eqn について記述します。 eqn は、 troff への入力ファイルに埋め込まれている数式に関する記述をコンパイルし、 troff が解釈できる命令列に変換します。通常、 groff に -e オプ ションを指定することで、本プログラムは実行されます。文法は UNIX の eqn ととても似かよっています。GNU eqn の出力は UNIX の troff で処理できないので、 GNU troff を用いる必要があります。コマンドラインに ファイル名が指定されなかった場合は、標準入力から読み込みます。 ファイル名として - を指定した場合も標準入力から読み込みます。
eqn は、まず -M オプションで指定されたディレクトリを、次に /usr/share/tmac, /usr/share/tmac を、最後に標準マクロディレクトリ /usr/share/tmac (訳注: 重複していますが原文通りです) から eqnrc を検索し、もし存在すれば入力ファイルの処理に先がけて読み込みを行います。 -R オプションを使うことにより、この動作を禁止できます。
GNU eqn は neqn の機能のすべてを提供するものではありません。低解像度の タイプライタのような機器を (単純な入力に対しては十分であるのですが) サポートしません。
オプション
-C | 直後に空白文字や改行ではない文字が続く .EQ と .EN を解釈します。 |
-N | 区切り文字から次の区切り文字までの間に改行がくることを禁止します。誤って 閉じる方の 区切り文字をつけ忘れた場合も、以降の処理が正しく行われる可能性が高くなります。 |
-v | バージョン番号を表示します。 |
-r | サイズを 1 つだけ縮小します。 |
-mn | 最低のポイントサイズを n とします。 eqn は下付き、上付き文字を n より小さなサイズにしません。 |
-Tname | name で指定された機器用の出力を行います。実際は、 name と いう値 1 のマクロが定義されるだけです。普通は eqnrc でこの定義されたマクロによって出力機器にふさわしい設定がなされます。 デフォルトの出力機器は ps です。 |
-Mdir | デフォルトのディレクトリ /usr/share/tmac よりも先に指定したディレクトリ dir の eqnrc を探します。 |
-R | eqnrc ファイルを読み込みません。 |
-fF | gfont F コマンドと等価です。 |
-sn | gsize n コマンドと等価です。このオプションは使うべきではありません。 eqn は、通常、数式が登場した位置のポイントサイズに数式のサイズをあわせます。 |
-pn | 上付き、下付き文字が隣接するテキストより n ポイント小さくなるようにし ます。このオプションは使うべきではありません。通常 eqn は隣接するテキストの 70% のサイズになるように調節します。 |
使用法
ここでは、GNU eqn と Unix eqn の違いのみを解説します。
GNU eqn の新しい特徴のほとんどは、TeX に基づいています。 以下には、いくつかの TeX と GNU eqn の違いを記述してあります。 もし、あなたが TeX を知らないならば、無視した方が安全でしょう。
自動スペーシング
eqn は、数式の中の部分それぞれに対して型を与えて、その型を用いて数式 の中の部分の間の間隔をそろえます。 利用できる型には以下のものがあります。
ordinary | 1や x のような通常の文字 |
operator | S のような大きな演算記号 |
binary | + のような、2 項演算子 |
relation | = のような関係記号 |
opening | ( のような括弧開始記号 |
closing | )のような括弧終了記号 |
punctuation | , のような句読点記号 |
inner | 括弧内部に含まれた部分式 |
suppress | オートマチックスペーシングによる位置補正を抑制する |
type t e | 式の中の項で
e を含むものを、型
t であると指定します。
t は、上述の型の中から指定します。
たとえば、
times は
| ||
と定義されます。 マクロ展開を防ぐためにクォーティングする以外は、 型の名前はクォートする必要はありません。 | |||
chartype t text | |||
クォートされていない文字のグループは、個々の文字に分割され、
それぞれの文字の型が検索されます。
この変更で、各文字について、それぞれ格納されている文字の型が変更されます。
この指定方法では、
text にある文字は、型
t を持つようになります。例えば
| |||
という指定は、 .,;: という文字が、それぞれに句読点記号型を持つことを指定 します。 以後、式の中にこれらの文字が出現した場合は、句読点記号として処理されます。 型 t は、 letter や digit という指定も可能です。この場合 chartype は、文字のフォントの型を変更します。 詳細は、フォントサブセクションを見て下さい。 | |||
新しいプリミティブ
e1 smallover e2 | |||||||||
これは over と似ています; smallover は e1 および e2 のサイズを小さくします; また e1 および e2 と分数の線との間の垂直幅も小さくなります。 over プリミティブは TeX のディスプレイスタイルの \over プリミティブに対応します; smallover は非ディスプレイスタイルの \over に対応します。 | |||||||||
vcenter e | |||||||||
e を数式軸 (math axis) にあわせて垂直方向にセンタリングします。
数式軸は垂直位置であり、
これにあわせて + や - といった文字はセンタリングされます;
また分数の線の垂直位置にもなります。
例えば、
sum はこのように定義されています。
| |||||||||
e1 accent e2 | |||||||||
e2 を
e1 上のアクセントとします。
e2 は小文字のレターに対して適正な高さにあると仮定します;
e2 は、
e1 が小文字のレターよりも文字の高さが高かったり低かったりする場合には、
必要に応じて下方に移動されます。
例えば
hat はこのように定義されています。
| |||||||||
dotdot, dot, tilde, vec, dyad も accent プリミティブを用いて定義されています。 | |||||||||
e1 uaccent e2 | |||||||||
e2 を e1 下のアクセントとします。 e2 は下に突き出ていない小文字に対して適正な高さにあると仮定します; e2 は、 e1 が下に突き出している場合、下方に移動されます。 utilde は uaccent を使用して定義されており、 ベースライン下の tilde アクセントとなります。 | |||||||||
split stexts | |||||||||
単なる
| |||||||||
と同じ効果ですが、 text はクォートされているためマクロ展開の対象となりません; text は個々の文字に分割され、それぞれの文字の間に空白が調整されます。 | |||||||||
nosplit text | |||||||||
| |||||||||
と同じですが、 text はクォートされていないためマクロ展開の対象となります; text は個々の文字に分割されず、それぞれの文字の間の空白も調整されません。 | |||||||||
e opprime | |||||||||
prime の変形であり、 e のオペレータとして作用します。 A opprime sub 1 のような場合、 opprinme は prime とは異なる結果となります: opprime では 1 は prime 文字の真下に挿入され、 A の下付き文字となります (数式版組の形式のように)。 一方、 prime では 1 は prime 文字の下付き文字となります。 opprime が前に付くという事は、 bar と under が前に付くのと同じ事ですが、 後者は accent, uaccent 以外の他の全ての文字よりも高くなります。 クォートされていないテキスト中では、最初の文字ではない は opprime として扱われます。 | |||||||||
special text e | |||||||||
troff(1)
マクロ
text を使用して、
e から新しいオブジェクトを生成します。
マクロが呼び出されると、文字列
0s は
e の出力を保持します。
また数字レジスタ
0w, 0h, 0d, 0skern, 0skew はそれぞれ
e の幅、高さ、深さ、下付き文字のカーニング、スキューを保持します
(オブジェクトの
subscript kern とは、オブジェクト中の下付き文字がどの程度挿入されるかを表します;
オブジェクトの
skew とは、オブジェクト上のアクセントが
オブジェクトの中央から右側に向けてどの程度離れて配置されるかを表します)。
マクロは
0s を修正することにより、
現在位置における望ましい結果を出力し、
このオブジェクトの幅の分だけ現在の水平位置を増加させます。
数字レジスタは、結果に対応するように修正されている必要があります。
例えば、数式を 打ち消す 構造を、斜め線を数式上に描く事によって 実現する場合を考えて見ましょう。
| |||||||||
カスタマイズ
数式の外見は多くのパラメータにより制御します。 これらのパラメータは set コマンドで設定します。
set p n | パラメータ
p を値
n に設定します;
n は整数です。
例えば、
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
は、
eqn に対して x の高さは 0.45 em であると指示します。
パラメータを以下に示します。 特に記述が無い場合は、値は em の 100 分の 1 を意味します。 以下の記述は定義的ではなく説明的になるように意図しています。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
マクロ
マクロは引数を取ることができます。 マクロが引数付きで呼ばれた場合、マクロボディでは、 $n ただし n は 1 から 9 は、 n番目の 引数に置き換えられます; 引数が n より少ない場合、無と置き換えられます。 左括弧を含む語で、左括弧より前の語の部分が define コマンドで定義されている語は、 引数付きのマクロ呼び出しとして認識されます; 左括弧に続く複数の文字は、対応する右括弧の範囲まで、 コンマで区切られた引数として扱われます; ネストした括弧内のコンマでは引数は区切られません。
sdefine name X anything X | |
define コマンドに似ていますが、 引数付きで呼ばれた場合 name は認識されません。 | |
include sfiles | |
file の内容を組み込みます。 file 中の行で、 .EQ もしくは .EN で始まる行は無視されます。 | |
ifdef name X anything X | |
name が define で定義されている場合 (または name が出力デバイスであるために自動的に定義されている場合)、 anything を処理します; そうでない場合は anything を無視します。 X は anything に含まれない文字であれば何でも構いません。 | |
フォント
eqn は通常少なくとも 2 つのフォントを式のセットに使用します: すなわち、レターにはイタリックを、 その他にはローマンを使用します。 既存の gfont コマンドは、 イタリックフォントとして使用されるフォントを変更します。 デフォルト値は I です。 ローマンフォントとして使用されるフォントは 新しい grfont コマンドで変更します。
grfont f | |
ローマンフォントを f に設定します。 | |
どの文字をレター (イタリックでセットされるもの) として扱うのかを、 既に示した chartype コマンドで指定できます。 letter タイプは文字をイタリックタイプでセットされるようにします。 digit タイプは文字をローマンタイプでセットされるようにします、
関連ファイル
/usr/share/tmac/eqnrc | 初期化ファイル |
バグ
文中に出現する式は、行の先頭での文字サイズに設定されます。
関連項目
groff(1), troff(1), groff_font(5), The TeXbook