LaTeXメモ

大信田 丈志
作成: 2001-11-09 / 更新: 2002-01-30 / 微更新: 2005-07-16


以下の内容は、間違っているかもしれません。 自己責任で利用してください。 また、マクロや「おまじない」については、 基本的にpLaTeXを想定しています(昔のLaTeXだと動かないかもしれません)。


[「大工道具」のページへ] [ホームページに戻る]


LaTeXらしいLaTeXを書こう

過去の遺物

もともとの TeX (あるいは plain TeX)と 今のLaTeXとでは、 設計思想に非常に大きな違いがある。 そもそも、最初にTeXを作ったのが 「GOTO擁護論」で知られる D. Knuth であることから分かるように、 plain TeX というのは、少なくとも

FORTRAN77みたいな旧式言語でも 「きれいなプログラム」を書ける能力のある人
すなわち「弘法、筆を選ばず」の境地に達した人にしか 使えない代物なのだ。 これではあんまりだ、ということで、その後で登場したLaTeXには、 きれいに構造化されたコードを書くための仕組みが いろいろと備わっている。 それにもかかわらず、 それらの仕組みを全く無視したTeXコードが 先輩から後輩へと伝授され続けているのは、非常になげかわしい。

環境を使え

LaTeXには、 \begin{なんとか} .. \end{なんとか} という構文があって、 これを「環境」という。 一例を挙げると、 たとえば \begin{equation} .. \end{equation} という 「数式(equation)環境」を利用することで、 数式の前後は自動的に改行され、字下げが自動的におこなわれ、 さらに式番号まで自動でつく。 これは大変便利な機構である。

このような便利な機構があるのに、 すべての数式を $\\\hspace で 入力しようとする学生がいたりする。 まあ、TeXの本を見て独学する人は、往々にして、 こういうへんな技のほうを先におぼえてしまったりするのだが、 これは過去の遺物なので、やめたほうがいい。 環境(\begin{なんとか} .. \end{なんとか})で 処理できる部分は、環境を使うべきだ。

\sectionコマンド

見出しを書くのに次のようなことをする人をよく見かけるが、 こういう書き方も、はっきり言って、過去の遺物である:

\par
\smallskip
\par
\leftline{{\bf 3. 結果と考察}}
\par

こんなことはせずに、\sectionコマンドを使おう:

\section{結果と考察}

番号はLaTeXが自動的につけてくれる。 また、\sectionコマンドを使うと、 \tableofcontentsコマンドと連携して目次を自動生成したり、 ちょっとしたマクロを書いて数式番号を章番号に連動させたりできるという ご利益がある。

しかし、このようなご利益があるにもかかわらず、 「\section コマンドを使うと 字の大きさや行間の空きが 大きくなりすぎるからいやだ」という不満をもつ人がいる。 このような場合の対処法は、LaTeXファイルの冒頭(ふつうは \begin{document}の直前)に、 以下のような「おまじない」を書いて \sectionコマンドを再定義することだ:

\makeatletter  % --- 「おまじないモード」に入る

\renewcommand{\section}{%
   \@startsection{section}{1}{\z@}%
   {0.8\Cvs \@plus.0\Cdp \@minus.2\Cdp}%  上の空き
   {0.5\Cvs \@plus.1\Cdp \@minus.3\Cdp}%  下の空き
   {\reset@font\large\bfseries}}%         字の大きさ

\makeatother   % --- 「おまじないモード」から抜ける

ここの数字や文字サイズを適当に変えることにより、 すべての見出しのデザインが連動していっせいに変わる。 このことからも\sectionコマンドを使うことの利点が分かるだろう。

「おまじない」の世界

さて、ここで「おまじない」と言っているのは

@のついたマクロ(コマンド)
のことである。 上記の例では \@startsectionという「おまじない」を呼び出して \sectionコマンドの再定義をおこなっている。 この「おまじない」に関する説明は、 私のマシンだと(他の人の場合でもきっと同じだと思う)、 /.../texmf/tex/platex/base/jclasses.dtx に用意されている。

