トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Tips/TeX/正しいマークアップ

Last-modified: 2009-03-31 (火) 14:33:41 (3425d)
Top / Tips / TeX / 正しいマークアップ

「TeXを使えば、数式の多い文書を非常に美しく組版することができます。」…確かにそうなのですが、この文には「著者がTeXを理解して使いこなせば」という但し書きが必要であるように思います*1

TeXは、不必要に著者の意図を推測しようとはしません。そのため、ときには、紙に鉛筆で書くときと同じ書き方では不十分で、自分の意図を正しくTeXに伝えるように注意深く記述しなければいけないこともあります。

以下では、よく見かける「正しくないマークアップ」の例とその修正案を紹介します。

本文中の記号

ピリオド

TeXは、英語文の文末に、通常の単語間より広い空白を置きます。文末は終止符(または疑問符または感嘆符)によって表されますが、ピリオド(.)は終止符として以外に、Fig.などの省略記法でも使われます。これに対するTeXの処理規則は単純で、「(1)大文字の後ろのピリオドは終止符ではない。(2)それ以外のピリオドは終止符である。」となります。この規則に合わない場合は、マークアップを補う必要があります。

(a) $\ldots$ given by a PDS.   However, $\ldots$
(b) $\ldots$ given by a PDS\@. However, $\ldots$

3.png

大文字で終わる文を書くときは、最後の大文字とピリオドの間に別の何かを挟んで、上記の規則(1)が適用されないようにします。例えば例(b)のように \@ を挟みます。あまり組版結果に差がないようですが、以下のように「ゆるく」組版された場合(行幅に合わせるために空白を伸ばした場合)には差がよく目立ちます。

1a.png

なお、閉じ括弧は文末かどうかの判断の際に無視されるので、「... pushdown system (PDS).」のような括弧で終わる文も、... pushdown system (PDS)\@. のように書く必要があります。数式は「大文字ではない」と扱われますので、数式で終わる文(例えば「... denoted by~$S$.」)には \@ を補う必要はありません。

(a) $\ldots$ shown in Fig. 1.
(b) $\ldots$ shown in Fig.~1.

4.png

逆に、省略記法を使うときにはしばしば、ピリオドが終止符でないことを示す必要が生じます。例(a)では Fig. と1の間が開き過ぎています。これも「ゆるく」組版されたときには、以下のように差がはっきりします。

2a.png

Dr.、et al.、resp.、などの省略記法も同様です*2

これらの場合は、ピリオドの後ろに明示的に「単語間の空白」を置けばよく、たいていは例(b)のように「行分割されない空白」を表すティルダ(~)を使えばよいです。Fig.\ 1 のように \ 付きの空白を置く方法もありますが、Fig. と 1 はひとまとまりと考えて、「行分割されない空白」を使ったほうがよいでしょう。文献リスト中での省略形などでは、Trans.\ Inf.\ \& Syst. のように \ 付き空白がよいでしょう。

ハイフン、ダッシュ、マイナス

(a) -2, -1, 0, 1
(b) $-2$, $-1$, $0$, $1$

2.png

例(a)では ー がマイナス記号ではなくハイフンとして組版されています。(b)のように数式にする($で囲む)のが適切です。なお、符号のない0や1は数式にしなくても構わないと思いますが、本文のフォントと数式用ローマンフォントが異なる場合(timesパッケージを使っているときなど)は、$で囲んだ数字とそうでない数字とで字体が変わることになります。

(a) pp.1-3
(b) pp.1--3

1.png

範囲を表すには、(a)のハイフンより(b)の二分ダッシュが適切です*3

数式

単語

(a) $difference=x-y$
(b) $\mathit{difference}=x-y$

5.png

数式用イタリックフォントは、1字1字がそれぞれ変数であるような使い方を想定してデザインされていますので、複数文字からなる単語を表すのには向いていません。differenceは特に不細工な例ですが、ほかの単語でも、どこかしら文字間隔が不自然な感じになることが多いです。\mathit\mathrmなどを使うのが適切です。

演算子

TeXは、数式用記号を「二項演算子」「関係演算子」などに分類して、それに基づいて記号間の間隔を調節しています。TeXによる分類と異なる使い方をする場合には、そのことをマークアップによって示す必要があります。

(a) $ \to \subseteq Q\times Q$
(b) ${\to}\subseteq Q\times Q$

6.png

例(a)では → と ⊆ がくっついてしまっています。これは両者が関係演算子であるためです。関係演算子が並んでいる場合には、TeXはそれらをくっつけたもの全体を一つの関係演算子のように扱います(例えば := など)。記号や部分式を { } で囲むと、囲まれた部分が「普通の記号」扱い(数字や英字と同じ)になります。

(a) $D\uparrow  =\{d_1,d_2,\ldots,d_k\}$
(b) $D{\uparrow}=\{d_1,d_2,\ldots,d_k\}$

7.png

\uparrow は関係演算子なので、同じく関係演算子である = とくっついてしまいます。つまり例(a)はTeXから見ると「D と { d1,... } を ↑= で結んだ式」になります。「Dに演算↑を適用した結果が { d1,... } に等しい」と書きたいなら、\uparrow を「普通の記号」にする必要があります。

(a) $a=1\land b=2$
(b) $(a=1)\land(b=2)$

14.png

\land は二項演算子なので、+ などと同じ扱いです。ですので、例えば「a=1+b=2」という式が「a と 1+b と 2 を等号で結んだ式」と解釈されるのと同様に、例(a)は「a と 1∧b と 2 を等号で結んだ式」と解釈されます。この場合は括弧を補って曖昧さをなくすのが適切と思います。

