\documentclass[twocolumn]{jarticle} \usepackage[dvips]{graphicx} \usepackage{ascmac} \def\url#1{{\textbf #1}} \def\commandline(#1,#2){% \def\line{srv\% {\texttt #1} {\sl #2}} \line \ \keytop{\return} } \def\commandlineq(#1){% \begin{flushleft} \commandline(#1) \end{flushleft} } \newenvironment{commandout}[2] {\begin{screen}\commandline(#1,#2)\\\begingroup\texttt}{\endgroup\end{screen}} \西暦 \title{数学と情報処理\LaTeX} \date{\today} \author{奈古屋広昭} \begin{document} \maketitle \section{\LaTeX について} \LaTeX ({\tt LaTeX}、らてふ、らてっく、れいてっく) は非常にポピュラーな文書処理システムです。 \footnote{L. Lamport により 1980 年代はじめに開発された。現在普及しているのは \LaTeXe と呼ばれるバージョン。} ベースとなっている \TeX ({\tt TeX}、てふ、てっく) \footnote{D. E. Knuth により 1970 年代に開発されたとても強力な文書組版システム。ちなみにアメリカ数学会(AMS)の標準組版システムである。 } から引き継いだ \begin{itemize} \item 高品質な組版能力 \item 強力な数式表現能力 \item システム独立な可搬性 \item 完全なプログラミング言語 \end{itemize} といった特徴に加えて、以下のような特徴も備えています。 \begin{itemize} \item 素人向け(?)の文法と命令の規則 \item 論理デザイン指向 \item 豊富なライブラリ \end{itemize} 本来は欧文処理のためのシステムでしたが、有志のみなさんの尽力でほぼ完璧 な日本語化がなされています \footnote{各国/地域で韓国・朝鮮語化や中国・台湾語化、アラビア語化などもなされているそうです。}。 \section{\LaTeX の思想(?)} 文書を論理的な構造(論理デザイン)と視覚的な表現(視覚デザイン)とに分離して考えます。 \begin{center} \begin{math} \mbox{\gt 文書} = \mbox{\gt 論理デザイン} + \mbox{\gt 視覚デザイン} \end{math} \end{center} \begin{itemize} \item 論理デザイン $=$ 文章の流れ、見出し、起承転結、… \item 視覚デザイン $=$ 用紙サイズ、フォントの大きさ、行間の幅、… \end{itemize} 著者(= あなた)は論理デザイン(ともちろん中身)に重点を置いて文書を作成します。視覚デザインについては基本的にはデザイナーとコンピュータにまかせます。これは SGML や XML にも通じる考え方です。 誤解されないように注記しておきますが \LaTeX では視覚デザイン(つまり見栄え)を自分で調整することができない、ということではありません。標準のデザインに不満な点があれば(\LaTeX の機能を駆使して)自分で調整することが可能です。 実際問題として論理デザインと視覚デザインは完全に分離できるものではありません。 \section{\LaTeX での文書作成作業の流れ} \LaTeX で文書を作成するやり方は、コンピュータのプログラムを作成することに似ています(ある観点からすると両者は同一のものとなります)。WWW ページ作成のために HTML ファイルを直接編集するやり方にも似ているかもしれません。 \begin{center} \scalebox{0.4}{\includegraphics[clip]{nagare}} \end{center} 以下は WinShell 利用を前提としています。 \subsection{原稿の作成・編集・修正} 好みのテキストエディタを利用してください。 WinShell上でも可能です。 なお、\LaTeX 原稿のファイル名には ``{\tt .tex}''という拡張子を使うことが慣習となっています。 \subsection{コンパイル} WinShell に原稿ファイルを読み込んでいない場合は、まず読み込みをおこないます。 そして「LaTeXの実行」をおこないます。コンパイルエラー が発生した場合は、原稿ファイルの編集へ戻ります。 \subsection{製版結果の表示} 「DVIViewの実行」により{\tt dviout}を立ち上げ、画面上で製版結果を確認します。 ここで修正したい部分があった場合は、原稿ファイルの編集へ戻ります。 なお {\tt dviout} は再コンパイルがおこなわれたことを自動検知してくれますので、毎回「DVIViewの実行」をおこなわなくてもかまいません。 \subsection{印刷・PDF化} 必要に応じて製版結果を印刷したりPDFファイルへ変換します。 \section{\LaTeX ファイルの構造} \LaTeX は一種のプログラミング言語ですから、文法や処理方法は正確に定義 されています。しかし「正確」に記述するとかなり細い話になってしまうので、 ここではごくおおざっぱに解説します(つまり以下の話には厳密にいうと間違っ ている説明が混っています)。 また組版命令は非常にたくさんあるので、とてもここでは紹介しきれません。 以下で説明するのは、ほんのわずかの組版命令だけです。 ということで、きちんと \LaTeX を使うためには、市販の解説書を1冊くらいは購入した方がよいでしょう。お金がない人は図書館を利用しましょう。ある程度慣れた人ならばインターネット上の情報だけでがんばるという手もあります。 \subsection{地の文と組版命令} \LaTeX のファイルはプレインテキストです。ほとんどの文字は、文字そのものとしてそのまま、つまり地の文として解釈されます。 ``\%'' から行末(改行)までは註釈(コメント)と解釈されるので、\LaTeX の処 理系からは無視されます。 組版命令(コマンド、マクロ、コントロールシーケンス)は ``$\backslash$'' (バックスラッシュ、環境によっては円記号 ``\yen'' に見えることもある)で はじまる文字列です。論理的な構造(例: ここを見出しにする)や視覚的な表現 (例: この文字はゴシック体で表示する)を \LaTeX の処理系に指示します。 HTML のタグのようなものだといえばわかりやすいかもしれません。組版命令 には引数を持つものもあります。引数は \verb+{ }+ でくくって渡します。た とえば \verb+\underline{下線を引く}+ は \verb+\underline+ という下線を 引く組版命令に「下線を引く」という引数を渡したもの(ひらたくいう「下線 を引く」という文章に下線を引く)と解釈されるので \begin{quote} \underline{下線を引く} \end{quote} と表示されます。 またマクロ定義という形で、新しい組版命令を自由に作ることができます。 \subsubsection{空白} 次の3種類の文字(空白)は基本的には無視されます。 \begin{itemize} \item スペース \keytop{SPACE} \item タブ \keytop{Tab} \item 改行 \keytop{\return} \end{itemize} もうすこし正確にいうとこんなところです。 \begin{itemize} \item 空行(2個以上連続している改行)は段落の区切りとして解釈される。 \item 連続した空白はひとつの空白と同じ。 \item 和文の直後の空白は無視される。 \item 欧文の直後の空白は単語の境界と解釈される。 \end{itemize} 空白は「自然に」タイプしておけば「自然に」処理されます。ですから 上記のことであまり頭を悩ませる必要はありません。 \subsubsection{特別扱いされる文字} 次の12文字は \LaTeX にとって特別な意味を持ちますので、文字そのものとし ては解釈されません。これらの文字そのものを表示したいときは、その文字を 表示するための組版命令を使います。 \begin{table}[htbpt!] \begin{center} \def\v{\verb+} \begin{tabular}[t!]{l|l|l} \hline 文字 & \multicolumn{1}{c|}{組版命令} & \multicolumn{1}{c}{意味} \\ \hline $\backslash$ & \v$\backslash$+ & 組版命令の開始 \\ \# & \v\#+ & マクロの引数 \\ \$ & \v\$+ & 数式モードへの出入り \\ \% & \v\%+ & 註釈(コメント)の開始 \\ \& & \v\&+ & タブ制御 \\ \^{} & \v\^{}+ & 上付き添字の生成 \\ \_{} & \v\_{}+ & 下付き添字の生成 \\ \{, \} & \v\{+, \v\}+ & グルーピング用 \\ \~{} & \v\~{}+ & 単語間の空白生成 \\ \hline $<$, $>$ & \v$<$+, \v$>$+ & \\ $|$ & \v$|$+ & \\ \hline \end{tabular} \end{center} \end{table} \subsection{視覚デザインの指定} \LaTeX のファイルは次のような構造で書かれます。 \begin{verbatim} \documentclass... ... ← プリアンブル \begin{document} ... ← 本文(実際に出力される) \end{document} \end{verbatim} そしてプリアンブルと呼ばれる部分で、文書の視覚デザインを定義する慣習に なっています。 \LaTeX はドキュメントクラス(スタイルファイルともいう)とよばれる仕組み で文書のデザインを指定します。ふつうは標準で提供されている jarticle と いうクラスを使うことが多いでしょう。ドキュメントクラスの指定のために、 プリアンブルに次のような組版命令を書きます。 \begin{verbatim} \documentclass{jarticle} \end{verbatim} アメリカ数学会(AMS)や電子情報通信学会(IEICE)など各種の学会では、論文投 稿用に独自のドキュメントクラスを公開しています。ドキュメントクラスは自 由に作成できます。 より細い指定はオプションでおこないます。たとえば本文の文字サイズを12ポ イントにし 2段組みで組版したいときは次のような組版命令になります。 \begin{verbatim} \documentclass[12pt,twocolumn]{jarticle} \end{verbatim} \LaTeX はマクロという形で新しい組版命令を自由に定義することができます。 マクロ定義をまとめたファイル(パッケージファイル)を読み込むためには \verb+\usepackage+ という組版命令を使います。たとえば \verb+\keytop+ という組版命令は ascmac というパッケージで定義されて いますので \begin{verbatim} \documentclass[12pt,twocolumn]{jarticle} \usepackage{ascmac} \end{verbatim} とプリアンブルに書いておきます。そうすると \verb+\keytop{あ}+ という組 版命令で \keytop{あ} が表示されます。 \subsection{本文} \subsubsection{標題} \verb+\title+ で文書のタイトルを、\verb+\author+ で著者名を、 \verb+\date+ で日付を設定し、\verb+\maketitle+ で標題を出力します。 \begin{verbatim} \title{数学と情報\LaTeX} \author{学芸太郎} \date{\today} \maketitle \end{verbatim} ちなみに \verb+\date{\today}+ とすると、今日の日付になります(明日や一昨日になったとしたら、あなたのコンピュータの時計は狂っています)。 \subsubsection{節} \verb+\section+ で新しい節を開始します。\verb+\subsection+ で新しい小 節を開始します。節番号や小節番号は自動的に計算されます。 ちなみに \verb+\subsubsection+ までは標準で定義されていますが、 \verb+\subsubsubsection+ はありません。 \subsubsection{段落} 空行または \verb+\\+ で段落が変ります。\LaTeX ファイル中の空白や改行は 実際の組版には影響しませんので、エディタ内での見栄えを気にする必要はあ りません。 \subsubsection{その他} テスト用のサンプルファイル {\tt example.tex} を参照してください。 \section{実習} {\tt example.tex} を編集して、自分で \LaTeX による文書を作成してみましょう。 \begin{enumerate} \item 著者名を自分の名前にしてみる \item タイトルを変更してみる \end{enumerate} \subsection{ワードプロセッサとの対比} 冒頭で述べたように、\LaTeX は Word や一太郎に代表されるいわゆるワード プロセッサとはかなり毛色の異なるソフトウェアです。というわけでどのよう に使い分けるのが効果的なのか、という疑問が湧くことになりますが、私見で は次のようなかんじではないかと思います。 \begin{itemize} \item 基本的には好みの問題でしょう。 \item 短かい文書(1〜2ページ程度)はワードプロセッサで書いた方が楽でしょう。 \item \LaTeX のメリットは長い論理的な文書を書くときにこそ活きてきます。 \item ただし、数式が主の文章であれば短かい文書でも十分メリットがあります。 \item 再利用を考えると \LaTeX のメリットが活きてきます。 \item 数式や表・図版が一切ない文書であれば、\LaTeX でもワードプロセッ サでもなく、プレインテキストを使うのがもっとも合理的ではないでしょうか。 \end{itemize} \end{document}