第7週: 文書処理(1)

今週は,レポートの作成で用いる文書処理システムである 日本語LaTeXについて勉強します.

LATEX 307 ページ


7. 1 文書処理とは
7. 2 LaTeXの処理の流れ
7. 3 xdvi をずっと動かしておく
7. 4 ソースファイルの書き方
7. 5 空白とコメント
7. 6 書体と大きさの変更
7. 7 章,節の見出し
7. 8 箇条書き
7. 9 行揃え
7.10 タイトル
7.11 特殊記号
7.12 エラーが起こったら
7.13 練習問題
7.14 Mule の LaTeX モード
7.15 宿題

7.1 文書処理とは

これまで,テキストエディタを使って電子メールや電子ニュースの内容を 書いてきましたが,レポートを書く場合,テキストエディタでは文字の大きさ を変更したり,箇条書きを行ったり,タイトルをうまく書いたりすることがで きません.そのため,レポートなどの文章を書く場合には,文書処理システム(document processing system)を用い ます.文書処理システムには,大きく2種類あります.

  1. WYSIWYG型: ワープロのように,画面上で,文字の大きさ等を変更することができ, 画面で見えるものをそのまま印刷することができる.
  2. マークアップ言語型: マークアップ(原稿をどのように整形するか伝えるための付記)を含んだテキストを作成し, それを処理することにより清書した文章を印刷する.
ここでは,マークアップ言語型の LaTeX と呼ばれる文書処理システムを用います. LaTeXには以下のような特徴があります.