LaTeXコンパイル時のメッセージをよく見ると、 「なんとか.cls」「なんとか.sty」というファイルを 読み込んでいるのが分かるだろう。 前者を「クラスファイル」、後者を「スタイルファイル」と言って、 いずれも「おまじない」の固まりである。 これらのファイルを読みこなすことにより、 しだいに自分で「おまじない」が使いこなせるようになっていく(はずだ)。

で、大切なことは、本文中 (\begin{document}から下) には、 原則として \sectionコマンドのような 標準的なコマンドだけを利用し、 字の大きさとか行間の空きとかいった詳細を 本文中に直接書くことは避ける、という点である。 こういう詳細をいじりたいときには --- 特に「見出し」とか 「箇条書き」のように何度も繰り返して現われるものについては --- 本文に書いたり plain TeX 的な手法に走ったりせず、 「おまじない」に任せるべきなのだ。

「おまじない」の使い手となることを志す人には、ぜひ

『pLaTeX初級リファレンス』 暗黒通信団
ISBN4-87310-080-1 (1500円)
という本を入手されることを勧める。 非常に役に立つこと うけあいである。 他方、自力で「おまじない」を使いこなせなくても、 誰かが開発した「おまじない」の数々が マクロ集やスタイルファイル(なんとか.sty)としてまとめられ、 世の中のあちこちに出回っているので、 必要に応じてそれらを入手して利用するのも良いだろう。

[ページ冒頭に戻る] [「大工道具」のページへ] [ホームページに戻る]


ちょっとした技

添削用の行間余白を確保する

最も単純には \baselineskip を変更するだけでよい:

 \begin{document}
   \addtolength{\baselineskip}{0.5cm}
   ...
 \end{document}

注意: \begin{document} よりも前に \baselineskip を変更しても 無効となる。

上記の方法だと、文書全体の \baselineskip が変わってしまい、 表組みや図などに悪影響が出ることがある。 そのような場合は、環境を利用するのがよい:

\newenvironment{添削用}{\addtolength{\baselineskip}{0.5cm}}{\relax}

\begin{添削用}
  ...
\end{添削用}

これで、 \begin{添削用}\end{添削用} の部分だけ 行間が広くなる。

ついでながら、REVTeXの場合は こんな小細工をせず、 所定のスタイル指定を利用するほうが良い。

[ページ冒頭に戻る] [「大工道具」のページへ] [ホームページに戻る]


自作のLaTeXマクロなど

自己責任でお使いください。 また、pLaTeXを想定しています(昔のLaTeXだと動かないかもしれません)。

Mule(+YaTeX)でLaTeXソースを編集するときに役立つLispプログラムも 作ってみました。

アウトラインモード設定プログラム (2001-12-23)
自己流の簡略設定なのだが、 それでも毎回設定するのは面倒なので Lispファイルにまとめてみた。
  1. まず、outline2.el というファイルをダウンロードして、 しかるべきディレクトリにおいておく。
  2. LaTeX文書をmuleで開いてから(つまりYaTeXモード[※]のときに)、 outline2.el
    M-x load-file [Enter]
    を用いて読み込む(ファイル名はTab補完で入力できる)。 すると、YaTeXモードにアウトラインモード(outline-minor-mode)が プラスされ、さらに 見出し以外のテキストがすべて畳まれた状態になる。
    ※ YaTeX以外のTeXモードだと、outline2.elの内容を 少し変更する必要があるかもしれない。
  3. X環境では、muleのツールバーに 「Hide」「Show」などという項目が現れるので、 これでテキストを項目ごとに畳んだり戻したりできる。
    ツールバーがない場合やマウスの調子が悪い場合は、キーコマンドで畳んだり戻したりするという手も可能。 最初はツールバーのメニューを見てキーコマンドを覚え、 慣れてきたら徐々にキーコマンドに移行するのが良いだろう。
なお、ちょっとした小細工であるが、 「%[ ]*===*」も見出しの一種として認識するので、 \begin{document}の直後や \end{document}の直前に
% ============================
のような行を入れておいたり、 書きかけの行の直後に
% === 2001-12-25: ここまで ===
などと入れておくと便利かもしれない。
※ 注意: これはあくまで自己流の簡易設定です。 きちんとした設定が知りたい人は、千葉大学の松田茂樹さんによる解説を見るのが良いと思います。

[ページ冒頭に戻る] [「大工道具」のページへ] [ホームページに戻る]