我在我的文档中手动分配 pdf 书签,因为我不使用任何部分或类似的东西,而只是将其他 pdf 文件放在一起。
我的问题是书签没有链接到相关页面的顶部,而是链接到该页面内容开始位置下方几厘米处。这有点烦人,我想改变这种情况。有没有办法直接链接到页面的上端?
\documentclass[11pt,a4paper,sans]{article}
\usepackage[utf8]{inputenc}
\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=3cm]{geometry}
\usepackage{pdfpages}
\usepackage{hyperref}
\usepackage{bookmark}
\hypersetup{
bookmarks=true,
pdftitle={FusedPDF},
}
\begin{document}
\pdfbookmark{\contentsname}{PDF1}
\includepdf[pages=-]{PDF1.pdf}
\pdfbookmark{\contentsname}{PDF2}
\includepdf[pages=-]{PDF2.pdf}
\end{document}
// 编辑:好的,我现在做的是使用 BeCyPDFMetaEdit 手动设置书签。这样链接到页面顶部就没问题了。但这并不是我最初想象的那样。
答案1
您可以提升目标。但您必须使用 pagecommand 键来执行此操作,\includepdf
以避免获得空白页(这些值来自您的几何设置,但可以计算它们):
\documentclass[11pt,a4paper,sans]{article}
\usepackage[utf8]{inputenc}
\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=3cm]{geometry}
\usepackage{pdfpages}
\usepackage{hyperref}
\usepackage{bookmark}
\hypersetup{
bookmarks=true,
pdftitle={FusedPDF},
}
\begin{document}
\includepdf[pages=1,pagecommand={\hspace*{-3cm}\raisebox{\dimexpr 2.5cm+\topskip}[0pt][0pt]{\pdfbookmark{\contentsname}{PDF1}}}]{example-image-duck.pdf}
\includepdf[pages=2-20]{example-image-duck.pdf}
\end{document}
另一种方法是在 \includepdf 之前将边距设置为 0:
\documentclass[11pt,a4paper,sans]{article}
\usepackage[utf8]{inputenc}
\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=3cm]{geometry}
\usepackage{pdfpages}
\usepackage{hyperref}
\usepackage{bookmark}
\hypersetup{
bookmarks=true,
pdftitle={FusedPDF},
}
\begin{document}
blblb
\newgeometry{margin=0pt}
\pdfbookmark{\contentsname}{PDF1}
\includepdf[pages=1-10]{example-image-duck.pdf}
\pdfbookmark{\contentsname}{PDF2}
\includepdf[pages=1-10]{example-image-duck.pdf}
\restoregeometry bbbb
\end{document}