通过使用包,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}