includepdf führt zu unerwünschten Überschriften

includepdf führt zu unerwünschten Überschriften
\includepdf[pages={34-40},nup=2x2,frame,landscape,scale=0.8,%
    pagecommand=\chapter{fracture}\section{Theoretical}]{Dam-Nonlinear.pdf}
\clearpage
\includepdfmerge[nup=1x2,frame,landscape,scale=0.8,%
    pagecommand={\section{blablah}}]{ASCE-Cyclic-Joint-Model.pdf,1,%
    ASCE-Cyclic-Joint-Test.pdf,1}
\includepdf[scale=0.8,nup=2x2,pages={9-13},frame,landscape,%
    pagecommand=\section{Experimental Work}]{Ageing-Shaking-Cracking.pdf}
\includepdfmerge[nup=1x2,frame,landscape,scale=0.8]{cement-concrete-slowik.pdf,1,% 
    Optical_Fiber-in-FPZ.pdf,1}

führt zu

  1. Korrekte Überschrift von Kapitel 1 (Bruch) und Abschnitt 1.1 (Theoretisch), gefolgt von der einzubindenden PDF-Datei (diese umfasst zwei Seiten)
  2. Beim ersten Problem auf Seite 3 steht: „Kapitel 2 Bruch und wieder 2.1 Theorie“, gefolgt von einer Leerstelle.Eindeutig falsch
  3. Dann bekomme ich korrekt Abschnitt 2.2 bla bla gefolgt von dem einzubindenden PDF (eine Seite).
  4. Ich bekomme richtig 2.4 Experimentelle Arbeit auf der ersten von zwei Seiten,aber wieder die gleiche Überschrift der zweiten (von zwei) Seite.

Antwort1

Die pagecommandOption ist nur für "immaterielle" Dinge wie gedacht \thispagestyle. Durch die Art und Weise, wie Sie sie verwenden, beginnt ein neues Kapitelauf jeder eingebundenen Seite.

Ich gehe davon aus, dass Sie eine buchähnliche Klasse verwenden, bei der ein neues Kapitel immer auf einer rechten Seite beginnt. \chapterWas die Sache wirklich durcheinander bringt, ist die leere Seite, die von der zweiten eingefügt wird.

Ich rate zum Umzug \chapterund zwar \sectionganz außerhalb von \includepdf:

\chapter{fracture}\section{Theoretical}
\includepdf[pages={34-40},nup=2x2,frame,landscape,scale=0.8,%
pagecommand={}]{texbook.pdf}
\clearpage
\section{blablah}
\includepdfmerge[nup=1x2,frame,landscape,scale=0.8,%
pagecommand={}]{texbook.pdf,%
1,texbook.pdf,1}
\section{Experimental Work}
\includepdf[scale=0.8,nup=2x2,pages={9-13},frame,landscape,%
pagecommand={}]{texbook.pdf}
\includepdfmerge[nup=1x2,frame,landscape,scale=0.8]{texbook.pdf,% 
1,texbook.pdf,1}

Ob das in Ihrem Sinne ist, kann ich natürlich nicht beurteilen, da Sie hierzu nur sehr wenige Details genannt haben.

Antwort2

Sie können das PDF zweimal einbinden. Beim ersten Mal nur die erste Seite. Beim zweiten Mal alle anderen Seiten ohne Titel.

\includepdf[pages=34,nup=2x2,frame,landscape,scale=0.8,
    pagecommand=\chapter{fracture}\section{Theoretical}]{Dam-Nonlinear.pdf}
\includepdf[pages={35-40},nup=2x2,frame,landscape,scale=0.8
    {Dam-Nonlinear.pdf}
\clearpage

Antwort3

Vielleicht möchten Sie so etwas? Beachten Sie, dass es einvieleinfacher mit einem richtigen Minimalbeispiel, mit dem man arbeiten kann. Das ist mehr als zur Hälfte reines Rätselraten, nur was das Verständnis dessen angeht, was Sie versuchen zu tun - ganz zu schweigen davon, über Wege nachzudenken, es zu erreichen.

Wenn meine Vermutung richtig ist, möchten Sie eine Ausgabe wie die folgende:

Rätselraten Rätselraten Rätselraten

Ich weiß nicht, warum das ganze Querformat. Dabei folge ich einfach dem Code in der Frage, auch wenn er für mich als Ausgabe nicht viel Sinn ergibt. (Vielleicht sind die enthaltenen Dateien speziell zugeschnitten oder so, damit die Hochformatüberschriften im Vergleich zum Querformatinhalt nicht seltsam aussehen.)

Sie können es jedoch bei Bedarf anpassen.

Der entscheidende Punkt ist, dass die Befehle \chapterund/oder \sectionusw. nur auf der ersten Seite einer einzelnen PDF-Einbindung ausgegeben werden. Dies wird erreicht, indem diese Befehle in einen neuen Befehl eingeschlossen werden.

\dynpage{<stuff for first page>}

im Argument to pagecommand. Dieser Befehl löst eine dynamische Sequenz aus, die sich \relaxnach der ersten Iteration selbst neu definiert. Der Inhalt der ersten Seite wird also nur auf der ersten Seite gesetzt.

\def\victor@dynpage{\victor@firstpage\global\let\victor@dynpage\relax}
\newcommand*\dynpage[1]{%
  \def\victor@firstpage{#1}%
  \victor@dynpage}

Das Problem dabei ist, dass der Befehl mehr als einmal benötigt wird. Wir müssen ihn also jedes Mal neu setzen, damit er nicht nur \relax. Dafür verwenden wir \pretocmdfromAbonnierendas unserer dynamischen Sequenz voranstellt \includepdf.

\pretocmd{\includepdf}{%
  \def\victor@dynpage{\victor@firstpage\global\let\victor@dynpage\relax}%
}

Vollständiger Code:

\documentclass[a4paper,openany]{book}
\usepackage{geometry,pdfpages,etoolbox}
\geometry{scale=.85}
\makeatletter
\pretocmd{\includepdf}{%
  \def\victor@dynpage{\victor@firstpage\global\let\victor@dynpage\relax}%
}
\newcommand*\dynpage[1]{%
  \def\victor@firstpage{#1}%
  \victor@dynpage}
\makeatother
\begin{document}
\includepdf[pages={-},nup=2x2,frame,landscape,scale=0.8,%
pagecommand=\dynpage{\chapter{fracture}\section{Theoretical}}]{k}
\clearpage
\includepdfmerge[nup=1x2,frame,landscape,scale=0.8,%
    pagecommand={\section{blablah}}]{example-image-a4,1,%
    example-image-a4,1}
\includepdf[scale=0.8,nup=2x2,pages={-},frame,landscape,%
pagecommand=\dynpage{\section{Experimental Work}}]{k}
\includepdfmerge[nup=1x2,frame,landscape,scale=0.8]{example-image-a4,1,%
    example-image-a4,1}
\end{document}

verwandte Informationen