2

By using the package pdfpages I want to add attachments and drawings to my document. Just like a ToC, LoF and LoT there should be one list of attachements and one list of drawings. Furthermore I want to link to a specific attachment or drawing from out of the text with \ref or similar.

I already implemented all of this but there is a problem with the hyperref package:

If you click on an entry in the list of drawings or a respective \ref-link, the PDF will jump to that drawing – like you would expect. However, clicking on any entry from the list of attachments or a respective \ref-link will always lead you to the very first attachment. In other words:

click on drawing 001 -> drawing 001
click on drawing 002 -> drawing 002
click on drawing 003 -> drawing 003
but
click on attachment 001 -> attachment 001
click on attachment 002 -> attachment 001 (!!!)
click on attachment 003 -> attachment 001 (!!!)

Very strange: The document behaves vice versa if the order of the two \DeclareNewTOC-commands is changed. In other words:
click on drawing 001 -> drawing 001
click on drawing 002 -> drawing 001 (!!!)
click on drawing 003 -> drawing 001 (!!!)
but
click on attachment 001 -> attachment 001
click on attachment 002 -> attachment 002
click on attachment 003 -> attachment 003

Here is my MWE:
(please excuse the German comments...)

%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}

Hopefully anyone can help me with this. Thanks in advance!

3

The \DeclareNewToC macros should be applied before \usepackage{hyperref} in order to get correct hyperlinks written the by the ToC - generation macros.

\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}
  • I never could find a \newcounter or \refstepcounter in KOMA to explain why is was working at all. – John Kormylo Aug 24 '17 at 15:59
  • @JohnKormylo: Perhaps it's some \@definecounter? – user31729 Aug 24 '17 at 16:10
  • If option float is set, a counter named <type> will be defined. So in the MWE the two counters attachment and drawing are defined. If option type is missing then the file extension would be used as name of the counter. – esdd Aug 24 '17 at 16:52
  • @ChristianHupfer: Your solution solved my problem. Thank you very much! – user141954 Aug 25 '17 at 10:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy