Eqn(ソフトウェア)
Unixドキュメントレイアウトツールのtroffスイートの一部であるeqnは、印刷用に方程式をフォーマットするプリプロセッサです。同様のプログラムneqnは 、eqnと同じ入力を受け入れましたが、nroffでより良く見えるように調整された出力を生成しました。 eqnプログラムは、1974年にBrian KernighanとLorinda Cherryによって作成されました。 yaccコンパイラーコンパイラーを使用して実装されました。
eqnが使用する入力言語により、ユーザーは声を出して話すのとほぼ同じ方法で数式を書くことができます。言語は、演算子の優先順位と演算子の結合規則とともに、文脈自由文法で定義されます。 eqn言語は、数年後に登場したTeXの数学コンポーネントに似ていますが、よりシンプルで完全ではありません。
eqnプリプロセッサの独立した互換性のある実装は、troffのGNUバージョンであるgroffの一部としてGNUによって開発されました。 GNU実装は、 smalloverやaccentなどの多くの新しいキーワードを追加することにより、元の言語を拡張します。 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})}。