2。ラテックス方程式の表示とアライメント

amsmathパッケージには、表示された数式のタイピングのための多くの環境定義が含まれています。それらは、材料ラインの数(単一または複数)とアライメントポイントの数によって分類できます。

このセクションでは、「方程式」という用語を、数式表示における論理的な独立した部分を指すために使用します。数式表示には、参照のために番号が付けられることが多く、ラベル(例えば括弧内の番号)も付けられます。このようなラベルはタグとも呼ばれます。

次のリストには、最も人気のあるディスプレイ環境が含まれています。必要に応じて、それらは方程式のタグ付けがないフォームを主演しています。

「方程式」式*1つの行、1つの方程式
multlinemultline*1つの整列されていない複数行方程式、1つの方程式番号
「集まってください」集まる*アライメントのないいくつかの方程式
「align」align*複数のアライメントを持ついくつかの方程式
flalignflalign*いくつかの方程式:「align」の水平方向に広がります
「スプリット」複数行方程式内の単純なアライメント

この章のすべての例は、右側の数学資料と方程式数(タグ)を備えたタイプセットです。ポジショニングを視覚化するために、左右のマージンと中心線を表す出力に青い垂直線を表示します。 LaTexソースコードでは、「%—–…」を使用して、ドキュメントの前文に配置する必要がある別々の行から体内に配置する必要があります。

1\usepackage[leqno]{amsmath}
2% -------------------------------------------------------------------------------
3\begin{equation} (a-b)^2 = a^2-2ab+b^2 \end{equation}
4\[ \cos2\eta = \cos^2\eta-\sin^2\eta \]

leqno

テキスト列の中央ではなく、左マージンからの固定インデントに数学を配置する場合は、「fleqn」オプションが利用可能です。ゴムの長さ「\ mathindent」の値を設定することにより、プリアンブルのインデントのサイズを指定できます。そのデフォルト値は、第1レベルのリストのインデントと同じです。この値に満足している場合は、「Mathindent」の長さの設定をスキップできます。

1\usepackage[fleqn,reqno]{amsmath}
2\setlength\mathindent{0.2in}
3% -------------------------------------------------------------------------------
4\begin{equation} (a-b)^2 = a^2-2ab+b^2 \end{equation}
5\[ \cos2\eta = \cos^2\eta-\sin^2\eta \]

fleqn、reqno

