LaTeXのすゝめ
はじめに
本記事はレポート・論文等の執筆に役立つツールのLaTeXを紹介します。非LaTeXユーザや初心者を対象としています。中級者や上級者には物足りないと思います。
TeX/LaTeXとは
TeX(テック/テフ)1は、スタンフォード大学のDonald E. Knuth教授が自ら開発したフリーの組版システムです。TeXはMS Wordなどの見たままを出力するWYSIWYGソフトウェアと異なり、執筆・組版・出力の各段階を分けて処理を行います。執筆に集中でき、さまざまなプラットフォーム上で高品質なの文書を出力することができます。
LaTeX(ラテック/ラテフ)2はLeslie Lamport博士によって開発された、TeXに機能を追加し手軽に組版が行えるようになったシステムです。現在ではLaTeXを使うことが一般的なので、「TeX」でLaTeXを指すことが多いです。
TeX、LaTeXの特徴は次のようなことがあげられます。
- Windows、macOS、Linuxなどの多くのプラットフォームで動作する。
- テキストファイルで文書を管理できる。
- きれいな数式を簡単に書ける3。
- 図や表を挿入した文書を作成できる。
- 章・節、式、図表の番号、頁番号管理などを自動的に行い、参照できる。
日本語TeXについて
現在、日本語対応している主なTeXエンジンは3つあります。
- pTeX:昔々にアスキーが開発した日本語対応のエンジンです。
- upTeX:Unicode対応でpTeXの進化系のようなエンジンです。
- LuaTeX:Luaが使え、PDFを直接出力する最新のエンジンです。
昔からの名残で学会のフォーマットにpLaTeXを採用していることがあります。ほぼ上位互換のupLaTeXが現在の主流であることからupLaTeXを中心に解説します。最新(未来の標準)のLuaLaTeXについては、LuaLaTeXのすゝめで解説しています。
upLaTeX について
田中琢爾さんが内部コードをUnicode化したpLaTeXの拡張版です。これにより次のようなpLaTeXの問題が解決されました。
- JIS第1, 2水準の範囲内の文字しか使えないこと。
- 8 bitの非英語欧文の扱いが難しいこと。
- 日本語に限られた利用しか出来なく、中国語や韓国語を扱えないこと。
簡単な話、いわゆる環境依存文字に優しくなったpLaTeXです。pLaTeXを使う理由は皆無と言ってもいいでしょう。(pLaTeXのフォーマットしか用意されていない学会とかがあるなら別ですが…)
LaTeX開発環境
文書作成には自分のPC等にLaTeXをインストールが必要です。TeX LiveというTeXのディストリビューションがオススメです。インストール方法はOSごとに異なるため、TeX Liveを参考にしてください。
自分のPCに環境を構築したくない場合はWeb上のサービスをオススメします。日本ではOverleafとCloud LaTeXがメジャーだと思います。どちらも無料でブラウザ上からLaTeXを使用できます。
文書作成の基本手順
upLaTeXによる文書作成は執筆・組版・出力の3つのステップで行います4。
- 原稿執筆にはテキストエディタを用いてTeXファイルを作成する。
- コマンド(
uplatex
)を用いてTeXファイルからDVIファイルを作成する。 - コマンド(
dvipdfmx
)を用いてDVIファイルからPDFファイルを作成する5。
この手順により執筆したTeXソースファイルからPDFの文書ファイルを出力できます。次に作成手順について例を用いて紹介します。
原稿ファイルの執筆(TeXファイルの作成)
テキストエディタを用いて下に示すソースファイルを作成します。ソースコードの具体的な説明はTeXソースの基本構成を参照してください。
\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx]{jsarticle}
\title{{\LaTeX}のすゝめ}
\author{Daiji}
\begin{document}
\maketitle
\section{はじめに}
{\TeX}は組版システムです。
{\TeX}を使いやすくするために、{\LaTeX}が開発されました。
p{\TeX}は日本語対応の{\TeX}です。
up{\TeX}はUnicode対応のp{\TeX}です。
\end{document}
組版(コンパイル)
upLaTeXを呼び出し、DVI(device independent file format)ファイル6を生成します。コンパイルする場合は、次のコマンドになります。
uplatex filename
次のようなメッセージが表示されたなら、コンパイルは成功し、filename.aux
、filename.log
、filename.dvi
が生成されているはずです。
...
Output written on filename.dvi (1 page, 1076 bytes).
Transcript written on filename.log.
PDFに変換
DVIファイルをPDFの文書ファイルに変換するには次のコマンドで行えます7。filename.pdf
が生成されると思います。
dvipdfmx filename
TeXソースの基本構成
upLaTeXのソースファイルは次の基本構成となります。
\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx]{jsarticle}
% プリアンブル
\begin{document}
% 本文
\end{document}
1行目はpLaTeX/upLaTeXとLaTeXの非互換をいい感じにしてくれるヤツです。pLaTeX/upLaTeXを使用する場合は何も考えずに書いてください。2行目は文書の種類(document class)を指定する部分です(参照)8。プリアンブルでは文書の体裁に関する宣言やコマンド等の定義を行います。本文が実際に出力される文書となります。なお、記号%
はコメントの開始を意味します(参照)。
本文の執筆の基本ルール
- 英文は単語の区切りで、和文は任意の場所で改行されます。
- 段落を区切るには、空行を入れる。
- 2文字以上の半角空白文字、タブ文字は1文字の半角文字とみなされる。
- 段落のはじめのインデントはTeXが自動的に入ります。全角スペースによるインデントは推奨されません。
- 次の記号は、TeXのキーワード扱いになるので、そのままでは出力できません(参照)。
#
、$
、%
、&
、_
、{
、}
、<
、>
、\
、^
、|
、~
- 記号
%
以降、行末まではコメントになります。 - 記号
\
ではじまる文字列はコマンドまたは環境です。環境とは\begin{環境名}
と\end{環境名}
のような対になっている命令で、それ以外のものがコマンドです。 \\
により強制改行ができます。安易な使用はオススメしません。
コマンド
ここでは主要な一部のコマンド等の紹介を行います。
タイトル
文章のタイトルは次のように指定します。
\title{表題}
\author{著者}
\date{日付}
\maketitle
見出し
\part{部}
\chapter{章} % jsarticle クラスには用意されていない
\section{節}
\subsection{項}
\subsubsection{目}
\paragraph{段落}
\subparagraph{小段落}
\section*{節}
のように、*
をつけることで、番号をつけないようにできます。
文字サイズ変更
文字サイズを変更するには次のコマンドが利用できます。サイズはデフォルトの値になっています。コマンド以降のフォントがすべて変更されます。{\Large 文章}
のようにすることで一部が変更できます9。
コマンド | サイズ |
---|---|
\tiny | |
\scriptsize | |
\footnotesize | |
\small | |
\normalsize | |
\large | |
\Large | |
\LARGE | |
\huge | |
\Huge |
これら以外の文字サイズに変更したい場合には\fontsize
コマンドを使用します。文字サイズと行送りを指定して使用します。
\fontsize{10.5pt}{15pt}\selectfont
フォントスタイル変更
フォントスタイルを変更するには次のコマンドが利用できます10 11。日本語用の明朝体やゴシック体にするコマンド\textmc
、\textgt
も存在します。
入力 | 出力 |
---|---|
\textrm{Roman} | |
\textbf{Boldface} | |
\texttt{Typewriter} | |
\textit{Italic} | |
\textsf{SansSerif} | |
\textsl{Slanted} | |
\textsc{SmallCaps} |
記号
キーワード扱いの文字や一部の特殊文字を出力するためには次のコマンドなどが利用できます。
入力 | 出力 |
---|---|
\# | |
\$ | |
\% | |
\& | |
\_ | |
\{ | |
\} | |
- | (ハイフン) |
-- | (エヌダッシュ) |
--- | (エムダッシュ) |
$-$ | (マイナス) |
`` | (開きダブルクォーテーション) |
'' | (閉じダブルクォーテーション)12 |
改ページ
改ページを行なうコマンドには、\pagebreak
、\newpage
、\clearpage
などがあります。コマンドごとに細かな使用が異なりますが基本的に改ページに用いられます。
環境
ここでは主要な一部の環境の紹介を行います。
箇条書き
箇条書きのための環境として、番号なし箇条書き(itemize
)、番号付き箇条書き(enumerate
)、見出し付き箇条書き(description
)が用意されています。次のように使用してください。
\begin{itemize}
\item 項目1
\item 項目2
\end{itemize}
揃え
文字揃えは左揃え(flushleft
)、中央揃え(center
)、右揃え(flushright
)が指定できます。次のように使用してください。
\begin{flushleft}
文字列1\\
文字列2
\end{flushleft}
ドキュメントクラス
1行目のドキュメントクラス指定は次のように記述します。
\documentclass[オプション]{ドキュメントクラス}
jsclasses
互換クラス次の通りです。jarticle
等はJIS組版規則に合わないのでオススメできません。現在は日本語組版処理の要件に準拠したjlreq
が注目を浴びています。詳しくはjlreqで説明されています。
種類 | ドキュメントクラス | 内容 |
---|---|---|
article | jsarticle | 論文・レポート用 |
book | jsbook | 書籍用 |
一部のオプションは次の通りです。
オプション | 内容 |
---|---|
11pt, 12pt | 本文の文字サイズ |
landscape | 横長 |
twocolumn | 2段組 |
fleqn | 数式を左揃え |
titlepage | 独立したタイトルページ |
a4paper | 用紙サイズをA4に指定 |
b5paper | 用紙サイズをB5に指定 |
目次/相互参照
LaTeXには自動で節やキャプションの参照が行えます。文書の一部を書き直すときも自動で変更してくれるのでとても便利です。
目次
目次を出力するには、挿入したい場所に\tableofcontents
と書き、TeXファイルを3回コンパイルしてください。同様に図や表の目次を出力したい場所には\listoffigures
、\listoftables
と書いてください。
相互参照
節や図表の表題、式の後に\label{ラベル}
を書くことで、その番号を参照したいところで\ref{ラベル}
とすれば、対応する番号を参照できます。また、\pageref{ラベル}
とすればページ番号が参照できます。相互参照を使う場合には、TeXファイルを2回コンパイルする必要があります。
本研究で用いた試験材料の外観を図\ref{fig:test}に示す。
\begin{figure}
....
\caption{実験装置の外観}
\label{fig:test}
\end{figure}
温度特性は、式(\ref{eq:test})で近似できる。
\begin{align}
y = \exp(x) + c. \label{eq:test}
\end{align}
数式
本文中の数式
本文中にのように数式を書くには次のように$
で挟むことでできます。
本文中に$f(x) = ax + b$のように数式を書くには次のように\texttt{\$}で挟むことでできます。
別行立て数式
別行立て数式は、
のように環境align
により書くことができます13。他の数式環境のeqnarray
も有名だがamsmath.sty
ではサポートしていないので推奨できません。
別行立て数式は、
\begin{align}
f(x) &= ax + b\\
g(x) &= cx^{2} + dx + e
\end{align}
のように環境により書くことができます。
おわりに
今回は、upLaTeXを中心にLaTeXのごく一部を紹介をしました。本記事では以下に示すような紹介できてないです。
- 数式モード中でのコマンドなど
- 表
- 図(とくにEPSとかPDFの話)
今後暇を見付けて記事のアップデートしていきたいと思います。楽しいLaTeXライフを願っています。
文献
脚注
-
TeXのように書くことが望ましいです。難しい場合はTeXにしましょう。この記事では統一のためにTeXにしています。 ↩
-
LaTeXのように書くことが望ましいです。難しい場合はLaTeXにしましょう。 ↩
-
TeXの数式記法は現在一般的に使用されています。 ↩
-
(u)pLaTeXのようなレガシーLaTeXはDVIを経由してPDFを作成します。pdfLaTeX、LuaLaTeXなどのモダンLaTeXは直接PDFを出力するので2つのステップ(執筆と出力)になります。 ↩
-
他のソフト(コマンド)によりPDFファイル以外のPSファイルを出力する場合などもあります。 ↩
-
レイアウト情報を埋め込んだファイルのことです。 ↩
-
古い
dvipdfm
というDVIウェアもあるが今は使えません。 ↩ -
uplatex
はこのソースファイルがupLaTeX用であることを明示するためにあります。また、dvipdfmx
はgraphicx
やcolor
パッケージのドライバ指定用です。グローバルオプションとしてすべてのパッケージに適用されます。 ↩ -
本ブログでは
\footnotesize
が使えないため、別の方法で再現しています。 ↩ -
\bf
や\it
のようなフォントスタイルを変更するコマンドは古く使ってはいけません。現在は\bfseries
等の使用が推奨されます。 ↩ -
本ブログでは
sl
、sc
が使えないため、別の方法で再現しています。 ↩ -
TeXでは1キーで入力するダブルクォーテーション
"
の使用は推奨されません。 ↩ -
このブログでは式番号が表示されないが、実際のTeXでは表示されます。また、TeXで式番号を表示しない場合は環境を
align*
とします。 ↩