classicthesis
我正在打印一份文件,该文件排版为我的论文( ,课程)的 A5 小册子版本scrreprt
。我将其打印在 A4 纸上,并使用一些常用的办公工具自行装订。现在的问题是,由于整个东西的折叠方式,中间的纸张会被推到外面。
我想在每个第 4 页逐步应用约 -0.4 毫米的装订偏移校正(与 BCOR 的工作方式相同)(以便每页纸都有一致的装订校正)。有没有在 LaTeX 中自动执行此操作的方法?
我意识到使用包手动就可以实现这一点geometry
,但是我已经\areaset
在其他地方使用了,并且有人告诉我这两者不能很好地混合。
编辑:
正如我所说,这些页面是 A5 尺寸,但打印在 A4 纸上,对折并装订:
我想把小册子的边缘剪掉,这样所有的纸张就对齐了。这样会缩短页面的外边距,但中间会变多,外面会变少。因此需要更改装订校正。
我目前正在将其排版为单面 A5 文档,并在打印机设置中将其打印为“小册子、双面、短边翻转”,这样一页纸上就会有四页。这就是为什么我需要每四页增加一次校正(虽然不是那么重要,但 0.1 毫米的偏移可能难以察觉——但我会知道,这会让我在半夜醒来)。
答案1
以下是我本月在博客中提出的两步解决方案(德语:小册子):
- 像以前一样将文档制作成单页(A5)
- 使用以下代码来拼版小册子
\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)纸张。