ここで「reqno`オプションを渡す必要はありません(デフォルトであるため)が、ドキュメントクラス設定をオーバーライドするため、方程式番号は何でも右に強制されます。

標準のラテックスでは、 および \\は、表示されたアライメント内の列と線の分離に使用されます。 Amsmath環境での使用の詳細。

2.1。標準のラテックスとの比較

マルチラインディスプレイ環境の一部を使用すると、式の一部を整列できます。標準のラテックス環境「eqnarray」および eqnarray*と比較して、amsmathパッケージで定義されている構造は、アライメントポイントをマークするわずかに異なる単純な方法を提供します。標準のラテックスでは、 eqnarray*は、 {rcl}を備えた「配列」環境に似ています。つまり、2つのアライメントポイントを示すために2つの charが必要です。 amsmathパッケージでは、同等の構造には単一のアライメントポイントしかありません( arrayには {rl} preambleがあるかのように)。したがって、シンボルの左に1つの char(通常は関係)を配置する必要があります。

「eqnarray」環境は、「配列」のパラメーター設定に応じて、アライメントポイントに余分なスペースを生成します。 amsmath構造は、同時に、固定間隔を与えます。違いは、次の例で明確に示されています。同じ方程式は、「方程式」、「Align」、および「eqnarray」環境を使用してタイプセットです。

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3\begin{equation}
 4x^2 + y^2 = z^2
 5\end{equation}
 6\begin{align}
 7x^2 + y^2 &= z^2 \\
 8x^3 + y^3 &< z^3
 9\end{align}
10\begin{eqnarray}
11x^2 + y^2 &=& z^2 \\
12x^3 + y^3 &<& z^3
13\end{eqnarray}

標準のラテックスと比較したAMSmath

「eqnarray」環境のスペースは、数学のタイプセットの従来の基準には広すぎることに注意してください。 標準のラテックスと同様に、amsmathディスプレイのラインには「\」(または環境の終わり)がマークされています。数学的なディスプレイでのライン破壊には通常、式の構造を深く理解する必要があるため、一般的に今日のソフトウェア機能を超えていると考えられています。

2.2。 1つの行の単一の方程式

「方程式」環境によって単一の方程式を生成できます。タグが自動的に生成され、使用中のオプションに従って左端または右に配置されます。 「方程式*」環境は、タグなしで同じ方程式を生成します。標準のラテックスには「方程式」もありますが、「方程式*」はありません。後者は標準の表示される数学環境に似ているためです。

注目すべき事実は、タグの存在が内容の位置に影響しないということです。 1つの行に十分なスペースがない場合にタグが上下にシフトされます。方程式タグが左にある場合は、タグが右側にあるときの次の行に前の行に。

1\usepackage[leqno]{amsmath}
2% -------------------------------------------------------------------------------
3\begin{equation*}
4n^2 + m^2 = k^2
5\end{equation*}
6\begin{equation}
7n^p + m^p \neq k^p \qquad p > 2
8\end{equation}

1つのラインの単一の等量

2.3。アライメントなしのいくつかの行の単一の方程式

「方程式」環境のバリエーションは、「マルチライン」環境です。単一の行に適合しない方程式にのみ使用されます。 \\ charは、自動的に見つからないため、ラインブレークをマークするために使用する必要があります。

「マルチライン」の最初の行は、左マージンからのインデンテーションに合わせられ、最後の行は右マージンからの同じインデンテーションに合わせられます。 \ multlinegap長さの値は、このインデントのサイズを定義します。

最初と最後以外の各ラインは、ディスプレイ幅内に個別に中心にされます(「fleqn」オプションが使用されない限り)。ただし、「\ shoveleft」または「\ shoveright」コマンドのいずれかを行内に追加すると、その行は左または右に強制されます。

「Multline」環境には、論理的には単一の方程式であるため、単一のタグがあります。したがって、「\ tag」または \ notagを使用して、個々の線を変更することはできません。タグは、存在する場合、「reqno」/leqnoオプションが使用されると、最後/最初の行に右折/左に左に配置されます。

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3\begin{multline}
 4\text{First line of a multline} \\
 5\text{Centered Middle line} \\
 6\shoveright{\text{A right Middle}} \\
 7\text{Another centered Middle} \\
 8\text{Yet another centered Middle} \\
 9\shoveleft{\text{A left Middle}} \\
10\text{Last line of the multline}
11\end{multline}

いくつかの線の単一の等量

次の例は、「\ multlinegap」が結果にどのように影響するかを示しています。最初のケースでは、式の最初の行からタグが欠落しているように見える「dy」のラインアップがあります。 「\ multhlinegap」が「0」に設定されると、2行目の左側のスペースはタグのために変更されませんが、最初の行は左マージンにシフトされ、これが単一の方程式であることを明らかにします。

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3\begin{multline} \tag{2}
 4\sum_{t \in \mathbf{T}} \int_a^t \biggl\lbrace \int_a^t f(t - x)^2 \, g(y)^2 \,dx \biggr\rbrace \,dy \\
 5= \sum_{t \notin \mathbf{T}} \int_t^a \biggl\lbrace g(y)^2 \int_t^a f(x)^2 \,dx \biggr\rbrace \,dy
 6\end{multline}
 7\setlength\multlinegap{0pt}
 8\begin{multline} \tag{2}
 9\sum_{t \in \mathbf{T}} \int_a^t \biggl\lbrace \int_a^t f(t - x)^2 \, g(y)^2 \,dx \biggr\rbrace \,dy \\
10= \sum_{t \notin \mathbf{T}} \int_t^a \biggl\lbrace g(y)^2 \int_t^a f(x)^2 \,dx \biggr\rbrace \,dy
11\end{multline}

\マルチラインギャップ効果

2.4。アライメント付きのいくつかの行の単一の方程式

単一のマルチライン方程式を整列する必要がある場合、「スプリット」環境はサービスにあります。各行で単一の charを使用して、アライメントポイントをマークするだけです。

1\usepackage{amsmath}
2% -------------------------------------------------------------------------------
3\begin{equation}
4\begin{split}
5(a + b)^4 &= (a + b)^2 (a + b)^2 \\
6          &= (a^2 + 2ab + b^2)(a^2 + 2ab + b^2) \\
7          &= a^4 + 4a^3b + 6a^2b^2 + 4ab^3 + b^4
8\end{split}
9\end{equation}

単純なアライメントを伴う単一の等量

「split」自体は方程式タグを作成するわけではありません(したがって、星付きバリアントは必要ありません)。これは常に単一の方程式の内容として使用されているためです。この目的のために、あなたはそれを外側の環境に入れることができます。

デフォルトでは、タグ(および「スプリット」外の方程式の任意の部分)は、「分割 ‘環境材料の総高さの垂直方向に中心にあります。この動作は、「Centertags」オプションに対応します。 「tbtags」オプションを指定すると、タグは右側にあるときに「分割」の最後の行に、タグが左側にあるときの最初の行に配置されます。

1\usepackage[tbtags]{amsmath}
2% -------------------------------------------------------------------------------
3\begin{equation}
4\begin{split}
5(a - b)^3 &= (a - b) (a - b)^2 \\
6          &= (a - b)(a^2 - 2ab + b^2) \\
7          &= a^3 - 3a^2b + 3ab^2 - b^3
8\end{split}
9\end{equation}

単純なアラインメントと最後の行のタグを備えた単一の等しい

2.5。整列のない方程式グループ

方程式間のアラインメントなしに2つ以上の方程式を単一のディスプレイに配置する必要がある場合、「nectry」環境を使用できます。また、ディスプレイ幅内の各方程式を個別に中心にし、必要に応じて個々のタグを装備します。 「集まり」の各行は、論理的に単一の方程式です。

1\usepackage{amsmath}
2% -------------------------------------------------------------------------------
3\begin{gather}
4(a + b)^2 = a^2 + 2ab + b^2 \\
5(a + b) \cdot (a - b) = a^2 - b^2
6\end{gather}

整列なしの方程式グループ

特定の行の方程式数を抑制する必要がある場合があります。 「\ notagコマンドは、論理行に入れられますが、答えです。 gracks*`環境は方程式にまったくタグ付けされません。

