webdevqa.jp.net

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{\[email protected]}{%
  \let\[email protected]@\[email protected]@citex
  \def\[email protected]{#2}%
  \setcounter{[email protected]@cites}{0}%
  \setcounter{[email protected]@cites}{0}%
  \forcsvlist{\stepcounter{[email protected]@cites}\@gobble}{#3}}{}{}
\newcounter{[email protected]@cites}
\newcounter{[email protected]@cites}
\def\[email protected]{}

% include postnote and \citet closing bracket in hyperlink
\def\[email protected]@citex#1{%
  \stepcounter{[email protected]@cites}%
  \[email protected]{\@citeb\@[email protected]@citeb}#1%
  \ifnumequal{\value{[email protected]@cites}}{\value{[email protected]@cites}}
    {\[email protected]\else\if*\[email protected]*\else%
     \[email protected]\[email protected]\global\def\[email protected]{}\fi\fi}{}%
  \[email protected]\else\if\relax\[email protected]\relax
  \else\[email protected]@close\global\let\[email protected]\@empty\fi\fi% avoid compact citations
  \[email protected]}
\renewcommand\[email protected][2]{#1}

% avoid extraneous postnotes, closing brackets
\patchcmd{\[email protected]}
  {\[email protected]\else\if*#2*\else\[email protected]#2\fi
   \if\relax\[email protected]\relax\else\[email protected]@close\fi\fi}{}{}{}
\patchcmd{\[email protected]}
  {\if\relax\[email protected]\relax\[email protected]@citea\else\[email protected]@[email protected]\fi}
  {\if\relax\[email protected]\relax\[email protected]@citea\else\[email protected]@[email protected]\fi}{}{}

\makeatother

enter image description here

9

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

\usepackage[hidelinks]{hyperref} 
1
David