使用回忆录设置 pdfpages 吗?

使用回忆录设置 pdfpages 吗?

我正在用回忆录来写我的博士论文。在我的大学里,我们必须将已提交、已接受和已准备好的相关论文草稿作为附录。

这些论文都是之前使用 LaTeX(使用 elsarticle 类)创建的。我将它们保存为 PDF,并使用 Adob​​e Acrobat 去掉了白色边框/边距。因此它们的大小不同。

我的问题是关于 pdfpages 的。如何确保 pdf 页面正确插入到完整文档页面(无章节标题)中。

我使用以下类选项和预定义布局:

\documentclass[a4paper,12pt,twoside,onecolumn,openright,final,showtrims]{memoir}
\semiisopage[12]
\checkandfixthelayout

我的问题是 pdfpages 似乎将 pdf 页面本身置于整个库存的中心(如果我们使用回忆录术语的话)。我希望页面居中/适合由诸如\textwidth和之类的长度分隔的区域\textheight(在回忆录手册 memman.pdf 的第 10 页和第 11 页中定义)。

我使用以下选项\includepdf

\includepdf[
    pages={-},
    frame=false, % so I can adjust this if I need it
    noautoscale=true, % I should scale it myself, right?
    scale=1.0, % is this 1.0 by default?
    pagecommand={\thispagestyle{plain}}, % I guess this is necessary?
    %templatesize={\textwidth}{\textheight}, % not sure this work?
    offset={0mm 0mm} % my guess is, that I need to adjust this one?
]{<paper_pdf_filename>}

正如我上面提到的,我可能需要进行调整offset,以便页面放置/适合回忆录手册中第 10-11 页称为“正文”的区域中。

进一步阐述:

我希望每篇论文的页面都是周围文档的一部分。整篇论文在插入论文后仍会有内容。它将继续包含一个全局参考部分,甚至可能包含一个简短的索引。每篇论文的插入页面应该像它们本身一样存在 - 插入 - 而不是单独的页面。这就是我使用页面样式plain来包含论文页码的原因。

如果你看一下梅曼.pdf在第 10-11 页上,您将看到回忆录类的不同页边距。我需要每个插入页面的逻辑框都有一个偏移量,以便与这些页边距相符。

我已尝试以下操作(使用 calc 包):

\newcommand{\pdfxoffset}{\marginparsep + \marginparwidth + \trimedge}
\newcommand{\pdfyoffset}{\uppermargin + \trimtop}

使用这些选项\includepdf

pagecommand={\thispagestyle{plain}},
width=\textwidth,
height=\textheight,
offset={\pdfxoffset mm \pdfyoffset mm}

但它并不完全符合我的要求(但差不多)。我也不太清楚我在这里做什么。我可以像这样将长度相加吗?我甚至不确定我是否掌握了 TeX/LaTeX 中的编程语言结构。

答案1

我不懂memoir行话,但如果我理解正确的话,你想插入一个在空白页面上延伸到正常位置的 PDF 。这可以通过定义自定义页面样式(除非重新定义,否则将包含页码)并使用由 传递的选项和\textwidth来实现。plain\includegraphicswidthheightpdfpages

正如@egreg 所指出的,无需进行memoir页面样式自定义,而\thispagestyle{empty}应该使用。此外,graphicx提供了一个参数keepaspectratio,确保如果指定了 PDF 的宽度和高度,则对其进行缩放,以保持纵横比,并且不会超出宽度和高度。

\documentclass{article}
\usepackage{pdfpages}
\usepackage{fancyhdr}

\fancypagestyle{mystyle}{%
    \fancyhf{}%                             %clear headers, footers
    \renewcommand{\headrulewidth}{0pt}%     %and remove header rule
}

\begin{document}


\includepdf[pages=1,
            pagecommand={\thispagestyle{empty}}, %is default, only mentioned to show alternative usage of customized mystyle
            width=\textwidth,
            height=\textheight,     
            keepaspectratio,
            frame]{yourfile.pdf}            
\end{document}

答案2

另一个答案*:根据我的假设在 memoir typeblock 中正确对齐 pdfpages 导入,对于布局,需要选择和之间twoside的差异作为水平偏移。要找到的值,请取消注释命令(打印当前参数值),并使用选项编译一次,然后使用选定的再次编译。记下值并计算差异。如果在文档内切换布局选项是可行的,那么可能有一种方法可以自动执行此操作;我使用了计算器。由于尚不清楚的原因(参见链接的问题),计算值需要稍微调整;我减去了。\spinemarginonesidetwoside\spinemargin\theonesidetwoside1pt

如果您希望 PDF 在类型块内垂直居中,请将垂直偏移量设置为零。如果它应该与顶部或底部对齐,则需要计算类型区域高度和缩放的导入 PDF 的高度之间的差值。如果导入的 PDF 是 A4 格式,则高宽比是二的平方根。由于 PDF 被缩放以致其宽度等于\textwidth,因此将 与 sqrt(2) 相乘\textwidth可得出导入 PDF 的缩放高度。类型区域的高度由 给出\textheight。所需的偏移量是两个高度差的一半,对于顶部或底部对齐,可以是正值或负值。同样,这个值需要稍微调整;我减去了1.68pt

\documentclass[a4paper,12pt,twoside,onecolumn,openright,final,showtrims]{memoir}%

\usepackage{pdfpages}
\usepackage{showframe}  %show page geometry

\begin{document}

%   \the\spinemargin \quad      %compute xoffset = \spinemargin(twoside) - \spinemargine(oneside) = -21pt
%   \the\textwidth \quad    
%   \the\textheight         %compute yoffset = .5 (\textheight - scaled-a4paper-height) = 25.18pt, with scaled-a4paper-height = \textwidth * (height(a4paper) / width(a4paper)) = \textwidth * sqrt(2)

\includepdf[pages=1-2,
            pagecommand={\thispagestyle{plain}},
            width=\textwidth,
            height=\textheight,     
            keepaspectratio,
            offset=-22pt 23.5pt %for vertically centered alignment, set yoffset=0pt
            ]{a4red.pdf}            
\end{document}

在此处输入图片描述


*虽然我的第一个答案与导入参数有关,但这个答案是关于找到正确的offset值。有人可能会说这个问题应该分开;无论如何,合并答案似乎没有意义。

相关内容