独習 LaTeX2ε

【最新 – LaTeXのおすすめ本リスト – 初心者からでも始められる入門から応用まで!】も確認する

辞書代わりとしても!

情報が多くかなり充実した内容の一冊です。初心者の方も、経験を積んだ方にもお勧めです。かなり情報量の多い本で、ひとつひとつ丁寧に説明されているので、特に本格的に学んでいきたいという方にとっては手に取って間違いない一冊です。

吉永 徹美 (著)
出版社: 翔泳社 (2008/3/14)、出典:出版社HP

はじめに

本書のタイトルにある「LATEX 2ε」ということばになじみのない読者も多いかもしれま せん。これは、計算機科学の大家 Donald E. Knuth氏が自著の出版に用いるために考案 した組版ソフトウェア TEX に、文書作成のために便利な機能を追加したものです。LATEX (LATEX 2εというのは LATEX の現行の版のことです)およびそのベースとなる TEX には 様々な特徴がありますが、まず特筆されるのは数式を記述する能力の高さです。簡単な数 式、例えば、

程度のものなら、本書で説明するような)基本的なコマンドを用いた10行少々の記述で 得ることができます。最近では、一般的なワードプロセッサにも「数式エディタ」の機能 が備わっていることが普通になりました。しかし、それらを用いて上記の数式を作成する 手間を想像(あるいは実際に記述)してみると、LATEX での数式の記述がいかに効率のよ いものか簡単に実感できるでしょう。

また、TEX/LATEXやその関連ソフトウェアの多くはオープンソースだということもあ り、Windows、Mac OS X、Linux など各種のOS上で利用できます。それだけでなく、 TEX 自身はきわめて安定したソフトウェアであるため、職場・学校・自宅など様々な環境 で文書を作成する場合にも比較的容易に作業環境をそろえることができますし、複数の執 筆者で分担してひとつの文書を執筆する際の作業環境の統一も比較的容易です(もっとも、 これは例えば文書中で使用するフォントなど、「TEX/LATEX の外部のこと」にこだわらな い限りにおいてではありますが)。さらには、LATEXは多言語混在文書の作成にも高い能力 をもつことが知られています。本書ではそのような特徴をもったLATEXを用いた文書作成 およびLATEXの枠内でのマクロ作成(プログラミング)を扱います。

具体的には、第1部ではLATEXを用いた文書作成についてひととおりの解説を行ってい ます。「書体変更」、「見出しや箇条書きの作成」、「表の作成」、「図表の配置」、「数式の記述」 といった、ユーザ自身が文書作成にあたって直接関心を向ける項目については基本と応用 の両面に配慮した記述を行いました。その一方で、単にコマンドの用法・用例を挙げるに とどまらず、TEX とその周囲のソフトウェアの関係やパッケージ類の仕組みについての説明も加えました。実際、「LATEX を用いた文書作成では複数の独立したソフトウェアを組み 合わせて用いる」という点に関する認識・理解は「現在の」LATEX システムを正しく用い るうえでは重要なので、その点に関して必要かつ充分な記述を試みたことは本書のひとつ の特徴となっています。

また、第Ⅱ部では LATEX でのマクロ作成(プログラミング)の初歩について解説しまし た。LATEX 自身あるいは各種のパッケージでは多様な機能を提供していますが、それらで は間に合わないような処理や体裁の変更を行う必要に迫られることもしばしば起こり得ま す。その場合、ユーザ自身で独自のコマンドの導入や既存のコマンドのカスタマイズを行 うことになり、それに伴ってマクロ作成に関する知識が必要となります。本書の第Ⅱ部の 解説は、ユーザ自身での「簡単な独自コマンドの定義」や「既存のコマンドの処理の大枠 の把握」に必要となる範囲の知識の提供を目的としています。特に、TEXがもつプログラ ミング機能のすべてを解説しているわけではないので、「複雑なデータ構造の取り扱い方」、 「ファイル入出力」あるいは多段組のような「ページ構築・出力処理」については本書がカ バーする範囲を超えるものとして割愛しました。それでも最後の章で例示するように、本 書全体の内容を理解すれば、既存のコマンドの概要をユーザ自身で調べることができるよ うになります。また、本書の最終章以外の各章の章末には各章の内容に関する演習問題を 用意しました。個々の問題は本文中で取り上げた内容の確認を目的とした比較的平易なも のばかりですので、ぜひ手をつけてみてください。

