includepdf приводит к нежелательным заголовкам

includepdf приводит к нежелательным заголовкам
\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}

результаты в

  1. Исправьте заголовок главы 1 (Перелом) и раздела 1.1 (Теоретический), а затем укажите файл PDF, который необходимо включить (это займет две страницы).
  2. Первая задача, на странице 3, у меня снова появляется: Глава 2 «Перелом» и 2.1 «Теоретическая часть», а затем пробел.Явно не прав
  3. Затем я правильно получаю раздел 2.2 бла-бла, а затем PDF-файл, который нужно включить (одна страница).
  4. Я правильно понимаю 2.4 Экспериментальную работу на первой из двух страниц,но снова тот же заголовок второй (из двух) страницы.

решение1

Эта pagecommandопция предназначена только для "нематериальных" вещей, таких как \thispagestyle. Как вы ее используете, так и начнется новая главана каждой включенной странице.

Я предполагаю, что вы используете класс типа книги, где новая глава всегда начинается на правильной странице. Пустая страница, вставленная вторым, \chapterдействительно все портит.

Я советую переехать \chapterи \sectionполностью выйти за пределы \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}

Конечно, я не могу судить, хотите ли вы этого, поскольку вы предоставили очень мало подробностей по этому поводу.

решение2

Вы можете включить pdf-файл дважды. Первый раз включите только первую страницу. Второй раз включите все остальные страницы без заголовка.

\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

решение3

Может быть, вы хотите что-то вроде этого? Обратите внимание, что это будетмногопроще с соответствующим минимальным примером для работы. Это больше, чем наполовину догадки, просто с точки зрения понимания того, что вы пытаетесь сделать - не говоря уже о размышлениях о способах достижения этого.

Если моя догадка верна, вы хотите получить что-то вроде этого:

догадки догадки догадки

Я не знаю, зачем все эти альбомные штучки. В этом я просто следую коду в вопросе, хотя он не имеет для меня особого смысла в качестве вывода. (Возможно, включенные файлы специально адаптированы или что-то в этом роде, чтобы заголовки в портретной ориентации не выглядели странно с альбомным содержимым.)

В любом случае, вы можете это отрегулировать, если вам это нужно.

Ключевым моментом является то, что команды \chapterand/or \sectionetc. выдаются только на первой странице любого отдельного включения PDF. Это достигается путем помещения этих команд в новую команду

\dynpage{<stuff for first page>}

в аргументе pagecommand. Эта команда запускает динамическую последовательность, которая переопределяет себя \relaxпосле первой итерации. Таким образом, материал для первой страницы не будет набран нигде, кроме первой страницы.

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

Проблема в том, что команда нужна больше одного раза. Поэтому нам нужно сбрасывать ее каждый раз, чтобы это не было просто \relax. Для этого мы используем \pretocmdfrometoolboxкоторый добавляет нашу динамическую последовательность к \includepdf.

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

Полный код:

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

Связанный контент