- 技術 💻
LaTeXとは|使い方・数式の書き方・エラーの直し方を実例で解説
結論
LaTeX(ラテフ・ラテック)は、テキストで書いた原稿を「コンパイル」して、数式や参考文献がきれいに整った PDF を作る組版システムです。Word のように見た目を直接いじるのではなく、構造(見出し・数式・表)を命令で書き、見た目はソフトに任せます。
この記事でわかること
- LaTeX と TeX・upLaTeX・LuaLaTeX の関係と、日本語文書を PDF にするまでの手順
- 数式(分数・積分・行列・ギリシャ文字)と文書構造(見出し・表・図・参考文献)の書き方早見表
- 手元でコンパイルして出たログ・エラー原文(Undefined control sequence・Missing $ inserted・File not found など13種)と直し方
LaTeX の仕事の流れは「原稿(.tex)を書く → コンパイルする → PDF ができる」の3段です。日本語では、エンジンによって途中に DVI という中間ファイルを挟む方式と、直接 PDF を出す方式があります。
flowchart TD
S[原稿 report.tex<br>テキストで書く] --> U[uplatex]
S --> L[lualatex]
U --> D[report.dvi<br>中間ファイル]
D --> X[dvipdfmx]
X --> P[report.pdf]
L --> P
よく調べられることの答えを先にまとめます。
| 知りたいこと | 答え | 詳しい節 |
|---|---|---|
| LaTeX とは | TeX の上に作られた文書作成システム。構造を書き、見た目は任せる | LaTeXとは |
| LaTeX の読み方 | 「ラテフ」「ラテック」。公式は Lah-tech または Lay-tech | LaTeXとは |
| LaTeX のインストール | TeX Live(Windows・Linux)か MacTeX。ブラウザなら Overleaf・Cloud LaTeX | LaTeXのインストール方法 |
| 日本語文書の最小の書き方 | \documentclass[uplatex,dvipdfmx]{jsarticle} から始める |
最初の日本語文書 |
| LaTeX の数式の書き方 | 行内は \( \)、別行は \[ \] か equation 環境 |
LaTeXの数式の書き方 早見表 |
| Undefined control sequence | 綴りの誤りか、パッケージの読み忘れ | よくあるエラーと直し方 |
| Missing $ inserted | 数式の記号(^・_・\frac)を数式モードの外で使った |
よくあるエラーと直し方 |
| Cloud LaTeX と Overleaf の違い | Cloud LaTeX は日本発で日本語が設定なしで動く。Overleaf は latexmkrc を置く | Overleaf・Cloud LaTeX |
| Markdown・Word との使い分け | 論文・レポート・本は LaTeX、Web の数式は MathJax、社内文書は Word | Markdown・Wordとの使い分け |
確認環境:Ubuntu 24.04.5 LTS に apt で TeX Live 2023(Debian 版 2023.20240207)の texlive-latex-base・texlive-latex-recommended・texlive-latex-extra・texlive-fonts-recommended・texlive-science・latexmk が入っている状態に、texlive-lang-japanese(原ノ味フォント・jsclasses・luatexja を含む)と texlive-luatex を追加しました。e-upTeX 3.141592653-p4.1.0-u1.29・LuaHBTeX 1.17.0・pdfTeX 1.40.25・dvipdfmx 20220710・upBibTeX 0.99d-j0.36・latexmk 4.83 で、日本語のレポート(目次・数式・表・箇条書き・相互参照)と参考文献つきの文書を実際にコンパイルし、ログ・PDF の中身(pdffonts・pdftotext)・所要時間を確かめました。エラーは13種類の原稿を用意して出しています。Windows・Mac のインストール、Overleaf・Cloud LaTeX・Word の数式は、それぞれの公式サイト・公式ドキュメントで確かめた範囲だけを書いています。図は mermaid で描画を確かめています(確認日 2026年10月29日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「LaTeXとは|使い方・数式の書き方・エラーの直し方を実例で解説」
LaTeXとは(TeXとの違い・読み方・向いている文書)
この節では、LaTeX が何をするソフトで、TeX とどう違い、どんな文書に向いているのかが分かります。
LaTeX は、文書の「構造」を命令で書いた原稿から、高品質な組版の PDF を作る文書作成システムです。 LaTeX Project の公式サイトは「a document preparation system for high-quality typesetting」と説明し、「LaTeX is not a word processor!(LaTeX はワープロではない)」と強調しています。見た目を整える作業をソフトに任せ、書く人は内容に集中する、という考え方です。
名前のとおり、LaTeX は TeX の上に作られています。3つの層で捉えると、用語の混乱がほどけます。
| 層 | 名前 | 役割 |
|---|---|---|
| エンジン | TeX・pdfTeX・upTeX・LuaTeX・XeTeX | 文字を箱に詰めて行・ページに並べる本体。Donald Knuth が TeX を作った |
| マクロ(書式) | LaTeX(LaTeX2e) | エンジンの上で \section や \begin{document} などの命令を提供する。Leslie Lamport が作った |
| 配布パッケージ | TeX Live・MacTeX・MiKTeX | エンジン・LaTeX・フォント・数千のパッケージをまとめて入れる |
「LaTeX を入れる」と言うときに実際に入れるのは配布パッケージ(TeX Live)で、「uplatex でコンパイルする」と言うときに動くのはエンジン(upTeX)に LaTeX の書式を読み込ませたものです。この記事で実行した環境では、uplatex --version の1行目は e-upTeX 3.141592653-p4.1.0-u1.29-230214-2.6 (utf8.uptex) (TeX Live 2023/Debian) でした。エンジン名・版・配布パッケージ名が1行に並んでいます。
読み方
LaTeX Project の公式サイトは、発音を「Lah-tech」または「Lay-tech」としています(「blech」や「Bertolt Brecht」と韻を踏む、と書かれています)。日本語では「ラテフ」「ラテック」と書かれることが多く、TeX は「テフ」「テック」です。末尾の X はギリシャ文字のカイ(χ)に由来するので「ラテックス」とは読みません。
向いている文書・向かない文書
LaTeX が向く
数式が多い論文・レポート・教科書
章・図・表・式の番号と相互参照が多い長い文書
参考文献を何十件も管理する文書
Git で差分を管理したい原稿(テキストなので diff が取れる)
別の道具が向く
相手が Word で修正を返す社内文書・契約書
レイアウトを自由に動かすチラシ・スライドの図版
Web ページに数式を数本だけ載せる(MathJax・KaTeX)
1枚のメモ(Markdown のほうが速い)
LaTeXの使い方の全体像(原稿→コンパイル→PDF)
この節では、LaTeX で文書ができるまでの流れと、途中でできるファイルの役割が分かります。
原稿は拡張子 .tex のただのテキストファイルで、コンパイルすると同じ名前の .pdf ができます。 途中で .aux・.log・.toc などの補助ファイルができ、目次や参照はこの補助ファイルを使って2回目以降のコンパイルで埋まります。
原稿を書く(report.tex)
テキストエディタで書く。VS Code なら LaTeX Workshop 拡張、ブラウザなら Overleaf・Cloud LaTeX。文字コードは UTF-8。
コンパイルする
uplatex report.tex で DVI、dvipdfmx report.dvi で PDF。LuaLaTeX なら lualatex report.tex だけで PDF。
ログを見る
画面と report.log に「!」で始まるエラーと「Warning」が出る。エラーがあると PDF はできない(No pages of output)。
もう一度コンパイルする
目次・式番号・参考文献は .aux・.toc・.bbl を読んで埋まるため、2〜3回目で「??」が消える。latexmk に任せると回数を自動で判断する。
手元で2ページのレポートをコンパイルしたあとのファイルです。
$ ls -la report.*
-rw-r--r-- 1 root root 813 Oct 29 22:35 report.aux # ラベル・目次の情報(次回のコンパイル用)
-rw-r--r-- 1 root root 4304 Oct 29 22:35 report.dvi # uplatex の出力(中間ファイル)
-rw-r--r-- 1 root root 17974 Oct 29 22:35 report.log # ログ(エラー・警告・読んだファイル)
-rw-r--r-- 1 root root 330 Oct 29 22:35 report.out # hyperref のしおり
-rw-r--r-- 1 root root 1595 Oct 29 22:35 report.tex # 原稿
-rw-r--r-- 1 root root 263 Oct 29 22:35 report.toc # 目次
Git で管理するなら、.tex・.bib・図のファイルだけを入れ、.aux・.log・.dvi・.pdf などは .gitignore に書きます。コンパイルという言葉そのものは、関連記事「コンパイルとは|意味・インタプリタとの違いを6言語の実行で解説」で扱っています。
LaTeXのインストール方法(TeX Live・MacTeX・Ubuntu)
この節では、Windows・Mac・Linux で LaTeX を入れる方法と、入れずに使う方法が分かります。
入れるものは TeX Live(Windows・Linux)か MacTeX(Mac)です。 ブラウザで使う Overleaf・Cloud LaTeX なら何も入れずに始められます。
| 環境 | 入れ方 | 確かめた範囲 |
|---|---|---|
| Windows | tug.org から install-tl-windows.exe を実行。自己展開のあと本体のインストーラーが起動する |
TeX Live 公式(Windows のページ) |
| Mac | MacTeX をダウンロードして実行。macOS 10.14 以降、Intel と Apple シリコンに対応 | MacTeX 公式 |
| Ubuntu・Debian | sudo apt install texlive-lang-japanese texlive-latex-recommended texlive-fonts-recommended latexmk |
この記事で実行 |
| ブラウザ | Overleaf か Cloud LaTeX にアカウントを作る | 各公式サイト |
- TeX Live は毎年新しい版が出ます。2026年10月29日時点で tug.org は、次の TeX Live 2027 と MacTeX を 2027年3月7日に出す予定だと案内しています。Overleaf は 2026年8月18日のブログで TeX Live 2026 を使えるようにしたと発表しています。
- TeX Live 公式は、Windows で非 ASCII 文字(日本語など)を含むパスにはインストールしないよう注意しています。ユーザー名が日本語の PC では、既定の場所を避けます。
- Ubuntu の apt で入る TeX Live は、配布版の都合で1〜2年前の版です(Ubuntu 24.04 では TeX Live 2023)。最新のパッケージが要るときは tug.org の install-tl で入れます。
- Ubuntu で日本語を使うのに要るのは
texlive-lang-japaneseです。この中に uplatex・jsclasses・luatexja・原ノ味フォント(HaranoAji)が入っていました。kpsewhich jsarticle.clsでファイルの場所が返れば入っています。
$ kpsewhich jsarticle.cls ltjsarticle.cls jlreq.cls
/usr/share/texlive/texmf-dist/tex/platex/jsclasses/jsarticle.cls
/usr/share/texlive/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls
/usr/share/texlive/texmf-dist/tex/latex/jlreq/jlreq.cls
最初の日本語文書を書いてコンパイルする(uplatex+dvipdfmx)
この節では、日本語のレポートを1本書いて、ログを読みながら PDF にするまでの実際の手順が分かります。
日本語文書の定番は、文書クラス jsarticle を uplatex と dvipdfmx のオプションつきで使う形です。 手元で使った原稿の全文です。目次・行内数式・別行数式・複数行の数式・表・箇条書き・相互参照が入っています。
\documentclass[uplatex,dvipdfmx,a4paper,11pt]{jsarticle}
\usepackage{amsmath,amssymb} % 数式
\usepackage{graphicx} % 図
\usepackage{hyperref} % リンク・しおり
\usepackage{pxjahyper} % しおりの日本語
\title{\LaTeX の使い方 ― 最初の文書}
\author{技術ブログ編集部}
\date{2026年10月29日}
\begin{document}
\maketitle
\tableofcontents
\section{はじめに}
\LaTeX は、文書の\textbf{構造}を書けば、見た目は\emph{クラス}が整えてくれる組版システムです。
行内の数式は \( E = mc^2 \) のように書きます。別行立ての数式は次のとおりです。
\begin{equation}
\int_0^\infty e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}
\label{eq:gauss}
\end{equation}
式~\eqref{eq:gauss} はガウス積分です。
\section{数式の例}
\begin{align}
f(x) &= \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!}(x-a)^n \\
A &= \begin{pmatrix} a & b \\ c & d \end{pmatrix}, \quad
\det A = ad - bc
\end{align}
\section{表}
\begin{table}[htbp]
\centering
\caption{コンパイルの構成}
\label{tab:engine}
\begin{tabular}{lll}
\hline
エンジン & 出力 & 日本語 \\
\hline
upLaTeX & DVI → dvipdfmx & 標準で対応 \\
LuaLaTeX & PDF & luatexja で対応 \\
\hline
\end{tabular}
\end{table}
表~\ref{tab:engine} に構成をまとめました。
\section{箇条書き}
\begin{itemize}
\item 文書クラスは \verb|\documentclass| で指定する
\item パッケージは \verb|\usepackage| で読み込む
\end{itemize}
\begin{enumerate}
\item 原稿(.tex)を書く
\item コンパイルして PDF を作る
\end{enumerate}
\end{document}
1回目のコンパイル:参照が「??」になる
$ uplatex -interaction=nonstopmode report.tex
This is e-upTeX, Version 3.141592653-p4.1.0-u1.29-230214-2.6 (utf8.uptex) (TeX Live 2023/Debian) (preloaded format=uplatex)
restricted \write18 enabled.
entering extended mode
(./report.tex
pLaTeX2e <2023-02-14u04>+1, based on
LaTeX2e <2023-11-01> patch level 1
...
LaTeX Warning: Reference `eq:gauss' on page 1 undefined on input line 20.
LaTeX Warning: Reference `tab:engine' on page 1 undefined on input line 43.
LaTeX Warning: There were undefined references.
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
Output written on report.dvi (2 pages, 4304 bytes).
Transcript written on report.log.
1回目は \ref・\eqref の番号がまだ分からないので「undefined」の警告が出て、PDF では「??」になります。番号は .aux に書き出され、2回目で読まれます。
2回目・3回目:警告が消える
$ uplatex -interaction=nonstopmode report.tex
...
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
Output written on report.dvi (2 pages, 5368 bytes).
$ uplatex -interaction=nonstopmode report.tex # 3回目:警告なし
Output written on report.dvi (2 pages, 5992 bytes).
$ dvipdfmx report.dvi
report.dvi -> report.pdf
[1][2]
25857 bytes written
目次がページをずらすので、3回目まで要りました。-interaction=nonstopmode は、エラーで止まって入力待ちにならないようにするオプションで、エディタや CI から動かすときに付けます。
できた PDF の文字を pdftotext で取り出した先頭です(レイアウトは崩れますが、目次と番号が埋まっていることが分かります)。
$ pdftotext -layout report.pdf - | head -12
LATEX の使い方 ― 最初の文書
技術ブログ編集部
2026 年 10 月 29 日
目次
1 はじめに 1
2 数式の例 1
3 表 1
4 箇条書き 2
1 はじめに
LATEX は、文書の構造を書けば、見た目はクラスが整えてくれる組版システムです。行内の数式
は E = mc2 のように書きます。別行立ての数式は次のとおりです。
1プリアンブルと本文
\documentclass から \begin{document} の前までがプリアンブル(設定)。本文は \begin{document} と \end{document} の間に書く。
2命令はバックスラッシュで始まる
\section{…} のように「\命令{引数}」の形。日本語キーボードでは ¥ キーがバックスラッシュ。% から行末はコメント。
3段落は空行で分ける
原稿の改行1つは空白と同じで、段落を変えるには空行を入れる。Enter を押しても改行されない、は最初のつまずき。
upLaTeX・LuaLaTeX・pdfLaTeXの違いと選び方(所要時間の実測)
この節では、日本語で使う3つのエンジンの違いと、同じ原稿をコンパイルしたときの所要時間が分かります。
日本語では upLaTeX(DVI 経由)か LuaLaTeX(直接 PDF)を使います。pdfLaTeX は日本語の文字をそのままでは扱えません。 同じ内容の原稿を、クラスを jsarticle(upLaTeX)と ltjsarticle(LuaLaTeX)に変えて実行した結果です。
| エンジン | 文書クラス | 出力 | 手元の所要時間(1回) |
|---|---|---|---|
| upLaTeX+dvipdfmx | jsarticle・jlreq | DVI → PDF | 0.34秒+0.16秒(合計約0.5秒) |
| LuaLaTeX | ltjsarticle・jlreq・bxjsarticle | 2.2〜2.4秒(初回はフォントの一覧作成で13.8秒) | |
| pdfLaTeX | article など | 日本語は Unicode character 日 (U+65E5) not set up for use with LaTeX で止まる |
|
| pLaTeX | jsarticle(uplatex オプションなし) | DVI → PDF | upLaTeX の前身。内部コードが JIS なので、JIS X 0208 に無い文字を扱いにくい |
LuaLaTeX の初回のログには、次の2行が出ました。2回目からは出ません。
luaotfload | db : Font names database not found, generating new one.
luaotfload | db : This can take several minutes; please be patient.
速さは upLaTeX が有利ですが、LuaLaTeX は PDF を直接出せ、OpenType フォントを名前で指定でき、PDF の中で日本語フォントが最初から埋め込まれていました(次の節)。どちらにするかの目安です。
- 1学会・大学のテンプレートがある → そのテンプレートのエンジン多くは pLaTeX か upLaTeX+dvipdfmx
- 2フォントを自由に選びたい・PDF を直接出したい → LuaLaTeXltjsarticle か jlreq
- 3コンパイルの速さを優先・以前の資産がある → upLaTeXjsarticle に [uplatex,dvipdfmx]
- 4英語だけの文書 → pdfLaTeXarticle・report・book
手元の jsarticle(2023/02/23 版)は、エンジンを自動で見分けました。[uplatex] を付けずに uplatex で処理したときのログに Class jsarticle Info: Autodetected engine: upLaTeX on input line 217. と出ました。ただし、dvipdfmx を使うことはクラスに教える必要があるので、[uplatex,dvipdfmx] の形で書く習慣にしておくと図や色で迷いません。
日本語フォントが埋め込まれない問題(pdffontsで確かめる)
この節では、upLaTeX+dvipdfmx で作った PDF の落とし穴と、フォントを埋め込む2つの方法が分かります。
apt で入れた直後の設定では、dvipdfmx が作る PDF に日本語フォントが埋め込まれていませんでした。 自分の PC では見えても、別の環境で開くと別のフォントに置き換わるか、文字が出ません。pdffonts(poppler-utils)で確かめた結果です。
$ pdffonts report.pdf
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
DGXVPG+CMR17 Type 1C Builtin yes yes yes 4 0
Ryumin-Light-Identity-H CID Type 0 Identity-H no no no 6 0
GothicBBB-Medium-Identity-H CID Type 0 Identity-H no no no 8 0
...
[none] Type 3 Custom yes no no 31 0
emb(embedded)の列が no の Ryumin-Light・GothicBBB-Medium は、「明朝体・ゴシック体をここに使う」という名前だけが書かれていて、フォントの実体が入っていない状態です。原因は、フォントの対応表の設定が noEmbed になっていたことでした。
$ kanji-config-updmap-sys status
CURRENT family for ja: noEmbed (variant: <empty>)
Standby family : haranoaji
Standby family : noto-otc (AI0)
直し方は2つあります。手元ではどちらも原ノ味フォントが埋め込まれました。
| 方法 | やること | 向いている場面 |
|---|---|---|
| 原稿で指定する | プリアンブルに \usepackage[haranoaji]{pxchfon} を足す |
設定を変えられない共有環境・Overleaf・文書ごとにフォントを変えたい |
| dvipdfmx に対応表を渡す | dvipdfmx -f uptex-haranoaji.map report.dvi(pLaTeX なら ptex-haranoaji.map) |
原稿を変えたくない |
| 環境の既定を変える | kanji-config-updmap-sys haranoaji(管理者権限) |
自分の PC で毎回使う |
$ pdffonts report2.pdf # \usepackage[haranoaji]{pxchfon} を足したあと
RZDYCT+HaranoAjiMincho-Regular-Identity-H CID Type 0C Identity-H yes yes no 6 0
MWUIJZ+HaranoAjiGothic-Medium-Identity-H CID Type 0C Identity-H yes yes no 8 0
- upLaTeX の DVI に
-f ptex-haranoaji.map(pTeX 用)を渡したときは埋め込まれませんでした。upLaTeX ではuptex-で始まる対応表を使います。 - LuaLaTeX(ltjsarticle)で作った PDF は、何もしなくても
HaranoAjiMincho-Regularがemb yesで入っていました。 - 一覧の最後にあった
Type 3は、jsarticle の箇条書きの「•」に使われる記号フォント(tcrm1000)がビットマップで生成されたものです。\usepackage{lmodern}を足すと、この部分もLMRoman10-Regular(Type 1C)に変わりました。
latexmkで「何回コンパイルするか」を自動にする
この節では、コンパイルの回数や dvipdfmx の実行を自動にする latexmk の使い方が分かります。
latexmk は、参照が埋まるまで必要な回数だけ LaTeX を回し、BibTeX や dvipdfmx も続けて動かすツールです。 Overleaf も Cloud LaTeX も内部では latexmk を使っています。upLaTeX 用の設定ファイル(latexmkrc)です。
$latex = 'uplatex -interaction=nonstopmode -halt-on-error %O %S';
$bibtex = 'upbibtex %O %B';
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3; # 3 = DVI を dvipdf(ここでは dvipdfmx)で PDF にする
$ latexmk -r latexmkrc report.tex
Latexmk: This is Latexmk, John Collins, 31 Jan. 2024. Version 4.83.
Latexmk: applying rule 'latex'...
Run number 1 of rule 'latex'
Running 'uplatex -interaction=nonstopmode -halt-on-error -recorder "report.tex"'
Output written on report.dvi (2 pages, 4928 bytes).
Latexmk: References changed.
Latexmk: applying rule 'latex'...
Run number 2 of rule 'latex'
...
Latexmk: applying rule 'dvipdf'...
$ latexmk -r latexmkrc report.tex # 変更が無いとき
Latexmk: Nothing to do for 'report.tex'.
Latexmk: All targets (report.dvi report.pdf) are up-to-date
$ latexmk -c report.tex # 補助ファイルを消す(PDF は残す)
Latexmk: Doing main (small) clean up for 'report.tex'
ファイルをホームの ~/.latexmkrc に置けば毎回 -r を付けずに済み、プロジェクトの中に latexmkrc を置けば Overleaf でもそのまま使われます。LuaLaTeX なら設定ファイルは不要で、latexmk -lualatex report.tex だけです。-pvc を付けると、原稿を保存するたびに自動でコンパイルし直します。
LaTeXの数式の書き方 早見表(分数・積分・行列・ギリシャ文字)
この節では、数式モードの入り方と、よく使う記法を一覧で確かめられます。
数式は「行内」と「別行」の2つのモードで書き、どちらもプリアンブルに \usepackage{amsmath,amssymb} を入れておきます。 アメリカ数学会(AMS)の「はやわかり LaTeX で数式組版」は、昔ながらの2つのドル記号で囲む別行数式と eqnarray 環境は使わないよう勧めています。ここに載せた記法は、すべて手元の upLaTeX でエラーなくコンパイルできることを確かめています。
| 書きたいこと | 記法 | 補足 |
|---|---|---|
| 行内の数式 | \( E = mc^2 \) または $E = mc^2$ |
文章の中に置く |
| 別行の数式(番号なし) | \[ … \] または equation* 環境 |
amsmath |
| 別行の数式(番号あり) | \begin{equation} … \label{eq:a} \end{equation} |
\eqref{eq:a} で (1) と参照 |
複数行を = でそろえる |
\begin{align} y &= ax + b \\ &= 2x + 1 \end{align} |
& がそろえる位置、\\ が改行 |
| 上付き・下付き | x^2・x_1・x^{10}・a_{ij} |
2文字以上は {} で囲む |
| 分数 | \frac{a}{b}・\dfrac{a}{b}(大きめ)・\tfrac{a}{b}(小さめ) |
二項係数は \binom{n}{k} |
| 平方根・累乗根 | \sqrt{2}・\sqrt[3]{x} |
|
| 積分 | \int_0^1 f(x)\,dx・\iint・\oint |
\, は細い空白 |
| 総和・総乗・極限 | \sum_{k=1}^{n}・\prod_{i=1}^{n}・\lim_{x \to 0} |
別行では上下に、行内では右に付く |
| ギリシャ文字 | \alpha \beta \gamma \delta \theta \lambda \mu \pi \sigma \phi \omega |
大文字は \Gamma \Delta \Sigma \Omega。変種は \varepsilon \varphi |
| 行列 | \begin{pmatrix} a & b \\ c & d \end{pmatrix} |
角括弧は bmatrix、縦線は vmatrix |
| 場合分け | \begin{cases} x & (x \ge 0) \\ -x & (x < 0) \end{cases} |
|
| 大きさが変わる括弧 | \left( \frac{1}{2} \right)・\left\{ … \right\} |
\left と \right は対で使う |
| 関係・演算の記号 | \le \ge \ne \approx \equiv \pm \times \cdot \cdots \infty |
|
| 集合・論理 | \in \notin \subset \cup \cap \emptyset \forall \exists \Rightarrow |
|
| 太字・黒板太字・筆記体 | \mathbf{v}・\bm{v}(bm パッケージ)・\mathbb{R}・\mathcal{L} |
|
| ベクトル・アクセント | \vec{v} \hat{x} \bar{x} \tilde{x} \dot{x} |
|
| 関数名・文章 | \sin \cos \log \ln \exp \max・\text{if } x > 0 |
関数名は立体になる |
| 偏微分・ナブラ | \partial f / \partial x・\nabla \cdot \mathbf{E}・\mathrm{d}x |
|
| 空白 | \,(細い)・\;(中)・\quad・\qquad |
数式の中の普通の空白は無視される |
手元の確認用の原稿から抜粋です。
\[ \sum_{k=1}^{n} k = \frac{n(n+1)}{2} \quad \lim_{x \to 0} \frac{\sin x}{x} = 1 \]
\[ |x| = \begin{cases} x & (x \ge 0) \\ -x & (x < 0) \end{cases} \]
\begin{align}
y &= ax + b \\
&= 2x + 1
\end{align}
数式で迷いやすいところ
x^10(1だけが上付きになる)・eqnarray・数式の中に日本語を直接書くx^{10}・align・\text{…} で囲む手元で $x_i_j$ は ! Double subscript. で止まりました。x_{i_j} か x_{ij} と書きます
文書の構造:見出し・箇条書き・表・図・相互参照
この節では、数式以外の基本の書き方と、図と表の入れ方が分かります。
文書クラスで文書の種類を決め、\section で見出し、環境(\begin{…} … \end{…})で箇条書き・表・図を書きます。
| 書きたいこと | 記法 | 補足 |
|---|---|---|
| 文書の種類 | jsarticle(論文・レポート)・jsbook(本)・jlreq(新しい日本語クラス) |
英語は article・report・book |
| 見出し | \section{}・\subsection{}・\subsubsection{} |
番号を付けないときは \section*{} |
| 題名・著者・日付 | \title{}・\author{}・\date{} のあと本文で \maketitle |
\date{} を空にすると日付を消せる |
| 目次 | \tableofcontents |
2回コンパイルすると埋まる |
| 太字・強調・等幅 | \textbf{}・\emph{}・\texttt{} |
日本語の \emph は既定でゴシック体になる |
| 箇条書き・番号付き | itemize・enumerate 環境の中で \item |
入れ子にできる |
| 表 | \begin{tabular}{lcr} で列の寄せ(l 左・c 中央・r 右)、& で列、\\ で行、\hline で横線 |
番号と見出しを付けるなら table 環境で包む |
| 図 | \usepackage{graphicx} のうえで \includegraphics[width=8cm]{fig.pdf} |
PDF・PNG・JPEG。figure 環境で包む |
| 相互参照 | \label{fig:a} を付け、\ref{fig:a}・\pageref{fig:a} で参照 |
式は \eqref |
| そのまま表示 | \verb|\section|・verbatim 環境 |
命令を文字として見せる |
| 特殊文字 | \% \& \$ \# \_ \{ \}・\textbackslash |
そのまま書くとエラーかコメント扱い |
| リンク | \usepackage{hyperref}・\url{https://…}・\href{URL}{文字} |
upLaTeX では pxjahyper も読む |
手元で図を入れて確かめた形です。[htbp] は「ここ・ページの上・下・別ページ」の順に置き場所を探す指定で、LaTeX が決めるので原稿の位置どおりになるとは限りません。
\begin{figure}[htbp]
\centering
\includegraphics[width=3cm]{logo.pdf}
\caption{ロゴ}
\label{fig:logo}
\end{figure}
図\ref{fig:logo}を参照。
特殊文字で手元でよく起きたのが % と & です。「達成率は 80% でした。A & B 社です。」と書いた原稿は、% 以降がコメントになって「達成率は 80」までしか PDF に出ず、& を表の外で使った原稿は ! Misplaced alignment tab character &. で止まりました。80\%・A \& B と書きます。
BibTeXで参考文献を入れる(upbibtexの実行)
この節では、参考文献を .bib ファイルに分けて、番号と一覧を自動で作る手順が分かります。
参考文献は .bib ファイルにデータとして書き、本文では \cite{キー} だけ書きます。 番号付けと一覧の整形は BibTeX(日本語では upbibtex・pbibtex)が行います。
@book{knuth1984,
author = {Donald E. Knuth},
title = {The {\TeX}book},
publisher = {Addison-Wesley},
year = {1984}
}
@misc{latexproject2026,
author = {{The LaTeX Project}},
title = {LaTeX -- A document preparation system},
howpublished = {\url{https://www.latex-project.org/}},
year = {2026},
note = {2026年10月29日閲覧}
}
\documentclass[uplatex,dvipdfmx]{jsarticle}
\usepackage{url}
\begin{document}
\TeX は Knuth が作り\cite{knuth1984}、\LaTeX は Lamport が作りました\cite{lamport1994}。
\bibliographystyle{jplain} % 文献の並べ方・体裁
\bibliography{refs} % refs.bib を読む
\end{document}
手順は「uplatex → upbibtex → uplatex → uplatex」の4回です。1回目は \cite の相手がまだ無いので警告が出ます。
$ uplatex -interaction=nonstopmode paper.tex
LaTeX Warning: Citation `knuth1984' on page 1 undefined on input line 4.
LaTeX Warning: There were undefined references.
$ upbibtex paper
This is upBibTeX, Version 0.99d-j0.36-u1.29 (utf8.uptex) (TeX Live 2023/Debian)
The top-level auxiliary file: paper.aux
The style file: jplain.bst
Database file #1: refs.bib
$ cat paper.bbl # upbibtex が作った一覧
\begin{thebibliography}{1}
\bibitem{knuth1984}
Donald~E. Knuth.
\newblock {\em The {\TeX}book}.
\newblock Addison-Wesley, 1984.
...
$ uplatex -interaction=nonstopmode paper.tex # 2回目:.bbl を読む
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
$ uplatex -interaction=nonstopmode paper.tex # 3回目:警告なし
$ pdftotext paper.pdf -
TEX は Knuth が作り [1]、LATEX は Lamport が作りました [2]。公式サイトは [3] です。
参考文献
[1] Donald E. Knuth. The TEXbook. Addison-Wesley, 1984.
[2] Leslie Lamport. LATEX: A Document Preparation System. Addison-Wesley, 2nd edition, 1994.
[3] The LaTeX Project. Latex – a document preparation system. https://www.latex-project.org/, 2026.
- [3] の題名が「Latex – a document…」と小文字に変わっています。jplain などのスタイルは題名の大文字を自動で小文字にするので、固有名詞は
{LaTeX}のように{}で囲んで守ります。[1] の{\TeX}bookはそのままでした。 - latexmk を使えば、この4回は
latexmk -r latexmkrc paper.texの1回で済みます。 - BibTeX の後継として biblatex+Biber もあります。新しい文書で凝った体裁が要るなら biblatex、学会のテンプレートが .bst を配っているなら BibTeX、と使い分けます。
LaTeXのよくあるエラーと直し方(ログの原文つき)
この節では、コンパイルが止まったときにログのどこを見て、何を直せばよいかが分かります。
エラーは「!」で始まる行と、その下の「l.行番号」の行を見ます。 「l.3 これは \textbold」のように、問題の行の途中で切れた形で表示され、切れた場所が LaTeX が困った位置です。手元で13種類の原稿を作って出した原文です。
| ログの原文 | 原因 | 直し方 |
|---|---|---|
! Undefined control sequence.l.3 これは \textbold |
命令の綴りの誤り(\textbold は無い)か、パッケージを読んでいない |
\textbf に直す。\bm なら bm、\url なら url を \usepackage する |
! Missing $ inserted.l.3 面積は x^ |
^・_・\frac などを数式モードの外で使った |
\( x^2 \) と数式モードで囲む。文字として使うなら \^{}・\_ |
! LaTeX Error: File `nosuchpackage.sty' not found. |
パッケージが入っていない、または名前の誤り | 名前を確かめ、TeX Live なら tlmgr install 名前、Ubuntu なら texlive-latex-extra などを入れる |
! LaTeX Error: Cannot determine size of graphic in figure1.xbb (no BoundingBox). |
upLaTeX で図のファイルが無い(dvipdfmx は大きさを .xbb かファイル本体から読む) | ファイル名とパスを確かめる。[dvipdfmx] をクラスのオプションに書く |
! Package luatex.def Error: File `figure1.png' not found: using draft setting. |
LuaLaTeX で図のファイルが無い | 同上。LuaLaTeX は同じ原因でもこの文言になる |
! LaTeX Error: \begin{itemize} on input line 3 ended by \end{document}. |
環境を閉じ忘れた | \end{itemize} を足す。環境は必ず対にする |
! File ended while scanning use of \textbf . |
{ を閉じ忘れたまま原稿が終わった |
対応する } を足す。エディタの括弧の対応表示で探す |
! Misplaced alignment tab character &. |
表・align の外で & を書いた |
\& と書く |
! Double subscript.l.3 $x_i_ |
下付きを2回続けた(x_i_j) |
x_{ij} か x_{i_j} |
! LaTeX Error: Environment align undefined. |
amsmath を読まずに align を使った |
\usepackage{amsmath} |
! LaTeX Error: This file needs format `pLaTeX2e' but this is `LaTeX2e'. |
jsarticle を pdflatex や lualatex で処理した | uplatex(platex)で処理するか、LuaLaTeX なら ltjsarticle に変える |
! Package luatexja-core Error: This package requires Lua(HB)(La)TeX. |
ltjsarticle を uplatex で処理した | lualatex で処理するか、jsarticle に変える |
! LaTeX Error: Unicode character 日 (U+65E5) not set up for use with LaTeX. |
pdflatex+article で日本語を書いた | 日本語は upLaTeX か LuaLaTeX と日本語クラスで |
エラーではなく「警告」で止まらないものもあります。PDF はできますが、見た目か参照が崩れています。
LaTeX Warning: Reference `fig:none' on page 1 undefined on input line 3. # \label が無い・まだ1回目
LaTeX Warning: Citation `knuth84' on page 1 undefined on input line 3. # .bib に無い・bibtex 未実行
Overfull \hbox (27.15993pt too wide) in paragraph at lines 3--4 # 行からはみ出した(長い英単語・URL)
Package rerunfilecheck Warning: File `report.out' has changed. # もう一度コンパイルする
- 1ログの最初の「!」を直す1つのエラーが後ろのエラーを連鎖で生む。最初の1つを直してコンパイルし直す
- 2「l.番号」の行と、その行の切れた位置を見る切れた直後の文字が、LaTeX が読めなかったもの
- 3「??」が残ったら、もう1回コンパイルする参照・目次・文献は2〜3回目で埋まる。latexmk なら自動
- 4エンジンとクラスの組み合わせを確かめるjsarticle は uplatex/platex、ltjsarticle は lualatex、article は pdflatex
- 5直らないときは半分に切って試す本文を半分コメントアウトしてコンパイルし、エラーの出る側を狭めていく
Overleaf・Cloud LaTeXで書く(インストールせずに使う)
この節では、ブラウザで使える2つのサービスの違いと、日本語で使うときの設定が分かります。
Overleaf は世界で広く使われる共同編集のサービス、Cloud LaTeX は日本の Acaric が運営する日本語向けのサービスです。 どちらも内部は TeX Live+latexmk で、公式サイトで確かめた範囲を表にします。
| Overleaf | Cloud LaTeX | |
|---|---|---|
| 運営 | Overleaf | Acaric(アカリク・日本) |
| 日本語 | LuaLaTeX(ltjsarticle)はそのまま。pLaTeX・upLaTeX は latexmkrc を置く | 設定なしで日本語の文書を作れる(公式サイトの記載) |
| TeX Live の版 | 2026年8月18日のブログで TeX Live 2026 に対応 | 公式 FAQ では TeX Live 2023 frozen(最終版)で latexmk を実行 |
| 無料プラン(2026年10月29日時点) | 共同編集者1人・履歴24時間・コンパイルのタイムアウトは Basic。有料は Student・Standard・Pro | 公式サイトのトップと FAQ に料金の記載は無く、テンプレートは登録なしで使えるとの記載 |
| 外部との連携 | Git・Dropbox・Zotero(有料プラン) | Dropbox 同期、VS Code 拡張(オープンソース) |
Overleaf の公式ドキュメント(Japanese)は、upLaTeX を使うときは Compiler を「LaTeX」にし、拡張子の無い latexmkrc をプロジェクトに追加して次のように書く、と説明しています。
$latex = 'uplatex';
$bibtex = 'upbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';
この記事で手元に置いた latexmkrc とほぼ同じです。手元で動く設定をそのまま持ち込めるのが latexmk を使う利点です。Overleaf の登録から日本語の設定・エラー対処までは、関連記事「Overleafの使い方|日本語の設定・料金・エラーの直し方を実例で解説」で扱っています。
ブラウザ(Overleaf・Cloud LaTeX)
入れるものが無く、共同編集ができる。コンパイルは相手のサーバーで行う。
まず試すならこれ
VS Code+LaTeX Workshop
手元の TeX Live を使い、保存のたびに latexmk で自動コンパイル。PDF を横に表示できる。
長い文書・Git 管理
ターミナルだけ
latexmk -pvc で監視しながら、好きなエディタで書く。CI でも同じコマンドが動く。
この記事の方法
TeXworks などの専用エディタ
TeX Live に含まれる TeXworks など。ボタン1つでコンパイルでき、設定項目が少ない。
設定を増やしたくない
VS Code の入れ方と日本語化は、関連記事「VSCode日本語化の方法|拡張機能1つで切り替える手順と直らない時の対処」で扱っています。
Markdown+MathJax・Word の数式との使い分け(判断表)
この節では、LaTeX の数式記法が LaTeX 以外のどこで使え、どれを選ぶべきかが分かります。
LaTeX の数式記法は、LaTeX の外でも「数式を書く共通語」として使われています。 Web ページの MathJax・KaTeX、Markdown(Qiita・Zenn・GitHub・Jupyter)、Word の数式エディタが受け付けます。ただし、受け付ける範囲と区切り方がそれぞれ違います。
| 道具 | 数式の書き方 | 向いている場面 |
|---|---|---|
| LaTeX(この記事) | 記法の全部。パッケージで拡張できる | 論文・レポート・本・数式が多い文書。PDF を作る |
| MathJax(Web) | LaTeX の数式の部分。既定の区切りは \( \) と \[ \]。公式ドキュメントは、1つのドル記号の区切りは既定で無効(価格の $ と区別がつかないため)と説明 |
ブログ・Web ページに数式を載せる |
| KaTeX(Web) | MathJax より対応する命令は少ないが描画が速い | 数式の多いページ・Markdown エディタの内蔵 |
| Markdown(Zenn・Qiita・GitHub・Jupyter) | サービスごとに区切りが違う。多くは1つのドル記号(行内)と2つのドル記号(別行) | 技術記事・ノート。LaTeX の \section や \label は使えない |
| Word の数式エディタ | Microsoft 365 の Word で、数式の入力形式を UnicodeMath から LaTeX に切り替えられる。Microsoft 公式は「\begin{} と \end{} は Word では対応しない」とし、行列は \matrix{a & b \\ c & d} と書く |
相手が Word を使う社内文書・報告書 |
| Typst | 独自の記法(LaTeX とは別)。コンパイルが速く、エラーが読みやすい | テンプレートの縛りが無い新しい文書 |
- 1提出先が LaTeX のテンプレートを配っている → LaTeX学会・大学・出版社
- 2提出先が Word を求める → Word の数式エディタ(LaTeX 入力)社内・行政・多くの企業
- 3Web で読ませる → Markdown+MathJax/KaTeXブログ・Zenn・社内 Wiki
- 4数式がほぼ無い → Markdown か WordLaTeX を入れる手間が見合わない
Markdown の記法と、環境ごとの数式の対応は、関連記事「Markdownの書き方一覧|記法早見表と環境別の対応・変換結果つき」で扱っています。文書の中に図を入れたいときは、LaTeX の TikZ のほかに、Markdown で描ける図として関連記事「Mermaid記法一覧|全図種のコピペ用コードと描画結果まとめ」も参考になります。
よくある質問
Q. LaTeX とは何ですか? A. テキストで書いた原稿をコンパイルして、数式・参考文献・目次が整った PDF を作る文書作成システムです。TeX(Donald Knuth 作)というエンジンの上に Leslie Lamport が作った命令の集まりで、論文・レポート・教科書で広く使われています。
Q. LaTeX の読み方は? A. 公式サイトは「Lah-tech」「Lay-tech」としています。日本語では「ラテフ」「ラテック」です。「ラテックス」とは読みません。
Q. LaTeX は無料ですか? A. 無料です。LaTeX は LaTeX Project Public License の自由ソフトウェアで、TeX Live・MacTeX も無料で配布されています。Overleaf には無料プランと有料プランがあります。
Q. LaTeX と TeX の違いは?
A. TeX は文字を並べるエンジン、LaTeX はその上で \section などの便利な命令を提供する書式です。普段「LaTeX を使う」と言うときは、TeX Live に入っている LaTeX を pdfLaTeX・upLaTeX・LuaLaTeX などのエンジンで動かしています。
Q. 日本語を書くには何を使えばよいですか?
A. upLaTeX+dvipdfmx(文書クラス jsarticle)か、LuaLaTeX(ltjsarticle・jlreq)です。pdfLaTeX で日本語を書くと Unicode character 日 (U+65E5) not set up for use with LaTeX で止まります。
Q. 数式を書くには?
A. 行内は \( x^2 \)、別行は \[ … \] か equation 環境で書き、プリアンブルに \usepackage{amsmath,amssymb} を入れます。分数は \frac{a}{b}、積分は \int_0^1、行列は pmatrix 環境、ギリシャ文字は \alpha のように書きます。
Q. コンパイルしても参照が「??」のままです。
A. 1回目では番号がまだ決まっていません。もう1〜2回コンパイルするか、latexmk を使います。それでも残るなら、\label の名前の綴りと、\label を \caption の後ろに書いているかを確かめます。
Q. Undefined control sequence はどう直しますか?
A. 「l.行番号」の行で切れている直前の命令を見ます。綴りの誤り(\textbold など)か、その命令を提供するパッケージの読み忘れ(\bm なら bm、\url なら url)です。
Q. Missing $ inserted はどう直しますか?
A. ^・_・\frac などの数式の記号を、数式モードの外で使っています。\( \) で囲むか、文字として使いたいなら \_・\^{} と書きます。
Q. PDF を他の人に渡したら日本語が表示されません。
A. 日本語フォントが埋め込まれていない可能性があります。pdffonts で emb が no なら、\usepackage[haranoaji]{pxchfon} を足すか、kanji-config-updmap-sys haranoaji で埋め込む設定にします。
Q. Cloud LaTeX と Overleaf のどちらを使えばよいですか? A. 日本語の文書を設定なしで始めたいなら Cloud LaTeX、海外の共著者と編集する・学会のテンプレートが Overleaf 用に配られているなら Overleaf が向きます。どちらも内部は TeX Live+latexmk なので、原稿はそのまま行き来できます。
Q. Word の数式エディタで LaTeX は使えますか?
A. Microsoft 365 の Word では、数式の線形形式を LaTeX に切り替えて入力できます。ただし Microsoft 公式によると \begin{}・\end{} には対応せず、行列は \matrix{} で書きます。
まとめ
- LaTeX は、構造を命令で書いた原稿(.tex)をコンパイルして PDF を作る文書作成システム。TeX がエンジン、LaTeX が書式、TeX Live が配布パッケージ。
- 日本語は
\documentclass[uplatex,dvipdfmx]{jsarticle}で書いて uplatex → dvipdfmx、または ltjsarticle で lualatex。手元では upLaTeX+dvipdfmx が約0.5秒、LuaLaTeX が約2.2秒(初回13.8秒)だった。 - 目次・参照・文献は2〜3回のコンパイルで埋まる。latexmk に任せれば回数も dvipdfmx も自動になり、同じ latexmkrc が Overleaf でも使える。
- apt で入れた直後の dvipdfmx は日本語フォントを埋め込まなかった(pdffonts で
emb no)。\usepackage[haranoaji]{pxchfon}かkanji-config-updmap-sys haranoajiで直る。 - エラーは「!」の行と「l.番号」の行を見る。Undefined control sequence は綴りかパッケージ、Missing $ inserted は数式モードの外の
^・_、File not found はパッケージ・図のファイル名、pLaTeX2e/luatexja のエラーはエンジンとクラスの組み合わせ。
参考・出典
確認日はいずれも 2026年10月29日です。
- LaTeX Project「About LaTeX」:https://www.latex-project.org/about/
- American Mathematical Society「はやわかり LaTeX で数式組版(Short Math Guide for LaTeX 日本語訳)」:https://www.latex-project.org/help/documentation/short-math-guide_jpn.pdf
- TeX Users Group「TeX Live」:https://tug.org/texlive/
- TeX Users Group「TeX Live on Windows」:https://tug.org/texlive/windows.html
- TeX Users Group「MacTeX」:https://tug.org/mactex/
- Overleaf「Japanese」(日本語の設定・latexmkrc):https://www.overleaf.com/learn/latex/Japanese
- Overleaf「Learn LaTeX in 30 minutes」:https://www.overleaf.com/learn/latex/Learn_LaTeX_in_30_minutes
- Overleaf「Errors」:https://www.overleaf.com/learn/latex/Errors
- Overleaf「Plans and Pricing」:https://www.overleaf.com/user/subscription/plans
- Overleaf Blog「TeX Live 2026 is now available」:https://cs.overleaf.com/blog/tex-live-2026-is-now-available
- Cloud LaTeX:https://cloudlatex.io/ja
- Cloud LaTeX FAQ「ビルド環境について」:https://cloudlatex.io/faq/functions/build_environment
- MathJax「Writing Mathematics for MathJax」:https://docs.mathjax.org/en/latest/basic/mathematics.html
- Microsoft サポート「Linear format equations using UnicodeMath and LaTeX in Word」:https://support.microsoft.com/en-us/word/linear-format-equations-using-unicodemath-and-latex-in-word
- latexmk(CTAN):https://ctan.org/pkg/latexmk
- pxchfon(CTAN):https://ctan.org/pkg/pxchfon
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「LaTeXとは|使い方・数式の書き方・エラーの直し方を実例で解説」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。