Pdfpages:Hyperref 总是跳转到第一个附件

Pdfpages:Hyperref 总是跳转到第一个附件

通过使用包,pdfpages我想将附件和图纸添加到我的文档中。就像ToC,应该有一个附件列表和一个图纸列表。此外,我想使用LoF或类似方法LoT从文本中链接到特定附件或图纸。\ref

我已经实现了所有这些,但是包存在一个问题hyperref

如果您点击图纸列表或相应\ref链接中的条目,PDF 将跳转到该图纸 - 正如您所期望的那样。但是,点击附件列表或相应\ref链接中的任何条目将始终引导您转到第一个附件。换句话说:

单击图纸 001 -> 图纸 001
单击图纸 002 -> 图纸 002
单击图纸 003 -> 图纸 003

单击附件 001 -> 附件 001
单击附件 002 -> 附件 001 (!!!)
单击附件 003 -> 附件 001 (!!!)

非常奇怪:如果两个命令的顺序改变,文档的行为就会相反\DeclareNewTOC。换句话说:
单击图纸 001 -> 图纸 001
单击图纸 002 -> 图纸 001 (!!!)
单击图纸 003 -> 图纸 001 (!!!)

单击附件 001 -> 附件 001
单击附件 002 -> 附件 002
单击附件 003 -> 附件 003

这是我的 MWE:(
请原谅德语评论......)

%Grundlegendes
\documentclass[a4paper,BCOR=10mm,DIV=12,headsepline,numbers=noenddot]{scrreprt}%10mm Bindekorrektur und 12er-Teilung; Damit entsteht ein linker Rand von 25mm bzw. 35mm (inkl. Bindekorrektur) und ein rechter Rand von 25 mm. Die Fläche für den Text ist 150mm breit.
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{scrpage2}

\usepackage{pdfpages}%Einbinden externer PDF-Dateien

%Querverweise und Metadaten:
\usepackage[ngerman]{varioref}%Pakete für "intelligente" Querverweise mit Seitenreferenz
\usepackage[bookmarksnumbered=true,hyperfootnotes,linktoc=all,ngerman,raiselinks,hidelinks]{hyperref}%klickbare Verweise, Angabe von PDF-Metadaten
\usepackage[ngerman]{cleveref}%"intelligente" Querverweise mit automatischem Typ

%neue Gleitumgebungen und Verzeichnisse
\newcommand*{\ausblenden}[1]{}          % wird gleich gebraucht, um die Eintragsnummern und Seitenzahlen auszublenden

\DeclareNewTOC[                         % Verzeichnis und Gleitumgebung für Anhänge
type=attachment,                        % Name der Umgebung
types=attachments,                      % Erweiterung (\listofattachments)
float,                                  % soll gleiten
floatpos=h,                             % voreingestellte Gleitparameter
name=Anhang,                            % Name in Überschriften
listname={Attachments},                     % Listenname
tocentryindent=0pt,                     % kein Einzug links
tocentrynumwidth=0pt,                   % keinen Platz für Eintragsnummern vorsehen
tocentryentrynumberformat=\ausblenden,  % Eintragsnummern ausblenden
% tocentrypagenumberformat=\ausblenden, % Seitenzahlen ausblenden
% tocentrylinefill=\hfill                   % Punkte ausblenden
]{loa}                                  % Dateiendung für dieses Verzeichnis (list of attachments)

\DeclareNewTOC[                         % Verzeichnis und Gleitumgebung für Zeichnungen
type=drawing,                           % Name der Umgebung
types=drawings,                         % Erweiterung (\listofdrawings)
float,                                  % soll gleiten
floatpos=h,                             % voreingestellte Gleitparameter
name=Zeichnung,                         % Name in Überschriften
listname={Drawings},                    % Listenname
tocentryindent=0pt,                     % kein Einzug links
tocentrynumwidth=0pt,                   % keinen Platz für Eintragsnummern vorsehen
tocentryentrynumberformat=\ausblenden,  % Eintragsnummern ausblenden
% tocentrypagenumberformat=\ausblenden, % Seitenzahlen ausblenden
% tocentrylinefill=\hfill                   % Punkte ausblenden
]{lod}                                  % Dateiendung für dieses Verzeichnis (list of drawings)

\begin{document}

\listofattachments
\begingroup
\let\clearpage\relax
\listofdrawings
\endgroup

\newpage
%just some references for testing
\nameref{app:a001} and \nameref{app:a002}

\nameref{app:d001} and \nameref{app:d002}

\includepdfset{pagecommand=\thispagestyle{scrheadings}}

