我希望可以在章节/节标题中添加超链接。
梅威瑟:
\documentclass[twoside]{book}
\usepackage[pdftex,pagebackref=true]{hyperref}
\begin{document}
\chapter{documentation for link to Section 1}
%%\chapter{documentation for link to \hyperlink{sec1}{Section 1}}
\hypertarget{sec1}{}\section{Section 1 Reference}
\hypertarget{sec2}{}\section{Section 2 Reference}
documentation for \hyperlink{sec1}{Section 1}
\end{document}
我们在第 1.2 节中看到了hyperlink
第 1.1 节,但我希望在章节标题中也包含链接。当使用hyperlink
(remove %% ) 添加第二章时,我收到错误消息:
Chapter 1.
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\<let>-command' on input line 6.
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\Hy@reserved@a' on input line 6.
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\@ifnextchar' on input line 6.
! Undefined control sequence.
\hyper@@link ->\let \Hy@reserved@a
\relax \@ifnextchar [{\hyper@link@ }{\hyp...
l.6 ...on for link to \hyperlink{sec1}{Section 1}}
?
! Emergency stop.
\hyper@@link ->\let \Hy@reserved@a
\relax \@ifnextchar [{\hyper@link@ }{\hyp...
l.6 ...on for link to \hyperlink{sec1}{Section 1}}
! ==> Fatal error occurred, no output PDF file produced!
问题:如何获取章节(/部分)标题中的超链接。
答案1
我会使用\label
s 然后\hyperref[<label>]{<text>}
表示自定义文本或者甚至cleveref
's \cref
。
\documentclass[twoside]{book}
\usepackage[pdftex,pagebackref=true]{hyperref}
\begin{document}
\chapter{documentation for link to \hyperref[sec1]{Section 1}}
\section{Section 1 Reference}\label{sec1}
\section{Section 2 Reference}\label{sec2}
documentation for \hyperref[sec1]{Section 1}
\end{document}
如果你要坚持\hyperlink
你就必须坚持,\protect
因为这是一个脆弱的命令。
\chapter{documentation for link to \protect\hyperlink{sec1}{Section 1}}
\hyperref
上面的例子中你不需要使用 protect,因为它是一个强大的命令。请参阅脆弱命令和坚固命令之间有什么区别?深入解释脆弱命令与强大命令。