Seite 1 von 1

pdfpages in Textblock zentrieren

Verfasst: Do 29. Nov 2018, 21:46
von Roman_95
Hallo Zusammen,

ich hätte eine Frage betreffend der Einbindung von PDFs mittels dem Paket pdfpages, genauer zur Formatierung.

Das Einbinden funktioniert soweit wie ich mir das vorstelle, auch die Anpassung der Höhe der eingefügten Seiten auf die des Textblockes. Allerdings zentriert pdfpages die Seiten auf dem Blatt, nicht im Textbereich. Kann man das irgendwie korrigieren?
Ich denke es könnte über die offset-Funktion und LaTeX- bzw. KOMA-Script-interne Maße funktionieren, leider hört mein Wissen in dieser Richtung dann aber auch schon auf...

Im MM habe ich nur die Einstellungen meines Dokumentes übernommen, welche meines Wissens nach auf die Satzspiegel-Berechnung Einfluss haben (BCOR und Schriftgrad z.B.). Die Formatierungsanweisungen der Kopf-/Fußzeilen, habe ich mit rein geschrieben, falls Sie evtl. ebenfalls den Textblock beeinflussen.

\documentclass[%
a4paper,
BCOR=5mm,
oneside,
11pt
]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[automark]{scrlayer-scrpage}

\KOMAoptions{headsepline=true}
\KOMAoptions{footsepline=true}
\chead*{\textnormal{\headmark}}

\newpairofpagestyles{kapitel}{% Kapitelseiten formatieren
	\clearpairofpagestyles
	\KOMAoptions{headsepline=false}
	\cfoot*{\pagemark}
}
\renewcommand*{\chapterpagestyle}{kapitel}

\usepackage{pdfpages, graphicx}
\includepdfset{pages=-, pagecommand={\pagestyle{headings}}, noautoscale=true, height=\textheight}

\begin{document}

\appendix
\chapter{Anhang}
\includepdf{MKH-3.pdf}

\end{document}
Ich gehe davon aus, dass die von mir einzufügenden Dateien i.a. ebenfalls Format A4 sind. Beim Einbinden möchte ich dann mit der Steuerung der Breite bzw. Höhe dafür sorgen, dass das größere Maß nicht über den Textblock ragt. Dabei soll halt zuverlässig und "sauber" eine Zentrierung im Textblock gewährleistet werden.


Viele Grüße, Roman

PS: Dass in meinem Beispiel die erste Seite nur die Kapitelüberschrift enthält stört mich erstmal nicht, ich werde hier später den pagestyle umschalten ;)

Verfasst: Do 29. Nov 2018, 23:02
von Bartman
Mein Vorschlag:
\documentclass[
	BCOR=5mm,
	twoside=false,
	headsepline,
	footsepline,
	plainfootsepline
]{scrbook}

%\usepackage[utf8]{inputenc}% Zugeständnis an ältere TeX-Distributionen
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{pdfpages}% lädt graphicx
\usepackage{blindtext}
\usepackage[automark]{scrlayer-scrpage}

\setkomafont{pageheadfoot}{\normalfont}

\includepdfset{pagecommand={\pagestyle{scrheadings}}}

\begin{document}
\blinddocument
\appendix
\includepdf[
	pages=1, 
	pagecommand={\chapter{Erstes Kapitel des Anhangs}}, 
	width=.75\textwidth, 
	offset=4mm -10mm
]{example-image-a4-numbered}
\includepdf[
	pages=2-, 
	width=.97\textwidth, 
	offset=3mm 13mm
]{example-image-a4-numbered}
\end{document}

Nur so spaßeshalber …

Verfasst: Fr 30. Nov 2018, 08:43
von Gast
Wenn ohnehin der Textbereich eingehalten werden soll, kann man auf der ersten Seite auch direkt \includegraphics verwenden. Außerdem kann man offset natürlich auch berechnen:
\documentclass[
  BCOR=5mm,
  twoside=false,
  headsepline,
  footsepline,
  plainfootsepline
]{scrbook}

%\usepackage[utf8]{inputenc}% Zugeständnis an ältere TeX-Distributionen
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{pdfpages}% lädt graphicx
\usepackage{blindtext}
\usepackage[automark]{scrlayer-scrpage}
\setkomafont{pageheadfoot}{\normalfont}

\includepdfset{pagecommand={\pagestyle{scrheadings}}}

\newlength\pdfpagesXoffset
\newlength\pdfpagesYoffset
\makeatletter
\AfterCalculatingTypearea{%
  \pdfpagesXoffset=\dimexpr\ta@bcor/2\relax
  \pdfpagesYoffset=-.5\dimexpr (1in+\topmargin+\headheight+\headsep)*2-\paperheight+\textheight\relax
}
\newlength\ChapterHeight
\AtBeginDocument{%
  \setbox\@tempboxa\vbox{\chapter{Test}}%
  \setlength{\ChapterHeight}{\dimexpr\ht\@tempboxa+\dp\@tempboxa-\baselineskip\relax}%
}
\makeatother
\KOMAoptions{DIV=current}% damit die \AfterCalculatingTypearea-Berechnung auch durchgeführt wird