1\usepackage{amsmath}
2% -------------------------------------------------------------------------------
3\begin{gather}
4D(a,r) \equiv \{ z \in \mathbf{C} \colon |z - a| < r \} \notag \\
5\operatorname{seg} (a, r) \equiv \{ z \in \mathbf{C} \colon \Im z < \Im a, \ |z - a| < r \} \\
6C (E, \theta, r) \equiv \bigcup_{e \in E} c (e, \theta, r)
7\end{gather}

挿入されたタグを持つ方程式グループ

2.6。単純なアライメントを持つ方程式グループ

単一のディスプレイで複数の方程式を整備し、それらを垂直に整列する必要がある場合、「Align」環境が救助になります。最も単純な場合、各行に単一の を使用してアライメントポイントをマークします。

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3\begin{align}
 4(a - b)^3 &= (a - b) (a - b)^2 \\
 5          &= (a - b)(a^2 - 2ab + b^2) \\
 6          &= a^3 - 3a^2b + 3ab^2 - b^3
 7\end{align}
 8\begin{align}
 9x^2 + y^2 &= 1 \\
10        y &= \sqrt{1-x^2}
11\end{align}

単純なアライメントを持つ方程式グループ

2.7。複数のアライメント

「Align」環境は、複数のアライメントポイントを定義できます。レイアウトには、必要な数の列ペアが含まれており、 {rlrl ...} -like Preambleを使用した「配列」に似ています。 *n *そのような rl列ペアで構成されていると仮定すると、1行あたりの‘sの数は *2n-1 *になります。および * n -1 * ‘sは列ペアを分離します。

