从章节标题到其他地方的超链接

从章节标题到其他地方的超链接

我想将文档中的章节标题(例如“Land”)设为可点击的超链接,这样当我点击它时,我会跳转到其他章节(例如“Beach”)。因此,我需要一些 hyperref 命令作为 \section{Land} 的参数。我试过 \section[Land]{\hyperlink{hyp:sec:beach}{Land}{}},它为章节标题“Land”生成一个可点击的链接,但当点击它时,它会跳转到文档顶部,而不是“Beach”。这是一个 MWE(包括一些章节标题、目录和标题的格式化命令,因为所寻求的解决方案需要与这些兼容):

\documentclass[12pt,a4paper,openany]{book} 
\renewcommand{\familydefault}{cmss} 
\usepackage[newparttoc]{titlesec} 
\usepackage{titletoc} 
\usepackage{color}
\definecolor{darkred}{rgb}{0.7,0,0}
\usepackage[linktocpage]{hyperref}
\hypersetup{colorlinks,linkcolor=darkred}
\titlecontents{chapter}[0mm]   
   {\vspace{0pt}\normalsize\normalfont} 
   {\contentslabel[\thecontentslabel]{10mm}}{}
   {\titlerule*[.75em]{.}\thecontentspage}   
\titlecontents{section}[10mm]    
   {\vspace{0pt}\normalsize\normalfont} 
   {\contentslabel[\thecontentslabel]{10mm}}{}
   {\titlerule*[.75em]{.}\thecontentspage}   
\newpagestyle{mystylechapter}{
\sethead
   [\thepage][\thechapter\hspace{1em}\chaptertitle][]
   {}{\thesection\hspace{1em}\sectiontitle}{\thepage}
} 

\titleformat{\section}{\color{darkred}\normalfont\Large}
  {\color{darkred}\thesection}{1em}{}
\titleformat{\chapter}{\color{darkred}\normalfont\LARGE}
  {\color{darkred}\thechapter}{1em}{}

\begin{document}
\tableofcontents 
\pagestyle{mystylechapter}
\chapter{Continent} 
\section[Land]{\hyperlink{hyp:sec:beach}{Land}{}} 
\label{sec:land} 
\newpage
\section{Beach}
\label{sec:beach}
\end{document}  

答案1

如果你检查日志文件,你会发现这样的消息:

name{hyp:sec:beach} 已被引用但不存在,已由固定名称替换

您的代码中有两个错误:您\label{sec:beach}在尝试链接到 时将“海滩”部分标记为hyp:sec:beach,因此必须更改标签或链接目标名称。此外,您使用了错误的命令。根据文档hyperref,该命令\hyperlink链接到使用 定义的目标\hypertarget{name}{text}-- 而不是普通标签!要链接到普通的 LaTeX 标签,您必须使用\hyperref[label]{text}

这是您的更正后的代码:

\documentclass[12pt,a4paper,openany]{book}
\renewcommand{\familydefault}{cmss}
\usepackage[newparttoc,pagestyles]{titlesec}
\usepackage{titletoc}
\usepackage{color}
\definecolor{darkred}{rgb}{0.7,0,0}
\usepackage[linktocpage]{hyperref}
\hypersetup{colorlinks,linkcolor=darkred}
\titlecontents{chapter}[0mm]
   {\vspace{0pt}\normalsize\normalfont}
   {\contentslabel[\thecontentslabel]{10mm}}{}
   {\titlerule*[.75em]{.}\thecontentspage}
\titlecontents{section}[10mm]
   {\vspace{0pt}\normalsize\normalfont}
   {\contentslabel[\thecontentslabel]{10mm}}{}
   {\titlerule*[.75em]{.}\thecontentspage}
\newpagestyle{mystylechapter}{
\sethead
   [\thepage][\thechapter\hspace{1em}\chaptertitle][]
   {}{\thesection\hspace{1em}\sectiontitle}{\thepage}
}

\titleformat{\section}{\color{darkred}\normalfont\Large}
  {\color{darkred}\thesection}{1em}{}
\titleformat{\chapter}{\color{darkred}\normalfont\LARGE}
  {\color{darkred}\thechapter}{1em}{}

\begin{document}
\tableofcontents
\pagestyle{mystylechapter}
\chapter{Continent}
\section[Land]{\hyperref[sec:beach]{Land}}
\label{sec:land}
\newpage
\section{Beach}
\label{sec:beach}
\end{document}

相关内容