![目录中缺少章节链接(回忆录类、自定义章节标题)](https://linux22.com/image/279176/%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%BC%BA%E5%B0%91%E7%AB%A0%E8%8A%82%E9%93%BE%E6%8E%A5%EF%BC%88%E5%9B%9E%E5%BF%86%E5%BD%95%E7%B1%BB%E3%80%81%E8%87%AA%E5%AE%9A%E4%B9%89%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98%EF%BC%89.png)
我正在尝试向使用 memoir 类生成的文档添加目录。我已自定义了章节标题以模拟我喜欢的出版物。当我生成 pdf(使用 xelatex -shell-escape)时,目录中的章节级和小节级超链接按预期工作,但节级超链接则不行。每个部分都显示一个超链接,但当我单击其中一个时,什么也没有发生。
两个限制:
- 我需要留在回忆录课上。
- 章节(和子章节)标题需要按照以下格式显示(例如,我不想要章节编号)。
两个观察结果:
- 如果我将章节编号深度设置为“章节”,超链接就会按预期工作(但我会得到编号章节)。
- 如果我将 \bfseries 或任何其他系列添加到 \setsecheadstyle{\Large\scshape\MakeLowercase},则超链接可以正常工作(但同样,我失去了所需的格式)。
最小工作示例:
\documentclass[11pt,oneside,article]{memoir}
\usepackage{graphicx,url}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{listings}
\setcounter{tocdepth}{2}
\usepackage[usenames,dvipsnames]{color}
\usepackage[xetex]{hyperref}
\usepackage{lipsum}
\setsecheadstyle{\Large\scshape\MakeLowercase}
\setsubsecheadstyle{\normalsize\itshape}
\setsubsubsecheadstyle{\small\bfseries}
\setaftersubsubsecskip{-1em}
\maxsecnumdepth{chapter}
\setsecnumdepth{chapter}
\setaftersecskip{1.7ex}
\begin{document}
\maketitle
\tableofcontents
\section{Introduction}
\lipsum
\section{Another Section}
Text.
\subsection{Subsection 1}
Text.
\subsection{Subsection 2}
Text.
\section{Last Section}
Text.
\end{document}
答案1
您可以通过定义节标题样式来快速修复该问题,以包含hyperref
锚\phantomsection
:
\setsecheadstyle{\phantomsection\Large\scshape\MakeLowercase}