latex について
latexは、LaTeXの文書構造、組版、数式、参照、主要パッケージを解説するスキルです。学術・技術文書などの構造化文書に加え、プレゼンテーションや履歴書の作成にも役立ちます。
主な機能
- 01文書構造とテキスト書式
- 02数式記法と数式環境
- 03節、リスト、相互参照
- 04表、図、文献引用
- 05Beamerとページレイアウト
活用シーン
- 01学術論文や学位論文の作成
- 02技術文書やレポートの組版
- 03Beamerプレゼンテーションの作成
- 04履歴書や正式な手紙の整形
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ igbuend/ grimbard --skill latexインストール後、Claude Code で/latexを入力して読み込まれたか確認します。
詳細
LaTeX スキル
1. 概要
LaTeX は、高品質な文書を作成するためのマークアップ言語および組版システムです。複雑な書式、数式、相互参照、参考文献を含む構造化文書に優れています。
LaTeX を使う場面:
- 学術論文、学術誌への投稿
- 修士論文、博士論文
- 技術文書
- CV、履歴書
- プレゼンテーション(Beamer)
- 書籍、レポート、手紙
主な概念:
| 概念 | 説明 |
|---|---|
| プリアンブル | \begin{document} より前のすべての内容 — クラス、パッケージ、設定 |
| 本文 | \begin{document} と \end{document} の間の内容 |
| コマンド | \ で始まります。例:\textbf{bold}。省略可能な引数は []、必須の引数は {} で囲みます |
| 環境 | 範囲を指定して書式を設定する \begin{name}...\end{name} ブロック |
| パッケージ | プリアンブルで \usepackage{name} を使って読み込む拡張機能 |
2. 文書構造
文書クラス
\documentclass[options]{class}
| クラス | 用途 |
|---|---|
article | 短い文書、論文、課題 |
report | 章を含む長めの文書 |
book | 書籍(前付・後付、章) |
beamer | プレゼンテーション/スライド |
letter | 正式な手紙 |
memoir | 柔軟なクラス — article/report/book を置き換えます |
よく使うクラスオプション
\documentclass[12pt,a4paper,twocolumn,draft]{article}
| オプション | 値 |
|---|---|
| 文字サイズ | 10pt、11pt、12pt |
| 用紙 | a4paper、letterpaper、a5paper |
| 段組み | onecolumn、twocolumn |
| 印刷面 | oneside、twoside |
| ドラフト | draft(はみ出したボックスを表示し、画像を省略します) |
最小構成の文書
\documentclass[12pt,a4paper]{article}
% === PREAMBLE ===
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage{hyperref}
\title{My Document}
\author{Author Name}
\date{\today}
% === BODY ===
\begin{document}
\maketitle
\tableofcontents
\section{Introduction}
Content here.
\end{document}
3. テキストの書式設定
スタイルコマンド
| コマンド | 結果 |
|---|---|
\textbf{text} | 太字 |
\textit{text} | 斜体 |
\underline{text} | 下線付き |
\emph{text} | 強調(斜体、すでに斜体の場合は正体) |
\texttt{text} | 等幅 |
\textsc{text} | スモールキャピタル |
\textsf{text} | サンセリフ |
文字サイズ
最小から最大の順:
\tiny \scriptsize \footnotesize \small \normalsize
\large \Large \LARGE \huge \Huge
次のように使います:{\large This text is large.} または環境として使用します。
フォントファミリー
| コマンド | 宣言 | ファミリー |
|---|---|---|
\textrm{} | \rmfamily | セリフ(ローマン) |
\textsf{} | \sffamily | サンセリフ |
\texttt{} | \ttfamily | 等幅 |
配置
\begin{center} Centered text. \end{center}
\begin{flushleft} Left-aligned. \end{flushleft}
\begin{flushright} Right-aligned. \end{flushright}
インラインでは、\centering、\raggedright、\raggedleft も使えます。
間隔
\vspace{1cm} % vertical space
\hspace{2em} % horizontal space
\vfill % stretch vertical
\hfill % stretch horizontal
\\[0.5cm] % line break with extra space
\setlength{\parskip}{0.5em} % paragraph spacing
\setlength{\parindent}{0pt} % remove paragraph indent
\noindent % suppress indent for one paragraph
行間(setspace パッケージが必要です):
\usepackage{setspace}
\onehalfspacing % or \doublespacing, \singlespacing
特殊文字
次の文字はエスケープする必要があります。
| 文字 | LaTeX | 文字 | LaTeX |
|---|---|---|---|
% | \% | $ | \$ |
& | \& | # | \# |
_ | \_ | { | \{ |
} | \} | ~ | \textasciitilde |
^ | \textasciicircum | \ | \textbackslash |
4. 文書の構成
セクション分け
\part{Part Title} % only in report/book
\chapter{Chapter Title} % only in report/book
\section{Section}
\subsection{Subsection}
\subsubsection{Subsubsection}
\paragraph{Paragraph}
\paragraphsub{Subparagraph}
アスタリスク付きの形式(\section*{})では、番号と目次項目が省略されます。
目次
\tableofcontents % requires two compilations
\listoffigures
\listoftables
リスト
% Bulleted
\begin{itemize}
\item First item
\item Second item
\end{itemize}
% Numbered
\begin{enumerate}
\item First
\item Second
\end{enumerate}
% Labeled
\begin{description}
\item[Term] Definition here.
\end{description}
enumitem パッケージでカスタマイズできます。
\usepackage{enumitem}
\begin{enumerate}[label=(\alph*), start=1]
相互参照
\section{Methods}\label{sec:methods}
See Section~\ref{sec:methods} on page~\pageref{sec:methods}.
hyperref を使う場合は、\autoref{sec:methods} を使うと「Section 2」のようなテキストが自動的に表示されます。
ルール: \label は必ず、\caption(フロートの場合)の後、またはセクション分けコマンドの後に配置してください。
脚注
This has a footnote.\footnote{Footnote text here.}
5. 数学
インライン数式とディスプレイ数式
Inline: $E = mc^2$ or \(E = mc^2\)
Display:
\[ E = mc^2 \]
% Numbered equation:
\begin{equation}\label{eq:einstein}
E = mc^2
\end{equation}
必須パッケージ
\usepackage{amsmath} % align, cases, matrices, etc.
\usepackage{amssymb} % extra symbols (ℝ, ℤ, etc.)
\usepackage{mathtools} % extends amsmath (dcases, coloneqq, etc.)
よく使う構文
% Fractions
\frac{a}{b} \dfrac{a}{b} (display-size)
% Roots
\sqrt{x} \sqrt[3]{x}
% Sub/superscripts
x_{i} x^{2} x_{i}^{2} a_{i,j}
% Sums, products, integrals
\sum_{i=1}^{n} x_i \prod_{i=1}^{n} x_i
\int_{0}^{\infty} f(x)\,dx
\lim_{x \to \infty} f(x)
% Brackets (auto-sized)
\left( \frac{a}{b} \right)
\left[ ... \right]
\left\{ ... \right\}
行列
\begin{pmatrix} a & b \\ c & d \end{pmatrix} % (a b; c d)
\begin{bmatrix} a & b \\ c & d \end{bmatrix} % [a b; c d]
\begin{vmatrix} a & b \\ c & d \end{vmatrix} % |a b; c d| (determinant)
\begin{Bmatrix} a & b \\ c & d \end{Bmatrix} % {a b; c d}
位置を揃えた数式
\begin{align}
f(x) &= x^2 + 2x + 1 \label{eq:f} \\
g(x) &= x^3 - 1 \label{eq:g}
\end{align}
% No numbering:
\begin{align*}
a &= b + c \\
d &= e + f
\end{align*}
場合分け
f(x) = \begin{cases}
x^2 & \text{if } x \geq 0 \\
-x^2 & \text{if } x < 0
\end{cases}
ギリシャ文字
| 小文字 | コマンド | 大文字 | コマンド |
|---|---|---|---|
| α | \alpha | Α | A |
| β | \beta | Β | B |
| γ | \gamma | Γ | \Gamma |
| δ | \delta | Δ | \Delta |
| ε | \epsilon、\varepsilon | Ε | E |
| θ | \theta | Θ | \Theta |
| λ | \lambda | Λ | \Lambda |
| μ | \mu | — | — |
| π | \pi | Π | \Pi |
| σ | \sigma | Σ | \Sigma |
| φ | \phi、\varphi | Φ | \Phi |
| ω | \omega | Ω | \Omega |
一般的な数学記号
| 記号 | コマンド | 記号 | コマンド |
|---|---|---|---|
| ≤ | \leq | ≥ | \geq |
| ≠ | \neq | ≈ | \approx |
| ± | \pm | × | \times |
| ÷ | \div | · | \cdot |
| ∈ | \in | ∉ | \notin |
| ⊂ | \subset | ⊆ | \subseteq |
| ∪ | \cup | ∩ | \cap |
| ∞ | \infty | ∂ | \partial |
| ∇ | \nabla | ∀ | \forall |
| ∃ | \exists | → | \to, \rightarrow |
| ⇒ | \Rightarrow | ⇔ | \Leftrightarrow |
| ℝ | \mathbb{R} | ℤ | \mathbb{Z} |
| … | \dots, \ldots, \cdots |
6. 表
基本的な表
\begin{table}[htbp]
\centering
\caption{Results summary}\label{tab:results}
\begin{tabular}{lcrp{4cm}}
\toprule
Name & Count & Score & Description \\
\midrule
Alpha & 10 & 95.2 & First entry \\
Beta & 20 & 87.1 & Second entry \\
\bottomrule
\end{tabular}
\end{table}
列指定子
| 指定子 | 配置 |
|---|---|
l | 左揃え |
c | 中央揃え |
r | 右揃え |
p{width} | 段落(上揃え、固定幅) |
m{width} | 中央揃えの段落(array が必要) |
| ` | ` |
主なパッケージ
\usepackage{booktabs} % \toprule, \midrule, \bottomrule (professional rules)
\usepackage{multirow} % \multirow{nrows}{width}{text}
\usepackage{longtable} % tables spanning multiple pages
\usepackage{tabularx} % auto-width X columns
複数列・複数行
\multicolumn{3}{c}{Spanning header} \\
\multirow{2}{*}{Tall cell}
7. 図と画像
\usepackage{graphicx}
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{images/photo.png}
\caption{A descriptive caption.}\label{fig:photo}
\end{figure}
includegraphics のオプション
| オプション | 例 |
|---|---|
width | width=0.5\textwidth |
height | height=5cm |
scale | scale=0.75 |
angle | angle=90 |
trim | trim=1cm 2cm 1cm 2cm, clip(左、下、右、上) |
フロートの配置
| 指定子 | 意味 |
|---|---|
h | ここ(おおよそ) |
t | ページ上部 |
b | ページ下部 |
p | フロート専用ページ |
! | 内部制限を上書き |
H | 正確にここ(float パッケージが必要) |
サブ図
\usepackage{subcaption}
\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.48\textwidth}
\includegraphics[width=\textwidth]{img1.png}
\caption{First}\label{fig:sub1}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.48\textwidth}
\includegraphics[width=\textwidth]{img2.png}
\caption{Second}\label{fig:sub2}
\end{subfigure}
\caption{Both images}\label{fig:both}
\end{figure}
8. 参考文献と引用
BibTeX のワークフロー
references.bibを作成します:
@article{smith2023,
author = {Smith, John and Doe, Jane},
title = {An Important Paper},
journal = {Journal of Examples},
year = {2023},
volume = {42},
pages = {1--15},
doi = {10.1234/example}
}
@book{knuth1984,
author = {Knuth, Donald E.},
title = {The {\TeX}book},
publisher = {Addison-Wesley},
year = {1984}
}
- 文書内で:
\usepackage{natbib} % or use biblatex
\bibliographystyle{plainnat}
As shown by \citet{smith2023}... % Smith and Doe (2023)
This is known \citep{smith2023}. % (Smith and Doe, 2023)
\bibliography{references}
- コンパイルします:
pdflatex → bibtex → pdflatex → pdflatex
BibLaTeX のワークフロー(最新)
\usepackage[backend=biber, style=authoryear]{biblatex}
\addbibresource{references.bib}
\textcite{smith2023} % Smith and Doe (2023)
\parencite{smith2023} % (Smith and Doe, 2023)
\printbibliography
コンパイルします:pdflatex → biber → pdflatex → pdflatex
natbib と biblatex の比較
| 機能 | natbib | biblatex |
|---|---|---|
| バックエンド | BibTeX | Biber(推奨) |
| 柔軟性 | 限定的なスタイル | 高度なカスタマイズが可能 |
| Unicode | サポートが不十分 | 完全にサポート |
| 推奨用途 | 既存のプロジェクト | 新しいプロジェクト |
9. コードリスト
verbatim
\begin{verbatim}
def hello():
print("Hello, world!")
\end{verbatim}
Inline: \verb|some_code()|
listings パッケージ
\usepackage{listings}
\usepackage{xcolor}
\lstdefinestyle{mystyle}{
basicstyle=\ttfamily\small,
keywordstyle=\color{blue},
commentstyle=\color{gray},
stringstyle=\color{red},
numbers=left,
numberstyle=\tiny,
frame=single,
breaklines=true
}
\begin{lstlisting}[language=Python, style=mystyle, caption={Example}]
def factorial(n):
"""Compute factorial."""
if n <= 1:
return 1
return n * factorial(n - 1)
\end{lstlisting}
minted パッケージ(より見やすい表示、Pygments が必要)
\usepackage{minted}
\begin{minted}[linenos, frame=lines, fontsize=\small]{python}
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)
\end{minted}
次のコマンドでコンパイルします:pdflatex -shell-escape document.tex
10. プレゼンテーション(Beamer)
\documentclass{beamer}
\usetheme{Madrid} % or: Berlin, Warsaw, Metropolis, etc.
\usecolortheme{default} % or: beaver, crane, dolphin, etc.
\title{My Presentation}
\author{Author}
\date{\today}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{Outline}
\tableofcontents
\end{frame}
\section{Introduction}
\begin{frame}{Introduction}
\begin{itemize}
\item<1-> First point (appears on slide 1+)
\item<2-> Second point (appears on slide 2+)
\item<3-> Third point
\end{itemize}
\end{frame}
\begin{frame}{With Columns}
\begin{columns}
\begin{column}{0.5\textwidth}
Left content
\end{column}
\begin{column}{0.5\textwidth}
Right content
\end{column}
\end{columns}
\end{frame}
\end{document}
人気のテーマ: Madrid、Berlin、Metropolis(モダンでシンプル)、Warsaw、CambridgeUS
オーバーレイコマンド
| コマンド | 効果 |
|---|---|
\pause | コンテンツを段階的に表示 |
\onslide<2>{text} | スライド 2 のみで表示 |
\only<1>{text} | スライド 1 のみで表示(スペースを確保しない) |
\visible<2->{text} | スライド 2 以降で表示 |
\alert<2>{text} | スライド 2 で強調表示 |
11. ページレイアウト
余白(geometry)
\usepackage[margin=2.5cm]{geometry}
% or:
\usepackage[top=3cm, bottom=3cm, left=2cm, right=2cm]{geometry}
ヘッダーとフッター(fancyhdr)
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{} % clear all
\fancyhead[L]{Left Header}
\fancyhead[R]{\rightmark} % current section
\fancyfoot[C]{\thepage} % page number center
\renewcommand{\headrulewidth}{0.4pt}
ページ番号
\pagenumbering{roman} % i, ii, iii (for front matter)
\pagenumbering{arabic} % 1, 2, 3 (for main content)
\thispagestyle{empty} % no number on this page
複数段組み
\usepackage{multicol}
\begin{multicols}{2}
Content in two columns...
\end{multicols}
12. よく使うパッケージのリファレンス
| パッケージ | 用途 |
|---|---|
amsmath | 数式環境を拡張します |
amssymb | 数学記号を追加します(ℝ、ℤなど) |
mathtools | amsmathを拡張します |
graphicx | 画像を挿入します |
hyperref | クリック可能なリンクとPDFメタデータを設定します |
geometry | ページの余白と寸法を設定します |
booktabs | プロフェッショナルな表の罫線を設定します |
multirow | 表の複数行にまたがるセルを設定します |
longtable | 複数ページにわたる表を作成します |
tabularx | 表の列幅を自動調整します |
xcolor | 色をサポートします |
listings | コードを掲載します |
minted | 構文強調表示付きのコードを掲載します(Pygmentsが必要です) |
tikz | プログラムで図やダイアグラムを作成します |
pgfplots | データをプロットします(TikZを基盤とします) |
fancyhdr | ヘッダーとフッターをカスタマイズします |
setspace | 行間を設定します |
enumitem | リスト環境をカスタマイズします |
subcaption | サブ図とサブ表を作成します |
float | フロートの配置を細かく制御します([H]配置) |
babel | 言語とハイフネーションをサポートします |
inputenc | 入力エンコーディングを設定します(utf8) |
fontenc | フォントエンコーディングを設定します(T1) |
microtype | マイクロタイポグラフィを改善します |
cleveref | スマートな相互参照を設定します(\cref) |
siunitx | SI単位と数値の書式を設定します |
algorithm2e | アルゴリズムの擬似コードを作成します |
natbib | 引用を管理します |
biblatex | 最新の参考文献管理を行います |
csquotes | 文脈に応じた引用符を使用します |
url | URLを組版します |
caption | キャプションの書式をカスタマイズします |
appendix | 付録を管理します |
読み込み順のヒント: hyperrefは最後(または最後に近い位置)で読み込みます。例外として、cleverefはhyperrefの後に読み込みます。
13. コンパイル
エンジン
| エンジン | 使用する場合 |
|---|---|
pdflatex | デフォルトです。最も互換性があります。ASCII/ラテン文字の入力に対応します。 |
xelatex | システムフォント(TTF/OTF)や完全なUnicode対応が必要な場合 |
lualatex | システムフォントとLuaスクリプト、完全なUnicode対応が必要な場合 |
コンパイル手順
# Basic document
pdflatex document.tex
# With bibliography (BibTeX)
pdflatex document.tex
bibtex document
pdflatex document.tex
pdflatex document.tex
# With bibliography (Biber/BibLaTeX)
pdflatex document.tex
biber document
pdflatex document.tex
pdflatex document.tex
# Automated (recommended)
latexmk -pdf document.tex # pdflatex
latexmk -xelatex document.tex # xelatex
latexmk -lualatex document.tex # lualatex
latexmk -pdf -pvc document.tex # continuous preview
よくあるエラーと修正方法
| エラー | 原因 | 修正方法 |
|---|---|---|
Undefined control sequence | 入力ミス、またはパッケージの不足 | スペルを確認し、\usepackageを追加します |
Missing $ inserted | 数式モード外で数式記号を使用しています | $...$で囲みます |
Missing \begin{document} | プリアンブルにエラーがあります | プリアンブルの入力ミスを確認します |
File not found | パスが間違っている、またはファイルがありません | ファイル名とパスを確認し、拡張子も確認します |
Overfull \hbox | 行が長すぎます | 言い換えるか、\allowbreakを追加するか、\sloppyを使用します |
Undefined citation | 参考文献エントリーがない、またはbibtexを実行していません | bibtex/biberを実行し、.bibのキーを確認します |
Too many unprocessed floats | 図がキューに多く積まれています | \clearpageを追加するか、[H]を使用します |
Dimension too large | 画像の拡大縮小に問題があります | width/heightの値を確認します |
Package clash | 2つのパッケージが競合しています | どちらか一方を読み込み、互換性に関するドキュメントを確認します |
ログファイルの確認
.logファイルでエラーの詳細な状況を確認します- エラーは
!で始まる行に表示されます - 警告は
LaTeX Warning:またはPackage xyz Warning:として表示されます Rerun to get cross-references right→ 再度コンパイルします
14. ヒントとベストプラクティス
- 複数ファイルのプロジェクト:
\input{chapters/intro}(インラインで挿入)または\include{chapters/intro}(\clearpageを追加し、\includeonlyを有効にします)を使用します - カスタムプリアンブル: パッケージの読み込みを
preamble.styまたはpreamble.texに移動し、\input{preamble}で読み込みます - キャプションの後にラベルを付ける:
\caption{...}\label{fig:x}の順にします。逆にはしないでください - 改行されないスペース:
Figure~\ref{fig:x}、Section~\ref{sec:y}のようにします。これにより、番号の前で改行されなくなります - ドラフトモード:
\documentclass[draft]{article}を使用します。コンパイルが速くなり、幅が超過したボックスが表示されます - フロート内では
centerではなく\centeringを使用します(余分な垂直方向の間隔を避けられます) - 段落の区切りに
\\を使わず、空行を使用します booktabsを使用: プロフェッショナルな表では、\hlineや縦線を使わないでくださいmicrotypeを使用: 手間をかけずにタイポグラフィを改善できますcleverefを使用:\cref{fig:x}を使うと、「Figure 1」のようなテキストが自動生成されます- バージョン管理: LaTeXはプレーンテキストなので、Gitを使用します
- 1行に1文を記述します。バージョン管理で差分が見やすくなります
15. クイックリファレンス
よく使うコマンド
| タスク | コマンド |
|---|---|
| 太字 | \textbf{text} |
| 斜体 | \textit{text} |
| 等幅フォント | \texttt{text} |
| セクション | \section{Title} |
| 参照 | \ref{label} |
| 引用 | \cite{key} |
| 脚注 | \footnote{text} |
| 画像 | \includegraphics[width=\textwidth]{file} |
| URL | \url{https://...} or \href{url}{text} |
| リスト項目 | \item |
| 改ページ | \newpage or \clearpage |
| コメント | % comment |
| インライン数式 | $E=mc^2$ |
| 別行立て数式 | \[ E=mc^2 \] |
| 分数 | \frac{a}{b} |
数学演算子
| コマンド | 記号 | コマンド | 記号 |
|---|---|---|---|
\sin | sin | \cos | cos |
\tan | tan | \log | log |
\ln | ln | \exp | exp |
\min | min | \max | max |
\lim | lim | \sum | Σ |
\prod | Π | \int | ∫ |
矢印
| コマンド | 記号 |
|---|---|
\rightarrow, \to | → |
\leftarrow | ← |
\leftrightarrow | ↔ |
\Rightarrow | ⇒ |
\Leftarrow | ⇐ |
\Leftrightarrow | ⇔ |
\mapsto | ↦ |
\uparrow | ↑ |
\downarrow | ↓ |