滑动装订校正

滑动装订校正

classicthesis我正在打印一份文件,该文件排版为我的论文( ,课程)的 A5 小册子版本scrreprt。我将其打印在 A4 纸上,并使用一些常用的办公工具自行装订。现在的问题是,由于整个东西的折叠方式,中间的纸张会被推到外面。

我想在每个第 4 页逐步应用约 -0.4 毫米的装订偏移校正(与 BCOR 的工作方式相同)(以便每页纸都有一致的装订校正)。有没有在 LaTeX 中自动执行此操作的方法?

我意识到使用包手动就可以实现这一点geometry,但是我已经\areaset在其他地方使用了,并且有人告诉我这两者不能很好地混合。

编辑

正如我所说,这些页面是 A5 尺寸,但打印在 A4 纸上,对折并装订: 在此处输入图片描述

我想要修复的问题是这样的: 在此处输入图片描述

我想把小册子的边缘剪掉,这样所有的纸张就对齐了。这样会缩短页面的外边距,但中间会变多,外面会变少。因此需要更改装订校正。

我目前正在将其排版为单面 A5 文档,并在打印机设置中将其打印为“小册子、双面、短边翻转”,这样一页纸上就会有四页。这就是为什么我需要每四页增加一次校正(虽然不是那么重要,但 0.1 毫米的偏移可能难以察觉——但我会知道,这会让我在半夜醒来)。

答案1

以下是我本月在博客中提出的两步解决方案(德语:小册子):

  1. 像以前一样将文档制作成单页(A5)
  2. 使用以下代码来拼版小册子
\documentclass[
   paper=296mm:210mm,
]{scrartcl}

\usepackage{xparse}

\usepackage{graphicx}

\usepackage{tikz}
   \usetikzlibrary{calc}
   \tikzset{
      every node/.style = {
         inner sep = 0pt,
         outer sep = 0pt,
      }
   }

\ExplSyntaxOn

\int_new:N \l_booklet_sheets_int
\int_new:N \l_booklet_counter_int
\int_new:N \l_booklet_total_pages_int
\int_new:N \l_booklet_total_pages_to_four_int
\dim_new:N \l_booklet_creep_dim

\cs_new:Npn \booklet_get_page:nn #1#2 {
   \int_compare:nT { ( #1 ) <= \l_booklet_total_pages_int } {
      \includegraphics [
         width = 0.5\paperwidth,
         height = \paperheight,
         keepaspectratio,
         page = #1,
      ] { #2 }
   }
}

\NewDocumentCommand { \MakeBooklet } { O{0mm} m } {
   \file_if_exist:nTF { #2 .pdf } {
      \int_zero:N \l_booklet_counter_int
      \dim_zero:N \l_booklet_creep_dim
      \pdfximage { #2 .pdf }
      \int_set:Nn \l_booklet_total_pages_int
         { \the \pdflastximagepages }
      \int_compare:nTF { \int_mod:nn { \l_booklet_total_pages_int } { 4 } != 0 } {
         \int_set:Nn \l_booklet_total_pages_to_four_int
            { \l_booklet_total_pages_int + 4 - \int_mod:nn { \l_booklet_total_pages_int } { 4 } }
      } {
         \int_set_eq:NN \l_booklet_total_pages_to_four_int \l_booklet_total_pages_int
      }
      \int_set:Nn \l_booklet_sheets_int
         { \l_booklet_total_pages_to_four_int / 2 }
      \int_do_while:nn { \l_booklet_counter_int < \l_booklet_sheets_int } {
         \clearpage
         \int_incr:N \l_booklet_counter_int
         \begin{tikzpicture}[remember~picture, overlay]
            \clip (current~page.north) rectangle (current~page.south~east);
            \node [anchor = west] at ($
               (current~page.center)
               -
               (\dim_use:N \l_booklet_creep_dim, 0)
            $) {
               \booklet_get_page:nn
                  { \int_use:N \l_booklet_counter_int }
                  { #2 }
            };
         \end{tikzpicture}
         \begin{tikzpicture}[remember~picture, overlay]
            \clip (current~page.north~west) rectangle (current~page.south);
            \node [anchor = east] at ($
               (current~page.center)
               +
               (\dim_use:N \l_booklet_creep_dim, 0)
            $) {
               \booklet_get_page:nn
                  { \int_eval:n { \l_booklet_total_pages_to_four_int - \l_booklet_counter_int + 1 } }
                  { #2 }
            };
         \end{tikzpicture}
         \clearpage
         \int_incr:N \l_booklet_counter_int
         \begin{tikzpicture}[remember~picture, overlay]
            \clip (current~page.north~west) rectangle (current~page.south);
            \node [anchor = east] at ($
               (current~page.center)
               +
               (\dim_use:N \l_booklet_creep_dim, 0)
            $) {
               \booklet_get_page:nn
                  { \int_use:N \l_booklet_counter_int }
                  { #2 }
            };
         \end{tikzpicture}
         \begin{tikzpicture}[remember~picture, overlay]
            \clip (current~page.north) rectangle (current~page.south~east);
            \node [anchor = west] at ($
               (current~page.center)
               -
               (\dim_use:N \l_booklet_creep_dim, 0)
            $) {
               \booklet_get_page:nn
                  { \int_eval:n { \l_booklet_total_pages_to_four_int - \l_booklet_counter_int + 1 } }
                  { #2 }
            };
         \end{tikzpicture}
         \dim_set:Nn \l_booklet_creep_dim {
            #1 * \l_booklet_counter_int / 2
         }
      }
   } {
      \Huge
      \noindent \textbf { Error! } \\
      File ~ \texttt { #2 .pdf } ~ not ~ found.
   }
}

\ExplSyntaxOff

\pagestyle{empty}

\begin{document}

% #1 = shift per sheet (= thickness of paper, see below) [optional]
% #2 = filename without suffix (must be a PDF)
\MakeBooklet[1mm]{singe-pages}

\end{document}

打印纸的纸张大小作为类选项给出,paper=b:h其中b= 2 × 小册子宽度,并且h= 小册子高度。然后,只需复制实现代码并使用即可\MakeBooklet。运行pdflatex(至少)两次以获取正确的位置。

您可以在我的德语博客文章(上面有链接)中找到有关实施的详细信息……


如何计算每页的偏移量?

最内页(中间页)与最外页(第一页和最后一页)之间的偏移——蠕变- 可以用这个公式计算:

蠕变 = (页数(包括封面)-4) ÷ 4 × 纸张厚度
蠕变 = (纸张数量 - 1) × 纸张厚度

某张纸上的页面的移动——我们称之为– 用这个:

v = 蠕变 ÷ (纸张数量 – 1) × (纸张数量 – 1)
v = 纸张厚度 × (纸张数量 – 1)

其中“页”指单页(A5)文档的页面,“页”指打印的(A4)纸张。

相关内容