[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

hyperref

hyperref パッケージは,TeX 文書(DVI、PDF など)に HTML と同じハイパーリンク 機能を加えるためのマクロです.

目次

更新履歴

PXjahyper

PXjahyper パッケージは (u)pLaTeX + hyperref + dvipdfmx の環境における日本語の「しおり」の作成を支援する upLaTeX, pLaTeX 用のパッケージです. PXjahyper パッケージは TeX Live に含まれています.

ChangeLog

注意点

hyperref を使用するとページサイズの値がおかしくなる

PXjahyper パッケージ v0.3 以降を使用するとページサイズを正しい値に修正してくれます(pxjahyper パッケージ を参照).

PXjahyper パッケージが使用できない場合は hyperref のオプションに setpagesize=false を指定して回避することも可能です.

jsclasses を使用している場合はクラスオプションに papersize を指定しても OK です.

参考ページ

"--"が hyperref で正しく扱われず,しおりが変になる

PXjahyper パッケージ を使用すれば文字化けせずに表示できるようになります.(「PXjahyper」の検索結果 - マクロツイーター を参照.)

PXjahyper パッケージが使用できない場合は \texorpdfstring{texstring}{pdfstring} を使って pdfstring の方を8進数表記で書くことで回避可能です.

\section{a\texorpdfstring{--}{\055\055}b}

hyperrefとgraphicxの組み合わせでエラー

原因は,hyperref パッケージの colorlinks オプションを指定することで color パッケージが読み込まれるにもかかわらず,dvipdfmx オプションが渡されないことのようです。

対策は,ドキュメントクラスのオプションで dvipdfmx ドライバ指定する

\documentclass[dvipdfmx,…]{article}

または color にも明示的に dvipdfmx オプションを指定する

\usepackage[dvipdfmx]{graphicx,color}

が有効です。

不具合

hyperref が非 e-TeX で動かない

非 e-TeX で hyperref を使うと…… を参照.

2012/05/28 の oberdiek バンドルの更新でこの問題が解決されました. 詳細については上掲のリンク先を参照してください. 2012/06/13 以降の W32TeX ではこの新しい oberdiek バンドルが含まれています.

指定可能なオプション

プリアンプルに \usepackage[オプション]{hyperref} として、オプションを指定します.

しおり(bookmark)つきのpdf文書作成

(u)platex + dvipdfmx の場合は,下記のようにします.

\usepackage[dvipdfmx,%
 bookmarks=true,%
 bookmarksnumbered=true,%
 colorlinks=true,%
 setpagesize=false,%
 pdftitle={LaTeX研修課程},%
 pdfauthor={ななしのごんべぇ},%
 pdfsubject={hyperref入門・演習},%
 pdfkeywords={TeX; dvipdfmx; hyperref; color;}]{hyperref}
\usepackage{pxjahyper}

または, \hypersetup{オプション} を使用して

\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper}
\hypersetup{%
 bookmarksnumbered=true,%
 colorlinks=true,%
 setpagesize=false,%
 pdftitle={LaTeX研修課程},%
 pdfauthor={ななしのごんべぇ},%
 pdfsubject={hyperref入門・演習},%
 pdfkeywords={TeX; dvipdfmx; hyperref; color;}}

とすることも可能です.

しおりを作成する場合は2回コンパイルが必要です. \usepackage で dvipdfmx を指定してエラーが発生する場合は hyperref パッケージを最新版にアップデートしてください.

hyperref は pTeX の縦書きモードの場合にうまくいかないことがあるようです.

(e-)(u)pTeX の内部コードを判別して hyperref の設定を切り換える

(u)platex + dvipdfmx で,日本語を使用する場合は PXjahyper パッケージ を使用すればしおり・タイトル等の日本語の文字化けを防止できます.

\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper}

