Daiji256

LaTeXのすゝめ

公開
更新

はじめに

本記事はレポート・論文等の執筆に役立つツールのLaTeXを紹介します。非LaTeXユーザや初心者を対象としています。中級者や上級者には物足りないと思います。

TeX/LaTeXとは

TeX(TeX/テック/テフ)は、スタンフォード大学のDonald E. Knuth教授が自ら開発したフリーの組版システムです。TeXはMS Wordなどの見たままを出力するWYSIWYGソフトウェアと異なり、執筆・組版・出力の各段階を分けて処理を行います。執筆に集中でき、さまざまなプラットフォーム上で高品質な文書を出力することができます。

LaTeX(LaTeX/ラテック/ラテフ)はLeslie Lamport博士によって開発された、TeXに機能を追加し手軽に組版が行えるようになったシステムです。現在ではLaTeXを使うことが一般的なので、「TeX」でLaTeXを指すことが多いです。

TeX、LaTeXの特徴は次のようなことがあげられます。

日本語TeXについて

現在、日本語対応している主なTeXエンジンは3つあります。

昔からの名残で学会のフォーマットにpLaTeXを採用していることがあります。ほぼ上位互換のupLaTeXが現在の主流であることからupLaTeXを中心に解説します。最新(未来の標準)のLuaLaTeXについては、LuaLaTeXのすゝめで解説しています。

upLaTeX について

田中琢爾さんが内部コードをUnicode化したpLaTeXの拡張版です。これにより次のようなpLaTeXの問題が解決されました。

簡単な話、いわゆる環境依存文字に優しくなったpLaTeXです。pLaTeXを使う理由は皆無と言ってもいいでしょう。(pLaTeXのフォーマットしか用意されていない学会とかがあるなら別ですが…)

LaTeX開発環境

文書作成には自分のPC等にLaTeXをインストールが必要です。TeX LiveというTeXのディストリビューションがオススメです。インストール方法はOSごとに異なるため、TeX Liveを参考にしてください。

自分のPCに環境を構築したくない場合はWeb上のサービスをオススメします。日本ではOverleafとCloud LaTeXがメジャーだと思います。どちらも無料でブラウザ上からLaTeXを使用できます。

文書作成の基本手順

upLaTeXによる文書作成は執筆・組版・出力の3つのステップで行います2。

  1. 原稿執筆にはテキストエディタを用いてTeXファイルを作成する。
  2. コマンド(uplatex)を用いてTeXファイルからDVIファイルを作成する。
  3. コマンド(dvipdfmx)を用いてDVIファイルからPDFファイルを作成する3。

この手順により執筆した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)ファイル4を生成します。コンパイルする場合は、次のコマンドになります。

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の文書ファイルに変換するには次のコマンドで行えます5。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)を指定する部分です(参照)6。プリアンブルでは文書の体裁に関する宣言やコマンド等の定義を行います。本文が実際に出力される文書となります。なお、記号%はコメントの開始を意味します(参照)。

本文の執筆の基本ルール

コマンド

ここでは主要な一部のコマンド等の紹介を行います。

タイトル

文章のタイトルは次のように指定します。

\title{表題}
\author{著者}
\date{日付}
\maketitle

見出し

\part{部}
\chapter{章} % jsarticle クラスには用意されていない
\section{節}
\subsection{項}
\subsubsection{目}
\paragraph{段落}
\subparagraph{小段落}

\section*{節}のように、*をつけることで、番号をつけないようにできます。

文字サイズ変更

文字サイズを変更するには次のコマンドが利用できます。サイズはデフォルトの値になっています。コマンド以降のフォントがすべて変更されます。{\Large 文章}のようにすることで一部が変更できます7。

コマンドサイズ
\tiny5pt
\scriptsize7pt
\footnotesize8pt
\small9pt
\normalsize10pt
\large12pt
\Large14.4pt
\LARGE17.28pt
\huge20.74pt
\Huge24.88pt

これら以外の文字サイズに変更したい場合には\fontsizeコマンドを使用します。文字サイズと行送りを指定して使用します。