\ohead{attachment 001}
\includepdf[addtolist={1,attachment,attachment 001,app:a001}]{dummy}
\ohead{attachment 002}
\includepdf[addtolist={1,attachment,attachment 002,app:a002}]{dummy}
\ohead{attachment 003}
\includepdf[addtolist={1,attachment,attachment 003,app:a003}]{dummy}

\ohead{drawing 001}
\includepdf[addtolist={1,drawing,drawing 001,app:d001}]{dummy}
\ohead{drawing 002}
\includepdf[addtolist={1,drawing,drawing 002,app:d002}]{dummy}
\ohead{drawing 003}
\includepdf[addtolist={1,drawing,drawing 003,app:d003}]{dummy}

\end{document}

希望有人能帮助我。提前谢谢!

答案1

\DeclareNewToC应该应用宏 \usepackage{hyperref}为了获得由 ToC 生成宏编写的正确超链接。

\documentclass[a4paper,BCOR=10mm,DIV=12,headsepline,numbers=noenddot]{scrreprt}%10mm Bindekorrektur und 12er-Teilung; Damit entsteht ein linker Rand von 25mm bzw. 35mm (inkl. Bindekorrektur) und ein rechter Rand von 25 mm. Die Fläche für den Text ist 150mm breit.
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{scrpage2}

\usepackage{pdfpages}%Einbinden externer PDF-Dateien

%Querverweise und Metadaten:
\usepackage[ngerman]{varioref}%Pakete für "intelligente" Querverweise mit Seitenreferenz

%neue Gleitumgebungen und Verzeichnisse
\newcommand*{\ausblenden}[1]{}          % wird gleich gebraucht, um die Eintragsnummern und Seitenzahlen auszublenden

\DeclareNewTOC[                         % Verzeichnis und Gleitumgebung für Anhänge
type=attachment,                        % Name der Umgebung
types=attachments,                      % Erweiterung (\listofattachments)
float,                                  % soll gleiten
floatpos=h,                             % voreingestellte Gleitparameter
name=Anhang,                            % Name in Überschriften
listname={Attachments},                     % Listenname
tocentryindent=0pt,                     % kein Einzug links
tocentrynumwidth=0pt,                   % keinen Platz für Eintragsnummern vorsehen
tocentryentrynumberformat=\ausblenden,  % Eintragsnummern ausblenden
% tocentrypagenumberformat=\ausblenden, % Seitenzahlen ausblenden
% tocentrylinefill=\hfill                   % Punkte ausblenden
]{loa}                                  % Dateiendung für dieses Verzeichnis (list of attachments)

\DeclareNewTOC[                         % Verzeichnis und Gleitumgebung für Zeichnungen
type=drawing,                           % Name der Umgebung
types=drawings,                         % Erweiterung (\listofdrawings)
float,                                  % soll gleiten
floatpos=h,                             % voreingestellte Gleitparameter
name=Zeichnung,                         % Name in Überschriften
listname={Drawings},                    % Listenname
tocentryindent=0pt,                     % kein Einzug links
tocentrynumwidth=0pt,                   % keinen Platz für Eintragsnummern vorsehen
tocentryentrynumberformat=\ausblenden,  % Eintragsnummern ausblenden
% tocentrypagenumberformat=\ausblenden, % Seitenzahlen ausblenden
% tocentrylinefill=\hfill                   % Punkte ausblenden
]{lod}                                  % Dateiendung für dieses Verzeichnis (list of drawings)


\usepackage[bookmarksnumbered=true,hyperfootnotes,linktoc=all,ngerman,raiselinks,hidelinks]{hyperref}%klickbare Verweise, Angabe von PDF-Metadaten
\usepackage[ngerman]{cleveref}%"intelligente" Querverweise mit automatischem Typ


\begin{document}

\listofattachments
\begingroup
\let\clearpage\relax
\listofdrawings
\endgroup

\newpage
%just some references for testing
\nameref{app:a001} and \nameref{app:a002}

\nameref{app:d001} and \nameref{app:d002}

\includepdfset{pagecommand=\thispagestyle{scrheadings}}

\ohead{attachment 001}
\includepdf[addtolist={1,attachment,attachment 001,app:a001}]{dummy}
\ohead{attachment 002}
\includepdf[addtolist={1,attachment,attachment 002,app:a002}]{dummy}
\ohead{attachment 003}
\includepdf[addtolist={1,attachment,attachment 003,app:a003}]{dummy}

\ohead{drawing 001}
\includepdf[addtolist={1,drawing,drawing 001,app:d001}]{dummy}
\ohead{drawing 002}
\includepdf[addtolist={1,drawing,drawing 002,app:d002}]{dummy}
\ohead{drawing 003}
\includepdf[addtolist={1,drawing,drawing 003,app:d003}]{dummy}

\end{document}

相关内容