von godi » Di 3. Mär 2015, 12:35
Danke Ulrike, jedoch ist das Problem bei der Lösung, wenn nicht alle Seiten des pdf's eingebunden werden, dann stimmt es auch wieder nicht.
Ich habe jetzt eine Lösung mittels externen File gefunden.
Die Schönste ist diese bestimmt nicht, funktioniert jedoch:
\documentclass[a4paper]{scrartcl}
\usepackage{pdfpages}
\usepackage{hyperref}
\usepackage{newfile}
\newcommand* \lastPdfLabel{}
\newcommand* \setLastPdfLabel[1] {
\renewcommand{\lastPdfLabel}{#1}
}
% Inkludiert ein Pdf
\newcounter{pdfPage}
\newcommand* \PDF[1]{
\cleardoublepage
\phantomsection
\newpage
\setcounter{pdfPage}{0}
\includepdf[pages=-, link=true, linkname=#1, pagecommand={\refstepcounter{pdfPage}\label{#1.\thepdfPage}}]{#1}
\setLastPdfLabel{#1.\thepdfPage}
}
\newcommand*{\lastLabel}{}
\newcommand*{\setLastLabel}[1]{\renewcommand*{\lastLabel}{#1}}
% Seitennummerierung in der Fußzeile mit pageref
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{%
Seite \thepage /\pageref{\lastLabel}}}}
% Schreibe letztes Label in externes File
\newoutputstream{pageLabel}
\newcommand* \labelFile {\jobname.godi}
\newcommand* \outputPath {./build/}
\newcommand* \labelFilePath {\outputPath \labelFile}
\newcommand \writeToLabelFile[1]{
\openoutputfile{\labelFile}{pageLabel}
\addtostream{pageLabel}{#1}
\closeoutputstream{pageLabel}
}
\AtBeginDocument{
\IfFileExists{\labelFilePath}{}{
\writeToLabelFile{Label muss erst generiert werden}
}
}
\AtEndDocument{
\writeToLabelFile{\noexpand\setLastLabel{\lastPdfLabel}}
}
\begin{document}
\setLastLabel{LastPage:Abschnitt1}
\hyperlink{PDF1.1}{Link zur ersten Seite des geladenen PDFs}\\
\hyperlink{PDF2.1}{Link zur ersten Seite des zweiten geladenen PDFs}\\
\hyperref[Abschnitt3]{Link zum Abschnitt 3}
\newpage
Hier noch eine Zweite Seite im Abschnitt 1.
\phantomsection\label{\lastLabel}
\newpage
\setcounter{page}{1}
% Laden des Labels der letzten pdf Seite
\input{\labelFilePath}
Hier beginnt der Abschnitt mit den inkludierten Pdf
\PDF{PDF1}
\PDF{PDF2}
\newpage
\setcounter{page}{1}
\setLastLabel{LastPage:Abschnitt3}
\phantomsection\label{Abschnitt3}
Hier ist Abschnitt 3.
\newpage
Mit mehreren Seiten.
\phantomsection\label{\lastLabel}
\end{document}
[/code]
Danke Ulrike, jedoch ist das Problem bei der Lösung, wenn nicht alle Seiten des pdf's eingebunden werden, dann stimmt es auch wieder nicht.
Ich habe jetzt eine Lösung mittels externen File gefunden.
Die Schönste ist diese bestimmt nicht, funktioniert jedoch:
[code]
\documentclass[a4paper]{scrartcl}
\usepackage{pdfpages}
\usepackage{hyperref}
\usepackage{newfile}
\newcommand* \lastPdfLabel{}
\newcommand* \setLastPdfLabel[1] {
\renewcommand{\lastPdfLabel}{#1}
}
% Inkludiert ein Pdf
\newcounter{pdfPage}
\newcommand* \PDF[1]{
\cleardoublepage
\phantomsection
\newpage
\setcounter{pdfPage}{0}
\includepdf[pages=-, link=true, linkname=#1, pagecommand={\refstepcounter{pdfPage}\label{#1.\thepdfPage}}]{#1}
\setLastPdfLabel{#1.\thepdfPage}
}
\newcommand*{\lastLabel}{}
\newcommand*{\setLastLabel}[1]{\renewcommand*{\lastLabel}{#1}}
% Seitennummerierung in der Fußzeile mit pageref
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{%
Seite \thepage /\pageref{\lastLabel}}}}
% Schreibe letztes Label in externes File
\newoutputstream{pageLabel}
\newcommand* \labelFile {\jobname.godi}
\newcommand* \outputPath {./build/}
\newcommand* \labelFilePath {\outputPath \labelFile}
\newcommand \writeToLabelFile[1]{
\openoutputfile{\labelFile}{pageLabel}
\addtostream{pageLabel}{#1}
\closeoutputstream{pageLabel}
}
\AtBeginDocument{
\IfFileExists{\labelFilePath}{}{
\writeToLabelFile{Label muss erst generiert werden}
}
}
\AtEndDocument{
\writeToLabelFile{\noexpand\setLastLabel{\lastPdfLabel}}
}
\begin{document}
\setLastLabel{LastPage:Abschnitt1}
\hyperlink{PDF1.1}{Link zur ersten Seite des geladenen PDFs}\\
\hyperlink{PDF2.1}{Link zur ersten Seite des zweiten geladenen PDFs}\\
\hyperref[Abschnitt3]{Link zum Abschnitt 3}
\newpage
Hier noch eine Zweite Seite im Abschnitt 1.
\phantomsection\label{\lastLabel}
\newpage
\setcounter{page}{1}
% Laden des Labels der letzten pdf Seite
\input{\labelFilePath}
Hier beginnt der Abschnitt mit den inkludierten Pdf
\PDF{PDF1}
\PDF{PDF2}
\newpage
\setcounter{page}{1}
\setLastLabel{LastPage:Abschnitt3}
\phantomsection\label{Abschnitt3}
Hier ist Abschnitt 3.
\newpage
Mit mehreren Seiten.
\phantomsection\label{\lastLabel}
\end{document}
[/code][/code]