EN JA
EQN(7)
EQN(7) FreeBSD Miscellaneous Information Manual EQN(7)

名称

eqnmandoc のための eqn 言語リファレンス

解説

eqn 言語は、方程式を書式化する言語です。それは、 mdoc(7)man(7) UNIX マニュアルページで使用されます。それは、数学的な意味ではなく方程式の 構造 を記述します。このマニュアルは、第 2 版の eqn 仕様に対応する (参考文献については、 関連項目 を参照) mandoc(1) ユーティリティによって受け付けられる eqn 言語を記述しています。

mdoc(7) または man(7) 文書内の方程式は、スタンドアロン (独立した) の‘.EQ’と‘.EN’タグによって囲まれます。方程式は、式と制御文からなる複数行のブロックです。

方程式の構造

各方程式は、‘.EQ’と‘.EN’文字列によって囲まれます。 : これらは、 roff(7) マクロと同じでなく、‘.EQ’としてのみ呼び出されます。

方程式の文法は、引用文字列が入力で大文字小文字を区別する定数であるところで、次の通りです:

eqn     : box | eqn box 
box     : text 
        | "{" eqn "}" 
        | "define" text text 
        | "ndefine" text text 
        | "tdefine" text text 
        | "gfont" text 
        | "gsize" text 
        | "set" text text 
        | "undef" text 
        | box pos box 
        | box mark 
        | "matrix""{" [col "{" list "}" ]* 
        | pile "{" list "}" 
        | font box 
        | "size" text box 
        | "left" text eqn ["right" text] 
col     : "lcol" | "rcol" | "ccol" | "col" 
text    : [^space\"]+ | \".*\" 
pile    : "lpile" | "cpile" | "rpile" | "pile" 
pos     : "over" | "sup" | "sub" | "to" | "from" 
mark : "dot" | "dotdot" | "hat" | "tilde" | "vec" 
        | "dyad" | "bar" | "under" 
font    : "roman" | "italic" | "bold" | "fat" 
list    : eqn 
        | list "above" eqn 
space   : [\^~ \t]

空白類は、空白、タブ、アクセント符号とチルダ文字からなります。引用文字列内であるなら、これらの空白文字は、保持されます。また、引用文字列は、置換の定義に対してスキャンされません。

次のテキスト用語が、利用可能であるなら、レンダリングされるグリフ (rendered glyph) に変換されます: alpha, beta, chi, delta, epsilon, eta, gamma, iota, kappa, lambda, mu, nu, omega, omicron, phi, pi, psi, rho, sigma, tau, theta, upsilon, xi, zeta, DELTA, GAMMA, LAMBDA, OMEGA, PHI, PI, PSI, SIGMA, THETA, UPSILON, XI, inter (共通集合), union (和集合), prod (積), int (整数), sum (合計), grad, del (ベクトル微分), times (乗算), cdot (中丸), nothing, approx (ほとんど等しい), prime (素数), half (2 分の 1), partial (偏微分), inf (無限大), >> (より大きい), << (より小さい), -> (左矢印), <- (右矢印), += (プラスマイナ), != (等しくない), == (等価), <= (以下) と >= (以上)。

次の制御文が利用可能です:

define
キーのすべての発生を値に置き換えます。その構文は、次の通りです:

define key cvalc

値の文字列 c の最初の文字は、値 val の区切り文字として使用されます。これは、次のような (単なる引用でない) 用語の任意の包囲を可能とします。

define foo 'bar baz'
define foo cbar bazc

それは、空の key または val があるエラーです。引用された key によって、いくつかの eqn 実装でエラーとなり、移植性があると見なされるべきでないことに注意してください。それは、置換のために拡張しません。定義は、他の定義を参照するかもしれません。これらは、定義が作成されるときではなく、テキスト置換が生じるとき、再帰的に評価されます。

任意の文字列の定義を作成することができます、

define foo 'define' 
foo bar 'baz'

自己参考の定義は、エラーとなります。 ndefine 文は、 define 同意語で、一方 tdefine は、廃棄されました。

gfont
続く出力のデフォルトのフォントを設定します。その構文は、次の通りです:

gfont font

mandoc では、この値は、廃棄されます。

gsize
続く出力のデフォルトのサイズを設定します。その構文は、次の通りです:

gsize size

size 値は、整数であるべきです。

set
方程式 (equation) モードを設定します。 mandoc では、両方の引数は、捨てられます。その構文は、次の通りです:

set key val

keyval は、置換のために拡張されません。この文は、GNU 拡張です。

undef
以前に定義されたキーを未設定にします。その構文は、次の通りです:

define key

いったん、呼び出されると、 key のための定義は、廃棄されます。 key は、置換のために拡張されません。この文は、GNU 拡張です。

互換性

このセクションは、mandoc eqn の互換性と troff (GNU troff を含む) eqn 実装を文書化しています。

  • テキスト文字列‘\"’は、troff のリテラルのクォートとして解釈されます。 mandoc では、これは、コメントとして解釈されます。
  • troff では、曲折アクセント符号 (circumflex) とチルダ空白類シンボルは、固定幅の空白にマップします。 mandoc では、これらの文字は、空白文字と同意語です。
  • eqn の troff 実装は、 marklineup トークンで方程式の整列を考慮に入れます。 mandoc は、これらのトークンを廃棄します。 back n, fwd n, up ndown n コマンドも無視されます。

関連項目

mandoc(1), man(7), mandoc_char(7), mdoc(7), roff(7) Brian W. Kernighan and Lorinda L. Cherry, System for Typesetting Mathematics, Communications of the ACM, 18, 151–157, March, 1975. Brian W. Kernighan and Lorinda L. Cherry, Typesetting Mathematics, User's Guide, 1976. Brian W. Kernighan and Lorinda L. Cherry, Typesetting Mathematics, User's Guide (Second Edition), 1978.

歴史

eqn ユーティリティ、troff のためのプリプロセッサは、 1975 年に Brian W. Kernighan と Lorinda L. Cherry によって最初に書かれました。 eqn の GNU 再実装、GNU troff パッケージの一部は、 James Clark によって 1989 年にリリースされました。 mandoc(1) の eqn 構成要素は、2011 年に追加されました。

作者

この eqn リファレンスは、 Kristaps Dzonsons, kristaps@bsd.lv によって書かれました。
September 25, 2011 FreeBSD