我自己的尝试

我自己的尝试

我有一个多页 PDF 文件(可以将其导出为一组图像),需要将其排版为平面布置图。它看起来应该像这样:

平面图示例

我可以手动创建这样的计划,但我正在寻找创建页面计划的好方法以编程方式

我没有这方面的经验,但我认为可以使用 TikZ 来实现这一点,因为它允许嵌入外部图像。我的第一个想法是,人们可以(滥用)矩阵环境或者使用groupplots库来排列图片。由于我是 TikZ 新手,欢迎提出任何建议。

答案1

您的解决方案很棒!有人可能会想出更好的方法,但我采用了您的代码,添加了页码,解决了页面高度问题。我还为最后一页添加了一个条件,以检查它是否已作为最后一页双页的一部分打印出来。

为了举个例子,我使用了biblatex任何 TeX 发行版都应该提供的手册,因为我没有你的杂志文件。

对于页码:我使用\llap{<number>}\rlap{<number>}将页码放在包含的 pdf 上,而不使用任何额外空间。如果您想做任何额外的样式(颜色、大小、字体形状、可能的框等),这些都可以添加到参数中。如果您打算这样做,我建议定义一个宏,这样就可以在一个地方定义样式并在各种和\Xlap命令中使用。\llap\rlap

对于页面高度问题:任何浮动都不允许跨越页面,因此不能超过\textheight。但图形没有必要放在浮动内。我使用了\captionof{figure}{A Flatplan}(来自capt-of包)来包含不带环境的标题figure

最后一页:如果最后一页是奇数(手册中的情况就是如此biblatex),您的解决方案将打印两次:一次作为最终双页展开的右半部分,另一次作为单独的一页。我添加了一个条件表达式,仅当最后一页是奇数时才输出最后的单页不是奇数(又称偶数)。

完整代码:

\documentclass{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{graphicx}
\usepackage{multido}
\usepackage{capt-of} % added for caption without float

\def\filename{biblatex.pdf}
\def\scale{.05}

\pdfximage{\filename}

\newcount\N  % counter for the last doublepage spread
\N=\pdflastximagepages\relax
\advance\N by -1\relax 
\divide\N by 2\relax

\begin{document}
    \centering
%    \hspace{\dimexpr(8.5in*\scale)/2\relax}
    \fbox{\includegraphics[scale=\scale,page=1]{\filename}\llap{1}}
    \multido{\ileft=2+2,\iright=3+2}{\the\N}{%
        \fbox{%
            \rlap{\ileft}\includegraphics[scale=\scale,page=\ileft]{\filename}
            \includegraphics[scale=\scale,page=\iright]{\filename}\llap{\iright}%
        }
    }
    \ifodd\the\pdflastximagepages\else% only output the last page if not already included with a spread
         \fbox{\rlap{\the\pdflastximagepages}\includegraphics[scale=\scale,page=\the\pdflastximagepages]{\filename}}
    \fi
    \captionof{figure}{A Flatplan}
\end{document}

输出:

在此处输入图片描述

在此处输入图片描述

答案2

我自己的尝试

经过反复尝试,这是我目前的尝试:

\documentclass{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{graphicx}
\usepackage{multido}

\def\filename{test.pdf}
\def\scale{.05}

\pdfximage{\filename}

\newcount\N  % counter for the last doublepage spread
\N=\pdflastximagepages\relax
\advance\N by -1\relax 
\divide\N by 2\relax

\begin{document}
\begin{figure}[p]
    \centering
    \fbox{\includegraphics[scale=\scale,page=1]{\filename}}
    \multido{\ileft=2+2,\iright=3+2}{\the\N}{%
        \fbox{%
            \includegraphics[scale=\scale,page=\ileft]{\filename}
            \includegraphics[scale=\scale,page=\iright]{\filename}
        }
    }
    \fbox{\includegraphics[scale=\scale,page=\the\pdflastximagepages]{\filename}}
    \caption{A Flatplan}
\end{figure}
\end{document}

这是一本 139 页的杂志的test.pdf结果: 结果

仍下落不明

  • 每张图片下方的页码,左右对齐

已知问题

  • 仅适用于pdflatex
  • 如果图形高于页面,则将被截断

相关内容