\fontsize{10.5pt}{15pt}\selectfont

フォントスタイル変更

フォントスタイルを変更するには次のコマンドが利用できます8 9。日本語用の明朝体やゴシック体にするコマンド\textmc、\textgtも存在します。

入力出力
\textrm{Roman}Roman
\textbf{Boldface}𝐁𝐨𝐥𝐝𝐟𝐚𝐜𝐞
\texttt{Typewriter}𝚃𝚢𝚙𝚎𝚠𝚛𝚒𝚝𝚎𝚛
\textit{Italic}𝐼𝑡𝑎𝑙𝑖𝑐
\textsf{SansSerif}𝖲𝖺𝗇𝗌𝖲𝖾𝗋𝗂𝖿
\textsl{Slanted}Slanted
\textsc{SmallCaps}SmallCaps

記号

キーワード扱いの文字や一部の特殊文字を出力するためには次のコマンドなどが利用できます。

入力出力
\##
\$$
\%%
\&&
\__
\{{
\}}
--(ハイフン)
--–(エヌダッシュ)
---—(エムダッシュ)
$-$−(マイナス)
``“(開きダブルクォーテーション)
''”(閉じダブルクォーテーション)10

改ページ

改ページを行なうコマンドには、\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で説明されています。

種類ドキュメントクラス内容
articlejsarticle論文・レポート用
bookjsbook書籍用

一部のオプションは次の通りです。

オプション内容
11pt, 12pt本文の文字サイズ
landscape横長
twocolumn2段組
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のように数式を書くには次のように$で挟むことでできます。

本文中に$f(x) = ax + b$のように数式を書くには次のように\texttt{\$}で挟むことでできます。

別行立て数式

別行立て数式は、

f(x)=ax+bg(x)=cx2+dx+e

のように環境alignにより書くことができます11。他の数式環境のeqnarrayも有名だがamsmath.styではサポートしていないので推奨できません。

別行立て数式は、
\begin{align}
  f(x) &= ax + b\\
  g(x) &= cx^{2} + dx + e
\end{align}
のように環境により書くことができます。

おわりに

今回は、upLaTeXを中心にLaTeXのごく一部を紹介しました。本記事では以下に示すような紹介できてないです。

今後暇を見付けて記事のアップデートしていきたいと思います。楽しいLaTeXライフを願っています。

文献

  1. 改訂第8版LaTeX2e美文書作成入門
  2. TeX Wiki
  3. Overleaf
  4. Cloud LaTeX
  5. LuaLaTeXのすゝめ
  6. jlreq
  7. LaTeXのすゝめ

脚注

  1. TeXの数式記法は現在一般的に使用されています。 ↩

  2. (u)pLaTeXのようなレガシーLaTeXはDVIを経由してPDFを作成します。pdfLaTeX、LuaLaTeXなどのモダンLaTeXは直接PDFを出力するので2つのステップ(執筆と出力)になります。 ↩

  3. 他のソフト(コマンド)によりPDFファイル以外のPSファイルを出力する場合などもあります。 ↩

  4. レイアウト情報を埋め込んだファイルのことです。 ↩

  5. 古いdvipdfmというDVIウェアもあるが今は使えません。 ↩

  6. uplatexはこのソースファイルがupLaTeX用であることを明示するためにあります。また、dvipdfmxはgraphicxやcolorパッケージのドライバ指定用です。グローバルオプションとしてすべてのパッケージに適用されます。 ↩

  7. 本ブログでは\footnotesizeが使えないため、別の方法で再現しています。 ↩

  8. \bfや\itのようなフォントスタイルを変更するコマンドは古く使ってはいけません。現在は\bfseries等の使用が推奨されます。 ↩

  9. 本ブログではsl、scが使えないため、別の方法で再現しています。 ↩

  10. TeXでは1キーで入力するダブルクォーテーション"の使用は推奨されません。 ↩

  11. TeXで式番号を表示しない場合は環境をalign*とします。 ↩