pdfpages in Textblock zentrieren

Schriftbild, Absätze und Auflistungen einstellen
Roman_95
Forum-Anfänger
Forum-Anfänger
Beiträge: 40
Registriert: So 5. Aug 2018, 02:07

pdfpages in Textblock zentrieren

Beitrag 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.

Code: Alles auswählen

\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 ;)
Dateianhänge
MKH-3.pdf
(1.88 MiB) 185-mal heruntergeladen

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2136
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Mein Vorschlag:

Code: Alles auswählen

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

Gast

Nur so spaßeshalber …

Beitrag 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:

Code: Alles auswählen

\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:

Code: Alles auswählen

\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.

Gast

Off-Topic: Forenwahl

Beitrag 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.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2136
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag 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.

Gast

Beitrag 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.

Roman_95
Forum-Anfänger
Forum-Anfänger
Beiträge: 40
Registriert: So 5. Aug 2018, 02:07

Genau das was ich wollte

Beitrag 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

Gast

Re: Genau das was ich wollte

Beitrag 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).

Antworten