コンマ

(a) $a=1, b=2$
(b) $a=1,\ b=2$

8.png

数式中でのコンマ(,)は、f(x,y) のような引数リストやベクトルの成分のリストに使うことが想定されているため、コンマの後ろにあまり空白が開きません。そのため、例(a)は「a と 1,b と 2 を等号で結んだ式」のように見えてしまいます(なお、数式中では空白文字は無視されます)。(b)のように、\ 付きの明示的な空白を置けば、ある程度の幅の空白が置かれます。もっと広い空白(\quad\qquad)が適切な場合もあるし、数式が並ばないように単語を挟んだほうがよい場合もあります。

(a) $a=1,234,567$
(b) $a=1{,}234{,}567$
(b') $a={}$1,234,567

9.png

逆に、位取りのためのコンマの場合は、その後ろに空白を置かないほうが適切です。このときは例(b)のように、コンマを { } で囲んで普通の記号にします。例(b')のように数字を数式の外に出す方法もあります。例(b')では、= と数字の間に適切な幅の空白が入るよう、空の数式 {} を挿入しています。

省略記号

(a) $s(x_1,\cdots,x_n)=x_1+\ldots+x_n$
(b) $s(x_1,\ldots,x_n)=x_1+\cdots+x_n$

11.png

例(a)は何だかちぐはぐで不格好ですね。コンマとコンマの間は \ldots を使います。+、ー、×、=、⊂ など、上下対称の記号の間には \cdots が適切です。どちらか迷う場合は \ldots にしておけば無難です。

区切り記号

(a) $x=<a,b>$
(b) $x=\langle a,b\rangle$
(b') $x=\left<a,b\right>$

10.png

山型括弧を使いたいときは、不等号(< >)ではなく \langle \rangle を使います。(a)のように括弧の代わりに不等号を使うとたいへん不細工です。(b')のように \left< \right> を使ってもよいです。\left \right を使った場合は、挟まれる部分式の高さ・深さに合わせて括弧の大きさが変化します。\left\langle \right\rangle と書いても(b')と同じになります。

(a) $\{x| ||x||>0\}$
(b) $\{\,x\mid \|x\|>0\,\}$

12.png

縦線(|)は絶対値(例えば |x|)などを表す記号です。この例のような、集合の定義中の区切り線は、関係演算子である \mid を使って書きます。また、二重縦線を書きたいときは、|| ではなく \| を使います。|| では縦線間の間隔が広すぎて、間延びしてしまいます。\, は細い空白を置く命令です。縦線を使った集合の定義(内包的定義)を書くときは、中括弧の内側に細い空白を置くのがよいそうです(TeXbook [K89, p.239] より)。

(a) $|-x|=|+x|$
(b) $\left|-x\right|=\left|+x\right|$

13.png

[K89, p.235] に載っている例。単に縦線を書いた場合、それは「普通の記号」として扱われます。そのため、例(a)では、TeXは「 | から x| を減じたものと | に x| を加えたものが等しい」と解釈し、余分な空白を挿入してしまいます。普通の記号ではなく区切り記号であることを示すため、\left \right を使う必要があります。

空白

(a) $y dx-x dy$
(b) $y\,dx-x\,dy$

(a) $g=9.8{\rm m/sec^2}$
(b) $g=9.8\,{\rm m/sec^2}$

(a) $k!n!(n+1)!$
(b) $k!\,n!\,(n+1)!$

15.png

いずれも [K89, p.232] より。細い空白(\,)を補うのが望ましい例です。dx や dy の前、物理単位の前、階乗記号( ! )と英数字や開き括弧の間、には細い空白を置くのがよいと述べられています。

(a) $\sqrt2 x$
(b) $\sqrt2\,x$

(a) $\Gamma_2+\Delta^2$
(b) $\Gamma_{\!2}+\Delta^{\!2}$

16.png

[K89, p.233] より。細い空白を置くのが望ましい例、および、逆に負の空白(\!)を置いて間隔を詰めたほうがよい例、です。これらは、一度組版をしてみて、不細工に感じたら修正する、という方針で整えるのがよいでしょう。

参考文献

[K89] D.E. Knuth, TeXブック, 改訂新版, 斎藤信男監修, 鷺谷好輝訳, アスキー, 1989.


*1 TeXの基本コンセプトは「Knuth先生が自著を思い通りにデザインするためのツール」であり、決して「誰でも簡単に美しい組版結果が得られる」ではないのです…。
*2 TeXとは関係ないですが、et al. の et はこれで1単語(英語のandに当たる)なので、後ろにピリオドを付けません。
*3 これもTeXとは関係ないですが、p. = page (単数形)、pp. = pages (複数形) です。

添付ファイル: file16.png 972件 [詳細] file15.png 910件 [詳細] file14.png 999件 [詳細] file13.png 939件 [詳細] file12.png 957件 [詳細] file11.png 959件 [詳細] file10.png 1026件 [詳細] file9.png 1018件 [詳細] file8.png 1000件 [詳細] file7.png 1032件 [詳細] file6.png 1032件 [詳細] file5.png 1061件 [詳細] file4.png 1005件 [詳細] file3.png 979件 [詳細] file2a.png 1012件 [詳細] file2.png 978件 [詳細] file1a.png 967件 [詳細] file1.png 994件 [詳細]