「Align」環境は、材料を表示幅に均等に広げます。余分なスペースがある場合、隣接する列ペアと2つのディスプレイマージンの間に等しく分布しています。

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3This example has two column-pairs.
 4\begin{align} \text{Compare }
 5x^2 + y^2 &= 1 &                      x^3 + y^3 &= 1 \\
 6x              &= \sqrt {1-y^2}   &           x &= \sqrt[3]{1-y^3}
 7\end{align}
 8This example has three column-pairs.
 9\begin{align}
10     x &= y        &        X &= Y      &   a &= b+c \\
11    x' &= y'       &       X' &= Y'     &  a' &= b \\
12x + x' &= y + y'   &   X + X' &= Y + Y' & a'b &= c'b
13\end{align}

複数のアライメント

「Flalign」のレイアウトは似ていますが、マージンにはスペースがありません。次の例では、この事実のために方程式(3)が単一の行に適合していることがわかります(式(2)はまだそうではありません)。

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3This example has two column-pairs.
 4\begin{flalign} \text{Compare }
 5x^2 + y^2 &= 1               &   x^3 + y^3 &= 1 \\
 6        x &= \sqrt {1-y^2}   &           x &= \sqrt[3]{1-y^3}
 7\end{flalign}
 8This example has three column-pairs.
 9\begin{flalign}
10     x &= y        &        X  &= Y        &     a &= b+c \\
11    x' &= y'       &       X'  &= Y'       &    a' &= b \\
12x + x' &= y + y'   &   X + X'  &= Y + Y'   &   a'b &= c'b
13\end{flalign}

燃えるような

どちらの場合も、列ペア間の最小スペースは、「\ minalignsep」を変更することで設定できます。デフォルトの値は「10pt」で、長さパラメーターではなくマクロコマンドであるため、「\ renewcommand」で変更できます。次の例は、「\ minalignsep」を変更する効果を示しています。

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3This example has two column-pairs.
 4\renewcommand\minalignsep{0pt}
 5\begin{align} \text{Compare }
 6x^2 + y^2 &= 1               &   x^3 + y^3 &= 1 \\
 7        x &= \sqrt {1-y^2}   &           x &= \sqrt[3]{1-y^3}
 8\end{align}
 9This example has three column-pairs.
10\renewcommand\minalignsep{15pt}
11\begin{flalign}
12     x &= y        &        X  &= Y        &     a &= b+c \\
13    x' &= y'       &       X'  &= Y'       &    a' &= b \\
14x + x' &= y + y'   &   X + X'  &= Y + Y'   &   a'b &= c'b
15\end{flalign}

\ minalignsep効果

次の例は、「Align」の非常に一般的な使用を示しています。数学的資料内で通常のテキストを作成するために「\ text」の使用に注意してください。

1\usepackage{amsmath}
2% -------------------------------------------------------------------------------
3\begin{align}
4     x &= y        &&   \text{by hypothesis} \\
5    x' &= y'       &&   \text{by definition} \\
6x + x' &= y + y'   &&   \text{by Axiom 1}
7\end{align}

\テキストの使用

2.8。ディスプレイの中断: \ intertext

ディスプレイアライメントの行の間に小さなテキストを配置することをお勧めします。これは、「\ intertext」コマンドで行われます。すべてのアライメントプロパティがテキストの影響を受けないままにしておくことが非常に重要ですが、テキスト自体は表示幅に設定された通常の段落としてタイプセットです。ディスプレイを終了してからテキストの後に新しいものを開始するだけで、アライメントは機能しません。このコマンドは、常に「\」または \\*コマンドに直後に従う必要があります。

