latexでよく利用するパッケージ
論文や文書を作成するときに便利な頻出パッケージ群をまとめる.(都度更新予定)
フォント,色
\usepackage[utf8]{inputenc}
- 目的: UTF-8エンコードでの入力を許可する.
- 概要: 古いLaTeXではデフォルトでASCII文字のみ扱えたが,
\usepackage[utf8]{inputenc}
を使用することでUTF-8エンコードの文字(日本語や絵文字など)を入力できるようになる.さらに特殊文字(例えばéや漢字)を直接ソースコード内で書くことができるようになる.ただ現在ではデフォルトがutf-8になっているので使わなくてよいはず.
\usepackage[T1]{fontenc}
- 目的: T1フォントエンコーディングを使用する.
- 概要: LaTeXのデフォルトのフォントエンコーディング(OT1)は,アクセント付きの文字や特殊記号を処理するのが不十分.
fontenc
パッケージにT1オプションを指定すると,欧州言語(例えば、フランス語、ドイツ語)に対応した8ビットフォントを使用し,アクセント付き文字や特殊文字を適切に扱えるようになる.inputsecとは異なり,出力のエンコーディングを強化するもので,今日でも使ったほうがよい.
\usepackage{microtype}
- 目的: 微細なタイポグラフィック調整(文字間、行間など)を自動的に行うパッケージ。
- 概要: タイポグラフィーの微細な調整を行い、LaTeX文書の印刷品質を向上させる.文字間隔(カーニング)や、行間の調整、字形の拡張などを自動的に行う.おまじない的に入れておけばよい.
\usepackage{luatexja}
- 目的: lualatexで日本語を利用する場合.
- 概要: lualatexはそのままでは日本語非対応なので,本パッケージが必須.
\usepackage[hiragino-pron]{luatexja-fontspec}
- 目的: lualatexで日本語を利用する場合.
- 概要: luatexjaを使うのと別の選択肢として,本パッケージを利用して別途フォントを設定するという手もある.ここではヒラギノプロNを指定しているが,他にも色々な設定が可能.
表
\usepackage{booktabs}
- 目的: 高品質な表を作成するためのパッケージ。
- 概要: 表の見栄えをよくする.特に洗練された線(水平線)が色々と提供されており,
\\hline
の代わりに\toprule
,\midrule
,\bottomrule
を使用して表の上部,中部,下部に適した線を引ける.
latex
コピーする
\begin{tabular}{ccc}
\toprule
Header 1 & Header 2 & Header 3 \\
\midrule
Item 1 & Item 2 & Item 3 \\
Item 4 & Item 5 & Item 6 \\
\bottomrule
\end{tabular}
\usepackage{longtable}
- 目的: 複数ページにわたる表を作成する.
- 概要: 通常の
tabular
環境では表が1ページ内に収まらないと正しく表示できないが、longtable
を使用すると自動的に次のページへ表を続けることができる.複数ページの表を作ろうと思うと必須.
\usepackage{hhline}
- 目的: 表の罫線を細かく制御するためのコマンドを提供する.
- 概要:
hhline
を使うと、tabular
環境での罫線のスタイルをより細かく指定できる.標準の\hline
や\cline
では対応できない部分的な罫線や二重線を作成できるのが特徴.
\usepackage{csvsimple}
- 目的: CSVデータをLaTeXの表として簡単に取り込む.
- 概要: 外部のCSVファイルを読み込んで表を生成できる.データをLaTeX内に直接書かずに済むため保守性が向上する.一方で,あまり複雑な表は作れないため場合によって使うか見極める.
\usepackage{multirow}
- 目的: 表のセルを複数行にわたって(特に縦に)結合する.
- 概要:
multirow
を使用すると、表の縦方向のセル結合が可能になる.複雑な表を整理しやすくなるため頻繁に利用する.
\usepackage{threeparttable}
- 目的: 表に注釈を付けるための環境を提供する.
- 概要: 通常の
tabular
では表の脚注を適切に配置できないが、このパッケージを使うと適切なフォーマットで脚注を追加できる.
数式,数学記号,コーディング
\usepackage{amsfonts}
- 目的: 数学記号用のフォント(ブラックボードボールドなど)を提供
- 概要: 数学や理論物理学でよく使われる特殊なフォントを提供する.たとえば
\mathbb{N}
でボールドで出力できる.以下amsファミリーのパッケージはとりあえずロードしておけば良い.ただし,本amsfontsはamssymbが自動でロードするため,amssymbを利用する場合はロード不要.
\usepackage{amsmath}
- 目的: 高度な数学表現を可能にする.
- 概要: 分数、行列、複雑な数式環境などを簡単に記述できるようになる.
\usepackage{amssymb}
- 目的: 追加の数学記号を利用可能にする.
- 概要: さらに多くの記号を使用できるようになる.
\usepackage{amsthm}
- 目的: 数学で必須の定理等の環境を提供する.
- 概要: 定理環境(
theorem
)、補題(lemma
)、命題(proposition
)、証明(proof
)などを簡単に定義,整理できる.定理番号の付け方やフォーマットのカスタマイズも可能.
\usepackage{mathrsfs}
- 目的: 花文字を使う.
- 概要: 集合やハミルトニアンで花文字を使いたいとき,
\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
で利用できる.
**\usepackage{siunitx}**
- 目的: 国際単位系(SI)の記述を統一する.
- 概要:
\SI{10}{m/s^2}
のような形式で、単位と数値を統一されたフォーマットで表記できる.また、桁区切りの設定なども可能. - 例: 科学論文や技術レポートで物理単位を統一的に表記する際にほぼ必須.
5. \usepackage{nicefrac}
- 目的: 分数の簡潔な表記を提供.
- 概要: 分数をインラインで簡潔に表現する.
\nicefrac{1}{2}
とうつとスラッシュ(/
)を使って簡潔に分数を表示する.できます。例えば、21 の代わりに \nicefrac12 のように表示することができます。
\usepackage{listings}
- 目的: プログラムコードをLaTeX文書に挿入し、美しく表示する.
- 概要: シンタックスハイライトや行番号の表示が可能で、多くのプログラミング言語に対応.
\usepackage[version=4]{mhchem}
- 目的: 化学式を出力する
- 概要: 化学式を美しく表示できる.コマンドは
\ce
で,\ce{H2O}
のような単純な化学式から,\ce{CO2 + C -> 2 CO}
のような反応式やアイソトープといったより複雑な表現にも対応.普通に化学式を書こうとすると結構面倒くさいため,化学式を利用したければほぼ必須.
\usepackage{physics}
- 目的: 特に物理学で利用する数学記号を含む.
- 概要: ベクトル,行列,微積分記号など,物理学で頻出する数学記号を定義したもので,数式の記述が大幅に簡易化される.例えばdf/dtは
\dv{f}{t}
,ブラケットは\braket{a}{b}
とかける.物理系の文書を作成するときには使うとかなり便利.
図
\usepackage{graphicx}
- 目的: 画像をLaTeX文書に挿入する.ほぼ必須.
- 概要:
\includegraphics{}
コマンドを提供し、PNG, JPEG, PDF, EPS などの画像フォーマットを文書内に埋め込めるようにする.オプションを使えば、サイズの変更や回転も可能.
\usepackage{tikz,tikz-3dplot}
- 目的: latexを利用した図の描画
- 概要: 矢印付きのフローチャート、グラフ、幾何学図形などをLaTeX上で直接描くことができる強力なパッケージ.細かいカスタマイズが可能で、座標ベースの描画ができるのが特徴.
tikz-3dplot
は3次元プロット用.latexで作図するならこれ!
\usepackage{pgf, pgfplots, pgfplotstable}
- 目的: latexを利用した図の描画
- 概要: tikzベースの描画ツールで,特にx軸,y軸があるような通常の図を作成する.実験データを図に入れ込める.また,対数グラフ,散布図,棒グラフはじめ通常理工系で目にするグラフはほぼ作成できる印象.latexで作図するならtikzとともにほぼマスト.
\usepackage{tikz-feynhand}
- 目的: Feynman 図を描くためのパッケージ.
- 概要:
TikZ
をベースにしており、量子力学や場の理論でよく使われる Feynman 図を簡単に作成できる.
\usepackage{chemfig}
- 目的: 化学構造式を描くためのパッケージ.
- 概要:
TikZ
をベースにしており、複雑な化学構造式を簡単に作成できる.
\usepackage[inline]{asymptote}
- 目的: asymptoteによる描画
- 概要:
asymptote
はそもそも3Dグラフィックスや数式と統合可能な図を描画するためのコマンドで,latex内からこれを呼び出すために必要なのがasymptote
パッケージ.特にPGF/TikZがあまり得意ではない3Dグラフィックスの作成に強みがあるため,必要な場合に併用する.
\usepackage{caption}
- 目的: 図や表のキャプション(概要文)をカスタマイズする.
- 概要: キャプションのフォントサイズや配置などを柔軟に変更できる.
\usepackage{subcaption}
- 目的: 図や表のサブキャプション(部分的な説明)を追加する.
- 概要: 複数の図を一つの図としてまとめ、個別の説明を付ける際に便利.
\usepackage{here}
- 目的: 図や表などのフロート環境の場所を強制的に決定する.
- 概要: フロート環境が挿入される場所はhtbなどのオプションで指定されるが,どうしても思い通りにいかないことも多い.あたらしくHと指定すると,挿入場所を強制的に現在の場所に指定する.
参考文献,引用,参照
\usepackage{natbib}
- 目的: 柔軟な引用形式を提供する.
- 概要:
\citep{}
や\citet{}
を使い、著者・年の引用形式を自由に変更できる.
\usepackage{biblatex}
- 目的: 次世代の文献管理パッケージ.
- 概要:
bibtex
よりも強力で、より詳細な文献管理機能を提供するが,雑誌ではサポートされていないことも多い...
\usepackage{cite}
- 目的: 番号付き引用の整理を行う.
- 概要: 複数の引用を
[1,2,3]
ではなく[1-3]
のようにまとめる.
\usepackage{hyperref}
- 目的: 文書内のリンクを有効にする.
- 概要: 目次や引用、URLリンクをクリック可能にする.
\usepackage{cleveref}
- 目的: 自動で適切な参照を挿入する.
- 概要:
\cref{fig:sample}
のように簡単な記述で適切な参照が可能になる.
5. 文章構成・レイアウト
\usepackage{geometry}
- 目的: ページの余白やレイアウトを自由に調整する.
- 概要:
\geometry{a4paper, margin=1in}
のように指定することで、用紙サイズや余白を簡単に設定できる.一方で雑誌等では利用できないこともある.
\usepackage{standalone}
- 目的: 個別のTeXファイルをモジュール化し、他のドキュメントに簡単に組み込めるようにする.
- 概要: 独立したLaTeXファイルを作成し、メインのドキュメントに
\input{}
や\include{}
で読み込むことができる.特にTikZやAsymptoteなどの図表を別ファイルとして管理して必要に応じて再利用できるのが利点.
\usepackage{acronym}
- 目的: 文書内で略語(acronym)を統一的に管理する.
- 概要:
acronym
パッケージを使うと、略語を定義し、文書内で自動的に展開・短縮できる.略語の一覧を出力する機能もあり、技術論文や報告書でよく使用される.
\usepackage{xcolor}
- 目的: 文書中で色を利用する
- 概要: 色を使う場合は
color
またはxcolor
をロードする.xcolor
からはcolor
のすべての機能を利用できる.既定の多くの色のほか,自分で色を定義して利用することも可能. - 参考:
まとめ
自分が利用しているパッケージを取り上げて簡単にまとめた.
TODO
- 簡単な例の追加
- 漏れているパッケージの追加
- パッケージリンクの追加