使用方法は hyperref で日本語しおりに endash を出す件について を参照してください. PXjahyper パッケージが使用できない場合はプリアンブルに以下を記述しておけば,しおり・タイトル等の日本語の文字化けを防止できます.(解説は TeXnique を更新 を参照) uplatex + dvipdfmx を使用する場合は CMap は UTF8-UTF16 を使用します.補助面 (U+10000以上) の文字も使用することができます.TeX Live 2012 以降, W32TeX の場合は UTF8-UTF16 はインストール済み (texmf-dist\fonts\cmap\uptex-fonts\UTF8-UTF16) です.*1TeX Live 2013, TeX Live 2012 で PXjahyper を使用する場合は bigcode オプションを指定することで UTF8-UTF16 が使用できます.TeX Live 2014 以降で PXjahyper を使用する場合は bigcode が既定になっています

\ifx\kanjiskip\undefined\else
  \usepackage{atbegshi}
  \ifx\enablecjktoken\undefined
    \ifnum 42146=\euc"A4A2
      \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}}
    \else
      \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}}
    \fi
  \else
    \AtBeginShipoutFirst{\special{pdf:tounicode UTF8-UTF16}}
  \fi
  \usepackage[dvipdfmx]{hyperref}
\fi

\usepackage[dvipdfmx]{hyperref} の前に \usepackage{atbegshi} を記述する必要があります. \usepackage[dvipdfmx]{hyperref} の後に \usepackage{atbegshi} を記述すると PDF のタイトルが文字化けしてしまいます.

(u)platex + dvips + Ghostscript (ps2pdf) で日本語の文字化けを防止する場合は Postscript ファイルに対して convbkmk または bkmk2uni を使用します.

\usepackage{hyperref}
\hypersetup{%
 bookmarksnumbered=true,%
 colorlinks=true,%
 setpagesize=false,%
 pdftitle={LaTeX研修課程},%
 pdfauthor={ななしのごんべぇ},%
 pdfsubject={hyperref入門・演習},%
 pdfkeywords={TeX; dvipdfmx; hyperref; color;}}

uplatex, platex を使用してドライバオプションを指定しない場合はデフォルトでは dvips に設定されます. 指定しないとうまく動作しない場合は以下のように指定します.

\usepackage[dvips]{hyperref}

lualatex の場合は,hyperref のオプションに

pdfencoding=auto

または

unicode=true

を追加します.

\usepackage[pdfencoding=auto]{hyperref}

lualatex の場合はドライバは自動検出されます.指定しないとうまく動作しない場合は以下のように指定します.

\usepackage[luatex,pdfencoding=auto]{hyperref}

xelatex の場合は、指定しても指定しなくても文字化けしないしおりになります。

\usepackage{hyperref}

xelatex の場合はドライバは自動検出されます.指定しないとうまく動作しない場合は以下のように指定します.

\usepackage[xetex]{hyperref}

オプション一覧表