\begin{document}
\blinddocument
\appendix
\chapter{Erstes Kapitel des Anhangs}
\centerline{\includegraphics[page=1,height=\dimexpr
\textheight-\ChapterHeight\relax]{example-image-a4-numbered}}
\includepdf[
  pages=2-,
  width=\textwidth,
  height=\textheight,
  keepaspectratio,
  offset={\pdfpagesXoffset} {\pdfpagesYoffset}
]{example-image-a4-numbered}
\end{document}
oder man bastelt sich eine eigene Schleife über alle Seiten, die einfach nur die Seiten zentriert als einzelne Absätze ausgibt:
\documentclass[
  BCOR=5mm,
  twoside=false,
  headsepline,
  footsepline,
  plainfootsepline
]{scrbook}

%\usepackage[utf8]{inputenc}% Zugeständnis an ältere TeX-Distributionen
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{pdfpages}% lädt graphicx
\usepackage{blindtext}
\usepackage[automark]{scrlayer-scrpage}
\setkomafont{pageheadfoot}{\normalfont}

\includepdfset{pagecommand={\pagestyle{scrheadings}}}

\makeatletter
\newlength\ChapterHeight
\AtBeginDocument{%
  \setbox\@tempboxa\vbox{\chapter{Test}}%
  \setlength{\ChapterHeight}{\dimexpr\ht\@tempboxa+\dp\@tempboxa-\baselineskip\relax}%
}
\newcommand*{\includepagesfromsecond}[2][]{%
  \begingroup
    \AM@findfile{#2}% aus pdfpages.sty
    \AM@getpagecount% aus pdfpages.sty
    \newcommand*{\IP@currentpage}{1}%
    \@whilenum \IP@currentpage<\AM@pagecount \do{%
      \edef\IP@currentpage{\the\numexpr \IP@currentpage+1\relax}%
      \begingroup
        \par% hier könnte man auch \newpage verwenden
        \centering\includegraphics[page=\IP@currentpage,#1]{#2}%
        \par% hier könnte man auch \newpage verwenden
      \endgroup
    }%
  \endgroup
}
\makeatother


\begin{document}
\blinddocument
\appendix
\chapter{Erstes Kapitel des Anhangs}
\centerline{\includegraphics[page=1,height=\dimexpr
\textheight-\ChapterHeight\relax]{example-image-a4-numbered}}
\includepagesfromsecond[
  width=\textwidth,
  height=\textheight,
  keepaspectratio,
]{example-image-a4-numbered}
\end{document}
Natürlich könnte man statt Absätzen auch ganze Seiten setzen und mit \vspace*{\fill} für vertikale Zentrierung im Textbereich sorgen. Man könnte auch wie pfpages mit eso-pic für die Ausgabe sorgen und dann mit Hilfe von \AtTextCenter die Zentrierung im Textbereich besorgen, so dass auch Übergrößen in der Horizontalen und Vertikalen berücksichtigt werden. Auch die Abarbeitung der Seitenliste könnte man aus pdfpages übernehmen. Vieles ist möglich. Die Frage ist immer, was man tatsächlich braucht.

BTW: Derzeit funktionieren die Beispiele nicht über den Overleaf-Link, weil das noch eine zu alte mwe-Version verwendet.

Off-Topic: Forenwahl

Verfasst: Fr 30. Nov 2018, 09:20
von Gast
Die Frage wäre übrigens in Tabellen und Grafiken besser aufgehoben, schließlich geht es um das Einbinden von Grafiken (PDF-Seiten zählen ebenfalls als Grafiken/Bilder) und nicht um Text oder Listen.

Verfasst: Fr 30. Nov 2018, 09:56
von Bartman
Die Kapitelnummerierung beginnt wegen des Befehls \chapter in der Berechnung der Höhe der Kapitelüberschrift bei 2. Mit den Befehlen \addchap oder \chapter* wird der Zähler nicht erhöht.

Verfasst: Fr 30. Nov 2018, 11:35
von Gast
Ah, sorry. Kann man mit \setcounter{chapter}{-1} (innerhalb der Box unmittelbar vor \chapter{Test}) korrigieren. \chapter*, \addchap oder \addchap* würde ich dagegen nicht verwenden, weil das ggf. eine andere Höhe hat, beispielsweise bei Verwendung von chapterprefix.

Genau das was ich wollte

Verfasst: Fr 30. Nov 2018, 18:05
von Roman_95
Hallo,

sehr sehr cool, genau wie ich es mir vorgestellt habe (Die erste Lösung mit der Berechnung). Danke für die schnelle Hilfe!

Kurze Interessensfrage zum Schluss: Was ist der Unterschied zwischen den Optionen oneside und twoside=false?

Und das sogar die Berücksichtigung der Größe automatisiert funktioniert ist das Tüpfelchen auf dem "i" :D

Re: Genau das was ich wollte

Verfasst: Fr 30. Nov 2018, 18:58
von Gast
Roman_95 hat geschrieben:Kurze Interessensfrage zum Schluss: Was ist der Unterschied zwischen den Optionen oneside und twoside=false?
oneside ist bei KOMA-Script eine Kompatibilitätsoption, die intern die KOMA-Script-Option twoside=false aufruft und zusätzlich eine entsprechende Information in die log-Datei schreibt. Sonst gibt es keinen Unterschied (insbesondere wird im Gegensatz zur Verwendung veralteter KOMA-Script-Optionen nicht auf version=first umgeschaltet).