サルには使えないLATEX

サルには使えない LATEX
LATEX which monkeys cannot use.
∼ すべての人に LATEX の恵みを ∼
入門編
Ver2.0
SaRuTEX 編集委員会
まえがき
本書は,
「いままでに LATEX なんかほとんど使うたことないで」,あるいは「使うたことはあるけ
どあまりよう分からん」,という人の中で「LATEX を使えるようになりたいなぁ」という人を対象
にした初級レベルの LATEX 入門テキストです.ある程度 LATEX が使いこなせるという人には「なー
んや,そんなん知ってるで」という内容が多いので,そういう方はより高度な内容が載っている
市販のテキストをどうぞお読み下さい.もちろん,そういう方であっても本書に興味があるとい
う人には読んでいただいて結構ですが,
「無駄な時間だった」と苦情を申されても編集委員会は一
切関知しませんので,予めお知りおき下さい.
本書の内容は,まず LATEX での文書作成の基本的なルールと考え方を勉強していただいた後,み
なさんに実際に文書を作成してもらうことで,様々なコマンドや環境の使用法を学んでゆくとい
う構成になっています.文中には,各種の練習文書や章末問題が用意してありますので,実際に自
分で文書を作成してみて下さい.プログラムを勉強にするにはまず自分で書いて実行することを
繰返すのが一番良いのと同じで,LATEX の習得にはまず文書を書いてみるのが一番だからです.本
書の最後までやり通せば,とりあえずは簡単なレポートくらいは作れるようになっているはずで
す.なお,本書には LATEX のコマンドや環境の詳細については掲載されていないので,章末問題
を解いたり,レポートを作成する際には市販の LATEX の解説書を傍らに置きながら進めて下さい.
解説書はたぶん,研究室の中のあちこちに転がってるはずなので適当に拝借すれば良いでしょう.
最後に,本書の「サルには使えない LATEX」というタイトルについて少し触れておきたいと思い
ます.高エネルギー物理の世界では,PAW というグラフツールソフトが使われているのですが,
英語版の分厚いマニュアルしか存在していませんでした.そこで,初心者にも簡単に使えるように
と日本語による簡便な解説書が作られ,
「これを読めばサルにだって使えるぞ」という意味で,
「サ
ルにも使える PAW」と名付けられました.その後,同じくグラフツールの ROOT についても,同
様のマニュアルが作られ,こちらも「サルにも使える ROOT」と名付けられました.本書もまた,
LATEX の初心者を対象に,誰もが簡単に使えるようになってほしいとの思いで作ったのですが,編
集委員会委員長の「これほど偉大なソフトである LATEX をサルなんぞに使われてたまるか」とい
う考えから,タイトルは「サルには使えない LATEX」となりました.いずれにせよ,基本的な考え
は「誰にでもわかり易く」ということです.本書が LATEX を学ぶ皆さんにとって最良のバックアッ
プツールとなれば,編集委員会としてはこれ以上の喜びはありません.
2001 年 3 月吉日
SaRuTEX 編集委員会
(実は 1 人だったりして)
i
若干の改訂にあたり
このたび,
「サルには使えない LATEX」を,新たに「入門編 Ver1.1」としてリリースすることに
しました.3 月に公開した第 1 版は,一部にレイアウトのミスなどがあったため,もう一度それら
を見直して整形し直すとともに,さらに高度な応用を含めた利用法を解説した「応用編」を執筆す
ることを念頭に入れ,自らその意志を固めるべく,今回リリースした分を「入門編」をしました.
「応用編」につきましては,
「入門編」をお読みいただいた皆さんからのご意見やリクエストを
踏まえて執筆していきたいと考えており,2001 年秋には第 1 版をリリースする予定です.
なお,本書は当初,東北大学ニュートリノ科学研究センターの学生を対象として編集したため,
文中の一部は同センターでの使用に特化した内容となっています.最近になり,本書が同センター
以外の場所でも配布されるようになっておりますが,同センターでの使用を念頭におくという編
集方針は継続しております.従いまして,一部のセンター外のユーザーの方には直接は適用でき
ない箇所もあるかとは思いますが,LATEX の使用法自体に関しては何ら変わりはありませんので,
予めその点のみご了承頂いた上で本書をご利用いただきたいと思います.
どうぞ今後とも,
「 SaRuTEX」を末長くご愛用いただきますようお願い致します.
2001 年 5 月
SaRuTEX 編集委員会
入門編改訂は打ち止め
月日の経つのは早いもので,私が SaRuTEX「入門編」を最初にリリースしてから 1 年が過ぎま
した.ごく一部のユーザーの方には評価をしていただきましたが,その後新たなユーザーが増え
ているのか,編集側としてはまったく見当がつきません.
今回,入門編の問題点の修正を行い,最終版として Ver2.0 をリリースいたしました.これをもっ
て,入門編の改訂はとりあえず打ち止めにしたいと思います.
「応用編」については,2001 年秋の
リリースを目標としておりましたが,現在のところ構想段階に留まったままです.いずれは,世
に出したいとは考えております.
2002 年 3 月
SaRuTEX 編集委員会
ii
目次
まえがき
i
第 1 章 LATEXってなんでっか?
1.1 LATEX 誕生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
ここが LATEX のええところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.3
せやけど LATEXって不便やん . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.4
LATEX とワープロとどっちがええの? . . . . . . . . . . . . . . . . . . . . . . . . .
3
第 2 章 LATEX で文書を作ってみましょか
2.1 まずは小手調べ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2
\documentclass って何やねん? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.3
\begin に始まり \end に終る . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.1
「環境」を大切に . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.2
みーんな真ん中へ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.3
右寄れ,右ーっ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.4
左寄れ,左ーっ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.3.5
とにかく順番に並べましょ . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
も少し使いこなしてみよか . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.4.1
フォントとサイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.4.2
スペースと改行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
章と節 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4
2.5
1
4
第 3 章 数式を使いこなしてみまっせ
13
3.1
数式は簡単やないで
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2
数式と本文の違いを知ってもらわんとな . . . . . . . . . . . . . . . . . . . . . . .
13
3.3
どないしたら数式が書けるんやろ? . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.3.1
本文の中に数式を入れたいなぁ . . . . . . . . . . . . . . . . . . . . . . . .
14
3.3.2
数式のとこで改行したいんやけど . . . . . . . . . . . . . . . . . . . . . . .
15
3.3.3
数式に番号を付けられへんかなぁ . . . . . . . . . . . . . . . . . . . . . . .
15
3.3.4
式変形って書けるんやろか . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
ほないっぺん書いてみよか . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
まずは基本からやね . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.4
3.4.1
iii
3.5
3.6
3.4.2
四則演算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.4.3
分数と根号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.4.4
上つきと下つき . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.4.5
積分と総和 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
もちょっと高度なことやってみよか . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.5.1
ギリシャ文字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.5.2
特殊記号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.5.3
文字で表示する関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.5.4
かっこ (括弧) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.5.5
プライム,ベクトル,ハット
. . . . . . . . . . . . . . . . . . . . . . . . .
22
3.5.6
太字ベクトル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
これで最後やで . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.6.1
行列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.6.2
場合分け . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
第 4 章 本格的な文書作りをしてみるで
27
4.1
もっと複雑なこともしてみたいなぁ . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.2
隅っこにでも書いとこか . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.3
表を作れたらええなぁ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.3.1
一番簡単な表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.3.2
縦罫線の入った表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.3.3
横罫線も書かせてみる . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.4
図を貼り付けてみよか . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.5
注釈,番号付け,参照も簡単やで . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.6
目次も作ってみよか
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.7
参考文献リストも大事やね . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.8
オリジナルコマンドの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.9
お疲れさんでおました . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
付 録 A 野鳥のすすめ
38
付 録 B 困った時はどないしよ
39
あとがき
40
章末問題解答
41
iv
第1章
LATEXってなんでっか?
実際の LATEX のお勉強をする前に,すこし「LATEX とはなんぞや」ということについて知っておき
ましょう.もちろんそんなことを知らなくても LATEX を利用するのに不都合はないのですが,量
子力学を学ぶ時に Heisenberg や Schrödinger がいかにして量子力学を建設したのか知れば,より
一層楽しくなりませんか?それと同じで,せっかく LATEX を学ぶのであれば,LATEX の素性を知っ
ておいても問題はないでしょう.
1.1
LATEX 誕生
多くの人が「TEX」と呼んでいるものの大半は,本当は「LATEX」という TEX の一つのパッケー
ジに過ぎず,
「TEX」と「LATEX」は厳密には別物であるということはあまり意識されていない事実
のようです.
そもそも,TEX は米国の数学者である D.Knuth 氏が開発したデスクトップ組版ソフトです.Knuth
氏は,自身の著作をコンピュータ組版した際の出来が余りにお粗末であったことに業を煮やし,
「こ
んなんやったら俺が作ってしもた方がましや」と思い立ち,その後研究に研究を重ね現在の TEX
を作り上げたのです.Knuth 氏の作った TEX は組版ソフトとして十分な機能を有してはいました
が,その使用にあたってはあまりユーザーフレンドリーではありませんでした.そこで,より簡単
な命令で美しい組版を行なえる TEX の拡張パッケージとして登場したのが LATEX なのです.LATEX
は米国のコンピュータ技術者である L.Lamport 氏により開発されたもので,“LA”mport 氏が作っ
た TEX だから “LATEX” という訳です.LATEX の特徴は,文書の論理構造を原稿の中でコマンドに
より命令することで組版を行なう点です.
「ここは章の始まりやで」とか「ここの文字サイズはこ
んくらいにしたいなぁ」といった命令を指定することで,ソフトが自動的に組版を行なうのです.
現在では,
「TEX を使用する」という場合ほとんどは LATEX が使われており,最近出されている
多くの Linux のディストリビューションにも LATEX の最新版である pLATEX2ε が最初から含まれて
います.
1.2
ここが LATEX のええところ
組版ソフトとしての LATEX の魅力はいくつか挙げられます.我々が第一に強調したいのが,数
式が非常に美しく組める点です.Knuth 氏は数学者であり,彼が初期のコンピュータ組版に対し
て最も不満だったのが数式が美しく組めないことだったのでした.TEX ではそんな Knuth 氏の不
満を解消するために数式の表示が非常に美しく行なえるようになっており,数式組をするために
必要ないくつかのコマンドさえ使いこなせるようになれば,複雑な数式であっても誰でも簡単に
1
美しい表示を得ることが出来ます.LATEX が主として理工系の研究現場で普及している理由の一つ
は,この美しい数式組みの能力にあるのです.
2 つ目の魅力は,章や節の番号付けが自動的に行なわれることです.一般のワープロソフトの場
合,章や節の番号は自分で振らなくてはなりませんが,LATEX ではこれらの作業はすべて自動化さ
れており,執筆者は「ここから新しい章やで」という命令を指示しておくだけでよいのです.しか
も,LATEX はこれらの命令を頼りに目次も自動的に作成してくれるだけでなく,図番号や参考文献
番号などの管理も非常に簡単に行なえます.
さらに,LATEX の強力なレイアウト整形機能は他のワープロソフトには真似の出来ない素晴らし
さがあります.特に,かな漢字と半角英数字が混在するような文書を書く際には行末を揃えるの
に苦労しますが,LATEX ではそのようなレイアウトもすべて自動化されているため,仕上がりは非
常に美しいです.また,英文文書を作成する際のカーニングやハイフネーションといった面倒く
さい作業も全自動で処理してくれます (ただ,ハイフネーション機能については若干不完全ではあ
りますが).
このように,LATEX はデスクトップのコンピュータ組版ソフトとして非常に充実した機能を有し
ており,理工系では論文の投稿などの際に LATEX 組の文書が推奨されるなど,LATEX の重要性は
ますます高まっています.
1.3
せやけど LATEXって不便やん
まるでいいことづくめのように見える LATEX ではありますが,どんなに強いヒーローにだって
弱点の 1 つや 2 つあるのと同じで,決して万能ソフトではないのです.他のワープロソフトと比
較したときに不便に感じられる部分も,当然ながらあります.
LATEX を使用する際にもっとも戸惑うのは,ワープロのように実際の仕上がりの文書の体裁をリ
アルタイムで見ることが出来ない点です.LATEX の原稿は一般にテキストエディタで作成し,組版
に関しては必要な命令語(コマンド)を記入するのみです.したがって,LATEX 文書の原稿を見る
と,文書の途中途中にコマンドが記入されているだけで実際の出来上がりの様子をそこから想像
することは出来ません.これは初心者にとっては非常に不便なことですし,ある程度熟練したユー
ザーにとっても自分の思ったとおりに文書が出来ているかどうかは,実際に完成したものを見る
まで分かりません.一般には,文書の作成中に頻繁に整形を行ない,実際の出来上がりの様子を
確認しながら作成していきます(すごく熟練した LATEX ユーザーはコマンドを見るだけで出来上
がりの文書のレイアウトが頭に描けるともいいますが,およそそんな技は我々には無理です).
また,図や表を文中に貼り付ける際には,ソフトの側で「最適だ」と判断したレイアウトに従っ
て貼り付けられるため,執筆者の意図した位置とぜんぜん異なる所に貼られてしまうこともあり
ます.こういう場合にはひたすら手作業を駆使して貼り付けをせねばならず,なかなか苦労させら
れます.最近のワープロソフトでは希望の位置に絵や写真を貼れるので,この点も LATEX で難儀
を強いられるところでしょう.
2
1.4
LATEX とワープロとどっちがええの?
ここでは,
「ワープロと LATEX とではどっちが便利なんやろ?」という疑問について少し考えてみ
ようと思います.実は,この手の論争は結構あちこちで繰り広げられていて,
「Word 派 VS LATEX
派」なんて派手に取り上げているサイトもあったりするほどなのです.
たしかに,一般のワープロソフトに慣れている人からすると,LATEX というのはひはどく使い勝
手の悪いソフトのように感じられるかもしれません.実際私も,最初のころはコンパイルした文
書が思うように仕上がっていなくて歯痒思いを何度もしたことがありました.しかし,それでも,
ワープロソフトに比べて格段に軽い上にこれほど美しい組版を仕上げるソフトの魅力は捨てがた
く,LATEX にこだわり続けました.
で,いきなり結論になるのですが,詰まるところ SaRuTEX 編集委員会の見解としては,
「好きな
方使うたらええんとちゃうの」ということにしております.ワープロにはワープロの,LATEX には
LATEX の利点欠点がそれぞれある訳で,最終的にはユーザーがその場の必要性に応じて自分の使
いやすい方を選んで使用すればいいのではないでしょうか.無理に拘って使いづらいソフトを駆
使するより,
「ええとこ取り」をすればいいのです.私も,1 枚ものの書類を作成するときなどは,
ワープロを使うことも多々あります.
我々は,LATEX が文書を書くためのソフトとして決して完全無欠なものではないことを肯定した
上で,それでも最強のデスクトップ組版ソフトだと主張しているのです.
さてさて,よもやま話はこのくらいにしておかないとそろそろ皆さん退屈してしまうころかも
知れません.次の章からはいよいよ LATEX を使っての文書作成の練習です.美しい文書作りを目
指して頑張りましょう.
3
第2章
LATEX で文書を作ってみましょか
ここからはいよいよ LATEX による文書作成の練習です.美しいレイアウトの文書を作るためには
地道なトレーニングが必要です.
「千里の道も一歩から」の言葉通り,奥の深い LATEX の世界への
第一歩を踏み出して下さい.
2.1
まずは小手調べ
それでは早速 LATEX の文書を作ってみましょう.プログラム言語を学ぶ際には,一番最初に
「Hello,World! 」と表示させるプログラムからはじめることが多いので,ここではそれを真似して
みることにします.
まず,計算機のターミナルから何か適当なテキストエディタを立ち上げましょう.ま,普通は
emacs でしょうね.次に,エディタを使って以下のように書き込んで下さい.
練習文書
\documentclass{jarticle}
\begin{document}
Hello,World!
\end{document}
書き終ったら,この原稿を test.tex という名前のファイルに保存しましょう.そして,ターミナ
ルで
>platex test.tex
と入力してみて下さい.なにやらターミナルに文字がごちゃごちゃと表示された後にプロンプト
が出れば,LATEX による文書整形が終ったということです.早速どんな文書が出来たのか見てみる
ことにしましょう.コンパイルされて出来上がった文書は,test.dvi というファイルに保存され
ているはずです.このファイルを xdvi というソフトで見てみます.ターミナルで
>xdvi test.dvi
と入力して下さい.あなたが作った文書が紙に印刷されるときと同じ姿で表示されるはずです.ちゃ
んと,
「Hello,World! 」って出てますか?
なにが起こったのかを簡単に説明しましょう.貴方が作った test.tex というファイルは platex
というコマンドにより,文書を整形するという作業が行なわれ,出来上がった整形済み文書は dvi
4
という形式で保存されます.この作業を,プログラミングにおいてソースファイルから実行ファイ
ルを作る作業になぞらえて「コンパイル」と読んでいます.dvi 形式のファイルはそのままでは印
刷できず,実際に印刷をする際には PostScript 形式に変換しないといけないのですが,たかだか
「Hello,World! 」としか書いてないものを印刷するのは紙の無駄使いですから,印刷についてはも
う少し後で触れます.
ところで,platex test.tex と入力した際に,途中で「?」マークが出てしまってプロンプトが
出なくなった人はいますか? これは,LATEX がコンパイルを実行しようとした際に,文書ファイ
ル中に何らかの問題があってコンパイルが中断してしまったためです.原因となった問題点などが
合わせて示されているのですが,今の場合はおそらく記入ミスが原因でしょう.
「?」のあとに,q
を入力して一旦コンパイルを強制終了し,上の例と自分の書いたものとをもう一度よく見比べて
下さい.このように,LATEX では文書ファイルに何らかの問題がある場合,コンパイルが途中で中
断されエラーメッセージが表示されます.その場合には,エラーメッセージの内容を確かめて必要
な修正を行なうようにして下さい.最初のうちは頻繁にエラーが出るかも知れませんが,エラー
が出るたびにそれを修正することで正しい使用方法を見につけることも出来るので,エラーが出
たら地道に対処して下さい.
2.2
\documentclass って何やねん?
さてさて,上の文書ファイルで「Hello,World! 」と表示させるためだけになにやらごちゃごちゃ
と横文字を書いていましたが,あれは一体なんなのでしょう.あれは,LATEX に文書整形をさせる
ために必要な命令語たちなのです.LATEX ではたくさんの命令語を使用しますが,すべての命令語
は必ず頭に「\」(バックスラッシュ)がついています(なお一部日本語版の場合は代わりに「=
Y」
を使用する場合もあります).ですから,
「\」がついている部分はすべて命令語だと思って下さい.
LATEX の方も,
「\」のついている部分はいつでも命令語だとして認識します.さて,それでは先ほ
どの例文の中身を少しずつ解剖してみることにしましょう.
一行目の\documentclass{jarticle} という部分は,文書の種類を指示する命令です.古い LATEX
のテキストを使っている人は同じ部分が\documentstyle{jarticle} と書かれているかと思います
が,基本的には同じことです.最新の pLATEX2ε からは\documentstyle ではなく\documentclass
と表記するようになったのです.詳しいことをいうと,若干働きも変わってはいるのですがここ
では触れないでおきましょう.\documentclass のあとの{jarticle} というのが文書の種類を指
定する部分です.文書の種類には,一般文書用の jarticle,レポート作成用の jreport,書籍作
成用の jbook などがあります.皆さんは最初のうちは jarticle を利用するのがよいでしょう.レ
ポートもこれで十分に書けます.
5
2.3
2.3.1
\begin に始まり \end に終る
「環境」を大切に
\documentclass の意味はなんとなく分かったので次に進みましょう.
「Hello,World! 」をはさむ
ようにして,\begin{document} ,\end{document} という 2 つの命令語が書いてありましたね.
どうやら,なにかの始まりと終りを示しているらしいことは想像できますが,一体何が始まると
いうのでしょう.
あの 2 つの命令語は,本文が書いてある領域を示しています.\begin{document} から\end{document}
の間に書いてある部分が本文であると認識されるのです.LATEX には,このように\begin{...} と
\end{...}とで囲んで使用する命令が多数あり,こうした命令により指定される領域を「環境」と
読んでいます.すなわち,LATEX 文書の本文は document という環境の中に書かれていなければな
らないのです.環境命令(\begin 型命令ともいいます)は非常にたくさんありますのでここです
べてに触れることは避けますが,文書のスタイルを制御するのによく用いられるものをいくつか
紹介します.
2.3.2
みーんな真ん中へ
まずは,文章を紙の中央に配置する center 環境です.
\begin{center}
真中へ書くぞ!
\end{center}
というふうに書くと,
真中へ書くぞ!
と,文章が全体のちょうど中央に配置されます.タイトルや表題を書く時などに便利です.ただ
し,center 環境の中で途中改行すると,改行された残りの文書も中央に配置されるため,場合に
よっては,
途中で改行指示を入力してしまうと
残りの文字が中央揃え
のようにバランスの悪い配置になってしまう恐れもあるので,center 環境では改行には注意して
下さい.
2.3.3
右寄れ,右ーっ!
文章を右へ寄せるための環境は,flushright 環境です.
6
\begin{flushright}
右に寄せなさい
\end{flushright}
というふうに書けば,
右に寄せなさい.
といった具合に右に文書が寄せられます.これも,改行に注意しないと思わぬことが起こります
から,気をつけて下さい.
2.3.4
左寄れ,左ーっ!
文書を左に寄せるためには….早い話,右でやったことを左にすればいいだけ.つまり,flushleft
環境で同じようにすればいい訳ですから,以下説明は省略.
2.3.5
とにかく順番に並べましょ
箇条書きをするための環境もいくつかそろっているのですが,ここでは 2 つばかり紹介しましょう.
まずは,項目毎に同じ記号をつけて分類する itemize 環境です.使い方は,以下のとおりで,
\begin{itemize}
\item ここに 1 つ目の項目
\item 次に 2 つ目の項目
\end{itemize}
というように項目ごとに\item という命令語を先頭につけます.これをコンパイルすると,
• ここに 1 つ目の項目
• 次に 2 つ目の項目
のように箇条書きが出来上がります.
もう一つ,項目ごとに順番に番号をつける場合に使用するのが enumerate 環境です.上の場合
と同じように,
\begin{enumerate}
\item ここに 1 つ目の項目
\item 次に 2 つ目の項目
\end{enumerate}
としてコンパイルすると,
1. ここに 1 つ目の項目
2. 次に 2 つ目の項目
7
となり,各項目ごとに番号が付されます.
箇条書き用の環境としては,他に description というのがありますが,初心者のうちはあまり
使わないでしょうから,ここでは触れないでおきます.
2.4
2.4.1
も少し使いこなしてみよか
フォントとサイズ
さて,では次の練習文書を作ってみましょう.以下のような原稿を作って,test2.tex という
名前ででも保存しておいて下さい(お気づきかとは思いますが,練習の際のファイル名は皆さん
のご自由につけて構いませんよ)1 .
練習文書
\documentclass{jarticle}
\begin{document}
\begin{center}
Hello,World! {\bf Hello,World}
{\large Hello,World!}
{\Large\it Hello,World!}
{\LARGE こんにちは,世界!}
\end{center}
\end{document}
{\huge\bf こんにちは,世界!}
なお,スペースの広さや空白行も,ほぼ例と同じになるようにして下さい.では,この文書をコ
ンパイルしてみます.結果はどうなるでしょうか?
Hello,World! Hello,World! Hello,World!
Hello,World!
こんにちは,世界! こんにちは,世界!
どうですか,みなさんの予想とは結果がずいぶん違ってるのではないでしょうか?改行とかス
ペースの幅が入力した文書のとおりじゃないですよね.それが何故なのかの種明かしは後にまわ
すとして,ひとまずたくさん出てきた新しい命令語の説明をしましょう.
ここで使用した環境指定以外のコマンドは,すべて文字(フォント)の種類や大きさを指定す
るためのものです.それぞれ順番にみてみましょう.まず,フォントの大きさを指定するコマンド
には 2 つのタイプがあります.単純にいえば,大きくするか小さくするかの違いですが,大きく
\LARGE,\huge,\Huge がありこの
するための命令には,\large ,\Large,
順番に大きくなります.反対に小さくする命令は,\small,\footnotesize ,\scriptsize ,\tiny があり
ます.それぞれのコマンドは,そのコマンドで指定されるサイズで書いてあるので,だいたいの
見ための印象は分かってもらえるのではないでしょうか.ちなみに,初期設定のサイズに戻すた
めのコマンドは,\normalsize です.
1
ただ,LATEX
のソースファイルは,原則として拡張子を .tex とするのがルールです.
8
特に指定しない場合は,通常の基本フォントサイズ(normalsize の値)は 10pt(10 ポイント)
になります.このほかに,基本フォントサイズを 11pt や 12pt にすることも可能ですが,その場
合は,ソースファイルに特別な指示コマンドの入力が必要になりますので,ここでは扱いません.
なお,基本フォントサイズに関わらず,\Huge コマンドで出力される最大のサイズは 25pt です.
次にフォントの種類を指定するコマンドについてです.英文用のフォントにはたくさんの種類
があり,それぞれに使用する場面が結構決まっていたりします.あまり拘らない人は結構むちゃく
ちゃに使ったりしますが,美しい文書作成を目指す場合は少しそのあたりにも気を配ってみて下
さい.で,使用できるフォントの種類ですが,\rm (roman),\bf (bold face),\it (italic),\sl
(slanted),\sf (san serif),\sc (Small Caps),\tt (type writer) とそろっています.それぞ
れコマンドのあとの( )内にそれぞれの書体で書体名が表示されています.デフォルトの書体は
roman です.\sc は大文字だけしか出力できない特殊なフォントで,{\sc Small Caps}と入力す
ると “Small Caps” のように表示されます.本テキスト中でコマンドや文書の入力例の表示に用
いているのは,type writer 書体です.
英文用のフォントはこのように充実しているのですが,和文用には 2 種類しか用意されておら
ず,\rm で “明朝体”,\bf で “ゴシック体” が表示されるだけです.これら以外の和文用フォント
を使用したい場合には自作するなりの努力が必要になりますが,実用文書を書くにあたっては実
際はこの 2 種類で十分に事が足ります.あまりいろんなフォントを多用すると文書の品格が失わ
れる恐れもあります.なお,デフォルトはもちろん明朝体です.
ところで,上の練習文書では “Hello,World!” がやたらに { } で囲まれていましたが,あれは何
故なのでしょう.LATEX ではあるコマンドが指示されると,そのコマンドは入力された環境の中で
は以後ずっと有効になってしまいます.つまり,
和文用のフォントには明朝体と\large\bf ゴシック体の 2 種類があります
と書くと,実際には
和文用のフォントには明朝体とゴシック体の 2 種類があります
と表示されてしまうのです.著者は「ゴシック体」の部分だけ書体とサイズを変えたかったのに,
{ } による範囲指定をしなかったために,コマンド以降の文字がすべて変わってしまった訳です.
ですから,特定の単語だけフォントの書体やサイズを変えたい場合は { } で囲む必要があります.
和文用のフォントには明朝体と{\large\bf ゴシック体}の 2 種類があります
とすれば,ちゃーんと
和文用のフォントには明朝体とゴシック体の 2 種類があります
と表示されます.この時よくやる間違いですが,半角の “{ }” と全角の “{ }” は全く別のものと
して扱われますので,コマンドを使用する際には間違わずに半角の “{ }” を使用して下さい.
(ここまで長々と説明しておいて何ですが,実は pLATEX2ε からはフォントの指定の仕方が大幅に
改められた為,市販のテキストには全く異なるフォント指定コマンドが載っているかもしれませ
9
ん.けれども,旧来の LATEX で使用されていたコマンドでも何の問題もなく実行できるので,こ
こでは簡単な方の旧コマンドを使うことにしました.)
2.4.2
スペースと改行
さて,先ほどの練習文書でスペースや改行が,入力したものと出力結果とで全く違っていた理
由について説明することにしましょう.
まず,LATEX でのスペースの扱い方についてですが,LATEX では半角スペースと全角スペースを
区別します.といっても,実際に皆さんが両者を区別するのは難しいのですが,UNIX もしくは
Linux 上で動くテキストエディタでは日本語入力モードでもスペースキーを 1 回叩くと半角スペー
スが 1 つ入力されるので全角スペースを入力することはまずないでしょう(Windows だと話は変
わりますよ).で,LATEX では 2 個以上の半角スペースは,いくつ並べようと空白としては認識さ
れず,数に関わらず半角スペース 1 個分しか出力されません.そのため,先ほどの練習文書では
たくさんスペースを開けたはずの場所でも,実際には半角スペース 1 個分しか空白が入っていな
かったのです.
では,
「せやけどもっと空白を開けたいんや」という場合はどうすれば良いのでしょう.それに
は,
「空白を作る命令」を使用することになります.空白を作る命令としては,半角スペース 1 個分
の空白を出力する\や~がよく使われます.ただ,非常に長い空白を作る場合に,これらのコマン
ドを~~~~~~~~~などと並べるのは面倒でもあり原稿の見た目にもスマートではありません.そうい
うときには,\hspace というコマンドが利用されます.\hspace{5cm} とすれば,指示した場所に
5cm の空白が出力されます.長さの単位には cm の他に,mm,zw(全角 1 文字の大きさが 1zw),
pt(活字の大きさに使用するポイントという単位)などを使用して指定することも可能です.
次に,改行についてですが,これも LATEX では特殊なルールを採用してます.たとえば,
ここで改行するぞ.
ここからは新しい行だ.
というつもりで入力しても,実際には
ここで改行するぞ.ここからは新しい行だ.
と表示され,まったく改行なんてされていません.
「ほな,どないしたら改行できるんや?」とおっ
しゃる方,まあ焦らないで下さい.これからちゃんとお話しますから.
さて,今ここで行が変わりましたね.どうやって改行したのでしょう.では,種明かしにこの部
分の原稿を少しお見せしましょう.先ほどの段落からこの段落にかけての部分は,実際には
「ほな,どないしたら改行できるんや?」とおっしゃる方,まあ焦らないで,
これからちゃんとお話しますから.
さて,今ここで行が変わりましたね.どうやって改行したのでしょう.
と書かれているのです.さあ,改行の秘密はどこにあるのか分かりましたか.
「どこにも改行のコ
10
マンドらしいことなんか書いてへんぞ」という方,もう一度よーく見て下さいね,何か気がつき
ませんか? そう,空白行です.これが改行の秘密だったのです.LATEX では空白行が存在すると,
「そこで改行して新しい段落を始める」というルールなのです.したがって,
「さて」の前で空白行
を一つ入れると,改行をした上で最初の文字を 1 字分字下げして新たな段落とするのです.
「改行はしたいけど,新しい段落を始める訳やないんや」という場合ももちろんあるでしょう.
そういう場合には,“\\” というコマンドを使用することで強制的に改行をさせることができます.
この行の後で改行したい場合\\
このように改行されます
と書いた原稿は,
この行の後で改行したい場合
このように改行されます
のようにちゃんと改行がされている上に,字下げもされてはいません.
さて,スペースと改行の扱い方について分かって頂けましたでしょうか?スペースの扱い方に
ついては慣れるまでしばらく時間が掛かるかもしれませんし,ある程度慣れたユーザーでもなか
なか思い通りにはスペースを制御するのは難しいのですが,果敢に挑戦してみて下さい.
ちなみに,ページを改めたい時にはどうすれば良いかですが,ページを強制的に改めたいとい
う場合には,ページを変えたい部分に,
\clearpage
というコマンドを入力することで,自動的にその場所でページが変わります.
2.5
章と節
きちんとした文書や大型のレポートを書く場合には,章や節で細かい区切りを作る必要があり
ます.LATEX ではこうした文書の区切りは,それぞれ冒頭にコマンドにより指示することで作成
されます.章を指定するコマンドは\chapter,節を指定するのは\section,節より更に小さいサ
イズのコンテンツが必要になるときは\subsection というコマンドをそれぞれ使用します.ただ
し,文書の documentclass に article や jarticle を指定した場合には,\chapter は使えませ
ん.その代わりに,これらのクラスでは\subsubsection というコマンドを使うことができます.
具体的な入力例として,この章の原稿の一番始めの部分を見てみましょう.
\chapter{\LaTeX で文書を作ってみましょか}
のように入力すると,実際にはこの章の冒頭のように,
第2章
LATEX で文書を作ってみましょか
11
という章見出しが付けられます.\chapter や\section では,コマンドに続けて { } の中に見出
しの内容を入力します.また,これらのコマンドを使用する際に,番号についての指示は一切必
要ありません.コンパイルの際に LATEX がそのコマンドが何番目に出てきたのかを判別し,自動
的に番号を付けてくれるからです.
さて,ここまでの説明で簡単な文書を書くのに必要なコマンドはほぼ登場しました.普通の文
書は,ここまでで習得したコマンドを駆使すればほぼ問題なく作成できるはずです.次のページ
にある章末問題に挑戦してみて下さい.次からはいよいよ LATEX の真骨頂ともいえる数式の入力
について学んでいくことにしましょう.
章末問題
(解答は巻末)
以下のような出力の得られる原稿ファイルを作成せよ.
LATEX のすすめ
東北大学大学院理学研究科附属
ニュートリノ科学研究センター
都築夏人
LATEX はとても便利な組版ソフトです。私は、LATEX のすばらしさを一人でも多くの方に知っ
てもらいたいと思っているので、これからも LATEX の啓蒙のために全身全霊を尽くして邁進
します。
みなさんも、是非この史上最強の組版ソフトである LATEX を利用しましょう。
*LATEX と表示させるには\LaTeX というコマンドを入力します。
12
第3章
数式を使いこなしてみまっせ
ここからは,いよいよ理系学生にとっては必須課題ともいえる,LATEX による数式の入力を練習し
ます.内容的にも結構ハードになってきますから,しっかりと食いついてきて下さいね.
3.1
数式は簡単やないで
いきなりこんなことを言ってしまうと嫌がられるかも知れませんが,LATEX での数式入力は決し
て簡単ではありません.相当な訓練を経て慣れないと,スマートに数式の入力をするのは難しい
でしょう.LATEX での数式入力が簡単ではない原因は,
「すべてをコマンドで指定する」ためであ
ると言えます.Word などに附属している数式編集用ソフトは,実際の数式を目で見ながら組み立
てていくことができ,かなりビジュアル化されています.ま,その分仕上がった数式はあまり美し
いとは言えないんですけどね.これに対して,LATEX では,美しい数式組版が得られるのは確かな
のですが,その分,編集には若干の技術が必要になります.
ごちゃごちゃと話をしても実際にどれくらい面倒臭いのか見当がつかない人が多いでしょうか
ら,実例をお見せしましょう.例えば,以下のような Fourier 変換の式を書くとします.
1
g(k) = √
2π
∞
−∞
e−ikx f (x) dx
この式を LATEX で表示させるためには,
$$g(k) = \frac{1}{\sqrt{2\pi}} \int^\infty_{-\infty} e^{-ikx}f(x) \,dx$$
と入力しなければならないのです.これを見ると,
「げっ…」と思うかも知れませんが,これが LATEX
の現実なのです.何が書いてあるのかさっぱり分からないですよね.これら一つ一つが,
「分数を
表示しろ」とか「積分記号を書け」というコマンドなのです.今から皆さんにはこれらのコマン
ドを使いこなしてもらいます.ただ,これらのコマンドのすべてを覚える必要はありません(そ
りゃもちろん,覚えた方が良いのは良いですが).コマンドはそこらにある市販のテキストにいっ
ぱい載ってますから.
ま,何はともあれ,簡単な数式の書き方から勉強していきましょう.
3.2
数式と本文の違いを知ってもらわんとな
さてさて,実際のコマンドの話の前に少し事前レッスンをしておきましょう.というのも,数式
と本文とでは実際のところ何が異なるのかについて,ある程度知っておいてもらいたいからです.
これを知っているのと知らないのとでは,かなり大きな差があるんです.
13
数式と本文との最大の相違点は「フォントが違う」ということでしょう.皆さんはこれまで,た
くさんの教科書や論文を見てきたと思いますが,そこで使用されているフォントの違いにまで目
を向けていたでしょうか.実は,数式に使用されるフォントは,普通の文書用のフォントとは別な
種類のものなんです.知ってました? 例えば,下の 2 つの方程式を見比べてみて下さい.
y = ax2 + bx + c
y = ax2 + bx + c
いわずと知れた 2 次関数の一般形の式ですが,2 つのうちのどちらか一方にはなんだか違和感を感
じませんか? 全員が違和感を感じるとも限らないので,少し質問を変えて,
「どちらの方が “数式っ
ぽい” 感じがしますか」,と聞いたらどうでしょうか.おそらく,大半の人は下の方が数式らしく
感じるのではないでしょうか.上の式では一般の文書に使用されるローマンフォントで数式を書
いているのですが,下の方は数式用のフォントである数式イタリックで書かれているのです.
もちろん皆さんは今まで,教科書や論文のフォントなんか気にしなくても数学や物理の勉強は
出来ましたし,今後もそうでしょう.けれども,LATEX による組版をする際には,このことを少し
考えてもらわないと,なんだかとっても不格好な文書を世に出すことになってしまいます.もっと
も,そんなことに拘らず書体が入り乱れている文書を書いている人も中にはいますが,そういう
文書は見ていて不格好な上に,何故だか説得力まで失せて見えてしまうのです.ですから,些細
なことかも知れませんが,フォントに関しては気くばりを欠かさないように心掛けてもらいたい
のです.
3.3
どないしたら数式が書けるんやろ?
数式を書くには,数式の部分だけを専用の環境の中で記述します.このとき気をつけてもらい
たいのは,数式環境の中では原則として数式しか書くことは出来ないということです.普通の本
文を書いてしまうとコンパイルのエラーが発生したり,とんでもない書体の文書が出力されたり
と面倒なことが起こります.ひとまず今は,数式環境の中では数式だけを書くようにして下さい.
それでは,これから様々な数式環境について勉強していきましょう.
なお,すべての数式環境においては半角スペースはスペースとして認知されないので,スペー
スを表示したいときには強制的にスペースを出力するコマンド (2.4.2 で勉強しました) を入力する
必要があります.
3.3.1
本文の中に数式を入れたいなぁ
まず,本文の中に y = x と書きたい場合は,
本文の中に$y=x$と書きたい
というように,数式の部分の前後を$で囲みます.このように$で囲むことによって y = x の部分
14
は数式環境の中で記述されたことになるのですが,この環境は\begin{...} ∼ \end{...}では指
定されていない特殊な例なので,ちょっと注目しておいて下さい.
では,本文の中ではなくて,
y=x
のように,行を変えて文章の中央に数式を配置するようにしたい場合にはどうすればよいのでしょ
う.これには、いろんな方法があるので,少し細かく見ていきます.
3.3.2
数式のとこで改行したいんやけど
本文の記述とは別に,数式だけを独立させて
y=x
のように書きたい場合には,
$$y=x$$
のように数式部分の前後を$$で囲みます.
これとは別に,
\[ y=x \]
のように\[ と\] で囲んでも全く同じ効果があるのですが,$$の方が何かと便利なので以後この
テキストでは$$で囲むのを標準とします.
3.3.3
数式に番号を付けられへんかなぁ
教科書や論文なんかでは,
−
h̄2 d2 ψ
= Eψ
2m dx2
(3.1)
のように数式ごとに番号が付されているのをよく見かけますが,このように数式に番号をつけた
いときには equation という環境を用います.
\begin{equation}
y=x
\end{equation}
と書くことで,式に番号がつきます.ところで,皆さん上の記入例では式の番号に関して何も指
定されていないのにお気づきですか? 例えば,今書いた数式が第 2 章で 2 番目に出てきた数式な
らば「 (2.2) という指定をせんとあかんのやないの?」という疑問があるかもしれません.しかし,
そんな心配は LATEX には無用です.実は,番号付けはコンパイルの際に LATEX が自動的にやって
しまってくれるのです.ですから,equation 環境の中にさえ書いておけば,後から数式を増やそ
15
うが減らそうが番号づけに関しては何も心配する必要はないということなのです.こんなところ
にも LATEX の実力が見えます.
3.3.4
式変形って書けるんやろか
さて,実際にレポートなどを書くにあたっては,ある式について式変形をしていく課程を示す
必要のある場合も出てくるでしょう.この場合,= の記号が上から下まで揃った位置に表示され
ると,見た目に非常に奇麗に映ります.たとえば,こんな感じに.
[x̂ , p̂]ψ = (x̂p̂ − p̂x̂)ψ
d
d
x · ih̄
=
− ih̄
·x ψ
dx
dx
= ih̄ψ
(3.2)
(3.3)
(3.4)
いかがですか? ちゃーんと = がそろってますよね.このように式変形をきれいに表示するための
環境が,eqnarray 環境です.
\begin{eqnarray}
y &=& (x-1)^2\\
&=& x^2 -2x +1
\end{eqnarray}
のように,そろえたい部分を& で囲むことで複数の行にわたっての式変形もきれいに表示するこ
とができます.行末にある\\は,前にも出てきた改行の指示です.eqnarray 環境では数式に番号
が付されますが,番号をつけたくない場合は eqnarray*を使用してください.
3.4
3.4.1
ほないっぺん書いてみよか
まずは基本からやね
では,ここからは実際に数式を書いてみることにしましょう.例によって,一度練習文書の通り
入力して,出力結果と比べることでコマンドを覚えていくことにしましょう.今度は,下の練習
文書を入力してみてください.
練習文書
\documentclass{jarticle}
\begin{document}
$$a+b=c~~ ,~~ x-y=z~~ ,~~ 4\times 4=16~~ ,~~ 8\div 2=4$$
$$\frac{4}{3}~~ ,~~ \sqrt{3}~~ ,~~ x^2~~ ,~~ x_i$$
$$\int^1_0 f(x) dx~~ ,~~ \sum^n_{k=1} a_k$$
\end{document}
入力できたら test3.tex に保存して(くどいようですがファイル名は任意です)コンパイルして
16
みましょう.xdvi で表示すると次のような数式が表れるはずです.
a + b = c , x − y = z , 4 × 4 = 16 , 8 ÷ 2 = 4
√
4
,
3 , x2 , xi
3
1
0
f (x)dx ,
n
ak
k=1
入力したコマンドと出力結果とを見比べることで,ある程度の予想はつくかと思いますが,詳し
く見ていくことにしましょう.
3.4.2
四則演算
原稿の 1 行目はすべて四則演算に関する記述です.見てお分かりのように,加減についてはご
く普通に “+” と “−” の記号を使って書けばよいことがわかります.これに対し,乗除については
それぞれ “×” と “÷” の記号を出力するための専用コマンドを使っています.“×” と “÷” を表示
するためのコマンドはそれぞれ,\times と\div です.加減に比べて乗除の方はずいぶん面倒くさ
いように感じるかもしれませんが,大学の数学や物理では,乗除の演算を記述する機会はあまり
なく,これらの記号を使用する頻度もそれほど高くはないのでそんなに問題はないでしょう.
3.4.3
分数と根号
2 行目の前半には分数と平方根が記述されています.これらは,コマンドの後に要素を引数の形
で与えて表示させるという点で共通しています.
まず,分数を表示させるコマンドは\frac{#1}{#2} です.分子と分母はそれぞれ { } で囲んで引
数とします.1 つ目の#1 の部分に分子を,2 つ目の#2 の部分に分母をそれぞれ指定します.順番
を間違えないように気をつけてください.
1
n+
1
n
のように連分数を表示させたいときは,
$$\frac{1}{n+\frac{1}{n}}$$
と,\frac の引数の中に\frac を与えれば可能です.なお分数については,本文中では 1/2 のよう
1
「どうしても って出したいんや!」という人は,
に “ / ” を使って表示するのが推奨されています.
2
自分で頑張って調べてみてください.ここでちゃんと書けているということは,方法はあるって
ことですから (そんなに難しくもないですよ).
次に根号ですが,根号を表示するコマンドは\sqrt{#1}です.このコマンドも,引数#1 で与え
られた要素が根号の中に入ります.n 乗根を表示したい場合は,
17
\sqrt[n]{x}
とすれば,
√
n
x
のように表示されます.
分数と根号が混在した,
1
1+ ,
n
√
3
2
なども,
$$\sqrt{1+\frac{1}{n}}~,~~\frac{\sqrt{3}}{2}$$
のように入力することで書くことができます.
3.4.4
上つきと下つき
さて,累乗や整数値の順番,あるいはテンソルなどを表示するには上つき,下つきの文字が必
要です.これらを表示させるためにはそれぞれ^と_を使用します.先ほどの練習文書の 2 行目の
後半にあったように,$x^2,x_i$と入力すれば,
「x2 , xi 」と表示されます.ここで注意してほしい
「eix 」と表示させよう
のは,^や_はどちらも直後の 1 文字しか認識しないという点です.例えば,
として,$e^ix$と入力しても,実際には「ei x」となってしまうのです.複数の文字を上つきや下
つきに表示させたいときは,{ } で囲んで
$e^{ix}~,~~f_{ij}$
と入力すれば,
eix , fij
のように望んだ出力が得られるはずです.
3.4.5
積分と総和
積分と総和の表示が「基礎的な」事柄かどうかは人によって捉え方が違うでしょうが,物理系
の学生ならかなり頻繁に書く必要があるはずなので,その頻度から考えて「基礎的な」ことに含
みました.
まず,積分記号を表示するコマンドは\int です.不定積分の場合であれば,
$$\int f(x)\,dx$$
と入力することで,
18
f (x) dx
のように表示されます.f(x) と dx の間に「\,」と入力されていますが,これは全角サイズの 3/18
の大きさのスペースを出力させるコマンドで,f (x) と dx の間隔を適度な幅に調整するために入
れています.積分区間を指定して定積分を書きたい場合は,積分の始点と終点をそれぞれ下つき,
上つきの要領で指定すれば可能です.
$$\int_n^{n+1} f(x)\,dx$$
とすれば,
n+1
n
f (x) dx
のように表示されます.複数の文字をつけたい時は
{ } で囲むのを忘れないようにして下さい.な
お,周回積分の記号
は,\oint で表示できます.
総和の記号は,コマンド\sum で表示されます.これも和をとる範囲を指定しない場合は,
$$\sum a_k$$
とすれば,
ak
となります.和の範囲を指定する場合は,積分と同じく上つき下つきを利用して,
$$\sum_{k=1}^n a_k$$
と入力すれば,
n
ak
k=1
と表示できます.
3.5
3.5.1
もちょっと高度なことやってみよか
ギリシャ文字
数学や物理ではギリシャ文字を頻繁に使用しますが,LATEX ではギリシャ文字の表示はすべてコマ
ンドによる指示で行います.たとえば,α,β ,γ と表示したければ,それぞれ$\alpha$,$\beta$,
19
$\gamma$と入力します.ここで気をつけてもらいたいのは,ギリシャ文字は数式環境の中でのみ
表示できるので,本文中に “α” と書きたい場合は必ず$で囲むようにして下さい.でないと,コン
パイルの際にエラーとなります.それぞれの文字ごとのコマンドについてはページ数が増えてし
まうためにここには掲載しませんので,市販のテキストを参考にしてください.
ちなみに,ギリシャ文字には大文字が存在しますが,これらについてはコマンドの頭文字を大
文字にすることで表示できます.たとえば,Γ と書きたければ,$\Gamma$と入力します.ただし,
半分くらいはアルファベットの大文字と同じなので,特にコマンドが用意されてはいません.
3.5.2
特殊記号
特殊記号と一口に言っても,かなりの数があるとは思いますが,とりあえず思いつくままに挙
げて一覧表にしてみました.なお,ここで取り上げるコマンドはほとんど数式環境中でのみ使用
できるものですので,コマンド名を示すときの$は省略しています.
出力記号
コマンド名
出力記号
コマンド名
出力記号
コマンド名
∂
=
≥
\partial
\triangle
\neq
\ge
h̄
∞
∼
\hbar
\infty
\sim
\ll
∇
∝
≤
\nabla
\propto
\le
\gg
これ以外にもたくさんの特殊記号を表示できますが,それらのコマンドについては市販の文献
を参考にしてください.なお,不等号の記号 < と > については,直接<や>を入力すれば表示でき
ます.
3.5.3
文字で表示する関数
三角関数や対数関数など,文字で表す関数はたくさんありますが,これらを表示させようとして,
$$sin\theta, logx, expx$$
と入力すると,
sinθ, logx, expx
のように表示されます.見ていてなんだか変な感じがしませんか?
「別に変やないで」という方は
それでも構いませんが,“美しい組版” の考えからいくと,この表示はあまりおすすめできません.
なぜこの表示が何となくおかしく感じるのかというと,sin や log といった関数名までが数式イタ
リック書体で表示されてしまっているからなのです.ほんとうはこれらの関数名は,すべてロー
マン書体で表記されなければなりません.
そこで,LATEX では数式環境中であってもこれらの関数名についてはローマン書体で表示できる
ように,コマンドが用意されています.先ほどの表示例の場合,
20
$$\sin\theta, \log x, \exp x$$
と入力すれば,
sin θ, log x, exp x
のように整った表示が得られるのです.このような文字関数コマンドは三角関数関係 (cos,arccos,
tanh など) を中心にいくつかあるので,文献を参考にしながらうまく使ってください.
なお,ベクトル解析に登場する “div,grad,rot” もすべてローマン書体で表示しなければなら
ないのですが,これらについてはコマンドが用意されていないので,
gradφ
と表示したい場合には,
${\rm grad}\phi$
のように,数式環境中で強制的にローマン書体にする指示を使って入力しなければなりません.
3.5.4
かっこ (括弧)
LATEX の数式環境では,( ) や [ ] のような左右で一対になったものを「括弧類」と呼んで扱っ
ています.“ | ” も括弧類に含まれます.なぜかというと,x の絶対値を表示するときには |x|って
書きますよね.つまり,括弧と似たような使われ方をするからです.
括弧類の入力についてですが,( ) や [ ] を表示する場合は,普通に
$$(x) [x]$$
と入力するだけです.{ } の場合は,
$$\{ x \}$$
としなければなりません.{ }だけだと,コマンドへの引数やコマンドの有効範囲の指定とみなさ
れてしまうからです.
量子力学のブラケット表示に使用する「
」の括弧は,一般の記号には用意されていません.
これらについては,不等号を使って
$<\phi|\psi>$
と入力すると,
< φ|ψ >
21
のように表示されてしまい,見た目のバランスがあまり良くありません.ブラケットの括弧は(よ
く考えると変な言葉使いですね),コマンド\langle と\rangle を使用するのがよく,それぞれの
コマンドが左括弧と右括弧に対応します.これらを使って先ほどの内積を
$$\langle\phi|\psi\rangle$$
と書き直すと,
φ|ψ
のようにきれいに整ったブラケット表示が得られます.
分数を括弧で囲む場合に,
$$(\frac{p}{2m})$$
と入力すると,出力結果は
p
)
2m
のように分数が括弧からはみ出してしまい,とても不格好です.これを避けるためには,
(
$$\left( \frac{1}{\sqrt{2}} \right)$$
のように,左右の括弧の前にそれぞれ\left と\right というコマンドを書いておきます.そうす
ると,
1
√
2
のように,括弧の大きさがちゃんと中身に対応してくれます.\left と\right は中身の大きさに
合わせて括弧の大きさが最適になるように自動的に調整してくれるコマンドなのです.
l − 1 , m
2
のように表示したいときには,
$$\left| l-\frac{1}{2},m \right\rangle$$
と入力します ( | も括弧扱いですからね).
参考までに言っておきますと,括弧を大きくする必要があるのは中身が分数の時だけとは限り
ません.
f (x) dx
,
ak
といった場合にも括弧を大きくする必要があるので\left と\right が必要になります.
3.5.5
プライム,ベクトル,ハット
次は,文字に装飾記号をつける場合について勉強しましょう.とりあえず,数学でよく登場する
文字装飾といえば,
「プライム,ベクトル,ハット」ではないだろうかと考えて,タイトルをつけ
ました.
22
では早速,まずこの 3 つはどうしたら書けるのか説明しましょう.プライム,ベクトル,ハット
とは「a ,a,â」のことですが,これらはそれぞれ,
$$a’ , \vec{a} , \hat{a}$$
と入力することで得られます.簡単ですよね.
「ȧ,ä,a∗ ,
では,ほかの文字装飾についても見てみましょう.上の 3 つ以外でよく出てくるのは,
a† (「ダガー」と読みます)」などでしょうか.これらは,
$$\dot{a} , \ddot{a} , $a^*$ , a^{\dag}$$
と入力します.
「a∗ ,a† 」については,記号を a に上つきで表示させているだけですね.
ところで,ベクトルの表示の仕方については,高校以来使っている矢印表記「a」以外にも,大
学で習った太字表記「a」というのがありますよね.この太字ベクトルはどうやって表示するので
しょう.それについては,少し話が複雑になるので,セクションを改めてお話することにします.
3.5.6
太字ベクトル
大学ではベクトルの表記が,それまでの矢印表記ではなく太字での表記に変わりましたね.実際
に文書を書く際にも,太字ベクトルで表記したいという場合も多くあるでしょう.ところが,LATEX
では太字ベクトルの表記にはちょいとばかり難があります.早い話,LATEX には太字ベクトルを表
示するコマンドが用意されていないのです.
「太字にしたらええだけなんやから,\bf コマンド使
うだけとちゃうの?」と考えて,
$$\bf x$$
と入力しても,実際には,
x
と表示されてしまいます.これでは,文字が直立書体になってしまっていますが,太字ベクトルの
場合,文字はイタリック (斜体) で表示しなくてはならないのです.
さて,それではどうにも手がないのかというと,実は太字ベクトルを表示できる\boldmath と
いうコマンドがあるにはあります.
「なんや,それなら問題ないやん」と思ってしまうところなん
ですが,実はこの\boldmath 書体は本文中でのみ使用できて,数式環境中では使用できないとい
う厄介者なのです.
「は? ベクトル書くためのコマンドが数式環境で使えんってどういうことやね
ん?」とおっしゃりたい気持はよーく分かります.実際なぜなのかはよく分かりませんが,とにか
く\boldmath は数式環境中では使えないのです.
では,どうすれば数式環境で太字ベクトルを書けるのかというと,数式環境中に本文と同じ表
記をしたいときに使う\mbox というコマンドを利用します (\mbox コマンドは便利な上に頻繁に使
「x」と表示したいときは,
うので覚えておいて下さい).
$\mbox{\boldmath $x$}$
23
と入力するのです.
「面倒くさいなぁ.もっと簡単な方法はなんかないの?」と言いたい方が多いで
しょうが,今のところほかに手はありません.しかし,文書を書いている最中にいちいち上の例
のように入力するのは,あまりに面倒くさい話です.そこで実際には,上の記入例と同じ作用を
するコマンドを自分で定義してそれを使用する場合が多いです.オリジナルコマンドの定義のし
かたについては,改めて別なところでお話しするので,とりあえず今は太字ベクトルの書き方と,
それが非常に面倒くさいことを覚えておいて下さい.
3.6
これで最後やで
3.6.1
行列
そろそろ,みなさんお疲れになってきた頃でしょうか? 数式入力の解説も残り少しですから,最
後まで頑張ってください.最後は,行列と場合分けの表示方法について説明をしますが,まずは
行列から始めましょう.
行列を表示させるための入力方法には何通りかあるのですが,ここでは一番汎用性が高くかつ
簡単と思われる方法を扱うことにします.ここで扱うのは,\matrix というコマンドです.その
まんまのネーミングですね.実際にどのように使うかについては,次の入力例を参考にしてみま
しょう.
$$ A = \left(
\matrix{
x_1 & x_2 & x_3
y_1 & y_2 & y_3
z_1 & z_2 & z_3
\cr
\cr
\cr
}
\right) $$
と入力すると,

x1

A =  y1
z1
x2
y2
z2

x3

y3 
z3
のようなきれいな行列が表示されます.では,入力例を詳しく見てみることにしましょう.
まず,$$で数式環境を始めます.次に行列名 A を入力し,行列を囲む括弧を入れます.\matrix
は,要素を並べるだけで括弧は表示してくれないので,括弧は忘れずに入力してください.その
とき,\left,\right も忘れずに入力しないと,えらい目に遭いますからね.それぞれの要素は
&で区切り,行の最後には改行を指示する\cr を書いてください.このとき,
「改行だから」といっ
て\\を入力してしまわないように気をつけてく下さい.最後に,括弧を閉じて$$で数式環境を終
えれば行列は出来上がりです.括弧の種類は自由に選べますし,
「 | 」にすれば行列式も書けます.
行列の書き方は,要領を掴むまでにちょっと時間がかかるかも知れませんが,慣れてしまえばそ
のうち何行何列の行列だってすらすら書けるようになりますし,行列の入力方法は後で勉強する
表の書き方とも共通している点が多いので,早い段階で習得しておくと便利です.
24
3.6.2
場合分け
場合分けを記述する機会はそれほど多くないかも知れませんが,それでもクロネッカーのデル
タや完全反対称テンソル
ijk
などの説明をする際には場合分け表示が必要ですよね.数式入力の
勉強のラストは,場合分けを記述するための入力方法です.
場合分けの入力には,\cases というコマンドを使用します.入力例は以下の通りです.
$$ \delta_{ij} = \cases{
1 & ($i=j$のとき) \cr
0 & ($i\neq j$のとき) \cr
}$$
このように入力すると,
δij =
1 (i = j のとき)
0 (i =
j のとき)
と,場合分けの表示が出力されます.では,入力方法について説明しましょう.基本的には,行列
のところで使った\matrix の入力方法によく似ています.というか,ほとんど同じですよね.で
すから,見てもらうだけでだいたいの入力のルールは分かってもらえるのではないかと思います.
ところで,ここまで LATEX での数式入力を学んできたみなさんなら,上の入力例を見てどこか
疑問に感じませんか.どこか,これまでの説明と矛盾しているとも思えるようなことをしてませ
んか.
「数式環境の中で日本語を書くのに,\mbox を使ってへん.
」と答えた方は,かなり LATEX を
マスターしてきてますね.その通り,入力例をみると,前後が$$で囲まれて数式環境になってい
るのに「($i=j$のとき)」などの部分が\mbox コマンドを使わずに書かれてますよね.実は,これ
は\cases コマンドの特徴によるものなのです.\cases では,1 列目の要素は数式環境として,2
列目の要素は本文環境としてそれぞれ扱われます.そのため,全体が数式環境の中にあっても,2
列目の要素の入力に際しては\mbox を使わなくても大丈夫なのです.その代わり,
「本文環境とし
て扱われる」ために,数式を書くときは改めて$で囲まないといけないのです.この点については,
よく忘れてしまって数式書体でないまま表示してしまったりしやすいので気をつけてください.
さて,これで数式入力の勉強はひとまず終りです.ここまでの内容をしっかり習得すれば,物
理で必要なほとんどの数式の表記はできるはずです.これより高度な表示は,よほどのことがな
い限り必要が生じないとは思いますが,もしこれまでの内容だけでは対処できないときは,市販
のテキストを見て下さい.また,記号入力のコマンドについては本テキストではごく一部しか掲
載していませんので,他の記号を入力する際にも市販テキストを参考にしてください.
25
章末問題
(解答は巻末)
以下のような出力の得られる原稿ファイルを作成せよ.
(1) 電荷密度を ρ,電流密度ベクトルを j とした場合,Maxwell 方程式は,次のように表される.
∇·E =
1
ρ
ε0
∂B
= 0
∂t
∇·B = 0
1
∂E
=
j
∇×B −
∂t
ε
∇×E+
(2) 点 a で連続な任意の関数 f (x) に対して,
∞
−∞
f (x)δ(x − a) dx = f (a)
を満たす関数を「デルタ関数」という.
(3) Pauli のスピン行列,
σ1 =
は,以下の式を満たす.
0 1
, σ2 =
1 0
0 −i
i 0
, σ3 =
1
0
0
−1
σi σj
σk
,
= iεijk
2
2
2
*太字ベクトルの入力については,\begin{document} の前に,\def\Vec#1{\mbox{\boldmath $#1$}}
と書いておけば,$\Vec{B}$ と入力することで「B 」と表示させることができます (これがオリジ
ナルコマンドの定義なのであるが,詳しい説明は別の章で).
*「·」は,コマンド\cdot を使用する.
*(1) の Maxwell 方程式の表示で,第 2 式から第 4 式にかけての表示のバランスが悪い点について
気になる人もいるかもしれません.これをバランス良い配置に直すことは可能なのですが,技術
的に高度になるのでここでは目を伏せておくことにしましょう.
26
第4章
4.1
本格的な文書作りをしてみるで
もっと複雑なこともしてみたいなぁ
さて,前章までの学習で LATEX での文書作成と数式の入力の基礎についてはほぼ網羅しました.
これまでに皆さんが身につけた知識で,かなり立派なレポートが十分に作れるはずです.けれど
も,さらに中身の充実したレポートや卒論,修論などの論文を書くにあたっては,もっと多くの
技術を駆使してより高度な文書を作成する必要があります.
そこでこの章では,さらに多彩な文書をつくるための様々な技術について習得することを目指
して勉強することにしたいと思います.正直なところをお話ししますと,このテキストに書かれ
ている内容だけでは,公表するに耐えるような立派な文書はまだ作るのは難しいというのが現実
ではあります.みなさんの多くがいずれ直面するであろう修士論文の作成の際には,もっとたく
さんのテクニックが必要になることでしょう.
しかし,一度に多くのことを習得しようとすると,結果的に基礎的な部分までが手薄になり,そ
れはすなわち体裁の整わない文書を乱発することにつながります.ひとまずこのテキストにある
事柄を十分に学んで,確実に自分のものとして使いこなせるようになることの方が大事です.繰
り返しますが,このテキストの内容だけでもそれなりの文書は十分に書けますし,世の中にはこ
のテキスト扱っているレベルのことすら行っていないような雑な LATEX 文書が多く出回っている
のも確かです.
この章では,より高度な文書表現の技法として,脚注,表の作成,図の挿入,参照,参考文献,
オリジナルコマンドの定義を学習します.
4.2
隅っこにでも書いとこか
まずは脚注の書き方からいきましょう.とはいえ,実際には皆さんはそれほど脚注を使うこと
なんてないかもしれません.それでも,いざ使いたいという時には便利でしょうし,使用法もい
たって簡単なので,ここで触れておきましょう.
脚注を表示させるコマンドは\foonote で,脚注に表示させたい内容を { } で囲んで引数として
与えます.
脚注を表示させます\footnote{ このように脚注が出ます.}.
のように入力すると,実際の文書では,
脚注を表示させます1 .
1
このように脚注が出ます.
27
と,\footnote コマンドの直前の文字の右肩に番号がつけられ,そしてこのページの下欄のよう
に脚注が表示されます.
注意する点は,脚注番号は\footnote コマンドが入力されている場所の直前の文字につけられ
るので,どこに\footnote を置くかは十分に検討しておく必要があります.それから,あまりむ
やみに脚注を多用すると,文書の見た目も悪くなる上に,読者の目線が何度も移動するために読
み手に不快感を与える恐れもあります.ですから脚注の使用は必要最低限のところにとどめてお
きましょう.
4.3
表を作れたらええなぁ
という訳で,表作りに挑戦してみましょう.HTML を使って web サイト用の表を作った経験の
る人には,要領が同じなので飲み込みやすいと思います.もちろん,そんな経験がなくても,ルー
ルさえ覚えてしまえば簡単です.
表を作るためには,tabular と tabbing という 2 つの環境が用意されているのですが,tabular
の方が使いやすく応用もしやすいので,ここでは tabular のみを使います.tabbing については,
ほとんど使用する機会はないと思ってもらっていいです.この節では,まず一番簡単な配列だけ
の表からはじめて,次に罫線で囲みや仕切りのある表にステップアップすることにします.
4.3.1
一番簡単な表
とりあえず,一番簡単な表の入力例を見てみることにしましょう.
\begin{center}
\begin{tabular}{cl}
ワープロソフト & 入力しやすいがレイアウトは雑\\
\LaTeX & 入力は面倒だが美しいレイアウト\\
\end{tabular}
\end{center}
のように入力してコンパイルすると,以下のような表が作られます.
ワープロソフト
LATEX
入力しやすいがレイアウトは雑
入力は面倒だが美しいレイアウト
tabular 環境での各コラムごとの要素の入力方法は,3.6.1 で勉強した行列の入力方法によく似
ていますね.要素を&で区切るのは全く同じで,tabular では改行コマンドが\\であることしか違
いません.
tabular 環境を使用する際に重要なのが\begin{tabular} の次に書かれている{cl}という記述
です.これは,要素の配置を指定するためのオプションで,tabular を使用する際には,列の数
に合わせて必ず指定しなければなりません.オプションは以下のように定められています.
c
r
l
:
:
:
要素を中央に配置
要素を右寄せにして配置
要素を左寄せにして配置
28
上の入力例にあった{cl}という記述をした場合には,第 1 列の要素は中央に配置し,第 2 列の要
素は左寄せに配置するよう指示していることになるのです.
4.3.2
縦罫線の入った表
表に縦罫線を書かせることももちろんできます.縦罫線の入力方法は,配置指定のところで罫
線の出力位置を指定するとによる入力となります.ちょっと難しく言うと,罫線を「表の配列の一
つの要素である」と考えることによって入力を指示するのです.と,言葉で説明してもなかなか
分かりづらいかと思うので,これも入力例と出力結果を見比べて見ることにしましょう.
入力例として,先ほどの簡単な表の説明のところで使用したのと同じ表を使ってみます.
\begin{center}
\begin{tabular}{|c|l|}
ワープロソフト & 入力しやすいがレイアウトは雑\\
\LaTeX & 入力は面倒だが美しいレイアウト\\
\end{tabular}
\end{center}
要素の配置を指定する欄に,“ | ” が入力されていますね.この “ | ” が,縦罫線を意味していま
す.つまり,
「左右両端と要素の間にそれぞれ縦罫線を書きなさい」という指示がなされているこ
とになるのです.実際の出力結果は,
ワープロソフト
LATEX
入力しやすいがレイアウトは雑
入力は面倒だが美しいレイアウト
のようになり,ちゃんと縦罫線が表示されていますね.縦罫線は好きなところに書かせることが
できるので,要素の区切りごとに必ず書かなくてはいけないといったルールはありません.
4.3.3
横罫線も書かせてみる
上の表を見ても分かるように,縦罫線だけの書いてある表というのはなんとも落ち着かないも
のです.やはり,きちんとした表にするには横罫線も書きたくなります.横罫線は,\hline とい
うコマンドを使用して書かせることができます.それでは,またしても同じ表を使って,横罫線
の入力例を見てみましょう.
29
\begin{center}
\begin{tabular}{|c|l|}
\hline
ワープロソフト & 入力しやすいがレイアウトは雑\\
\hline
\LaTeX & 入力は面倒だが美しいレイアウト\\
\hline
\end{tabular}
\end{center}
上の入力例のように,横罫線を書かせたい部分に,それぞれ\hline コマンドを指定しおくことで,
実際には下にあるような表を作ることができます.
ワープロソフト
LAT
EX
入力しやすいがレイアウトは雑
入力は面倒だが美しいレイアウト
なんだかそれらしい格好の表ができましたね.
とりあえず,ここまでの内容でそれなりに表の形をしたものは作ることができるようになりま
した.もっと複雑な表,たとえばある列だけは要素の区切りがないようにするとか,罫線の太さ
が異なるといった表を作るにはさらに様々なコマンドを多用しなければならないので,ここでは
これ以上は扱わないことにします.あとは,皆さん自身で自分のニーズに合ったものを作れるよ
うに勉強して下さい.
4.4
図を貼り付けてみよか
LATEX では図や画像を張り付けることも可能ですが,挿入できる画像のフォーマットについて
は,PostScript(PS) もしくは EPS(encapsuled PostScript) のいずれかに限られています2 .PS 画
像を直接挿入する場合には,入力する PS ファイルが複数のページを持つものでないことが条件で
す.扱いやすさを考えると EPS の方が便利ではあるのですが,ファイルサイズが大きくなるとい
う難点もあります.どちらのフォーマットを使用するかはその場でのユーザーの判断次第という
ことになるでしょう.
いずれにせよ,画像の取り込み方法は同じなので,とりあえずここでは testfig.eps という EPS
ファイルを張り付けることを想定してみます.画像を張り付けるには,まず最初,documentclass
指定の次の行に必要なオプションをしてしなければなりません.LATEX2ε では,さまざま機能がパッ
ケージ化されていて,使用するパッケージをオプションとして指定することでそれらの機能が使用で
きるようになっています.画像ファイルを張り付けるためには,graphicx というパッケージ (綴り
に注意) が必要になります.graphicx パッケージ使用の指定は,以下のように\begin{document}
よりも前の部分 (この部分を「プリアンブル」といいます) に書き込んでおきます.
2
Windows 版の pLATEX2ε では,JPEG や GIF などのフォーマットの画像も貼り付けることができるツールもある
ようです
30
\documentclass{article}
\usepackage[dvips]{graphicx}
\begin{document}
\usepackage のすぐ後に指定されている [dvips] の部分は dvi 形式のファイルから PS 形式のファ
イルを作るのに使用するソフトに合わせて指定します.センターでの場合や多くの Linux では dvips
が使われているので,上の入力例の通りに入力すれば大丈夫でしょう.を挿入する場合の入力は,
以下のように行ないます.
\begin{figure}[htp]
\begin{center}
\includegraphics[clip]{testfig.eps}
\end{center}
\end{figure}
\includegraphics というのが (綴りに注意) 画像ファイルを取り込むためのコマンドです.引数
の [clip] というのは,画像の周囲の余分な空白を切り取るための指定で,とりあえずいつでもつ
けておいたほうが無難でしょう.画像ファイルについては,文書ファイルと同じディレクトリにあ
るときはファイル名だけを指示し,別なディレクトリにある場合にはパス表示で指示します.例
えば,画像ファイルが 1 つ上位の graphs/というディレクトリの中に入っているのであれば,
\includegraphics[clip]{../graphs/testfig.eps}
のように指定すれば,次のページのように絵が張り付けられます.画像を張る際に figure という
環境を使用していますが,これは画像に脚注や説明をつけさらに通し番号をつけて管理するため
に必要な環境なのです.画像を張り付ける場合には,原則としてこの figure 環境の中で張り付け
を指定するようにして下さい.
ただ,LATEX の機能として,最適なレイアウトを自動的に判別してしまうというありがたいよう
でいて厄介な機能が備わっているため,実際にはコマンドを入力した位置と画像の出力される位
置とが異なってしまうことが頻繁に起こります.これを回避するには,figure 環境の位置指定オ
プションを駆使して最適な位置に持って来るようにします.実はこの「執筆者の望む最適な位置
に配置する」というのは至難の技で,LATEX での文書作成においてはこの図表の配置が思いの通り
にいかないところに非常に不便を感じることがあります.
4.5
注釈,番号付け,参照も簡単やで
図や表を表示したときには,それらの図表に説明や注釈を付けることが多いでしょう.また,文
書全体を通じて図表に番号を付けられれば編集の上でも便利です.さらに,図表に付けられた番
号を使って文書の途中で参照する機会も多くであるでしょう.このセクションでは,そうした注
31
3
2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
-10
-5
0
5
10
釈,番号付け,参照について,その入力方法を学んでいくことにします.
注釈,番号管理,参照を行なうにはそのための環境が必要です.図の場合には 4.4 で説明した
figure 環境を使い,表の場合には table という環境の中で tabular による表組みを行ないます.
これらの環境を使用することで図や表への番号付けは自動的に行なわれます.さらに,図表に注釈
を表示するには,\caption というコマンドを使用します.また,それらの図表を前後の本文中で引
用する場合には,\label というコマンドを使って参照用のラベルを張り付けます.この\caption
や\label などのコマンドは,figure,table の双方の環境で使用可能です.
入力の具体例として,表と図のそれぞれの場合について見てみましょう.まずは図での入力です.
\begin{figure}
\begin{center}
\includegraphics[clip]{testfig.eps}
\caption{図への注釈入力の練習用画像}
\label{testfig}
\end{center}
\end{figure}
このように入力すると,実際の表示の際には,のように,図にその章の何番目の図であるかを示
す番号が振られるとともに,注釈が付けられます.
さらに,張り付けた画像を本文中で引用したい場合には,
図\ref{testfig} によれば,
のように,\ref コマンドの引数に\label コマンドで指定したラベル名を与えることで,
32
3
2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
-10
-5
0
5
10
図 4.1: 図への注釈入力の練習用画像
図 4.1 によれば,
と,図に付けられている番号が自動的に参照図番号として表示されます.
表の場合には,
\begin{table}
\begin{center}
\begin{tabular}{ccc}
要素 1-1 & 要素 1-2 & 要素 1-3\\
要素 2-1 & 要素 2-2 & 要素 2-3\\
\end{tabular}
\caption{表にも同様に注釈を付けることができます.}
\label{testtab}
\end{center}
\end{table}
と入力すれば,下にあるように表にも番号と注釈がつきます.表を参照するときには,図の場合
と同じように\ref コマンドを使用します.
要素 1-1
要素 2-1
要素 1-2
要素 2-2
要素 1-3
要素 2-3
表 4.1: 表にも同様に注釈を付けることができます.
33
4.6
目次も作ってみよか
目次の作り方はいたって簡単で,何も特別な準備は必要ありません.章や節などの区切りを,
\chapter や\section などのコマンドを使って記述してさえあればそれで十分です.
実際に目次を作るときには,目次を出力させたい箇所に\tableofcontents と入力しておけば,
そこに目次が作られます.図や表の目次を作ることも可能で,その場合には\caption の部分に書
かれている内容が目次のところに書き出されます.それぞれを出力するコマンドは,図の目次が
\listoffigures ,表の目次が\listoftables です.
4.7
参考文献リストも大事やね
ここでは,文書の最後に参考文献のリストを作成する方法と,そのリストにある文献番号を本
文中で参照するための方法を述べます.
参考文献リストは,thebibliography という長い名前の専用環境を使用します.この環境の中で
各文献を\bibitem というコマンドを使って並べていくのですが,この使用法については itemize
とよく似ています.\bibitem では,引数として文献ごとにつけるラベルを指定します.このラベ
ルを使って,本文中で引用する際の番号づけを自動的に行なうようになります.では,具体的な
入力例を見てみましょう.
\begin{thebibliography}
\bibitem{tomonaga}
朝永 振一郎,量子力学 I,II, みすず書房
\bibitem{iwa95}
科学,岩波書店,1995 年 5 月号
\end{thebibliography}
このように入力した上でコンパイルを行なうと,
関連図書
[1 ] 朝永 振一郎,量子力学 I,II, みすず書房
[2 ] 科学,岩波書店,1995 年 5 月号
のような参考文献リストができます.オリジナルの jreport や jarticle スタイルでは,これら
のリストは「関連図書」という名前で掲載されます.これを,
「参考文献」と表示させたい場合に
は,プリアンブルの部分に,
\renewcommand\bibname{ 参考文献}
と書いておけば大丈夫です.
さて,このように参考文献リストが作られている場合,本文中にこれらの文献を引用する際にはリ
スト中の文献番号を表示できるようにしておくと便利です.こうした文献の引用も,thebibliography
34
を使用していればとても簡単に行なうことができます.上の入力例のように,文献ごとに\bibitem
というコマンドを使用し,その引数に文献ごとのラベルを指定しておきます.あとは,本文中の
文献を引用した箇所で\cite というコマンドにこのラベルを引数として与えることで,文献番号
が自動的に表示されます.たとえば,上の入力例の場合だと,
量子力学誕生の歴史的背景は,朝永の著書~\cite{tomonaga} などに詳しくある.
としておけば,本文では,
量子力学誕生の歴史的背景は,朝永の著書 [1] などに詳しくある.
のようにリストでの文献番号が表示されます.\cite コマンドの前に~が入力されていますが,こ
れは文字間のバランスをとるための措置なので,なくても特別問題はないですが,なるべく入力
するように習慣化しておいた方が良いでしょう.
4.8
オリジナルコマンドの定義
最後に,自分だけのオリジナルコマンドを作る際の手順について,説明しておきます.第 3 章
の数式入力のところで,太字ベクトルの入力が大変面倒であるため,専用コマンドを作った方が
便利であると説明しましたが,ここではそうした「自分だけのコマンド」を作ってみます.
新しいコマンドを作るための,コマンドは,\def というコマンドです.\def コマンドの使い
方は,
\def\(新しいコマンド名){(そのコマンドにより実行されるコマンド群)}
です.さらに,\def は引数を必要とするようなコマンドを作ることもできます.
たとえば,第 3 章の章末問題のヒントのところに書いてあった,太字ベクトルを書くためのコ
マンドの定義の仕方を参考にしてみましょう.太字ベクトルを表示させるためのコマンドとして,
\def\Vec#1{\mbox{\boldmath $#1$}}
というのを定義するように指示しましたが,あのコマンドの中身はどういう構造になっていたの
でしょう.まず,“\def\Vec” によって,\Vec という新しいコマンドが定義されます.このコマン
ドの実際の働きは,その後の { } の中に示されている,“\mbox{\boldmath $#1$}” の部分で指定
されます.
“#1” というのは新しく定義したコマンドが引数をもつコマンドであることを示していて,引数
を 1 つ持つ場合にはその引数を#1 とします.この場合だと,コマンド\Vec に与えられた引数#1
が,実際のタスクの$#1$の部分に渡されるということです.
このようにして新しいコマンドを定義することで,複雑な表示やレイアウトを 1 つのコマンド
で済ませることができるようになり,LATEX で文書作成はとても楽になります.ただ,自作コマン
ドは原稿ごとに定義を入力しなくてはならないため,自作コマンドのバリエーションが増え,しか
もたくさんの文書を書くようになると,定義を入力するだけで一苦労です.そんな時には,自作コ
35
マンドの定義ばかりを書いた “command.tex” といったファイルを用意しておき,原稿を作成する
たびにそのファイルを読み込むようにしておけば便利です.原稿を読み込ませるには,\include
コマンドを使用します.プリアンブルに,
\include{command}
と書き込んでおけば,コンパイルの際に自動的に読み込まれます.このとき,入力ファイル名を
{command.tex} と書かないように気をつけて下さい.
4.9
お疲れさんでおました
さて,皆さん長い時間のトレーニングお疲れさまでした.ここまでくれば,ひとまず皆さんは
LATEX を使ってかなり高度な文書が書けるようになっているはずです.ぜひ,いろいろな文書を書
いて練習を繰り返してみて下さい.
とりあえず今の段階でレポートぐらいは十分に書けるようにはなっていますが,前にも述べた
ように,研究会の集録や修士論文などを書こうとすると,さらにたくさんの知識と技術が必要に
なります.しかし,LATEX の基本を理解した皆さんであれば,あとは市販のテキストを読み込むこ
とでステップアップは容易であると思います.もっと美しいレイアウトを,もっと自分の気に入っ
たスタイルを追求するという方は,ぜひもっともっと LATEX の勉強に挑戦してみて下さい.LATEX
の世界はまだまだ奥深いものですから.
それでは,皆さんがより美しい文書を作成されるようになることを期待しつつ,このテキスト
によるレッスンはこの辺りでおしまいということにしましょう.
みんな,きばって勉強してや.
36
章末問題
この章の章末問題には特定の例文は与えません.自分で何か一つレポートを決めてそれを作成
してみて下さい.ただし,レポートには以下の要素が含まれていることが条件です.
• 2 種類以上のフォントサイズを使用する
• 数式が必ず含まれている
• グラフソフトもしくは描画ソフトにより作成した eps 画像を張り付ける
• 自分で作成したレポートを同期や先輩の学生,あるいは教官などにに見てもらう
これらの条件を満たすように自分だけのレポートを作ってみましょう.人に見せられるだけのも
のが自分の力で作れるか,そして人がそれに対してどのように評価や意見を出すのかを冷静に聞
き入れることができるか.こうした訓練はこれからの研究生活にとって,非常に重要になります.
37
付 録A
野鳥のすすめ
「野鳥」とは何かといいますと,もちろんここでは空を飛ぶ野生の鳥のことではありあません.
「野
鳥」の正体は,“Yet Another TEX mode” というもので,頭文字をとると “YATEX” となりローマ
字読みすると「やてふ」,これを古語の読み方で発音すれば「やちょう」となる訳です.
「で,結局
野鳥ってなんな訳よ」という疑問への答えはまだ出していませんでしたね.
「野鳥」とは emacs を
使って LATEX の文書原稿を作成するの際に入力の支援をする便利なツールなのです.センターの
計算機で使用する場合には,emacs の設定を指示する.emacs というファイルに必要なことを書い
ておけば,*.tex という名前のファイルを開くだけで,自動的に「野鳥」が起動します.と言うだ
けでは不親切ですから,とりあえず以下の記述を.emacs ファイルに書き込んでおいて下さい.
(autoload ’yatex-mode "yatex" "Yet Another LaTeX mode" t)
;; YaTeX-mode%)
(setq auto-mode-alist
(cons (cons "\\.tex$" ’yatex-mode) auto-mode-alist))
(setq dvi2-command "xdvi"
tex-command "platex"
dviprint-command-format "dvips %s | lpr"
YaTeX-kanji-code 3)
「野鳥」にはさまざまな入力補間機能などが搭載されており,使い慣れるととても便利で,筆
者はこれなしには原稿書きが辛いくらいに思っているのですが,時にお節介と思えるくらいに何
でも補間してくれるので,
「煩わしい」「目障り」といって嫌う人もいます.
実際に便利か同かはユーザーである皆さんが判断することですが,とりあえず一度は使ってみ
ることをお勧めします.私自身は「野鳥の補間機能は素晴らしい」と考えており,いまでは野鳥な
しに LATEX の原稿を書くなんて面倒臭過ぎて,想像するだけで恐ろしいくらいです.この強力な
ツールを知らないままでいるのは,あまりに惜しいとさえ言えます.
「やっぱりいらんわっ」とい
う結論を出すのは,とにかく一度使ってみてからでも遅くはないでしょう.
おっと,実際に「野鳥」をどのように使えばいいのかを全然説明していませんでしたね.でも,
それを説明し出すととても時間がかかるので,ここは一つ皆さん自力で習得して下さい.フリー
ソフトの世界は “trail & error” が原則ですから.それでも,どうしてもマニュアルが必要だとい
う方は,YaTEX の web サイトにいけばそこで dvi ファイルのマニュアルが配布されているのでそ
れを見て見るのも良いでしょう.ただし,実際にはこのマニュアル通りの入力をしても作動しな
い場合もあるので,そのときはとにかくいろんな手で挑戦してみて下さい.サイトは皆さん自分
で探して下さい.検索エンジンから “TeX” でサーチすれば捜し出せるでしょう.
38
付 録B
困った時はどないしよ
さて,このテキストで LATEX に関してはそれなりの知識を得ることが可能ではありますが,非常
に多岐にわたる LATEX の機能からすれば本書で取り上げているものはほんのわずかです.そのた
め,皆さんが実際に使用しているうちに本書の内容だけでは対処できないトラブルに遭遇したり,
あるいは本書に記載されてないようなコマンドやレイアウトを使いたいと希望されたりすること
もあるかもしれません.
現在,本書の姉妹編として,より発展的な内容を盛り込んだ「応用編」の執筆を計画中ではあ
りますが,それでは間に合わないという方のために,いざという時の「お助け役」をここでご紹
介しておきます.
市販のテキスト
とりあえずは,市販されている LATEX のテキストを開くのが一番よいでしょう.
最近は LATEX に関する書籍もたくさん出ていますが,本書の一番の
お薦めは,奥
村晴彦氏の「LATEX 美文書作成入門」のシリーズです.おそらく,一番売れている LATEX の
テキストではないでしょうか.非常に分かりやすいつくりで,本書編集委員長が初めて買っ
た LATEX の本もこれです.
「pLATEX2ε
その他には,
「LATEX 文典」も内容が豊富で便利ですが,やや高価な本です.また,
for Windows Another Manual」は,Windows 用の LATEX 一式の CD-ROM が付録につい
ている解説書で,内容的にも非常に詳しく書かれているので,Windows でも LATEX 使って
みたいという人には良いと思います.さらに,
「LATEX コンパニオン」なる本は,その応用例
の豊富において群を抜いていますが,初心者向きではありませんしこの本も結構お高いです.
LATEX サイト
上記の「美文書作成入門」の作者である奥村氏が開設されているサイトで,日本
の LATEX に関する情報のほぼすべてはここから入手出来ます.FAQ もあるので気軽に質問
することも出来ますが,市販書に載っているようなレベルの質問をすると失礼なんで気をつ
けましょう.この FAQ の回答は非常に使えます.
URL http://www.matsusaka-u.ac.jp/ okumura/texfaq/
SaRuTEX 委員会へ
LATEX の使用法はもちろん,本書に対するご意見ご感想などをお寄せいた
だいても結構です.
当委員会委員長のメールアドレスは,[email protected] です.但し,いつまでこのアド
レスで届くかは保証の限りではありません.
39
あとがき
私が初めて LATEX で文書を作成したのは,学部の 3 年生の時でした.情報処理センターのテキス
「世の中には,こんな
トに LATEX の解説があり,そこで見た数式表示の美しさに私は目を奪われ,
に素晴らしいソフトがあるんや!!」と感動したのです.早速私は,生協で LATEX の解説書籍を買い
求め物理 B 棟にあった端末室でひたすら LATEX の習得に励んだのです.当時の私には,UNIX の
知識なんてほとんどなかったので,実際にどのようにファイル管理を行なうのかなど意識せず,た
だひたすら情教センターの利用手引を片手に奮闘したのでした.
以来私は LATEX の魅力にとりつかれ,計算機の知識では人並より低い水準のままながら LATEX
に関してだけは人より多くの知識を吸収した自信が少しばかりできました.そんな私も M2 の冬
を迎え修論の作成に追われる日々となったのですが,その日々の中でレイアウトへの拘りからこ
れまで知らなかったような LATEX 新機能を発見し,LATEX への興味がさらにいっそう深まったの
です.それと同時に,同期の M2 生達の様子を見ていると,LATEX というソフトがあまり親しみを
持たれていないという印象も受けました.そこで,新しくセンターに来た人の中で,LATEX に関し
ては初心者であるという人を対象に,少しでも LATEX に親しみを持ってもらえるような練習がで
きるようにとこのテキストを執筆しました.
できれば,じっくりと時間をかけてより良いものを作り上げたかったのですが,修論提出の後
も研究会発表の準備,海外出張に追われ,4 月からの社会人生活の準備も進めながらの執筆となっ
てしまったため,結果的に内容をあまりに練ることができませんでした.また,大急ぎで書いた
ため,誤字や脱字,あるいは語法の誤りなどが散在していると思われます.美しい文書に拘る私
が,このような状態のままで本書を出すのはやや残念ではありますが,ひとまず 4 月に 4 年生が
来るまでに仕上がるようにしました.
このテキストで皆さんが少しでも LATEX による文書作成の方法を理解して下さり,LATEX に対
して嫌悪感を抱かないでくれれば筆者にとって何よりの喜びです.文中の誤りへの指摘,あるい
はご意見,ご感想などがありましたら筆者に何なりとお聞かせ下さい.筆者への連絡方法は,セ
ンター内いる筆者の同期の学生に聞いていただければわかるでしょう.もし,このテキストが彼
らが卒業した以後も使用され続けるという光栄に浴した場合には,どうしましょう….ま,考え
ないことにします.
以上,下らない後書きでしたが,最後に本書の執筆に御協力いただいた,池田晴雄君,川口哲
司君,丸藤祐仁君,半田史明君,樋口格君,長谷川雅也君の各位にお礼を申し上げます.
2001 年 3 月吉日
SaRuTEX 編集委員会
40
章末問題解答
第2章
\begin{center}
\Huge\bf
\LaTeX のすすめ
\end{center}
\begin{flushright}
東北大学大学院理学研究科附属\\
ニュートリノ科学研究センター\\
都築夏人
\end{flushright}
~~\LaTeX はとても便利な組版ソフトです。私は、\LaTeX のすばらしさを一人でも
多くの方に知ってもらいたいと思っているので、これからも\LaTeX の啓蒙のた
めに全身全霊を尽くして邁進します。
~~みなさんも、是非この史上最強の組版ソフトである\LaTeX を利用しましょう。
第3章
(1) 電荷密度を$\rho$,電流密度ベクトルを$\Vec{j}$とした場合,Maxwell 方程
式は,次のように表される.
\begin{eqnarray*}
\nabla\cdot\Vec{E} &=& \frac{1}{\varepsilon_0}\rho \\
\nabla\times\Vec{E} + \frac{\partial\,\Vec{B}}{\partial\,t} &=& 0 \\
\nabla\cdot\Vec{B} &=& 0 \\
\nabla\times\Vec{B} - \frac{\partial\,\Vec{E}}{\partial\,t} &=& \frac{1}
{\varepsilon}\Vec{j}
\end{eqnarray*}
41
(2) 点$a$で連続な任意の関数$f(x)$に対して,
$$\int^{\infty}_{-\infty} f(x)\delta(x-a)\, dx = f(a) $$
を満たす関数を「{\bf デルタ関数}」という.
(3) Pauli のスピン行列,
$$ \sigma_1 = \left(
\matrix{ 0 & 1
\cr
1 & 0 } \right),
\sigma_2 = \left(
\matrix{ 0 & -i \cr
i & 0 } \right),
\sigma_3 = \left(
\matrix{ 1 & 0
\cr
0 & -1} \right)$$
は,以下の式を満たす.
$$\left[ \frac{\sigma_i}{2}~,~\frac{\sigma_j}{2} \right]
i\varepsilon_{ijk} \frac{\sigma_k}{2}$$
42
=