はじめに
本記事はレポート・論文等の執筆に役立つツールの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水準の範囲内の文字しか使えないこと。
- 8bitの非英語欧文の扱いが難しいこと。
- 日本語に限られた利用しか出来なく,中国語や韓国語を扱えないこと。
簡単な話,いわゆる環境依存文字に優しくなったpLaTeXです。pLaTeXを使う理由は皆無と言ってもいいでしょう。(pLaTeXのフォーマットしか用意されていない学会とかがあるなら別ですが…)
LaTeX開発環境
文書作成には自分のPC等にLaTeXをインストールが必要です。TeX LiveというTeXのディストリビューションがおすすめです。インストール方法はOSごとに異なるため,TeX Live (TeX Wiki)を参考にしてください。
自分のPCに環境を構築したくない場合はWeb上のサービスをおすすめします。日本ではOverleafとCloud LaTeXがメジャーだと思います。どちらも無料でブラウザ上からLaTeXを使用できます。
文書作成の基本手順
upLaTeXによる文書作成は執筆・組版・出力の3つのステップで行います4。
- 原稿執筆にはテキストエディタを用いてTeXファイルを作成する。
- コマンド(
uplatex
)を用いてTeXファイルからDVIファイルを作成する。 - コマンド(
dvipdfmx
)を用いてDVIファイルからPDFファイルを作成する5。
この手順により執筆したTeXソースファイルからPDFの文書ファイルを出力することができます。次に作成手順について例を用いて紹介します。
原稿ファイルの執筆(TeXファイルの作成)
テキストエディタを用いて下に示すソースファイル(sample.tex
)を作成します。ソースコードの具体的な説明はTeXソースの基本構成を参照してください。
|
|
組版(コンパイル)
upLaTeXを呼び出し,DVI(device independent file format)ファイル6を生成します。sample.tex
をコンパイルする場合は,次のコマンドになります。
uplatex sample
次のようなメッセージが表示されたなら,コンパイルは成功し,sample.aux
,sample.log
,sample.dvi
が生成されているはずです。
|
|
PDFに変換
DVIファイルをPDFの文書ファイルに変換するには次のコマンドで行えます7。sample.pdf
が生成されると思います。
dvipdfmx sample
TeXソースの基本構成
upLaTeXのソースファイルは次の基本構成となります。
|
|
1行目は(u)pLaTeXとLaTeXの非互換をいい感じにしてくれるヤツです。(u)pLaTeXを使用する場合は何も考えずに書いてください。2行目は文書の種類(document class)を指定する部分です(参照)8。プリアンブルでは文書の体裁に関する宣言やコマンド等の定義を行います。本文が実際に出力される文書となります。なお,記号%
はコメントの開始を意味します(参照)。
本文の執筆の基本ルール
- 英文は単語の区切りで,和文は任意の場所で改行されます。
- 段落を区切るには,空行を入れる。
- 2文字以上の半角空白文字,タブ文字は1文字の半角文字とみなされる。
- 段落のはじめのインデントはTeXが自動的に入ります。全角スペースによるインデントは推奨されません。
- 次の記号は,TeXのキーワード扱いになるので,そのままでは出力できません(参照)。
#
,$
,%
,&
,_
,{
,}
,<
,>
,\
,^
,|
,~
- 記号
%
以降,行末まではコメントになります。 - 記号
\
ではじまる文字列はコマンドまたは環境です。環境とは\begin{環境名}
と\end{環境名}
のような対になっている命令で,それ以外のものがコマンドです。 \\
により強制改行ができます。安易な使用はお勧めしません。
コマンド
ここでは主要な一部のコマンド等の紹介を行います。
タイトル
文章のタイトルは次のように指定します。
|
|
見出し
|
|
\section*{節}
のように,*
をつけることで,番号をつけないようにできます。
文字サイズ変更
文字サイズを変更するには次のコマンドが利用できます。サイズはデフォルトの値になっています。コマンド以降のフォントが全て変更されます。{\Large 文章}
のようにすることで一部が変更できます9。
コマンド | サイズ |
---|---|
\tiny |
|
\scriptsize |
|
\footnotesize |
|
\small |
|
\normalsize |
|
\large |
|
\Large |
|
\LARGE |
|
\huge |
|
\Huge |
これら以外の文字サイズに変更したい場合には\fontsize
コマンドを使用します。文字サイズと行送りを指定して使用します。
|
|
フォントスタイル変更
フォントスタイルを変更するには次のコマンドが利用できます1011。日本語用の明朝体やゴシック体にするコマンド\textmc
,\textgt
も存在します。
入力 | 出力 |
---|---|
\textrm{Roman} |
|
\textbf{Boldface} |
|
\texttt{Typewriter} |
|
\textit{Italic} |
|
\textsf{SansSerif} |
|
\textsl{Slanted} |
|
\textsc{SmallCaps} |
記号
キーワード扱いの文字や一部の特殊文字を出力するためには次のコマンドなどが利用できます12。
入力 | 出力 |
---|---|
\# |
|
\$ |
|
\% |
|
\& |
|
\_ |
|
\{ |
|
\} |
|
- |
(ハイフン) |
-- |
(エヌダッシュ) |
--- |
(エムダッシュ) |
$-$ |
(マイナス) |
`` |
(開きダブルクォーテーション) |
'' |
(閉じダブルクォーテーション)13 |
改ページ
改ページを行なうコマンドには,\pagebreak
,\newpage
,\clearpage
などがあります。コマンドごとに細かな使用が異なりますが基本的に改ページに用いられます。
環境
ここでは主要な一部の環境の紹介を行います。
箇条書き
箇条書きのための環境として,番号なし箇条書き(itemize
),番号付き箇条書き(enumerate
),見出し付き箇条書き(description
)が用意されています。次のように使用してください。
|
|
揃え
文字揃えは左揃え(flushleft
),中央揃え(center
),右揃え(flushright
)が指定できます。次のように使用してください。
|
|
ドキュメントクラス
1行目のドキュメントクラス指定は次のように記述します。
|
|
jsclasses
互換クラス次の通りです。jarticle
等はJIS組版規則に合わないのでお勧めできません。現在は日本語組版処理の要件に準拠したjlreq
が注目を浴びています。詳しくはjlreq (GitHub)で説明されています。
種類 | ドキュメントクラス | 内容 |
---|---|---|
article | jsarticle |
論文・レポート用 |
book | jsbook |
書籍用 |
一部のオプションは次の通りです。
オプション | 内容 |
---|---|
11pt, 12pt | 本文の文字サイズ(11pt,12pt) |
landscape | 横長 |
twocolumn | 2段組 |
fleqn | 数式を左揃え |
titlepage | 独立したタイトルページ |
a4paper | 用紙サイズをA4に指定 |
b5paper | 用紙サイズをB5に指定 |
目次/相互参照
LaTeXには自動で節やキャプションの参照が行えます。文書の一部を書き直すときも自動で変更してくれるのでとても便利です。
目次
目次を出力するには,挿入したい場所に\tableofcontents
と書き,TeX ファイルを3回コンパイルしてください。同様に図や表の目次を出力したい場所には\listoffigures
,\listoftables
と書いてください。
相互参照
節や図表の表題,式の後に\label{ラベル}
を書くことで,その番号を参照したいところで\ref{ラベル}
とすれば,対応する番号を参照できます。また,\pageref{ラベル}
とすればページ番号が参照できます。相互参照を使う場合には,TeXファイルを2回コンパイルする必要があります。
|
|
|
|
数式
本文中の数式
本文中にのように数式を書くには次のように$
で挟むことでできます。
|
|
別行立て数式
別行立て数式は,
のように環境
align
により書くことができます14。他の数式環境のeqnarray
も有名だがamsmath.sty
ではサポートしていないので推奨できません。
|
|
おわりに
今回は,(u)pLaTeXを中心に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
パッケージのドライバ指定用です。グローバルオプションとして全てのパッケージに適用されます。 ↩︎ -
MathJaxでは
\footnotesize
が使えないので,HTMLのfont-size: 80%
で代用しています。 ↩︎ -
\bf
や\it
のようなフォントスタイルを変更するコマンドは古く使ってはいけません。現在は\bfseries
等の使用が推奨されます。 ↩︎ -
MathJaxでは
sl
,sc
が使えないため,HTMLのskewX(-10deg)
と\scriptsize
で代用しています。 ↩︎ -
MathJaxでは一部うまく出力できないので,他の方法で妥協してあります。 ↩︎
-
TeXでは1キーで入力するダブルクォーテーション「"」の使用は推奨されません。 ↩︎
-
このブログでは式番号が表示されないが,実際のTeXでは表示されます。また,TeXで式番号を表示しない場合は環境を
align*
とします。 ↩︎