数式の組み込み

Doxygenでは、出力に{\LaTeX}数式を組み込むことができます(これはHTML、{\LaTeX}、RTF出力でのみ機能します)。HTMLおよびRTFドキュメントに数式(画像として)を組み込むには、以下のツールもインストールする必要があります。

  • latex: 数式を解析するために必要な{\LaTeX}コンパイラ。テストにはteTeX 1.0ディストリビューションを使用しました。
  • dvips: DVIファイルをPostScriptファイルに変換するツール。テストにはRadical Eye softwareのバージョン5.92bを使用しました。
  • gs: PostScriptファイルをビットマップに変換するためのGhostScriptインタプリタ。テストにはAladdin GhostScript 8.0を使用しました。

HTML出力では、上記のツールを必要としないMathJaxを使用する代替ソリューションもあります。USE_MATHJAXを構成で有効にすると、latex数式はHTMLに「そのまま」コピーされ、クライアント側のJavaScriptがそれらを解析して(インタラクティブな)画像に変換します。

ドキュメントに数式を組み込む方法は4つあります。

  1. 本文中に表示されるインライン数式を使用する。これらの数式は\f$コマンドのペアの間に配置する必要があります。

      The distance between \f$(x_1,y_1)\f$ and \f$(x_2,y_2)\f$ is 
      \f$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\f$.
    

    結果は次のようになります。

    $(x_1,y_1)$$(x_2,y_2)$の間の距離は$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$です。

  2. 本文中に表示されるインライン数式を使用する。\f$とは異なり、{\LaTeX}では数式モードを明示的に開くことはありません。これらの数式は\f(\f)コマンドの間に配置する必要があります。

      The LaTeX and Tex logos are: \f(\LaTeX \f) and \f(\TeX \f).
    

    結果は次のようになります。

    LaTeXとTexのロゴは次のとおりです。{\LaTeX}{\TeX}

  3. 別の行の中央に表示される番号なしの数式。これらの数式は\f[\f]コマンドの間に配置する必要があります。例を次に示します。
      \f[
        |I_2|=\left| \int_{0}^T \psi(t) 
                 \left\{ 
                    u(a,t)-
                    \int_{\gamma(t)}^a 
                    \frac{d\theta}{k(\theta,t)}
                    \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi
                 \right\} dt
              \right|
      \f]
    
    結果は次のようになります。

    \‍[    |I_2|=\left| \int_{0}^T \psi(t) 
             \left\{ 
                u(a,t)-
                \int_{\gamma(t)}^a 
                \frac{d\theta}{k(\theta,t)}
                \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi
             \right\} dt
          \right|
\‍]

  4. 数式環境にない数式やその他のlatex要素は、\f{environment}を使用して指定できます。ここでenvironment{\LaTeX}環境の名前であり、対応する終了コマンドは\f}です。以下は方程式配列の例です。
       \f{eqnarray*}{
            g &=& \frac{Gm_2}{r^2} \\ 
              &=& \frac{(6.673 \times 10^{-11}\,\mbox{m}^3\,\mbox{kg}^{-1}\,
                  \mbox{s}^{-2})(5.9736 \times 10^{24}\,\mbox{kg})}{(6371.01\,\mbox{km})^2} \\ 
              &=& 9.82066032\,\mbox{m/s}^2
       \f}
    
    結果は次のようになります。

    \begin{eqnarray*}        g &=& \frac{Gm_2}{r^2} \\ 
          &=& \frac{(6.673 \times 10^{-11}\,\mbox{m}^3\,\mbox{kg}^{-1}\,
              \mbox{s}^{-2})(5.9736 \times 10^{24}\,\mbox{kg})}{(6371.01\,\mbox{km})^2} \\ 
          &=& 9.82066032\,\mbox{m/s}^2
\end{eqnarray*}

最初と3番目のコマンドについては、数式に{\LaTeX}の数式モードで有効なコマンドが含まれていることを確認する必要があります。2番目のコマンドは、USE_MATHJAXを使用する場合、数式モードでも機能する有効なテキストモードコマンドである必要があります。4番目のコマンドの場合、セクションには特定の環境に対して有効なコマンドが含まれている必要があります。

警告
現在、Doxygenは数式の入力ミスからの回復においてあまり許容度がありません。誤った数式やform_*ファイルを削除するために、html、rtfなどのディレクトリに書き込まれたformula.repositoryファイルを削除する必要がある場合があります。

たとえば、数式の構成要素や特定の単語の一貫した記述のために、独自の{\LaTeX}コマンドを定義できるようにするには、構成オプションFORMULA_MACROFILEを使用して、{\LaTeX}コマンドを含むファイルを指定できます。このファイルには、{\LaTeX} \newcommandおよび\renewcommandコマンドを含めることができ、それらは組み込まれた数式(画像バージョンとMathJaxバージョン)、および生成された{\LaTeX}出力(PDF生成用)に含まれます。
\newcommand(および\renewcommand)はオプションパラメータのないバージョンに制限されているため、以下のタイプのみがサポートされます。

\newcommand{\cmd}{replacement}
\newcommand{\cmd}[nr]{replacement}

例:

\newcommand{\E}{\mathrm{E}}
\newcommand{\ccSum}[3]{\sum_{#1}^{#2}{#3}}

次のセクションに進むか、インデックスに戻ります。