7.2 LaTeXの処理の流れ

  1. Mule で,LaTeX のマークアップを含んだテキストファイルを作ります.LaTeX 用のファイルであることが分かるように,ファイル名の最後に .tex を付けておきます.このファイルのことをソースファイル (source file)と呼びます.
    \documentclass{jarticle}
    \begin{document}
    Hello, world.
    \end{document}
    
    Mule で test.tex というファイルを新たに作り, 上の通りに入力して,保存します.
  2. ソースファイルを印刷できるファイルに変換するには,platex コマンドを使います.端末ウインドウにおいて次 のように実行します.
    % platex test.tex
    This is pTeX, Version p2.1.5, based on TeX, Version 3.14159 (JIS) (Web2c 7.0)
    (test.tex
    pLaTeX2e <1997/07/02>+1 (based on LaTeX2e <1996/12/01> patch level 0)
    (/usr/local/share/texmf/tex/platex/base/jarticle.cls
    Document Class: jarticle 1998/10/13 v1.1n Standard pLaTeX class
    (/usr/local/share/texmf/tex/platex/base/jsize10.clo))
    No file test.aux.
    [1] (test.aux) )
    Output written on test.dvi (1 page, 232 bytes).
    Transcript written on test.log.
    % 
    
    こうすると,test.dviというファイルができるか,またはエラーで 停止します.
  3. エラーの場合は,C-c で処理を中止します. それから,ファイルを修正してエラーの原因を取り除き,再び platex の処理をやり直します.
  4. test.dvi というファイルが出来たら, 印刷する前に,ディスプレイで確認します. これをプレビュー(preview)といいます.xdvi コマンドを実行すると,新しいウィンドウに整形 結果が表示されます.
    % xdvi test.dvi
    
    プレビューを終了したいときは, quit ボタンをクリックします.終了しないと,端末ウィンドウで次の コマンドを実行することができません.
  5. プレビューの結果が良ければ,印刷します. test.dvi はテキストファイルではないので,a2ps コマンドは使えません.代わりに dvi2ps コマンドを使います.
    % dvi2ps test.dvi | lpr -Pnps15
    @(#)dvi2ps (j-version) 2.0j
    [/usr/local/lib/dvi2ps/dvi2.ps] [/usr/local/lib/dvi2ps/fonts/ascfix-m.ps] 
    Prescanning .
    Reading font info .
    [1] 
    %
    

7.3 xdvi をずっと動かしておく

プレビューを行うとき, xdvi コマンドをいちいち起動するのは面倒 なので,一回起動したらそれをずっと使うようにすることができます.
% xdvi test.dvi &
上のように,最後に「&」をつけて実行する と,端末ウィンドウにはすぐに次のプロンプトが出て,コマンドが実行可能に なります.こうすると,xdvi を動かしたまま, ソースファイルを修正して,もう一度 platex コ マンドを実行することができます.その後,xdvi ウィンドウをクリックして合図してやると,変更された test.dvi を読み込んで再表示します.

上のように,最後に「&」をつけて実行する 仕事をバックグラウンドジョブ(background job) と呼びます.それに対して,「&」をつけな いで実行する仕事をフォアグラウンドジョブ (foreground job)と呼びます.

フォアグラウンドジョブでコマンドを実行すると,その端末ウィンドウでの入 出力は,そのコマンドが占有します.lsmore のようなコマンドに向いています.それに 対して,バックグラウンドジョブで実行すると,入出力をすぐに次のコマンド へ明け渡します.mulexdvi のような独自のウィンドウを開くコマンド,ある いは実行に長い時間のかかるコマンド(ただし,結果は端末ウィンドウに出さ ずに,ファイルに保存するように指定しないと,次のコマンドの結果と混ざっ てしまいます)に向いています.

7.4 ソースファイルの書き方

LaTeX でのマークアップは主として制御語 (control word)によって表します.これは「\」の後に単語をつけたものです.

注意: アルファ ベットや記号には,ASCII 文字(漢字の半分の大きさで表示される)と JIS 文 字(漢字と同じ大きさで表示される)があり,違う文字として扱われます.制御 語を書くときは,間違えないようにしてください.

注意: 制御語の 後には,次の単語とくっついてしまわないように,空白を入れます.次の単語 が日本語の場合は忘れやすいので特に注意してください.

ソースファイルの構成は次のようになっています.
\documentclass[クラスオプション]{文書クラス}
  プリアンブル
\begin{document}

  本文

\end{document}

7.5 空白とコメント

ソースファイルの中の空白と改行は,単語を区切る役目しかしません.どんな 書き方をしても,LaTeX は指定された幅に均等に詰まるように自動的に配置し ます.

文字と文字の間に余分に空白をあけたいときは, 「\ 」(バックスラッシュの後に空白)と書きます. 行と行の間に余分に空白をあけたいときは,次の制御語を使います.

空行(改行だけの行)は,段落の切れ目を表します.

%」があると,そこから行末まではコメントと して無視されます.書いた文章の一部を一時的に消したい場合などに使えます.

7.6 書体と大きさの変更

書体を変更するには次の制御語を使います.

文字の大きさを変更するには次の制御語を使います.大きさは基本の文字の大 きさに対して相対的になっています.クラスオプションで文字の大きさを変更 していなければ,\normalsize が 10pt です.

本文の中に上の制御語があると,その直後の文字から後は指定された書体また は大きさになります.一部分だけ変更したいときは,次のように「{}」で囲んで,有効範囲を制限すると便利です.
普通の文字 {\Huge 大きな文字} 普通の文字

7.7 章,節の見出し

章,節などの見出しには次の制御語を使います.自動的に章番号や節番号がつ きます. \part は,かなり厚い文書の場合に使うのが普通 です.jarticle で短い文書を書くときは,\section\subsection だけで十分です.

7.8 箇条書き

箇条書きをするためには,項目をいくつか並べなければなりません.各項目は \item で指定し,全体を\begin{itemize}\end{itemize} で囲みます.
\begin{itemize}
 \item xxxx
 \item yyyy
 \item zzzz
\end{itemize}
\begin\end で 囲まれた部分を環境(environment)と呼びます.

番号つきの箇条書きにするためには,itemize 環 境の代わりに enumerate 環境を使います.
\begin{enumerate}
 \item xxxx
 \item yyyy
 \item zzzz
\end{enumerate}

7.9 行揃え

通常の文章は,両端揃えになるように適切なところで改行が行われます. 違った揃え方をするには,次のような環境を使います.

上の環境では,指定しない限り改行は行われず,1行で表示されます. 改行の指定には 「\\」 を書きます.

7.10 タイトル

文書にタイトルを付けるには,\maketitleを使い ます.
\documentclass[12pt]{jarticle}

\title{情報処理Ia \LaTeX 練習}
\author{学部名 1年 学籍番号  氏名}
\date{\today}

\begin{document}
\maketitle

\section{はじめに}
  ---  一言,何か書く ---
\section{本文のタイトル}
  ---  何か本文を書く ---
\section{おわりに}
  ---  一言,何か書く ---
\end{document}

7.11 特殊記号

LaTeX のマークアップに使っている, \{}%などの特殊記号は, そのままでは出力することができません. このためには,
\verb|\|
\verb|{|
\verb|}|
\verb|%|
などと書きます.

また,文章の広い範囲をそのまま出力するには,
\begin{verbatim}
 --- 文章など --- 
\end{verbatim}
とします. こうすると,改行や空白もそのまま出力されるので, プログラムなどを書くのに利用することが出来ます.

7.12 エラーが起こったら

platex コマンドで文章を処理していると, エラーを発見して入力を待つ状態になることがあります.

7.13 練習問題

LaTeXのエラーを取り除く練習をしてみましょう. 下のコマンドを実行すると, 間違いを3箇所含んだerr.texというソースファイルがコピーされます.
% cp /pub/sfc/ipl/1a/exercise/err.tex .
エラーを修正して,次のような結果が出るようにしなさい.

7.14 Mule の LaTeX モード

Mule で LaTeX のソースファイルを編集するときは,モードラインに 「LaTeX」 と表示されます.これを LaTeX モードと呼び,通常の機能に加えて LaTeX 編 集用の機能が使用可能になります.CNS では,標準の LaTeX モードと,それ を拡張した2種類のモードが利用できます.

ここでは,やてふを使ってみましょう.やてふを使うためには,設定が必要で す.Mule で ~/.emacs というファイルを作り,次の2行を入力して 保存します.タイプミスをしないよう,netscape から mule へマウスでコピー しましょう.
(autoload 'yatex-mode "yatex")
(setq auto-mode-alist (cons '("\\.tex\\'" . yatex-mode) auto-mode-alist))
次に mule を起動したときから,設定が有効になります.また,やてふを使う のをやめるときは, ~/.emacs からこの2行を削除します.

~/.emacs を編集している状態で M-x eval-current-buffer を実行すると,mule を起動し直さなくても設定 が有効になります.これは,そのバッファの内容を emacs lisp プログラムと して実行せよという意味です.

やてふが有効な状態でファイル名に .tex が付いたファイルを編集 すると,モードラインに「やてふ」と表示され,やてふの機能が使えるように なります.

他にもたくさん機能があります.自分でいろいろ試してみてください.

7.15 宿題

  1. 自分はなぜ SFC に来たのか,4年間でどんなことがしたいか,卒業後はどうし たいか,ということについて,タイトルと章見出しの付いた文章にして LaTeX で清書しなさい.
  2. 上の文章の,文書クラスとクラスオプションをいろいろ変えて,整形結果がど う変わるか調べなさい.

目次のページへ行く