知識ベース

Eqn(ソフトウェア)

Unixドキュメントレイアウトツールのtroffスイートの一部であるeqnは、印刷用に方程式をフォーマットするプリプロセッサです。同様のプログラムneqnは 、eqnと同じ入力を受け入れましたが、nroffでより良く見えるように調整された出力を生成しました。 eqnプログラムは、1974年にBrian KernighanとLorinda Cherryによって作成されました。 yaccコンパイラーコンパイラーを使用して実装されました。

eqnが使用する入力言語により、ユーザーは声を出して話すのとほぼ同じ方法で数式を書くことができます。言語は、演算子の優先順位と演算子の結合規則とともに、文脈自由文法で定義されます。 eqn言語は、数年後に登場したTeXの数学コンポーネントに似ていますが、よりシンプルで完全ではありません。

eqnプリプロセッサの独立した互換性のある実装は、troffのGNUバージョンであるgroffの一部としてGNUによって開発されました。 GNU実装は、 smalloveraccentなどの多くの新しいキーワードを追加することにより、元の言語を拡張します。 UNIX manページ専用のコンパイラであるmandocには、スタンドアロンのeqnパーサー/フォーマッターも含まれています。

構文例

次に、いくつかの例をeqnで記述する方法を示します(比較のためにTeXで同等のものを使用)。

TeX eqn
a ^ 2 sup 2 a2 {\ displaystyle a ^ {2}}
\ sum_ {k = 1} ^ N k ^ 2 {k = 1}からN {k sup 2}までの合計 ∑k = 1Nk2 {\ displaystyle \ sum _ {k = 1} ^ {N} k ^ {2}}
x = {-b \ pm \ sqrt {b ^ 2-4ac} \ over 2a} x = {-b +-sqrt {b sup 2-4ac}} 2a以上 x = −b±b2-4ac2a {\ displaystyle x = {-b \ pm {\ sqrt {b ^ {2} -4ac}} \ over 2a}}

eqnではスペースが重要です。トークンは、空白文字、チルダ〜、中括弧{}および二重引用符 ""でのみ区切られます。したがって、f(pi r sup 2)はf(pir2){\ textstyle f(pir ^ {2)}}になりますが、f(pi r sup 2)は意図したf(πr2){\ textstyle f( \ pi r ^ {2})}。