本書の執筆にあたっては、全面的に TEX(を日本語化したもののひとつの PTEX、およ び LATEXの PTEX 対応版のPLATEX)を用いました。TEX、PTEX 本体およびその上で用 いられるLATEX、PLATEX、ならびに各種の TEX関連ソフトウェアの開発・メンテナンス に携わる方々に感謝いたします。また、本書で解説する項目の取捨選択にあたっては、国 内の TEX 関連の各種の掲示板などでなされた質問の傾向の分析が役に立ちました。特に掲 示板「TEX Q&A」および本書で情報源としてしばしば言及している『TEX Wiki』を運 営なさっている奥村晴彦氏に感謝いたします。さらに、題材の選択については知人・友人 との意見交換(あるいは雑談)からも多くの示唆を得ました。ここでは特に多くの示唆を 与えてくださった本田知亮氏、美吉明浩氏(五十音順)の両氏にとりわけ感謝いたします。 最後になりましたが、本書の成立にあたっては本書の執筆の機会をくださった石川耕嗣様、 ならびに原稿を詳細に検討してくださった長谷川智美様にたいへんお世話になりました。 石川様、長谷川様には心よりの感謝を申し上げます。

本書がLATEXの世界へと足を踏み入れるユーザのよき道案内となれば幸いです。
平成20年早春
吉永徹美

吉永 徹美 (著)
出版社: 翔泳社 (2008/3/14)、出典:出版社HP

目次

はじめに
本書を読み進める前に
第Ⅰ部 LATEXによる文書作成の基本
第1章 LATEXによる文書作成の概要
1.1 TEX、LATEXとは何か
1.2 LATEX による文書作成の仕組み
1.3 エラー・警告が生じた場合への対処
まとめ
演習

第2章 LATEX 文書の基本
2.1 LATEX文書の枠組とコマンド
2.2 文書クラス
2.3 LATEX文書の本文の書き方
まとめ
演習

第3章 文字列の記述・装飾
3.1 特殊文字の出力法・文字の装飾
3.2 書体・文字サイズ・文字色の変更
まとめ
演習

第4章 文書の構造
4.1 文書の論理構造
4.2 文書の視覚的構成
4.3 箇条書き
4.4 脚注・傍注
まとめ
演習

第5章 表の作成
5.1 表作成の基本
5.2 様々な表
5.3 表作成の応用
5.4 図表の配置
まとめ
演習

第6章 図の取り扱い
6.1 graphicxパッケージ
6.2 LATEXでの描画
6.3 画像中の文字列
まとめ
演習

第7章 大規模な文書の作成
7.1 相互参照
7.2 目次の生成
7.3 参考文献リストの作成
7.4 索引の作成
7.5 ページレイアウト・多段組
7.6 ソースファイルの分割
まとめ

第8章 数式の記述
8.1 数式の基本
8.2 各種の数式用記号
8.3 数式での文字の装飾・数式のスタイル
8.4 行列
8.5 ディスプレイ数式
まとめ

第Ⅱ部 LATEX プログラミング入門
第9章 簡単なマクロ・環境の定義
9.1 LATEX でのプログラミングに向けての準備
9.2 LATEXの枠内でのマクロの定義・再定義
9.3 LATEXの枠内での環境の定義・再定義
9.4 デバッグ作業の基本
まとめ
演習

第10章 マクロ定義の基本
10.1 TEX 文書における個々の文字の役割
10.2 TEX 自身の機能によるマクロ定義の基本
10.3 マクロ定義の有効範囲・展開順序の変更
10.4 複雑なマクロ
まとめ
演習

第11章 制御構造
11.1 条件処理の基本
11.2 文字・コマンドの比較
11.3 整数・寸法の比較
11.4 ボックスの内容に関する条件処理
11.5 処理状況に関する条件処理
11.6 多肢分岐
11.7 後続の文字の検査
11.8 ループ処理
まとめ
演習

第12章 基本的なデータ型
12.1 TEXでの「変数」
12.2 整数
12.3 LATEXのカウンタ
12.4 寸法・グルー・数式グルー
12.5 ボックス
12.6 トークンリスト
まとめ
演習

