web-dev-qa-db-ja.com

LaTeX-PDFドキュメント]を使用してセクション/サブセクションにクリック可能なリンクを追加します

LaTeXでPDFを作成しています。いくつかのセクションとサブセクションがあります。ドキュメントの上部にリンクを配置して、PDF誰かがそれをクリックすると、そのセクション/サブセクションに移動します。リンク可能な目次でこれを行うことは可能ですが、目次を作成したくないので、さらに制御する必要があります。

12
Rory

ドキュメントの前文に\usepackage{hyperref}を含めます。セクションに適切なラベルを割り当て、\ref{}を使用してこれらのラベルを参照します。これらの参照は、pdflatexでPDFを作成するときにクリック可能なリンクに変わります。

29
lunaryorn

hyperrefパッケージは、この種のことを広範囲にサポートしています(以前の回答で述べたように)。

注意とアドバイス:hyperrefは大きなパッケージであり、(必然的に)LaTeXの根性でかなり汚いトリックを実行します。最後にhyperrefパッケージをロードし、ドキュメントが突然変になった場合は、そのパッケージをコメントアウトし、ディレクトリから.outファイルと.auxファイルを削除して、問題が解消されるかどうかを再確認します。もしそうなら、...何かを考えてください。

hypertexパッケージは同じことのいくつかを行うことができ、もう少し軽量です。しかし、私の記憶では、それは少し壊れやすく、もはやあまり維持されていない可能性があります。

PDFスペシャル(pdftexマニュアルを参照)でこのようなことのいくつかを行うことができますが、それは少しハードコアになり、PDFについてかなり知っている必要があります。

13
Norman Gray

他の回答で指摘されているように、 hyperrefパッケージ を使用できます。ただし、デフォルト設定はかなり悪いので(各リンクの周りに最も醜いと思われるボックスが追加されます)、最も便利な設定をカスタマイズするための一般的なコードスニペットを次に示します。

\usepackage{hyperref}
\hypersetup{
  colorlinks   = true,    % Colours links instead of ugly boxes
  urlcolor     = blue,    % Colour for external hyperlinks
  linkcolor    = blue,    % Colour of internal links
  citecolor    = red      % Colour of citations
}

また、パッケージnatlib(\usepackage{natbib})、hyperrefは2つのリンクを生成します:

enter image description here

これを修正するには、 add

\usepackage{etoolbox}

\makeatletter

\pretocmd{\NAT@citex}{%
  \let\NAT@hyper@\NAT@hyper@citex
  \def\NAT@postnote{#2}%
  \setcounter{NAT@total@cites}{0}%
  \setcounter{NAT@count@cites}{0}%
  \forcsvlist{\stepcounter{NAT@total@cites}\@gobble}{#3}}{}{}
\newcounter{NAT@total@cites}
\newcounter{NAT@count@cites}
\def\NAT@postnote{}

% include postnote and \citet closing bracket in hyperlink
\def\NAT@hyper@citex#1{%
  \stepcounter{NAT@count@cites}%
  \hyper@natlinkstart{\@citeb\@extra@b@citeb}#1%
  \ifnumequal{\value{NAT@count@cites}}{\value{NAT@total@cites}}
    {\ifNAT@swa\else\if*\NAT@postnote*\else%
     \NAT@cmt\NAT@postnote\global\def\NAT@postnote{}\fi\fi}{}%
  \ifNAT@swa\else\if\relax\NAT@date\relax
  \else\NAT@@close\global\let\NAT@nm\@empty\fi\fi% avoid compact citations
  \hyper@natlinkend}
\renewcommand\hyper@natlinkbreak[2]{#1}

% avoid extraneous postnotes, closing brackets
\patchcmd{\NAT@citex}
  {\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi
   \if\relax\NAT@date\relax\else\NAT@@close\fi\fi}{}{}{}
\patchcmd{\NAT@citex}
  {\if\relax\NAT@date\relax\NAT@def@citea\else\NAT@def@citea@close\fi}
  {\if\relax\NAT@date\relax\NAT@def@citea\else\NAT@def@citea@space\fi}{}{}

\makeatother

enter image description here

9

ハイパーリンクスタイルに関するFranckのコメントに加えて、hidelinksオプションを追加することですべてのマークアップを削除することができます。

\usepackage[hidelinks]{hyperref} 
1
David