我想将文档中的章节标题(例如“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}