1\usepackage{amsmath}
2% -------------------------------------------------------------------------------
3\begin{align}
4A_1 &= N_O (\lambda ; \Omega') - \phi ( \lambda ; \Omega') \\
5A_2 &= \phi (\lambda ; \Omega') \phi (\lambda ; \Omega) \\
6\intertext{and finally}
7A_3 &= \mathcal{N} (\lambda ; \omega)
8\end{align}

\インターテキストコマンド

The words “and finally” are outside the alignment, at the left margin, but all three equations are aligned.

2.9。方程式番号とタグ

ラテックスでは、方程式のタグは通常自動的に生成され、本質的にラテックスカウンター「方程式」の印刷された表現です。これは、LaTexによって3つのステップで行われます。「方程式」カウンターの値を設定します。タグのフォーマット。正しい位置に印刷します。

「方程式」のカウンター値は、対応するタグが自動的に印刷された場合にのみ増加するため、最初の2つのステップは密接にリンクされています。星とstarされていないフォームの両方があるディスプレイ環境を見てみましょう。星付きフォームは、星付きフォームが自動的にタグ付けされますが、星付きフォームはそうではないため、「式」カウンターの値を変更していないフォームのみが変更されます。

starされていないフォーム内の特定の論理方程式のタグの設定を抑制する必要がある場合、「\ notag(または \ nonumber」(\ nonumber」 *を\の前に配置します。 「\\ の前に「\ tag」コマンド *を使用して、デフォルトのタグを独自のデザインのタグに置き換えることもできます。このコマンドの引数は、その方程式のタグとして、括弧内のタイプセットである任意の通常のテキストである可能性があります。 「\ tag」を使用すると、カウンター値の増分も抑制されることに注意してください。つまり、デフォルトのタグ設定は、「\ tag {\ the equation}」と視覚的にのみ同じであることを意味します。それらは同等ではありません。星付きのフォーム、 \ tag*は、括弧なしで(そして、特定のドキュメントクラスで追加される可能性のある他のものなしで、その引数のテキストを入力します)。

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3\begin{align}
 4x^2+y^2 &= z^2 \label{eq:A} \\
 5x^3+y^3 &= z^3 \notag \\
 6x^4+y^4 &= r^4 \tag{$*$} \\
 7x^5+y^5 &= r^5 \tag*{$*$} \\
 8x^6+y^6 &= r^6 \tag{\ref{eq:A}$'$} \\
 9A_1 &= N_0 (\lambda ; \Omega') - \phi ( \lambda ; \Omega') \\
10A_2 &= \phi (\lambda ; \Omega') \, \phi (\lambda ; \Omega) \tag*{ALSO (\theequation)} \\
11A_3 &= \mathcal{N} (\lambda ; \omega)
12\end{align}

\ tag、\ tag*、\ notag、\ label、\ ref

Notice how the \label and \ref commands are used to provide some sort of “relative numbering” for equations.

2.10。下位番号付けシーケンス

amsmathパッケージは、いわゆる「方程式サブ番号」もサポートしています。 subequations環境は、フォーム(2a)、(2b)、(2c)などのタグを生成します。この番号付けスキームは、2つの通常のラテックスカウンターに基づいています:「Parent Equation」と「方程式」。 subequations環境内のすべてのタグ付き方程式は、このスキームを使用します。

次の例は、タグをある程度再定義できることを示していますが、「\ the Equation」の再定義は「サブエーケーション」環境に配置する必要があることに注意してください。

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3\begin{subequations} \label{eq:1}
 4\begin{align}
 5           f &= g \label{eq:1A} \\
 6          f' &= g' \label{eq:1B} \\
 7\mathcal{L}f &= \mathcal{L}g \label{eq:1C}
 8\end{align}
 9\end{subequations}
10
11\begin{subequations} \label{eq:2}
12\renewcommand\theequation{\theparentequation\roman{equation}}
13\begin{align}
14           f &= g \label{eq:2A} \\
15          f' &= g' \label{eq:2B} \\
16\mathcal{L}f &= \mathcal{L}g + K \label{eq:2C}
17\end{align}
18\end{subequations}
19Note the relationship between~\eqref{eq:1}
20and~\eqref{eq:2}: only~\ref{eq:1C} and~\ref{eq:2C} differ.

下位番号付けシーケンス

The subequations environment must appear outside the displays that it affects. It also shouldn’t be nested within itself. The “main” equation counter is incremented with each use of this environment. A \label command within the subequations environment but outside any individual (logical) equation will produce a \ref to the parent number (e.g., to 2 rather than 2i).

2.11。方程式カウンターのリセット

フォーム(1.1)、(1.2)、…、(2.1)、(2.2)、…のタグを持つセクションまたは章内に方程式が番号付けされることは一般的な慣行です。 amsmathパッケージは、「\ numberwithin」宣言でこれを簡単に設定する簡単な方法を提供します。

たとえば、セクション番号を含む方程式タグを取得するには、各セクションの方程式カウンターが自動的にリセットされている場合、この宣言を前文に配置します。

付録A. Aspose.TeX APIを使用したラテックス方程式のレンダリング

次に、Aspose.TeX APIがラテックス方程式をスタンドアロンの数字として取得する方法を見ていきます。

式をラスター画像として取得して、テックス以外の出版物(たとえば、Webページなど)で使用できるようにする必要があるとしましょう。 Aspose.TeX APIを使用すると、次のように行うことができます。

1string equation = @"\begin{equation} (a-b)^2 = a^2-2ab+b^2 \end{equation}
2\[ \cos2\eta = \cos^2\eta-\sin^2\eta \]";
3Aspose.TeX.Features.PngMathRendererOptions options = new Aspose.TeX.Features.PngMathRendererOptions();
4using (Stream stream = File.Open("your-file-name-and-path", FileMode.Create))
5{
6    new Aspose.TeX.Features.PngMathRenderer().Render(equation, stream, options, out System.Drawing.SizeF size);
7    // Below is the short version for rendering with SVG
8    // new Aspose.TeX.Features.SvgMathRenderer().Render(equation, stream, new Aspose.TeX.Features.SvgMathRendererOptions(), out System.Drawing.SizeF size);
9}

ご覧のとおり、APIはラテックス方程式をSVGファイルに変換することもできます。そして、それは.netにAspose.TeXを使用する例でした。以下は、Javaバージョンの同等のコードです。

 1String equation = "\\begin{equation} (a-b)^2 = a^2-2ab+b^2 \\end{equation}\r\n" +
 2		"\\[ \\cos2\\eta = \\cos^2\\eta-\\sin^2\\eta \\]";
 3Size2D size = new Size2D.Float();
 4com.Aspose.TeX.PngMathRendererOptions options = new com.Aspose.TeX.PngMathRendererOptions();
 5final OutputStream stream = new FileOutputStream(Helper.getOutputFile(Path.combine(getCurrentPath(), "doc.png")));
 6try
 7{
 8    new com.Aspose.TeX.PngMathRenderer().render(equation, stream, options, size);
 9}
10finally {
11    stream.close();
12}

Rendererオプションの使用に関する詳細は、 .netのAspose.TeXまたは asops.tex for javaを使用して、ラテックス数学式のレンダリングに関する記事の使用に関する詳細を見つけることができます。しかし、それらの1つはここで私たちにとって重要です。このオプションを使用して、必要な結果を取得するために必要なLaTexドキュメントプリアンブルを指定できます。 (以下、ソースコードのC#バージョンのみを提示します。)

1// The preamble for the very first example on this page
2options.Preamble = @"\usepackage[leqno]{amsmath}";

また、デフォルトで定義されているラテックス「\ textWidth」よりも狭い領域でレイアウトされた方程式を取得する必要がある場合に、このオプションを使用することもできます。この目標を達成するための2つのオプションがあります。

1// The preamble for the 2.7 examples
2options.Preamble = @"\usepackage[textwidth=232pt]{geometry}
3\usepackage{amsmath}";
4// or
5options.Preamble = @"\usepackage{amsmath}
6\setlength{\textwidth}{232pt}";

Aspose.TeX APIでは、次のプリアンブルがデフォルトで使用されているため、オプションをamsmathパッケージに渡すか、デフォルトの「\ textWidth」などを変更する必要がない限り、レンダラーのオプションでプリアンブルを指定する必要はありません。

1\usepackage{amsmath}
2\usepackage{amsfonts}
3\usepackage{amssymb}

付録B.アサプスラテックス方程式Webアプリを使用したラテックス方程式のレンダリング

また、 LaTex Equation Editor Web Appもあります。これにより、LaTex方程式を編集および表示できます。テキストフィールドに方程式を入力し、[ *表示 *]ボタンをクリックして結果を確認できます。または、サブエクスペッションカテゴリを選択し、次にサブエクスペッションを選択してから、引数を編集することにより、フィールドの上のコントロールパネルを使用して方程式を構築できます。プリアンブルとその他のオプションは、 *式 *フィールドの下にあります。

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.