6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LaTeXのすゝめ(2021年)

6
Last updated at Posted at 2021-02-14

はじめに

本記事はレポート・論文等の執筆に役立つツールの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上のサービスをおすすめします。日本ではOverleafCloud LaTeXがメジャーだと思います。どちらも無料でブラウザ上からLaTeXを使用できます。

文書作成の基本手順

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

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

この手順により執筆したTeXソースファイルからPDFの文書ファイルを出力することができます。次に作成手順について例を用いて紹介します。

原稿ファイルの執筆(TeXファイルの作成)

テキストエディタを用いて下に示すソースファイル(sample.tex)を作成します。ソースコードの具体的な説明はTeXソースの基本構成を参照してください。

sample.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を生成します。sample.tex をコンパイルする場合は,次のコマンドになります。

uplatex sample

次のようなメッセージが表示されたなら,コンパイルは成功し,sample.auxsample.logsample.dvi が生成されているはずです。

...
Output written on sample.dvi (1 page, 1076 bytes).
Transcript written on sample.log.

PDFに変換

DVIファイルをPDFの文書ファイルに変換するには次のコマンドで行えます7sample.pdf が生成されると思います。

dvipdfmx sample

TeXソースの基本構成

upLaTeXのソースファイルは次の基本構成となります。

\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx]{jsarticle}
% プリアンブル
\begin{document}
% 本文
\end{document}

1行目は (u)pLaTeXとLaTeXの非互換をいい感じにしてくれるヤツです。(u)pLaTeXを使用する場合は何も考えずに書いてください。2行目は文書の種類(document class)を指定する部分です(参照8。プリアンブルでは文書の体裁に関する宣言やコマンド等の定義を行います。本文が実際に出力される文書となります。なお,記号 % はコメントの開始を意味します(参照)。

本文の執筆の基本ルール

  • 英文は単語の区切りで,和文は任意の場所で改行されます。
  • 段落を区切るには,空行を入れる。
  • 2文字以上の半角空白文字,タブ文字は1文字の半角文字とみなされる。
  • 段落のはじめのインデントはTeXが自動的に入ります。全角スペースによるインデントは推奨されません。
  • 次の記号は,TeXのキーワード扱いになるので,そのままでは出力できません(参照)。
    #$%&_{}<>\^|~
  • 記号 % 以降,行末まではコメントになります。
  • 記号 \ ではじまる文字列はコマンドまたは環境です。環境とは \begin{環境名}\end{環境名} のような対になっている命令で,それ以外のものがコマンドです。
  • \\ により強制改行ができます。安易な使用はお勧めしません。

コマンド

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

タイトル

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

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

見出し

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

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

文字サイズ変更

文字サイズを変更するには次のコマンドが利用できます。サイズはデフォルトの値になっています。コマンド以降のフォントが全て変更されます。{\Large 文章} のようにすることで一部が変更できます。(Qiitaでは \footnotesize が使えないため, \small で代用しています。)

コマンド サイズ
\tiny $\tiny 5,\mathrm{pt}$
\scriptsize $\scriptsize 7,\mathrm{pt}$
\footnotesize $\small 8,\mathrm{pt}$
\small $\small 9,\mathrm{pt}$
\normalsize $\normalsize 10,\mathrm{pt}$
\large $\large 12,\mathrm{pt}$
\Large $\Large 14.4,\mathrm{pt}$
\LARGE $\LARGE 17.28,\mathrm{pt}$
\huge $\huge 20.74,\mathrm{pt}$
\Huge $\Huge 24.88,\mathrm{pt}$

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

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

フォントスタイル変更

フォントスタイルを変更するには次のコマンドが利用できます9。日本語用の明朝体やゴシック体にするコマンド \textmc\textgt も存在します。(Qiitaでは slsc が使えないため,itrm で代用しています。)

入力 出力
\textrm{Roman} $\mathrm{Roman}$
\textbf{Boldface} $\mathbf{Boldface}$
\texttt{Typewriter} $\mathtt{Typewriter}$
\textit{Italic} $\mathit{Italic}$
\textsf{SansSerif} $\mathsf{Sans~Serif}$
\textsl{Slanted} $\mathit{Slanted}$
\textsc{SmallCaps} $\mathrm{S\scriptsize MALL}~\mathrm{C\scriptsize APS}$

記号

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

入力 出力
\# $\text{#}$
\$ $\text{\$}$
\% $\text{%}$
\& $\text{&}$
\_ $\text{_}$
\{ $\{$
\} $\}$
- $\text{-}$(ハイフン)
-- $\text{–}$(エヌダッシュ)
--- $\text{—}$(エムダッシュ)
$-$ $-$(マイナス)
`` $\text{``}$(開きダブルクォーテーション)
'' $\text{''}$(閉じダブルクォーテーション)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 (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回コンパイルする必要があります。

本研究で用いた試験材料の外観を図\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$のように数式を書くには次のように\verb|$|で挟むことでできます。

別行立て数式

別行立て数式は,

\begin{align}
	f(x) &= ax + b\\
	g(x) &= cx^{2} + dx + e
\end{align}

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

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

おわりに

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

  • 数式モード中でのコマンドなど
  • 図(特にEPSとかPDFの話)

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

文献

  1. 改訂第8版LaTeX2e美文書作成入門
  2. TeX Wiki
  3. Overleaf
  4. Cloud LaTeX
  5. LuaLaTeXのすゝめ (Qiita)
  6. jlreq (GitHub)
  7. LaTeXのすゝめ
  1. $\mathrm{\TeX}$ のように書くことが望ましいです。難しい場合はTeXにしましょう。この記事では統一のためにTeXにしています。

  2. $\mathrm{\LaTeX}$ のように書くことが望ましいです。難しい場合はLaTeXにしましょう。

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

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

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

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

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

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

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

  10. TeXでは1キーで入力するダブルクォーテーション「"」の使用は推奨されない。

  11. Qiitaでは式番号が表示されないが,実際のTeXでは表示されます。また,TeXで式番号を表示しない場合は環境を align* とします。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?