第13章 ケーススタディー
13.1 本章で取り上げる題材について
13.2 \@startsection の定義
13.3 番号付きの見出しの場合
13.4 番号なしの見出しの場合
13.5 後処理
演習問題解答・解説
参考文献
索引

吉永 徹美 (著)
出版社: 翔泳社 (2008/3/14)、出典:出版社HP

本書を読み進める前に

本書を読むにあたって必要な予備知識
本書は LATEX を用いた文書作成および LATEX の枠内でのプログラミングの基本を解説 するものですが、LATEX そのものあるいはプログラミングに関する知識は必要ありません (必要なことは本文中で説明します)。一方、
・テキストエディタを用いたテキストファイルの編集
・コピー・削除・名称の変更といったファイル操作
・ターミナル (Windowsでの「コマンドプロンプト」などの、コマンドライン入力に基 づいたユーザとの対話的処理を受け付けるソフトウェア上での各種コマンドの実行
のような基本的な作業ができることは仮定します。

必要環境
pLATEX処理系が利用でき、かつ、なんらかのソフトウェアを用いてpLATEXによる組 版結果を確認できることが必要です。例えば、
\documentclass{jarticle}
\begin{document}
サンプル文書
\end{document}
という内容をもったファイル test.texを用意したものとします(「サンプル文書」以外のと ころはすべてASCII文字(いわゆる「半角」文字)で入力してください。また、文字”\”は円記号室”で表示されることもあります)。そのとき、この test.tex が存在するディレク トリ(環境によっては「フォルダ」という呼称が用いられますが、本書では「ディレクト り」で統一します)において、コマンドライン上で、
platex test
というコマンドを実行したときに、
This is pTeX, Version 3.141592-p3.1.10(sjis) (Web2c 7.5.6)
(中略)
Output written on test.dvi (1 page, 276 bytes).
のようなメッセージ (Version 3.141592-p3.1.10”といったバージョン番号の類は環境により変わります)が現れてファイル test.dvi が作成される状態である必要があります。ま た、このファイル test.dvi を dviout、xdvi (pxdvi といった名称であることもあります)な どのソフトウェアで「開く」ことによって直接閲覧したり、「コマンドライン上でdvipdfmx などのソフトウェアを dvipdfmx test のように用いてファイル test.dvi を PDF 形式に 変換したのちに変換後の PDF ファイルを閲覧する」といった形でファイル test.tex の処 理結果を確認できる状況である必要もあります。もし、これらの作業が行えない場合には、 PINTEX および関連ソフトウェアのインストールおよび設定を済ませてください。
一般的な OS上でのTEX システムの入手先としては、次のようなところが挙げられます (個々のウェブページのURLは執筆時点のものです)。

■Windows環境の場合
・W32TeX(角藤亮氏のサイト:http://www.fsci.fuk.kindai.ac.jp/kakuto/ win32-ptex/ を参照してください)
PLATEX 自身は、角藤氏による簡易インストーラ(texinst756.exe、「756」の部分はバー ジョンに応じて変わります)を用いれば充分に容易にインストールできます。また、 近年、各種の TEX および関連ソフトウェアのインストーラが作成されているようで す(奥村氏のTEX Wiki:http://oku.edu.mie-u.ac.jp/~okumura/texwiki/ の 「TeX installers for Windows」の項などを参照してください)。

■Macintosh 環境 (Mac OS X) の場合
桐木紳氏のサイト(http://math.kyokyo-u.ac.jp/~kiriki/ptex/)や小川弘和氏 のサイト(http://www2.kumagaku.ac.jp/teacher/herogw/)から入手できます。

■UNIX系OSの場合
PC-UNIXでは、PLATEX および関連ソフトウェアもパッケージとして提供されていること も多いようです(奥村晴彦氏のTEX Wikiに、ディストリビューションごとのインストールガ イドがあります)。また、ユーザ自身でビルドする場合には、ソースファイルおよび各種パッチ を取り揃えたptetex (土村展之氏のサイト:http://www.nn.iij4u.or.jp/~tutimura/ tex/ptetex.html から入手できます)が便利でしょう。

TEX システムのインストール法については、これらのサイト自身(あるいはそこで配布 されている文書)に記されていますし、巷に多くのインストールガイドのページが存在し ますので、それらを参照してください。
また、1.2節で例示するような多数のソフトウェアが TEXの周囲で用いられます(もちろん、必要なものを取捨選択して利用します)。それらについても、必要があれば適宜イ ンストールしてください。主要な TEX 関連ソフトウェアの入手先については、奥村氏の TEX Wiki などの情報源にまとめられていますし、当該ソフトウェア名でウェブを検索し てもよいでしょう。
なお、大学の「計算機室」の類での学生用のコンピュータにはすでに pLATEX および関 連ソフトウェアがインストールされていて利用可能であることもあります。

いくつかの文字に関する注意
■円記号とバックスラッシュ
テキストファイル中の個々の文字や各種のフォント(一定のデザインに従って用意され た、一連の「文字を表す図形」のデーター式)に収められた個々の文字は、ソフトウェアの 内部ではなんらかの数値として取り扱われています。ここで、JIS では円記号“\”に対応 している数値92には、US-ASCIIではバックスラッシュ“\”が対応しています。この事 情により、同じ数値 92に対応する文字が環境によって“¥”と表示されたり“\”と表示さ れたりするということが起こります。Unicodeを用いているのでなければ、通常はテキス トファイル中の“\”と“\”は同じ文字として取り扱われるので、TEX 関連書籍を読む場 合などはどちらで表示されているかを気にする必要はありません。ただし、Unicode テキ ストにおいては、TEX のコマンドに現れる”¥”あるいは”\”としてはバックスラッシュ (U+005C)を用い、円記号(U+00A5)にはしないように注意してください。また、和 文文字の(全角の)円記号「¥」は、”\”、“¥” のどちらともまったく異なる文字ですので、 LATEX 文書の作成時にはバックスラッシュ文字”\”(あるいはいわゆる「半角」の円記号 “\”)を用いるべきところに和文文字の円記号「¥」を用いないように注意してください。

■空白文字について。
本書で「空白文字」というときには、「直接入力時(日本語IME をオフにしていると き)にスペースバーを押すことで入力される文字(いわゆる半角スペース。US-ASCII で は文字コード32 の文字)のことのみを指します。和文文字の空白(いわゆる全角空白)あ るいはタブ文字は「空白文字」には含めていないという点に注意してください。本書では、 和文文字の空白に言及する際には必ず「和文文字の空白」、「全角空白」といった和文文字 であることを明らかにした記述を用います。また、空白文字を明示する場合には“い”とい う記号を用います。例えば、”a_b”というのは「1個のa、1個の空白文字、1個のbをこ の順に並べた文字列」を表します。一方、和文文字の空白を明示する必要がある場合には “□”という記号を用います。

本書で用いる表記上の規約
■等幅フォント(タイプライタ体)の部分
コード部分や実行するコマンド、あるいはコマンドを実行した結果のメッセージなどを 表します(ただし、そのような部分に含まれる和文文字列は丸ゴシック体にしています)。
[例]“\documentclass”(先のテスト文書 test.tex の記述の一部)、“platex test”(テ スト文書 test.tex に対して実行したコマンド)

■〈something〉のような、三角括弧で挟んだ斜体の文字列
なんらかのコマンドの書式の記述に現れる可変部分などの「変数名」のように用いる箇 所を表します。
[例]”copy〈srcfile〉〈dstfile〉” (あるいは”cp〈srcfile〉〈dstfile〉”など) (ファイル〈srcfile〉をファイル〈dstile〉にコピーする際の記述)

■\the〈cntname〉のような、文字\に続く文字列に下線をつけたもの
その下線部がひとつの TEX のコマンドであることを強調する場合の表記です。
[例]いまの“\the〈cntname〉” というのは、「コマンド\the と文字列〈cntname〉」では なく”\the〈contname〉” の全体からなるただひとつのコマンドを表します。

本文中の実行例などの処理環境について

各種のコマンドの実行例などは、筆者の環境(OS:Windows XP Home Edition SP2。 使用 TEX システムは W32TeX)での結果です。処理環境に依存した理由で処理結果が異 なる可能性のある箇所では、基本的にはその点に言及しています。ただし、「利用したソフ トウェアやパッケージのバージョンの違い」による処理結果の相違についてはいちいち言 及していません。

本書の構成と内容について

近年、dvipdfm(x)の普及や、各プラットフォームでの updmap コマンドの整備が進め られるなど、IPX周辺ソフトウェアの質・量ともに拡充が続いています。各種の「統合環 境ソフトウェア」の台頭によりユーザがTEX を使い始める際の敷居が低くなってきてい ることも、最近のTEX 界の動向としては見逃せないでしょう。また、PTEX (TEX を日本 語化したもののひとつ)自身に関しても、Unicode 対応(現時点では、「従来の PIEXでも取り扱える範囲の文字」をutf8でも記述できるという機能は無難に使えます。さらに、 PIEX の内部処理においても Unicode を用いて、Unicodeに本格対応する試みもなされて います)が進みつつあり、DIEX に E-TEX の拡張機能を導入する試みもなされつつありま す。このように、日本における TEX 環境は、実はかなりの変革期を迎えています。もっと も、本書ではそのような新しい試みを逐一取り上げることはせず、(今後、日本の TEX界 の状況がどう変わったところで左右されないような)LATEX を用いていくうえでの「コア」 となる概念・知識・技術の説明に注力しました。

また、本書の個々の章は、概ね、基本的な内容を扱った章から順に並んでいます。第I 部の内容は次の通りで、まず、第4章までの内容を学習すると簡単な文書なら作成できる ようになります。それ以降は、数式に縁のある読者は第8章を先に学習してもよいでしょ うし、画像の貼り付け方に興味があれば第6章に進んでもよいでしょう。ただ、本書の第 I部の内容はあくまで「LATEXによる文書作成の基本」ですので、(学習する順番はどうで あれ)一通り学習することが望まれます。また、「図の配置」についての話は「表の配置」 の話とともに第5章に含めていますので注意してください。

・第1章:TFXとTEX関連ソフトウェアの関係、NIEX 文書作成の手順
・第2章:LATEX 文書の枠組
・第3章:書体変更などの「文字列レベル」での体裁の変更
・第4章:「章」などの見出しや「箇条書き」などの文書構造の記述
・第5章:表の作成、図表の配置
・第6章:図の取り扱い方とLATEXの枠内での描画
・第7章:相互参照・目次・索引などの文書全体にわたる「大域的」な処理
・第8章:数式の記述
本書の第Ⅱ部は、LATEX文書の体裁の簡単なカスタマイズを行ったり、ユーザ自身で簡 単な独自コマンドを導入したりするのに用いる、マクロ作成の初歩的な内容を取り上げて います。第Ⅱ部の内容は次の通りで、LATEXが用意している文字列などのパラメータを変 更するくらいのカスタマイズなら第9章の内容で間に合います。第10章から第 12章まで は「TEX 自身がもっているプログラミング言語」の文法の説明です。第1部のあちこちで 述べたカスタマイズ例を理解したり、ユーザ自身でのカスタマイズを行うのに必要な内容 を説明しています。第13章はケーススタディーと題して、既存のコマンドの内部処理を第 12章までの知識を用いて読み解いています(もっとも、第13章に到るまで解説の機会が なかったごく少数のコマンドについては追加説明を行っています)。
・第9章:INTEX の枠内でのコマンドの定義・再定義の仕方
・第10章:TEX 自身の機能でのコマンドの定義・再定義の仕方
・第11章:条件処理・ループ処理などの取り扱い
・第12章:各種のデータ型(変数の型)
・第13章:ケーススタディー

本書における「注意」の位置付けについて
本書には多数の「注意」がありますが、それらは基本的には「補足説明」です。特に、実 際の文書作成にあたって遭遇する問題は、多くの注意点のうちの一部です。ただ、状況に よって生じる問題は異なるため、結果として「注意」が増えているわけです。そこで、各 章を最初に読む際には「注意」の部分をスキップして概要をつかむとよいでしょう。

カスタマイズ例・コマンドの定義例の使い方
本書の第1部では多くのカスタマイズ例やコマンドの定義例(\def、\newcommand、 \renewcommand、\DeclareRobust Command などを用いたサンプルコード)を挙げてい ます。それらを用いた場合の出力結果をユーザ自身で確認する場合、基本的には、例とし て挙げた記述をLATEX文書のプリアンブル部分(\documentclass コマンドと \begin {document}の間の部分、2.1.1項参照)に入れてください。ただし、「文書の体裁を局所 的に変更するためのパラメータの変更」などは文書中にそのまま記述しますので、例を挙 げている箇所の文脈にも注意してください。

吉永 徹美 (著)
出版社: 翔泳社 (2008/3/14)、出典:出版社HP