LaTeX メモ - 数式における「|」 (縦線, vertical bar)の扱い(その2)

このエントリは,以前書いたもの(LaTeX メモ - 数式における「|」 (縦線,vertical bar)の扱い(その1))の続きである.すぐに書こうと思っていたのに,もう4ヵ月近くもたってしまった.


Microsoft の Word のような WYSIWYG エディタとは異なり,LaTeX は,文書の論理的な構造を記述するシステムである(脚注1).つまり,文書の作成者は,その文書の論理構造に注力すべきであって,その文書の書式はクラスファイルやスタイルファイルにまかせるべきと考えられている.


ところが,LaTeX を使い始めの人は,見栄えを調整しようとして,\hspace, \vspace, \medskip, \bigskip, \\ などを駆使し,とにかく見た目だけを考えた原稿を書いてくる.論文の原稿などは再利用されることが多いのに,これでは再利用性が損なわれることおびただしい.


しかしながら,そうはいっても,文書を美しく整形するためには,文書作成者自身が見栄えを考えなければならないことは多々ある.たとえば,数式における「|」 (縦線,vertical bar)の扱いなどもそうであり,今回はそれについて書いてみたい.なお,いつもと同様,このエントリでは AMS LaTeX パッケージを利用するものとする.


集合表現


以前の記事(LaTeX メモ - 数式における「|」 (縦線,vertical bar)の扱い(その1))にも書いたが,数式における縦線「|」には多義性があり,適切な文書整形が難しい.その一つの例として,集合の記述がある.たとえば,普通に \{x | P(x) = 0 \} と書いたとすると,区切りの縦線の両隣のスペースが詰まる結果になる(図1参照).


図1


これを回避するために,いくつかの方法がある.たとえば,


  1. \,」「\:」「\;」を使って縦線の隣に少しスペースを空ける,
  2. \mid を使う,
  3. braket.sty\set, \Set を使う


などである.これらの場合について,図2にフォーマット結果を示す.



図2


いろいろと意見はあるかもしれないが,個人的にはやはり \mid を使ったものが最も簡便で見栄えもいいように思う.


ただ,\set を使う必要はほとんどないと思われるものの,\Set は縦線が式の高さに従って大きくなるので,便利な場合もある.例として,図3のLaTeXソースをコンパイルしたものを図4に示す.


\[ L[\Pi, e] = \left\{x \in \Sigma^* \mid
\begin{array}{l}
  \text{$x$ is the encoding under $e$ of} \\
  \text{an instance $I \in Y_\Pi$}
\end{array} \right\} \]


\[ L[\Pi, e] = \left\{x \in \Sigma^* \left|
\begin{array}{l}
  \text{$x$ is the encoding under $e$ of} \\
  \text{an instance $I \in Y_\Pi$}
\end{array} \right. \right\} \]


\[ L[\Pi, e] = \Set{x \in \Sigma^* |
\begin{array}{l}
  \text{$x$ is the encoding under $e$ of} \\
  \text{an instance $I \in Y_\Pi$}
\end{array}} \]

図3



図4


図4の出力を見てみると、この場合は \Set を使うのが簡単ではあるが、素直に \left, \right を使うことが最も見栄えがよいかもしれない。


なお,縦線は,括弧(かっこ)と同様に区切り記号のひとつであり,大きさを調整したほうが望ましい場合がある.これについては,縦線だけの話ではないので,エントリを改めて書いてみたい.


脚注1

たとえば,「The LaTeX Companion (2nd Ed.)」の2ページには以下のようにある.


LaTeX was the first widely used language for describing the logical structure of a large range of documents and hence introducing the philosophy of logical design, as used in Scribe.  The central tenet of "logical design" is that the author should be concerned only with the logical content of his or her work and not its visual appearance.

(拙訳)

LaTeX は,Scribe のように,広範囲の文書の論理的構造を記述し,それ故に論理的設計という哲学を導入した,広く使われた最初の言語である.「論理的設計」の中心となる原則は,文書作成者は,その文書の見栄えではなく,その論理的な内容のみに関心を持つべきであるということである.



関連エントリ:




コメント

このブログの人気の投稿

人間はどんなところでも,どんな時でも何歳からでも学ぶことができる

ブログを始めるにあたって - 継続は力

博士号取得者が高校教師になるということ

へんろう宿 (井伏鱒二)