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

----

''目次''
#contents


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

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

#contents

** パッケージとは [#q3279849]

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

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

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

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

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

 \documentclass{jsarticle}
 \usepackage{multicol}

 \begin{document}

 ここは一段組み。

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

 \end{document}

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

このようなパッケージファイルは自分で作ることもできますし,他人が作ったものをダウンロードすることもできます。
自分で作った場合は世界中に配布してもよいでしょう。

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

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

上記の multicol.sty であれば Windows PowerShell またはコマンド プロンプトから
 kpsewhich multicol.sty
を実行すると

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

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

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

手元にないパッケージは外部から入手してインストールすることができます。
世界中に公開されているパッケージは [[CTAN]] サーバーからダウンロードできます。
あるいは,パッケージ作成者の方が個人のウェブサイトからダウンロードできるようにしているものもあります。

とはいえ,[[TeX Live]] の場合は相当数のパッケージがデフォルトでインストールされますし,最近は [[W32TeX]] でも通常の用途には十分なほどのパッケージが含まれるようになりました。
とはいえ,[[TeX Live]] の場合は相当数のパッケージがデフォルトでインストールされますし,最近は [W32TeX]] でも通常の用途には十分なほどのパッケージが含まれるようになりました。
このため,新たにパッケージを手作業でインストールする必要は以前に比べて少なくなりました。

以下は追加でパッケージをインストールする必要が生じた場合に読めば結構ですので,いま必要ない場合はページ最上部の見出しから次の項目へお進みください。

*** ダウンロードするファイル [#w767dc76]
パッケージ本体のファイル(“.sty”)だけでなく関連する他のファイルも一式あった方が良いでしょう。
それぞれ用意されていたり用意されていなかったりします。
: readme.txt など | ダウンロードする前に読むべき説明書。ファイル名は
“Read me.(=私を読んで)” ということ
: readme.txt など | ダウンロードする前に読むべき説明書。ファイル名は “Read me.(=私を読んで)” ということ
: .sty | パッケージ本体
: .dtx | パッケージ本体と説明文書を合わせたもの
: .ins | dtx ファイルから,パッケージ本体である sty ファイルを生成するためのもの
: .pdf | 説明文書(PDF 形式)
: .doc | 説明文書(txt 形式。“doc”という拡張子であっても Microsoft Word の文書であることは稀で,単なるテキストファイル)

パッケージ本体が用意されていない場合がありますが,そのときは
dtx ファイルと ins ファイルによって本体を生成します。
関連のあるパッケージ群をひとまとめにして配布している場合などは,一つの
dtx ファイルから複数のそれぞれ異なる名前の sty ファイルを生成することもあります。
目当ての sty ファイルが無い場合には,他の名前の dtx ファイルや ins ファイルを
LaTeX で処理する必要があるかもしれません。
パッケージ本体が用意されていない場合がありますが,そのときは dtx ファイルと ins ファイルによって本体を生成します。
関連のあるパッケージ群をひとまとめにして配布している場合などは,一つの 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
コマンドで説明文書が読めなかったりします。
ファイル群は TDS (TeX Directory Structure) に従って各ディレクトリに入れないと,本体が使用不可だったり,texdoc コマンドで説明文書が読めなかったりします。
慣れないと,これが一番やっかいなところです。
LaTeX パッケージの場合,説明文書 (.pdf, README, .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 Live]] では,ファイルを探す時間を短縮するために予めコンピュータ内のファイルとその保存場所の一覧表を作っておいて,ファイルを探すときにその一覧表を参照するように設定されています。
TeX Live はこの一覧表でファイルを管理しているため,新しいパッケージなどをインストールするたびに一覧表を更新してやらないとせっかくインストールしたつもりのパッケージも LaTeX から見つけてもらえずに使用できません。

一覧表を使わないシステムにおいては,そのような更新作業は必要ありません。
[[W32TeX]] では,一覧表を使う運用と全く使わない運用の両方が可能です。

この一覧表の実体は ls-R というファイル((ls-R の名前の由来は UNIX コマンドから来ており,ls コマンドに -R オプションを付けたものです。ls-R の中身はまさに ls -R の結果が吐き出されたようなもので,すなわちファイルの一覧を再帰的に深くまで表示したものです。))で,手元のシステムで一覧表を利用しているかどうかは
ls-R というファイルが存在するかを調べるとわかります。
ls-R ファイルを新規に生成あるいは更新するコマンドが mktexlsr((環境によっては,コマンド名は mktexlsr ではなく texhash という名前になっているかもしれません。))であり,mktexlsr は $TEXMFDIST, $TEXMFLOCAL などをたどって,そこにあるファイルのリストを記録した ls-R ファイルを作り出します。

'''TODO''':[[TeX のディレクトリ構成]]あたりで $TEXMF についての説明を書かないと,何を言っているかわからないかも。詳しく知りたい人向けに。

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

[[パッケージ]]という項目に,パッケージの作り方・カスタマイズ法をまとめてあります。

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