// LaTeX 入門に加える予定です。ヘッダー部分は後日作業します。(2015-06-11) // 「図表」の次、「文献引用」の前に入れようと思います。 * 相互参照とリンク [#aa45fcc2] さきほどの「図表」では,図や表の番号を本文中で参照するという作業を行いました。 LaTeX ではほかにも,数式番号や引用文献の番号などを参照することができます。 ここで,そのような相互参照とリンクについて説明します。 #contents ** 相互参照とは [#db0ce011] // 大友さんによる「文献リストと相互参照,および索引の作り方」(インターネットアーカイブ) // http://web.archive.org/web/20081231221606/http://www.klavis.info/bib.html // をもとに,一部変更を施して移植しました。 // パブリックドメインにしていただいたことに感謝いたします。 例えば,○○の絵のつもりで「図38にあるように」などと書きたいときに,本当に○○の図の番号は38でいいのか不安になることもあるでしょう。 また,ついでにその図が置かれているページも示したいというときにも,いちいちページ番号を確認するのは面倒です。 文献の引用でも「××第2巻によると・・・」と書いていて,文献リストの番号を一緒に示したいとき,いちいち文献リストを確認しにいくのは面倒ですね。 こんなとき,次のように思うことがあるはずです。 参照先の番号やページが変わったら,自動的に参照もとの番号やページの記述も変わってくれたらなぁ。 そうした願いをかなえるのが「相互参照」です。 ** ラベル参照の例 [#h84e81eb] table の表番号,figure の図番号,equation の式番号等をそれぞれ参照したいときは,\label{目印名} という命令で目印(ラベル)を付けておきます。 そして,後で \ref{目印名} で表・図・式番号を,\pageref{目印名} で \label のあるページ数を出力することが出来ます。 たとえば, \begin{equation} \label{WinnersEQ} W = A + E + 100M \end{equation} と書いたものが,式番号(2),12ページに出力されたとすると クラーウィスの勝利の方程式(式\ref{WinnersEQ} ,\pageref{WinnersEQ} ページ)によると,… の出力結果は, クラーウィスの勝利の方程式(式2,12ページ)によると,… となります。 ** ラベルの付け方の工夫 [#b692d432] 相互参照はたしかに便利な機能ではありますが,「どこがどのラベルか」が分かりにくくなってしまうのは事実です。 そこで,ラベル名を覚えやすくするとよいでしょう。 たとえば数式なら \label{fig:理想気体の状態方程式} などと「参照先の種類」がわかる言葉をラベル名の頭につけることで,"fig:"(FIGure,つまり図)だから式の「理想気体の状態方程式」ではなく,図を参照するんだな,と分かりやすくすることができます。 例えば,以下のような例をあげておきます。 |参照先の種類|ラベル名の付け方|参照のしかた| |図|\label{fig:名前}|\ref{fig:名前}| |表|\label{tab:名前}|\ref{tab:名前}| |数式|\label{eq:名前}|\ref{eq:名前}| |章・節|\label{sec:名前}|\ref{sec:名前}| ** リンクの付け方 [#ocae7881] ウェブサイトなどの URL をソース中に書き込みたいときは,プリアンブルに \usepackage{url} と書いておき,URL を挙げたい場所で例えば \url{http://oku.edu.mie-u.ac.jp/~okumura/texwiki/} のように書きます。 こうすれば,リンク無しではありますが URL をタイプライタ体で出力することができます。 しかし,さらに HTML と同じようにハイパーリンクを付けたい場合もあるでしょう。 そういう場合には [[hyperref]] パッケージを使います。 hyperref パッケージを使うと,いま説明した相互参照の「式2」や「図38」のような番号からも,同じ文書中の該当する箇所へリンクを飛ばすことができます。 ** hyperref パッケージによるハイパーリンク [#e8c0eb2e] プリアンブルに \usepackage[dvipdfmx]{hyperref} と書くと hyperref パッケージが読み込まれます。 この「ハイパーリンクを付ける」という作業は,先ほどの「図の取り込み」と同様に ''LaTeX 自身の機能ではありません''。 実際には,“dvi ファイルの中に書き込まれたハイパーリンクの取り扱いに関する指示”を,[[dvipdfmx]] などのソフトウェアが解釈します。 そこで,hyperref パッケージにも graphicx パッケージ同様,(u)pLaTeX + dvipdfmx でタイプセット(あるいは ptex2pdf でタイプセット)している場合は忘れずに dvipdfmx オプションを付けましょう。