インストールが終了した所で,実際の文書作成を通じて,LaTeX2e における作業の概要を見てみよう。
まずは,適当なフォルダを作成して,そこにテスト用のファイルを作成してみよう。ここでは,「C:¥work」というフォルダを作成し,そこに「test.tex」というファイルをメモ帳で作成します。
「test.tex」には,以下の内容を入力します(記号「\」は,Windowsでは記号「¥」,また逆に記号「¥」はUnixやMacでは,記号「\」になります。)。
\documentclass{jarticle}
\begin{document}
ただいまテスト中。
\LaTeX
\end{document}
こうして完成した「test.tex」というファイルがLaTex2eのテキストベースのファイルになります。
次に,これを「LaTeX2e」のプログラム「platex」によって変換(コンパイル)します。その手順は,以下のとおりです。
cd c:\work
C:\work>platex test.tex
Output written on test.dvi (.........)
Transcript written on test.log
以上で,変換が終了しました。この結果,「C:\work」フォルダには,以下のようなファイルが作成されます。
これらのファイルのうち拡張子「aux」と「log」のファイルは作業用ファイルとなり,拡張子「dvi」が変換結果のファイルになります。
このように拡張子「tex」のファイルを「dvi」のファイルに変換する作業を「タイプセット」と呼びます。
次に,この「dvi形式」のファイルを「pdf形式」に変換します。その手順は以下のとおりです。
C:\work>dvipdfmx test.dvi
正常に変換できたならば,最後に「PDF形式」のファイルを表示してみましょう。その手順は以下のとおりです。
C:\work>start test.pdf
さて,これまではすべてコマンドプロンプトから作業しましたが,「TeXworks」を使えば,この一連の作業を簡単に行うことができます。すなわち,「TeXworks」でテキストベースのLaTeX2eのファイル(以下,texファイルと呼びます。)を作成し,画面左上の矢印アイコンをクリックすることにより,dvi形式のファイルへの変換,さらにdvi形式からpdf形式への変換を自動的に行うことができます。
一般的には,「TeXworks」のような統合環境を使って文書作成を行うことが多く,これらのソフトウェアでは,texファイルからpdfファイルの作成までを「タイプセット」と呼びます。
以上のことをまとめると,文書作成の流れは以下のようになります。
texファイルの作成→タイプセット→PDFファイルの作成
最初に作成したtest.texというファイルの中で,記号「\」で始まる部分のことを「コマンド」と呼びます。LaTeX2e では,このコマンドによっていろいろな数学記号を表現したり,文書の整形をしたりします。
コマンドには,いろいろな種類がありますが,コマンドが正しく動作するために追加の情報を指定するものもあります。この追加の情報を「引数」と呼び,記号「{」と「}」の間に指定します。また,オプション(必要に応じて指定する引数)の場合は,記号「[」と「]」の間に指定します。また,「\begin{...}」と「\end{...}」は対応して指定するコマンドで,特に「環境」と呼びます。
最初に作成したtest.texの内容は以下のとおりでした。
\documentclass{jarticle}
\begin{document}
ただいまテスト中。
\LaTeX
\end{document}
この内容を例にとると,先頭は,「\documentclassコマンド」で引数に「jarticle」を指定します。次に「\begin{document}」と「\end{document}」で囲まれた「document環境」,そのdocument環境の中では「\LaTeXコマンド」を引数なしで記述しています。
LaTeX2e 文書の先頭は「documentclassコマンド」から始まります。documentclassコマンドでは,使用する「文書クラス」を指定します。
\documentclass{文書クラス}
文書クラスは,文書の種類に応じた書式(クラス)の定義です。基本となる文書クラスには,以下のようなものがあります。
上記の文書クラスは,欧文用に最適化されているため,和文の文書では,あまり体裁がよくありません。そこで,それぞれの文書クラスの先頭に「j」を付けたものが,和文用の文書クラスとして用意されています。
また,「jarticle」と「jbook」は,さらに改良された新しい文書クラスが定義されています。
また,和文には横書きと縦書きがありますが,上記の和文用文書クラスは横書きを前提とした文書クラスで,それぞれの縦書き用文書クラスには,以下のものが用意されています。
documentclassコマンドでは,引数に文書クラスを指定しますが,それ以外にオプションとして文字サイズ,用紙サイズ,用紙向きなどが指定できます。これらのオプションについては,また後で詳しく説明します。
\begin{document}と\end{document}で囲まれた部分を「document環境」と呼び,ここに記述された部分を本文として認識します。
つまり,もっとも小さなLaTeX2e 文書の構成は以下のようになります。
\documentclass{文書クラス}
\begin{document}
ここに本文を記述します。
\end{document}
documentclassコマンドと\begin{document}の間の部分を「プリアンブル」と呼びます。プリアンブルでは,文書クラスで定義されている機能の変更や調整をしたり,ユーザー独自のコマンド定義したりする場合に,この部分にコマンドを記述します。なお,最初に作成したtest.texでは,何も記述していませんが,特に必要がなければ何も記述しないこともできます。
ここで新しいコマンド「\maketitle」を利用して文書にタイトルを付けてみましょう。最初に作成したtest.texを次のように修正します。
\documentclass{jarticle}
\title{文書のタイトル}
\author{著者名}
\date{2010年9月9日}
\begin{document}
\maketitle
ただいまテスト中。
\LaTeX
\end{document}
修正後,test.texをタイプセットすると以下のようなPDFが表示されます。
このようにmaketitleコマンドは,文書のタイトル,著者名,年月日を文書に付加します。このときtitleコマンドに文書タイトル,authorコマンドに著者名,dateコマンドに年月日を,それぞれプリアンブルに記述します(実際には,maketitleコマンドより前であれば,どこに記述しても良い。一般的には,プリアンブルに記述することが多い。)。
なお、maketitleコマンドは,必ずdocument環境の中に記述しなければなりません。
修正したtest.texでは,本文中(document環境内)に「maketitleコマンド」と「LaTeXコマンド」の2つを使用しています。
LaTeXコマンドは,LaTeX2e のロゴを表示するコマンドで,その書式は,次のとおりです。また,LaTeXコマンド以外にTeXコマンドやLaTeXeコマンドもあります。
\TeX 表示されるロゴ→ \LaTeX 表示されるロゴ→ \LaTeXe 表示されるロゴ→
これまでいくつかのコマンドを説明してきましたが,すべてのコマンドは,記号「\」で始まり,その後ろに「コマンド名」が続きます。また,コマンドの種類によっては,さらにその後ろに引数が付属するものもあります。
これらのコマンドを記述する場合,注意しなければならないのは,「LaTeXコマンド」のような引数指定のないコマンドを記述する場合です。例えば,次の例を見てください。
\TeXです。
これはエラーになります。つまり,記号「\」に続くコマンド名が「TeXです。」となるためです。このエラーを回避するためには,コマンド名の後ろに半角の空白を記述するか,引数なしを意味する「{}」を明示的に記述するか,コマンド全体を「{}」で囲んで記述するか,コマンド記述後に改行するようにします。
\TeX△です。 半角空白(△)で区切る \TeX{}です。 {}を記述する {\TeX}です。 {}でコマンド全体を囲む \TeX
です。改行で区切る
ここでは,以下の例文を使った簡単な文書作成を通じて,LaTeX2e の文書作成に関するいくつかのルールを学習したいと思います。
出典:「青空文庫」より
鼻
芥川龍之介
禅智内供(ぜんちないぐ)の鼻と云えば、池(いけ)の尾(お)で知らない者はない。長さは五六寸あって上唇(うわくちびる)の上から顋(あご)の下まで下っている。形は元も先も同じように太い。云わば細長い腸詰(ちょうづ)めのような物が、ぶらりと顔のまん中からぶら下っているのである。
五十歳を越えた内供は、沙弥(しゃみ)の昔から、内道場供奉(ないどうじょうぐぶ)の職に陞(のぼ)った今日(こんにち)まで、内心では始終この鼻を苦に病んで来た。勿論(もちろん)表面では、今でもさほど気にならないような顔をしてすましている。これは専念に当来(とうらい)の浄土(じょうど)を渇仰(かつぎょう)すべき僧侶(そうりょ)の身で、鼻の心配をするのが悪いと思ったからばかりではない。それよりむしろ、自分で鼻を気にしていると云う事を、人に知られるのが嫌だったからである。内供は日常の談話の中に、鼻と云う語が出て来るのを何よりも惧(おそ)れていた。
内供が鼻を持てあました理由は二つある。--一つは実際的に、鼻の長いのが不便だったからである。第一飯を食う時にも独りでは食えない。独りで食えば、鼻の先が鋺(かなまり)の中の飯へとどいてしまう。そこで内供は弟子の一人を膳の向うへ坐らせて、飯を食う間中、広さ一寸長さ二尺ばかりの板で、鼻を持上げていて貰う事にした。しかしこうして飯を食うと云う事は、持上げている弟子にとっても、持上げられている内供にとっても、決して容易な事ではない。一度この弟子の代りをした中童子(ちゅうどうじ)が、嚏(くさめ)をした拍子に手がふるえて、鼻を粥(かゆ)の中へ落した話は、当時京都まで喧伝(けんでん)された。--けれどもこれは内供にとって、決して鼻を苦に病んだ重(おも)な理由ではない。内供は実にこの鼻によって傷つけられる自尊心のために苦しんだのである。
最初に,LaTeX2e 文書の枠組みとして,タイトル,著者名,document環境を作成します。ここでは,文書クラスとして「jarticle」を使用するものとします。
\documentclass{jarticle}
\title{鼻}
\author{芥川龍之介}
\begin{document}
\maketitle
\end{document}
以上のテキストをファイル名「hana.tex」として保存し,PDFを作成すると以下のように表示されます。
このとき作成年月日を表示したくなければ,何も引数を指定しない date コマンドを記述します。
\documentclass{jarticle}
\title{鼻}
\author{芥川龍之介}
\date{}
\begin{document}
\maketitle
\end{document}
次に本文を document 環境に記述していきます。まずは,最初の段落を入力します。入力するときの注意としては,段落の途中で改行せずに入力することです。エディタの種類によっては,入力しにくくなるかもしれませんが,TeXworks では,長い1行を折り返して表示するので,問題なく入力できると思います。
次に2番目の段落を入力しますが,このとき,段落の区切りとして空行を入力します。
なお,段落の先頭は,自動的にインデント(字下げ)されるので,1文字の空白を入力する必要はありません。同様に3番目の段落も空行を入力した後,段落を入力します。ここまでのところのソースを以下のとおりです。
¥documentclass{jarticle}
¥title{鼻}
¥author{芥川龍之介}
¥date{}
¥begin{document}
¥maketitle
禅智内供(ぜんちないぐ)の鼻と云えば、池(いけ)の尾(お)で知らない者はない。長さは五六寸あって上唇(うわくちびる)の上から顋(あご)の下まで下っている。形は元も先も同じように太い。云わば細長い腸詰(ちょうづ)めのような物が、ぶらりと顔のまん中からぶら下っているのである。
五十歳を越えた内供は、沙弥(しゃみ)の昔から、内道場供奉(ないどうじょうぐぶ)の職に陞(のぼ)った今日(こんにち)まで、内心では始終この鼻を苦に病んで来た。勿論(もちろん)表面では、今でもさほど気にならないような顔をしてすましている。これは専念に当来(とうらい)の浄土(じょうど)を渇仰(かつぎょう)すべき僧侶(そうりょ)の身で、鼻の心配をするのが悪いと思ったからばかりではない。それよりむしろ、自分で鼻を気にしていると云う事を、人に知られるのが嫌だったからである。内供は日常の談話の中に、鼻と云う語が出て来るのを何よりも惧(おそ)れていた。
内供が鼻を持てあました理由は二つある。---一つは実際的に、鼻の長いのが不便だったからである。第一飯を食う時にも独りでは食えない。独りで食えば、鼻の先が鋺(かなまり)の中の飯へとどいてしまう。そこで内供は弟子の一人を膳の向うへ坐らせて、飯を食う間中、広さ一寸長さ二尺ばかりの板で、鼻を持上げていて貰う事にした。しかしこうして飯を食うと云う事は、持上げている弟子にとっても、持上げられている内供にとっても、決して容易な事ではない。一度この弟子の代りをした中童子(ちゅうどうじ)が、嚏(くさめ)をした拍子に手がふるえて、鼻を粥(かゆ)の中へ落した話は、当時京都まで喧伝(けんでん)された。---けれどもこれは内供にとって、決して鼻を苦に病んだ重(おも)な理由ではない。内供は実にこの鼻によって傷つけられる自尊心のために苦しんだのである。
¥end{document}
3番目の段落の中で「---」という部分が2カ所ありますが,これは記号の「ダッシュ」に変換されます。このとき「-」が1つの場合は,そのまま記号「-」となり,2つの場合「--」と3つの場合「---」は,それぞれ長さの異なるダッシュに変換されます。
例として,以下のような本文について考えてみます。
¥begin{document}
あいうえお かきくけこ
あいうえお かきくけこ
¥end{document}
この例では,2つの段落がありますが,1つ目の段落のソースでは,「あいうえお」と「かきくけこ」の間を1文字の半角空白で区切っています。また,2つ目の段落では,8文字の半角空白を2つの文字列の間に入れています。実は,この2つの段落を変換すると,「あいうえお」と「かきくけこ」の間を1文字の半角空白で区切った同じ文字列として表示されます。
あいうえお かきくけこ
あいうえお かきくけこ
つまり,ソース中の連続した半角空白はすべて1文字の半角空白と見なされます。なお,全角空白は独立した1文字として他の全角文字と同様に取り扱われます。
もし,2文字以上の半角空白をそれぞれ表示したい場合は,半角空白の前に記号「\」を付加します。
あいうえお \ \ \ \ \ \ \ かきくけこ
このようにすれば,それぞれ独立した半角空白文字として出力されます。
あいうえお かきくけこ
つぎに改行のルールについて説明します。次の例を見てください。
\begin{document}
あいうえおかきくけこ
あいうえお
かきくけこ
abcdefg hijklmn
abcdefg
hijklmn
\end{document}
1番目の段落では,「あいうえお」と「かきくけこ」を連続して記述しています。2番目の段落では,「あいうえお」の後に改行して,「かきくけこ」と記述しています。このようなソース中の「改行」は基本的に無視されます。ただし,空行は段落の区切りの意味になるので,注意してください。
ソース中の改行は基本的に無視され,変換結果では,「改行」されません。つまり,1つ目の段落と2つ目の段落は同じ出力になります。ただし,基本的に無視と書いたのには,訳があります。完全に無視されるのは,行末が「全角文字」の場合だけです。すなわち,行末が半角文字の場合は,完全な無視ではなく,1文字の半角空白と見なされます。つまり,出力結果は,次のようになります。
あいうえおかきくけこ
あいうえおかきくけこ
abcdefg hijklmn
abcdefg hijklmn
では,強制的に改行を行うためには,どのようにすれば良いのでしょうか。強制的改行は「\\」で行います。
\begin{document}
あいうえおかきくけこ
あいうえお\\
かきくけこ
\end{document}
この例の場合,1つ目の段落として「あいうえおかきくけこ」を表示し,2番目の段落の1行目として「あいうえお」,2行目として「かきくけこ」を表示します。
あいうえおかきくけこ
あいうえお
かきくけこ
さらに次の例を見てみましょう。
\begin{document}
1つ目の段落\\
2つ目の段落
\end{document}
この例の場合,1つ目の段落の最後に強制改行「\\」が記述してあり,その後に「空行」,すなわち,段落区切りの改行を出力後,2つ目の段落を出力することになります。つまり,段落間に1行空きができることになります。
1つ目の段落
2つ目の段落
このとき,記号「\\」の記述位置に注意しなければなりません。
\begin{document}
1つ目の段落
\\
2つ目の段落
\end{document}
この場合,1つ目の段落と2つ目の段落の間に強制改行「\\」があるので,強制的に改行されますが,空行が存在しないので,あくまでの1つの段落内での強制改行となり,別々の段落とは認識されません。
1つ目の段落
2つ目の段落
では,最後に強制改ページの方法について説明します。長い本文の場合,ページは自動的に改ページされますが,ある特定の位置で強制的に改ページさせたい場合は,コマンド「\newpage」を記述します。
\begin{document}
1ページ目
\newpage
ここから新しいページ
\end{document}
このサンプルの場合,文字列「1ページ目」を出力後,改ページされ,文字列「ここから新しいページ」が次のページの最初の段落として出力されます。
これまでのサンプルでは,文書クラスのみを指定していましたが,文書クラスには,スタイルを詳細に決めるクラスオプションを指定することができます。クラスオプション指定の書式は次のようになります。
\documentclass[オプション]{文書クラス}
指定できるオプションには,多くの種類がありますが,主なものを以下の掲載しておきます。また,複数のオプションを指定する場合には,各オプションをカンマ「,」で区切って指定します。
上記のオプション以外にも用紙サイズや用紙の向きを変更するオプションもありますが,これらを有効にするためには,コマンドラインからの変換処理が必要になり,若干複雑な操作になります。これらについては,もう少し,LaTeX2e での文書作成に慣れてから説明したいと思います。では,以下にオプションを指定した場合を例示しておきます。
\documentclass[12pt]{jsbook} | \documentclass[12pt,twocolumn]{jsbook} |