LaTeX - Добавить кликабельные ссылки на раздел / подраздел с документом PDF - PullRequest
12 голосов
/ 14 июля 2010

Я делаю PDF с LaTeX. У меня есть несколько разделов и подразделов. Я хочу разместить ссылку в верхней части документа, чтобы в PDF-файле кто-то мог щелкнуть по нему, и он перейдет в этот раздел / подраздел. Я знаю, что это возможно, имея связанное оглавление, но я не хочу составлять оглавление, мне нужно больше контроля.

Ответы [ 4 ]

30 голосов
/ 14 июля 2010

Включите \usepackage{hyperref} в преамбулу вашего документа. Присвойте соответствующие разделы вашим разделам и укажите эти ярлыки, используя \ref{}. Эти ссылки затем будут превращены в интерактивные ссылки при создании PDF-файлов с помощью pdflatex.

13 голосов
/ 14 июля 2010

Пакет hyperref имеет обширную поддержку для такого рода вещей (как отмечалось в предыдущем ответе).

Примечания и советы: hyperref - это большой пакет, и (по необходимости) он выполняет довольно грязные трюки с внутренностями LaTeX. Загрузите пакет hyperref последним, и если ваш документ вдруг станет странным, закомментируйте этот пакет, избавьтесь от файлов .out и .aux из вашего каталога и попробуйте еще раз, чтобы увидеть, исчезла ли проблема. Если это произойдет, тогда ... подумай о чем-то.

Пакет hypertex может делать то же самое, и он немного более легкий. Но я помню, что это немного хрупко, и, возможно, больше не поддерживается.

Вы можете сделать некоторые из этих вещей с помощью специальных файлов PDF (см. Руководство по pdftex), но это становится немного хардкорным и требует, чтобы вы немного разбирались в PDF.

9 голосов
/ 18 июля 2014

Как указано в других ответах, вы можете использовать hyperref package .Однако настройки по умолчанию довольно плохие (в них добавлено поле, которое наиболее уродливое вокруг каждой ссылки), поэтому вот типичный фрагмент кода для настройки наиболее полезных настроек:

\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 выдаст две ссылки:

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

1 голос
/ 03 октября 2018

В дополнение к комментарию Франка о стилях гиперссылок можно удалить всю разметку, добавив параметр скрытых ссылок.

\usepackage[hidelinks]{hyperref} 
...