オプション意味指定値(太字はデフォルト)
a4paperuse A4 paper-
a5paperuse A5 paper-
anchorcolorset color of anchorsblack
b5paperuse B5 paper-
backrefdo bibliographical back referencestrue/false
baseurlset base URL for document
bookmarksmake bookmarkstrue/false
bookmarksdepthしおりのレベル数値または名前(sectionやsubsectionなど)を指定する。何も指定しなければtocdepthの値が使われる。
bookmarksnumberedput section numbers in bookmarkstrue/false
bookmarksopenopen up bookmark treetrue/false
bookmarksopenlevellevel to which bookmarks are open\maxdimen
bookmarkstypeto specify which `toc' file to mimictoc
breaklinksallow links to break over linestrue/false
citebordercolorcolor of border around citesRGB値 0 1 0
citecolorcolor of citation linksgreen
colorlinkscolor linkstrue/false ただし、tex4htまたはdviwindoを指定した際のデフォルトはtrue
debugprovide details of anchors definedtrue/false
draftdo not do any hyper linkingtrue/false
dvipdfuse dvipdf backend-
dvipdfmuse dvipdfm backend-
dvipdfmxuse dvipdfmx backend (6.75e 以降)-
dvipsuse dvips backend-
dvipsoneuse dvipsone backend-
dviwindouse dviwindo backend-
executivepaperuse executivepaper-
extensionsuffix of linked filesdvi
filebordercolorcolor of border around file linksRGB値 0 .5 .5
filecolorcolor of file linkscyan
frenchlinksuse small caps instead of color for linkstrue/false
hidelinksリンクに色や枠をつけない-
hyperfiguresmake figures hyper linkstrue/false
hyperindexset up hyperlinked indicestrue/false
hypertexuse HyperTeX backend-
hypertexnamesuse guessable names for linkstrue/false
implicitredefine LATEX internalstrue/false
latex2htmluse LATEX2HTML backend-
legalpaperuse legalpaper-
letterpaperuse letterpaper-
linkbordercolorcolor of border around linksRGB値 1 0 0
linkcolorcolor of linksred
linktocpagemake page number, not text, be link on TOC, LOF and LOTtrue/false
luatexuse LuaTeX backend (6.83p 以降)-
menubordercolorcolor of border around menu linksRGB値 1 0 0
menucolorcolor for menu linksred
naturalnamesuse LATEX-computed names for linkstrue/false
nestingallow nesting of linkstrue/false
pageanchorput an anchor on every pagetrue/false
pagebackrefbackreference by page numbertrue/false
pagebordercolorcolor of border around page linksRGB値 1 1 0
pagecolorcolor of page linksred
pdfauthortext for PDF Author field
pdfborderwidth of PDF link border0 0 1 ただし、colorlinksのデフォルトは 0 0 0
pdfcenterwindowposition the document window center of the screentrue/false
pdfcreatortext for PDF Creator fieldLaTeX with hyperref package
pdfencodingPDFDocEncoding or Unicodeauto/pdfdoc/unicode
pdffitwindowresize document window to fit document sizetrue/false
pdfhighlightset highlighting of PDF links/I /N /O /P
pdfkeywordstext for PDF Keywords field
pdfmenubarmake PDF viewer's menu bar visibletrue/false
pdfnewwindowmake links that open another PDF file start a new windowtrue/false
pdfpagelayoutset layout of PDF pages
pdfpagemodeset default mode of PDF displayUseThumbs UseOulines FullScreen
pdfpagelabelsset PDF page labelstrue/false *2
pdfpagescropset crop size of PDF document
pdfpagetransitionset PDF page transition style
pdfproducertext for PDF Producer field
pdfstartpagepage at which PDF document opens1
pdfstartviewstarting view of PDF document/Fit
pdfsubjecttext for PDF Subject field
pdftexuse pdfTeX backend-
pdftitletext for PDF Title field
pdftoolbarmake PDF toolbar visibletrue/false
pdfviewPDF `view' when on link traversal
pdfwindowuimake PDF user interface elements visibletrue/false
plainpagesdo page number anchors as plain arabictrue/false *3
ps2pdfuse ps2pdf backend-
raiselinksraise up links (for HyperTeX backend)true/false
runbordercolorcolor of border around `run' linksRGB値 0 .7 .7
setpagesizeset page size by special driver commandstrue/false
tex4htuse TEX4ht backend-
texturesuse Textures backend-
unicodeUnicode encoded pdf stringstrue/false *4
urlbordercolorcolor of border around URL linksRGB値 0 1 1
urlcolorcolor of URL linksmagenta
verbosebe chattytrue/false
vtexuse VTEX backend-
xetexuse XeTeX backend-
pdfescapeformエスケープ処理の有効化true/false
pdfborderstyle/S/U

提供されるコマンド

hyperref.sty を読み込むことによって下記のコマンドが使用可能になります.

コマンド説明
\href{URL}{text}テキストにハイパーリンクを付加する
\hyperbaseurl{URL}
\hyperimage{image URL}
\hyperdef{category}{name}text
\hyperref{URL}{category}{name}{text}
\hyperlink{name}{text}
\hypertarget{name}{text}

さらに,細かい制御用のコマンドとして以下があります.

url/nolinkurl

url 及び nolinkurl とは,hyperref.styを読み込むことによって使用可能なコマンドの一つです.

pdfファイル作成

タイプセットでpdfファイルを作成し, Adobe Acrobat Reader で開くと(その御節介機能により), url文字列にはhyper link機能が付与されます.(下記例ではnolinkurとtextttの両方に)

\documentclass{book}
\usepackage[dvipdfmx,
 bookmarkstype=toc,
 linktocpage=true,
 bookmarks=true
 ]{hyperref}
\begin{document}
\tableofcontents
 \chapter{Test}
 \nolinkurl{http://www.apple.com}  \\
 \texttt{http://www.apple.com}
\end{document}

Adobe Acrobat Reader を操作するボタン

\Acrobatmenu{menuoption}{text}

PDF 文書の中に「次のページへ」や「先頭のページへ」などリンクを埋め込むことができます. 最新の Adobe Acrobat Reader では,セキュリティ上の制限により,過去のバージョンのものとは挙動が異なるものもあります.

\Acrobatmenu の例

\Acrobatmenu{SaveAs}{Save As}
\Acrobatmenu{Close}{Close}
\Acrobatmenu{GeneralInfo}{Properties}
\Acrobatmenu{Print}{Print}
\Acrobatmenu{Quit}{Exit}
\Acrobatmenu{Find}{Find}
\Acrobatmenu{FindSearch}{Advanced Search}
\Acrobatmenu{GeneralPrefs}{Preferences}
\Acrobatmenu{FirstPage}{First Page}
\Acrobatmenu{PrevPage}{Previous Page}
\Acrobatmenu{NextPage}{Next Page}
\Acrobatmenu{LastPage}{Last Page}
\Acrobatmenu{GoToPage}{Go To Page}
\Acrobatmenu{GoBack}{Previous View}
\Acrobatmenu{GoForward}{Next View}
\Acrobatmenu{FullScreen}{Full Screen Mode}
\Acrobatmenu{ShowHideBookmarks}{Show/Hide Bookmarks}
\Acrobatmenu{ShowHideThumbnails}{Show/Hide Page Thumbnails}

他のパッケージとの互換性

他のパッケージとhyperrefを同時使用する際には,ちょっとした工夫が必要だったり,読み込む順番に気をつけなればならないものもあります.

algorithm

  \usepackage{hyperref}
  \usepackage[chapter]{algorithm}% eg.

amsmath

The environments equation and eqnarray are not supported too well. For example, there can be spacing problems. Consider using the environments that package amsmath provide, e.g. gather for equation. The environment equation can even redefined to use gather:

  \usepackage{amsmath}
  \let\equation\gather
  \let\endequation\endgather

arydshln, longtable

Package longtable must be put before hyperref and arydshln, hyperref after arydshln generates an error, thus the resulting package order is then:

  \usepackage{longtable}
  \usepacakge{hyperref}
  \usepackage{arydshln}

babel/magyar.ldf

Unsupported.

magyar.ldf's redefinitions of many LaTeX internals conflict with hyperref's redefinitions of these commands.

bibentry

Workaround:

  \makeatletter
  \let\saved@bibitem\@bibitem
  \let\saved@lbibitem\@lbibitem
  \makeatother
  \usepackage{bibentry}
  \usepackage{hyperref}
  \begin{document}
  \begingroup
    \makeatletter
    \let\@bibitem\saved@bibitem
    \let\@lbibitem\saved@lbibitem
    \nobibliography{database}
  \endgroup

cite

This is from Mike Shell:

cite.sty cannot currently be used with hyperref. However, I can do a workaround via:

\makeatletter
\def\NAT@parse{\typeout{This is a fake Natbib command to fool Hyperref.}}
\makeatother

\usepackage[hypertex]{hyperref}

so that hyperref will not redefine any of the biblabel stuff - so cite.sty will work as normal - although the citations will not be hyperlinked, of course (But this may not be an issue for many people).

dblaccnt

pd1enc.def or puenc.def should be loaded before:

  \usepackage{hyperref}
  \usepackage{dblaccnt}

or see entry for "vietnam".

easyeqn

Not compatible, breaks.

ellipsis

This packages redefines \textellipsis, thus it has to be loaded after package hyperref (pd1enc.def/puenc.def should be loaded before):

  \usepackage{hyperref}
  \usepackage{ellipsis}

float

  \usepackage{float}
  \usepackage{hyperref}

footnote

This package is not supported, you have to disable hyperref's footnote support by using option "hyperfootnotes=false".

IEEEtran.cls

  version >= V1.6b (because of \@makecaption, see ChangeLog)

index

  version >= 1995/09/28 v4.1 (because of \addcontentsline redefinition)

lastpage

Compatible.

linguex

  \usepackage{hyperref}
  \usepackage{linguex}

ltabptch

  \usepackage{longtable}
  \usepackage{ltabptch}
  \usepackage{hyperref}

minitoc-hyper

This package is obsolete, use the uptodate original package minitoc instead.

multind

  \usepackage{multind}
  \usepackage{hyperref}

natbib

  \usepackage{natbib}
  \usepackage{hyperref}

nomencl

Example for introducing links for the page numbers:

\renewcommand*{\pagedeclaration}[1]{\unskip, \hyperpage{#1}}

prettyref

%%% example for prettyref %%%
\documentclass{article}
\usepackage{prettyref}
\usepackage[pdftex]{hyperref}
%\newrefformat{FIG}{Figure~\ref{#1}}% without hyperref
\newrefformat{FIG}{\hyperref[{#1}]{Figure~\ref*{#1}}}
\begin{document}
  This is a reference to \prettyref{FIG:ONE}.
  \newpage
  \begin{figure}
    \caption{This is my figure}
    \label{FIG:ONE}
  \end{figure}
\end{document}
%%% example for prettyref %%%

ntheorem

ntheorem-hyper.sty is an old patched version of ntheorem.sty. Newer versions of ntheorem know the option hyperref:

    \usepackage{hyperref}
    \usepackage[hyperref]{ntheorem}

But there are still unsolved problems (options thref, ...).

setspace

  \usepackage{setspace}
  \usepackage{hyperref}

sidecap

Before 2002/05/24 v1.5h:

    \usepackage{nameref}
    \usepackage{hyperref}
    \usepackage{sidecap}

subfigure

1995/03/06 v2.0:

    \usepackage{subfigure}
    \usepackage{hyperref}
    % hypertexnames is set to false.

v2.1:

    \usepackage{nameref}
    \usepackage{subfigure}
    \usepackage{hyperref}

or

    \usepackage{hyperref}
    \usepackage{subfigure}

v2.1.2: please update

v2.1.3:

    \usepackage{hyperref}
    \usepackage{subfigure}
    or vice versa?

titleref

  \usepackage{nameref}
  \usepackage{titleref}% without usetoc
  \usepackage{hyperref}

titlesec

"nameref" supports titlesec, but hyperref does not (unsolved is the anchor setting, missing with unnumbered section, perhaps problems with page breaks with numbered ones).

varioref

  \usepackage{nameref}
  \usepackage{varioref}
  \usepackage{hyperref}

Some babel versions (eg. 2005/05/21 v3.8g) contain a patch for varioref that breaks the hyperref support for varioref. Thus with babel v3.8g varioref cannot be used with hyperref.

verse

Version 2005/08/22 v2.22 contains support for hyperref.

For older versions see example from de.comp.text.tex (2005/08/11, slightly modified):

  \documentclass{article}
  % package order does not matter
  \usepackage{verse}
  \usepackage{hyperref}
  \makeatletter
  % make unique poemline anchors
  \newcounter{verse@env}
  \setcounter{verse@env}{0}
  \let\org@verse\verse
  \def\verse{%
    \stepcounter{verse@env}%
    \org@verse
  }
  \def\theHpoemline{\arabic{verse@env}.\thepoemline}
  % add anchor for before \addcontentsline in \@vsptitle
  \let\org@vsptitle\@vsptitle
  \def\@vsptitle{%
    \phantomsection
    \org@vsptitle
  }
  \makeatother
  \begin{document}
  \poemtitle{Poem 1}
  \begin{verse}
  An one-liner.
  \end{verse}
  \newpage
  \poemtitle{Poem 2}
  \begin{verse}
  Another one-liner.
  \end{verse}
  \end{document}

vietnam

  % pd1enc.def should be loaded before package dblaccnt:
  \usepackage[PD1,OT1]{fontenc}
  \usepackage{vietnam}
  \usepackage{hyperref}

他のパッケージとの重複関係

urlパッケージ

hyperref パッケージと同じ(?) \url コマンドを提供します.

beamerクラス

hyperref パッケージをデフォルトで読み込みます.

しおりの色とフォントスタイルの変更

以下にサンプルコードを示します.hyperref 6.83m で確認しました. hyperref は,バージョンによって中身の構造がここで示した例とは異なる場合があります. その場合は変更できないと思われるので,適宜修正して使ってください. この機能は PDF-1.4 (Acrobat 5.x) 以降のバージョンで有効になります.

pdftex の場合

\documentclass{article}
\usepackage[pdftex]{hyperref}
%******************************************************
% Change bookmarks color and font style [pdftex only]
% (override a part of hpdftex.def)
% PDF-1.4 (Acrobat 5.x) or later is valid
% /C array [R G B]
% /F integer
%******************************************************
\makeatletter
\newcount\bookmarksFontStyleInteger
\def\bookmarksColorArray{1 0 0}
\def\Hy@OutlineName#1#2#3#4{%
  \pdfoutline
    attr{%
      /C [\bookmarksColorArray]%
      /F \the\bookmarksFontStyleInteger%
    }%
  goto name{#2}count#3{#4}%
}
\makeatother
%*************************************************************
% Bookmarks Font Style
% (0 -> Plain; 1 -> Italic; 2 -> Bold; 3 -> Bold and Italic)
%*************************************************************
\bookmarksFontStyleInteger2
%******************
% Bookmarks Color
% {R G B}
%******************
\renewcommand{\bookmarksColorArray}{0 0.5 1.0}
\begin{document}
\section{abc}
abc
\end{document}

dvipdfmx/xetex の場合

\documentclass{article}
\ifdefined\XeTeXversion
  \usepackage[xetex]{hyperref}
\else
  \usepackage[dvipdfmx]{hyperref}
\fi
%*************************************************************
% Change bookmarks color and font style [dvipdfmx/xetex only]
% (override a part of hdvipdfm.def/hxetex.def)
% PDF-1.4 (Acrobat 5.x) or later is valid
% /C array [R G B]
% /F integer
%*************************************************************
\makeatletter
\newcount\bookmarksFontStyleInteger
\def\bookmarksColorArray{1 0 0}
\def\ReadBookmarks{%
  \pdf@ifdraftmode{}{%
    \begingroup
      \def\do##1{%
	 \ifnum\catcode`##1=\active
	   \@makeother##1%
	 \else
	   \ifnum\catcode`##1=6 %
	     \@makeother##1%
	   \fi
	 \fi
      }%
      \dospecials
      \Hy@safe@activestrue
      \escapechar=`\\%
      \def\@@BOOKMARK[##1][##2]##3##4##5{%
	 \calc@bm@number{##5}%
      }%
      \InputIfFileExists{\jobname.out}{}{}%
      \ifx\WriteBookmarks\relax
	 \global\let\WriteBookmarks\relax
      \fi
      \def\@@BOOKMARK[##1][##2]##3##4##5{%
	 \def\Hy@temp{##4}%
	 \Hy@pstringdef\Hy@pstringName{\HyperDestNameFilter{##3}}%
	 \@pdfm@mark{%
	   outline \ifHy@DvipdfmxOutlineOpen
		     [%
		     \ifnum##21>\z@
		     \else
		       -%
		     \fi
		     ] %
		   \fi
		   ##1<<%
	     /C [\bookmarksColorArray]%
	     /F \the\bookmarksFontStyleInteger%
	     /Title(\expandafter\strip@prefix\meaning\Hy@temp)%
	     /A<<%
	       /S/GoTo%
	       /D(\Hy@pstringName)%
	     >>%
	   >>%
	 }%
      }%
      \begingroup
	 \def\WriteBookmarks{0}%
	 \InputIfFileExists{\jobname.out}{}{}%
      \endgroup
      %{\escapechar\m@ne\InputIfFileExists{\jobname.out}{}{}}%
    \endgroup
  }%
  \ifx\WriteBookmarks\relax
  \else
    \if@filesw
      \newwrite\@outlinefile
      \Hy@OutlineRerunCheck
      \immediate\openout\@outlinefile=\jobname.out\relax
      \ifHy@typexml
	 \immediate\write\@outlinefile{<relaxxml>\relax}%
      \fi
    \fi
  \fi
}
\makeatother
%*************************************************************
% Bookmarks Font Style
% (0 -> Plain; 1 -> Italic; 2 -> Bold; 3 -> Bold and Italic)
%*************************************************************
\bookmarksFontStyleInteger2
%******************
% Bookmarks Color
% {R G B}
%******************
\renewcommand{\bookmarksColorArray}{0 0.5 1.0}
\begin{document}
\section{abc}
abc
\end{document}

dvips の場合

\documentclass{article}
\usepackage[dvips]{hyperref}
%*************************************************************
% Change bookmarks color and font style [dvips only]
% (override a part of pdfmark.def)
% PDF-1.4 (Acrobat 5.x) or later is valid
% /C array [R G B]
% /F integer
%*************************************************************
\makeatletter
\newcount\bookmarksFontStyleInteger
\def\bookmarksColorArray{1 0 0}
\def\ReadBookmarks{%
  \pdf@ifdraftmode{}{%
    \begingroup
      \def\do##1{%
	 \ifnum\catcode`##1=\active
	   \@makeother##1%
	 \else
	   \ifnum\catcode`##1=6 %
	     \@makeother##1%
	   \fi
	 \fi
      }%
      \dospecials
      \Hy@safe@activestrue
      \escapechar=`\\%
      \def\@@BOOKMARK[##1][##2]##3##4##5{%
	 \calc@bm@number{##5}%
      }%
      \InputIfFileExists{\jobname.out}{}{}%
      \ifx\WriteBookmarks\relax
	 \global\let\WriteBookmarks\relax
      \fi
      \def\@@BOOKMARK[##1][##2]##3##4##5{%
	 \def\Hy@temp{##4}%
	 \pdfmark{%
	   pdfmark=/OUT,%
	   Raw={%
	     /Count ##2\check@bm@number{##3}%
	     /Dest (##3)%
	     /C [\bookmarksColorArray]%
	     /F \the\bookmarksFontStyleInteger%
	     /Title (\expandafter\strip@prefix\meaning\Hy@temp)%
	   }%
	 }%
      }%
      \begingroup
	 \def\WriteBookmarks{0}%
	 \InputIfFileExists{\jobname.out}{}{}%
      \endgroup
      %{\escapechar\m@ne\InputIfFileExists{\jobname.out}{}{}}%
    \endgroup
  }%
  \ifx\WriteBookmarks\relax
  \else
    \if@filesw
      \newwrite\@outlinefile
      \Hy@OutlineRerunCheck
      \immediate\openout\@outlinefile=\jobname.out\relax
      \ifHy@typexml
	 \immediate\write\@outlinefile{<relaxxml>\relax}%
      \fi
    \fi
  \fi
}
\makeatother
%*************************************************************
% Bookmarks Font Style
% (0 -> Plain; 1 -> Italic; 2 -> Bold; 3 -> Bold and Italic)
%*************************************************************
\bookmarksFontStyleInteger2
%******************
% Bookmarks Color
% {R G B}
%******************
\renewcommand{\bookmarksColorArray}{0 0.5 1.0}
\begin{document}
\section{abc}
abc
\end{document}

関連リンク




*1 あるいはTeX memo - upTeX から CMap UTF8-UTF16 が入手できます.
*2 6.75aからデフォルトがtrueに変更された
*3 6.75aからデフォルトがfalseに変更された
*4 v7.00g 2021-02-04でデフォルトtrueに。upLaTeX+hyperref+pxjahyperでは明示的にfalseにしないとpdfタイトルが文字化けする場合がある

Last-modified: 2024-10-12 (土) 13:58:02 (77d)