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 章 Fracture 和 2.1 Theoretical,然后是空白。明显错误
  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。为此,我们使用\pretocmd来自电子工具箱将我们的动态序列添加到 的前面\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}

相关内容