[[LaTeX入門]] /
[[最初の例>LaTeX入門/最初の例]] /
[[簡単な数式 (1)>LaTeX入門/簡単な数式(1)]] /
[[簡単な数式 (2)>LaTeX入門/簡単な数式(2)]] /
各種パッケージの利用 /
[[レポート>LaTeX入門/レポート]] /
[[HTML と LaTeX の比較>LaTeX入門/HTMLとLaTeXの比較]] /
[[複雑な数式>LaTeX入門/複雑な数式]] /
[[図表>LaTeX入門/図表]] /
[[図表の配置>LaTeX入門/図表の配置]] /
[[相互参照とリンク>LaTeX入門/相互参照とリンク]] /
[[文献引用]] /
[[索引作成]] /
[[LaTeX マクロの作成>LaTeX入門/LaTeXマクロの作成]] /
[[スライドの作り方(jsarticle 編)>LaTeX入門/スライドの作り方(jsarticle編)]] /
[[応用的な使い方>LaTeX入門/応用的な使い方]] /
[[発展編>LaTeX入門/発展編]]

----


* 各種パッケージの利用 [#l5aceaca]

LaTeX の機能を拡張したり,新たな機能を追加したりするために用いるのが「パッケージ」です。
既に TeX 入門では,[[簡単な数式(1)>LaTeX入門/簡単な数式(1)]] で amsmath, amssymb という数学用パッケージや newtxtext, newtxmath という Times 系フォント用パッケージを紹介しました。
他にも多数の便利なパッケージがありますので,[[目的別パッケージ簡易リファレンス]]を覗いてみてください。

この項では,LaTeX におけるパッケージとは何か,あるいはそれらの利用法について説明します。

#contents


** パッケージの使用例 [#z7340739]

例えば,多段組みを実現するために “multicol” というパッケージを利用するなら次のように記述します。
// multicol って,商用利用は禁止されていましたよね?
// ライセンスはユーザがきちんと確認する必要がありそうです。

 \documentclass[dvipdfmx]{jsarticle}
 \usepackage{multicol}

 \begin{document}

 ここは一段組み。

 \begin{multicols}{3}
 ここは三段組み。
 でも三段組みにするためにはもっと長い例文が必要なので,意味も無いことをここにだらだら書き連ねています。
 このくらい書けば三段に分かれて組み上げられるでしょうか?
 \end{multicols}

 \end{document}

このファイルのプリアンブル((\documentclass と \begin{document} に挟まれた部分のことを「''プリアンブル''」といいます。この用語は覚えておきましょう。))にある “\usepackage{multicol}” というのが,multicol パッケージを読み込む指示です。
multicol パッケージには multicols という環境の定義が書かれているので,本文中で “\begin{multicols}{3}” のようにして三段組みの機能を使用することができるのです。


** パッケージファイルの実体(ファイルの種類) [#c3ac61a0]

パッケージは,具体的には以下のようなファイルから成ります。

: sty ファイル | パッケージファイルの拡張子は “.sty” です。実体(の主要部分)はテキストファイルで,いろいろなコマンドの定義が書かれています。
: sty ファイル以外のファイル | パッケージによっては sty ファイルのみからなるとは限らず,他のファイルを必要とするものもあります。例えば,後の[[図表>LaTeX入門/図表]]で登場する [[graphicx]] パッケージの場合,“ドライバ指定” に応じた def ファイルも用いられます。非標準のフォントを利用するためのパッケージの場合には,タイプセット時に tfm/jfm ファイルや fd ファイルも用いられ,さらに出力時に dviware に応じた map ファイルも用いられることでしょう。


** パッケージファイルの場所 [#p3338b79]

LaTeX システムを一式インストールした場合は,標準的なパッケージも既に入っています。
C:\texlive\2018\texmf-dist\tex\latex のようなフォルダーや,そのサブフォルダーを探してみてください。
C:\texlive\2020\texmf-dist\tex\latex のようなフォルダーや,そのサブフォルダーを探してみてください。

上記の multicol.sty であればコマンドラインから

 kpsewhich multicol.sty
を実行すると

-TeX Live の場合は
 c:/texlive/2020/texmf-dist/tex/latex/tools/multicol.sty
-W32TeX の場合は
 c:/w32tex/share/texmf-dist/tex/latex/tools/multicol.sty

のように表示されて multicol.sty の場所がわかります。
お使いのコンピュータの中の,LaTeX が見つけることのできる場所にパッケージファイルが置いてあれば,上記の “\usepackage” コマンドによって読み込むことができます。
\usepackage は,ファイルの拡張子は省いてあっても拡張子 .sty のファイルを読み込みます。


** パッケージの入手,インストール [#n0d876cf]

手元にないパッケージは外部から入手してインストールすることができます。
世界中に公開されているパッケージは [[CTAN]] サーバーからダウンロードできます。
あるいは,パッケージ作成者の方が個人のウェブサイトからダウンロードできるようにしているものもあります。
とはいえ,[[TeX Live]] の場合は相当数のパッケージがデフォルトでインストールされますし,最近は [[W32TeX]] でも通常の用途には十分なほどのパッケージが含まれるようになりました。
このため,新たにパッケージを手作業でインストールする必要は以前に比べて少なくなりました。

何か使いたい機能があって Web で検索し、「hoge というパッケージを使ってください」と書かれていたら、まずは
 \usepackage{hoge}
と書いてみましょう。
Web 上のあちこちで紹介されるような有名なパッケージであれば、たいていの場合は既にインストールされていますので、これで使えるようになります。
仮に
 ! LaTeX Error: File `hoge.sty' not found.
というエラーが発生したら、残念ながらパッケージがまだインストールされていないことを表します。
以下は追加でパッケージをインストールする必要が生じた場合に読めば結構ですので,いま必要ない場合はページ最上部の見出しから次の項目へお進みください。

ここでは,「sty ファイルと説明文書のみ」などの簡単なパッケージ例を挙げてそのインストール法を説明します。
フォント関連のパッケージなどはいろいろなファイルを適切に配置する必要がありますので,その場合は [[TeX のディレクトリ構成]] を参照してください。

// とりあえず,上記のようなインストールが簡単なパッケージに絞って説明することにしました。
// 「入門」として長すぎる,複雑すぎるものは排除し,別所に移す方針で。

*** パッケージのインストール(sty ファイルが用意されている場合) [#b1d7dcd3]

パッケージ本体(sty ファイル)が用意されていれば,LaTeX が見つけられる場所((配置場所は “厳密にここでなければならない” という規則はなく,LaTeX が見つけられさえすればよいです。ただ,管理のしやすさや将来的に TeX をアップデートする可能性などを考えると,ある程度の規則に従って配置したほうが(長期的に見て)わかりやすくなります。))に sty ファイルを配置すれば完了です(説明文書が付属している場合は,これも配置するとよいでしょう)。

% 編集途中。TeX Live にも W32TeX にも含まれていない,sty と説明の pdf を配布している実例を挙げると良さそう。なにかあるでしょうか。

*** パッケージのインストール(sty ファイルが用意されていない場合) [#scff9961]

パッケージ本体である sty ファイルが用意されておらず,代わりに dtx や ins といったファイルが用意されていることがあります。
この場合,dtx ファイルと ins ファイルによって本体を生成するというもう一手間が必要になります。

あとは sty ファイルが用意されている場合と同様に,一連の配置作業を行いましょう。

% 編集途中。TeX Live にも W32TeX にも含まれていない,dtx と ins はあって sty がないという実例を挙げると良さそう。なにかあるでしょうか。

% 以下に,従来書かれていた内容をそのまま残します。

*** ダウンロードするファイル [#w767dc76]

パッケージ本体のファイル(“.sty”)だけでなく関連する他のファイルも一式あった方が良いでしょう。
それぞれ用意されていたり用意されていなかったりします。

: readme.txt など | ダウンロードする前に読むべき説明書。ファイル名は “Read me.(=私を読んで)” ということ
: .sty | パッケージ本体
: .dtx | パッケージ本体と説明文書を合わせたもの
: .ins | dtx ファイルから,パッケージ本体である sty ファイルを生成するためのもの
: .pdf | 説明文書(PDF 形式)
: .doc | 説明文書(txt 形式。“doc”という拡張子であっても Microsoft Word の文書であることは稀で,単なるテキストファイル)

関連のあるパッケージ群をひとまとめにして配布している場合などは,一つの dtx ファイルから複数のそれぞれ異なる名前の sty ファイルを生成することもあります。
目当ての sty ファイルが無い場合には,他の名前の dtx ファイルや ins ファイルを LaTeX で処理する必要があるかもしれません。
例えば,multicol.sty を生成するためには multicol.dtx および tools.ins が必要となります。

*** インストール [#n18c984a]

パッケージ本体である sty ファイルがあれば,それを LaTeX が見つけることのできる場所に保存すればインストールは完了です(注:下記「一覧表の更新 (mktexlsr) について」を参照)。

パッケージ本体である sty ファイルが無い場合には,他のファイルから生成します。
dtx ファイルと ins ファイルを同じフォルダーに保存した上で,LaTeX に ins ファイルを処理させます。
例えば multicol.sty を生成するにはコマンドラインから
 latex tools.ins
を実行します。
tools.ins には,multicol.dtx を読み込んで multicol.sty を生成するような指示が書いてあるので,そのとおりに sty ファイルが生成されます。
このときに,説明文書や使用方法を示すサンプル文書が一緒に生成されることもあります。
無事に sty ファイルが生成されたら,それを LaTeX が見つけることのできる場所に保存すればインストールは完了です(注:下記「mktexlsr について」を参照)。

ファイル群は TDS (TeX Directory Structure) に従って各ディレクトリに入れないと,本体が使用不可だったり,[[texdoc>Texdoc]] コマンドで説明文書が読めなかったりします。
慣れないと,これが一番やっかいなところです。
LaTeX パッケージの場合,以下のように配置します:
-説明文書 (README, .pdf, .txt, .doc, .tex, ...)
 $TEXMFLOCAL/doc/latex/packagename/
-ソース (.dtx, .ins)
 $TEXMFLOCAL/source/latex/packagename/
-本体 (.sty, .cls, .fd, .def, .cfg, ...)
 $TEXMFLOCAL/tex/latex/packagename/

詳細は [[TeX のディレクトリ構成]] を参照してください。

dtx ファイルから説明文書を生成することもできます。
そのためには単に dtx ファイルを LaTeX で処理すればよいのです。
例えば multicol パッケージの説明文書が欲しければ
 latex multicol.dtx
を実行します。
すると,通常の TeX 文書を処理したときと同様に
multicol.dvi という dvi ファイルが生成されます。
これが説明文書です。

// pLaTeX では処理できない dtx ファイルも結構あるような感じがしますけれど。
// ドキュメントの中で,例えば,pdfLaTeX 依存のコマンドを使っていても,
// pLaTeX でも,部分的に利用可能なパッケージもありますし,
// ただ単に 8 bit の文字が使われているだけの事もありますし。

*** 一覧表の更新 (mktexlsr) について [#tc299bdb]

LaTeX がファイルを読み込むときは TeX のディレクトリの中から目当てのファイルを探しますが,ファイルを探すのはそれなりの時間がかかります。
そこで考え出されたのが「''あらかじめファイルの一覧表を作っておき,ファイルを探すときにはそれを参照する''」という仕組みで,この一覧表 (ls-R) を作るコマンドが mktexlsr です。
手元のシステムでこの一覧表を利用しているかどうかは,ls-R というファイルが存在するかどうかを調べるとわかります。

-[[TeX Live]] では,この ls-R という一覧表でファイルを管理しています。このため,新しいパッケージなどをインストールするたびに一覧表を更新してやらないと,せっかくインストールしたつもりのパッケージも LaTeX から見つけてもらえずに使用できません。TeX Live でパッケージを追加した場合は
 mktexlsr
を実行して一覧表を更新しましょう。
Unix 系であれば管理者権限が必要ですので,
 sudo mktexlsr
として実行します。

-[[W32TeX]] では,一覧表を使う運用と全く使わない運用の両方が可能です。一覧表を使用している場合は
 mktexlsr
を実行してください。一覧表を使用していない場合は mktexlsr を実行しないでください(もし間違えて実行した場合は deltexlsr を実行すれば ls-R ファイルが削除されます)。


** もっとパッケージを知りたい方へ [#o5286a97]

このようなパッケージファイルは自分で作ることもできますし,他人が作ったものをダウンロードすることもできます。
自分で作った場合は世界中に配布してもよいでしょう。
[[パッケージ]]という項目に,パッケージの作り方・カスタマイズ法をまとめてあります。

// カスタマイズまでは LaTeX 入門で取り上げなくても良いかもしれないので,別所に移すことを検討中です。 -- アセトアミノフェン (2015-02-23)
// …というわけで「パッケージ」という項目を新規作成して移転しました。 -- (2015-05-01)