文档中带有 documentclass 的部分章节scrartcl
不应列在目录中,但我希望将它们列在 PDF 索引中。因此,我曾经\pdfbookmark
获取过索引条目。不幸的是,创建的链接放置不正确。链接似乎指向上一章的最后一行。我如何获取正确的链接?
\documentclass[twoside]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage[]{hyperref}
\begin{document}
\tableofcontents
\chapter{First Chapter}
\Blindtext%
\pdfbookmark{Second Chapter}{2nd}\chapter*{Second Chapter}
\Blindtext%
\Blindtext%
\end{document}
答案1
您可以使用:
\setchapterpreamble[o]{\pdfbookmark{Second Chapter}{2nd}}
之前\chapter*
有一个带有锚点的书签前章节标题,但已在新页面上。因此,如果您选择书签,PDF 查看器将跳转到章节标题的开头:
\documentclass[twoside]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage[]{hyperref}
\begin{document}
\tableofcontents
\chapter{First Chapter}
\Blindtext%
\setchapterpreamble[o]{\pdfbookmark{Second Chapter}{2nd}}
\chapter*{Second Chapter}
\Blindtext%
\Blindtext%
\end{document}
有关 的更多信息,请参阅 KOMA-Script 手册\setchapterpreamble
。
\cleardoublepage
另一个建议是在您的示例之前添加一个明确的内容\pdfbookmark
:
\documentclass[twoside]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage[]{hyperref}
\begin{document}
\tableofcontents
\chapter{First Chapter}
\Blindtext%
\cleardoublepage
\pdfbookmark{Second Chapter}{2nd}
\chapter*{Second Chapter}
\Blindtext%
\Blindtext%
\end{document}
此处的锚点位于文本区域的顶部,因此,如果跳转到书签,则章节标题上方会有更多的空白:
这两个建议的区别取决于章节标题的垂直位置,例如,如果你使用类似
\RedeclareSectionCommand[beforeskip=-.5\textheight]{chapter}
我会采用第一个建议。
答案2
只需移到\pdfbookmark{Second Chapter}{2nd}
后面即可\chapter*
。
查看完整代码:
\documentclass[twoside]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage[]{hyperref}
\begin{document}
\tableofcontents
\chapter{First Chapter}
\Blindtext%
\chapter*{Second Chapter}
\pdfbookmark{Second Chapter}{2nd} % <===================================
\Blindtext%
\Blindtext%
\end{document}
点击书签中的第二章(德语“Lesezeichen”)后的结果:
答案3
您可以直接在章节定义中插入 /pdfbookmark 命令
\chapter{\pdfbookmark{chaptername}{chaptername}NAME_OF_CHAPTER}
在这种情况下,pdf 书签指向该章节的第一行。