varioref.styが提供する\vrefや\vpagerefは、参照先の位置によって出力を適当 に変えてくれるので、参照先が分かりやすくなる。
\vref:
-
参照先が同じページにあれば”figure x.y”とだけ出力
-
参照先が同じページになければ、加えてページ番号を表す文字列を出力
- 1ページ前にあれば”on the previous page”
- 2ページ以上離れていれば”on page XX”
\vpageref:
- ページ番号を表す追加部分だけを出力
出力文字列はカスタマイズできるようになっていて、設定すれば日本語の文書で も使える(詳しくはvarioref.pdf参照)。
まずpreambleでパッケージをロードする。
\usepackage{varioref}
%% \vrefwarning% ページをまたいだときのloop errorを無視したければ有効に
englishオプション選択時のデフォルト設定:
\DeclareOption{english}
{\vref@addto\extrasenglish{\relax%
\def\reftextfaceafter {on the \reftextvario{facing}{next} page}%
\def\reftextfacebefore{on the \reftextvario{facing}{preceding}
page}%
\def\reftextafter {on the \reftextvario{following}{next} page}%
\def\reftextbefore {on the \reftextvario{preceding}{previous} page}%
\def\reftextcurrent {on \reftextvario{this}{the current} page}%
\def\reftextfaraway#1 {on page~\pageref{#1}}%
\def\reftextpagerange#1#2{on pages~\pageref{#1}--\pageref{#2}}%
\def\reftextlabelrange#1#2{\ref{#1} to~\ref{#2}}%
}\relax}
これを参考に、適当に設定する:
\def\reftextfaceafter {(次ページ)}% 見開き対抗
\def\reftextfacebefore{(前ページ)}% 見開き対抗
\def\reftextafter {(次ページ)}
\def\reftextbefore {(前ページ)}
\def\reftextcurrent {}
\def\reftextfaraway#1{\relax{(p.~\pageref{#1})}
\def\reftextpagerange#1#2{(pp.~\pageref{#1}--\pageref{#2})}
\def\reftextlabelrange#1#2{(\ref{#1}--\ref{#2})}
または:
\def\reftextfaceafter {\relax{\scriptsize\inhibitglue(\reftextvario{次}{次}ページ)\inhibitglue}}
\def\reftextfacebefore{\relax{\scriptsize\inhibitglue(\reftextvario{前}{前}ページ)\inhibitglue}}
\def\reftextafter {\relax{\scriptsize\inhibitglue(\reftextvario{次}{次}ページ)\inhibitglue}}
\def\reftextbefore {\relax{\scriptsize\inhibitglue(\reftextvario{前}{前}ページ)\inhibitglue}}
\def\reftextcurrent {}
\def\reftextfaraway#1{\relax{\scriptsize\inhibitglue(p.~\pageref{#1})\inhibitglue}}
\def\reftextpagerange#1#2{\relax{\scriptsize\inhibitglue(pp.~\pageref{#1}--\pageref{#2})\inhibitglue}}
\def\reftextlabelrange#1#2{\relax{\scriptsize\inhibitglue(\ref{#1}--\ref{#2})\inhibitglue}}
本文はこんな感じで:
図\vref{foo}
図\vref{bar}
図\vref{baz}
出力はこんな感じになるはず(図1.2があるページに書いた場合):
図1.1(前ページ)
図1.2
図9.1(p.99)
(「図1.1『地図A』」のように参照先の番号に加えてタイトルやキャプションも 出力したい場合は、hyperref.styの\nameref http://www.tex.ac.uk/cgi-bin/texfaq2html?label=nameref を使うという手があるらしい。)
Other Articles
- 13 Oct 2017: 『テスト駆動開発』
- 19 Oct 2016: 『新装版 達人プログラマー 職人から名匠への道』
- 19 Aug 2016: 『プログラミングElixir』
- 20 Oct 2015: Migrating from git-media to git-lfs
- 04 Oct 2015: Git Large File Storageクライアントのインストール
- 12 Aug 2015: isbn.rb
- 22 Apr 2015: 「なるのか、なすのか?」(To Be Or To Do?)