我有一份完整的 150 页 LaTeX 文档,为 A4 格式。我基本上想打印它确切地保持原样,但我想添加裁剪部分边距。我想删除内侧 10 毫米、外侧 40 毫米、顶部 40 毫米和底部 30 毫米。
基本上,我想要做的就是将文档以原始尺寸打印在 A4 纸上,然后将其裁剪为最终尺寸。为此,我必须向印刷店提供具有最终文档尺寸的版本或带有裁剪标记的 A4 版本。
不幸的是,我尝试裁剪页面的所有尝试都导致错误的结果,文档的某些部分被截断。我尝试了裁剪包,但它似乎只在您想要为给定文档添加边距时才有效,而在您想要删除边距时则无效。几何也没有帮助(也许我使用错了)。我可以指定 paperheight 和 voffset,但如果我尝试更改 paperwidth,它会弄乱边距,而且我没有找到一种方法来从纸张内部取 10 毫米,从外部取 40 毫米。
实现我想要做的事情的最简单的解决方案是什么?
编辑:根据 Werner 的回复,我认为这是我正在处理的一个最小例子:
\documentclass[11pt,twoside,BCOR=10mm]{scrreprt}
\typearea[current]{calc}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{setspace}
\usepackage{blindtext}
\usepackage[a4paper]{geometry}
\geometry{layoutheight=230mm,layoutwidth=160mm,layoutvoffset=30mm,layouthoffset=10mm,showcrop}
\typearea[current]{last}
\setlength{\textheight}{200mm}
\begin{document}\blindtext[8]\end{document}
答案1
我猜geometry
假设oneside
在使用裁切标记时有效。因此,您可以\layouthoffset
在发货期间调整使用条件:
\documentclass[11pt,twoside,BCOR=10mm]{scrreprt}
\typearea[current]{calc}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{setspace,blindtext,etoolbox}
\usepackage[a4paper]{geometry}
\makeatletter
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\Gm@pageframes}{\ifGm@showcrop}{%
\ifGm@showcrop
\ifodd\count\z@
\setlength{\Gm@layouthoffset}{10mm}%
\else
\addtolength{\Gm@layouthoffset}{40mm}
\fi%
}{}{}
\geometry{layoutheight=230mm,layoutwidth=160mm,layoutvoffset=30mm,showcrop}
\typearea[current]{last}
\setlength{\textheight}{200mm}
\begin{document}
\blindtext[8]
\end{document}
在发货页面上\Gm@pageframes
插入适当的补丁。\Gm@layouthoffset
答案2
您可以自己放置裁剪标记,借助background
包。我使用ifoddpage
包在奇数页和偶数页之间切换。您可以通过更改等中的 x 和 y 值来更改标记的位置。($(current page.north west)+(10mm,0mm)$) -- ++(0,-60mm)
我没有费心考虑美观性(这对您来说是一项家庭作业 ;)...)
\documentclass[11pt,twoside,BCOR=10mm]{scrreprt}
\typearea[current]{calc}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{setspace}
\usepackage{blindtext}
\usepackage[a4paper]{geometry}
\geometry{layoutheight=230mm,layoutwidth=160mm,layoutvoffset=30mm,layouthoffset=10mm,showframe}
\typearea[current]{last}
\setlength{\textheight}{200mm}
\usepackage{ifoddpage}
\usepackage{background}
\usetikzlibrary{calc}
\backgroundsetup{
scale=1,
opacity=1,
angle=0,
color=black,
contents={%
\checkoddpage
\ifoddpage
\begin{tikzpicture}[remember picture,overlay]
%% marks on left side (odd page, inner)
\draw[thick,orange] ($(current page.north west)+(10mm,0mm)$) -- ++(0,-60mm);
\draw[thick,orange] ($(current page.north west)+(0mm,-40mm)$) -- ++(30mm,0in);
\draw[thick,orange] ($(current page.south west)+(10mm,0mm)$) -- ++(0,50mm);
\draw[thick,orange] ($(current page.south west)+(0mm,30mm)$) -- ++(30mm,0in);
%% marks on right side (odd page, outer)
\draw[thick,orange] ($(current page.north east)+(-40mm,0mm)$) -- ++(0,-60mm);
\draw[thick,orange] ($(current page.north east)+(0mm,-40mm)$) -- ++(-60mm,0in);
\draw[thick,orange] ($(current page.south east)+(-40mm,0mm)$) -- ++(0,50mm);
\draw[thick,orange] ($(current page.south east)+(0mm,30mm)$) -- ++(-60mm,0in);
\end{tikzpicture}%
\else
\begin{tikzpicture}[remember picture,overlay]
%% marks on left side (even page, inner)
\draw[thick,orange] ($(current page.north west)+(40mm,0mm)$) -- ++(0,-60mm);
\draw[thick,orange] ($(current page.north west)+(0mm,-40mm)$) -- ++(60mm,0in);
\draw[thick,orange] ($(current page.south west)+(40mm,0mm)$) -- ++(0,50mm);
\draw[thick,orange] ($(current page.south west)+(0mm,30mm)$) -- ++(60mm,0in);
%% marks on right side (even page, outer)
\draw[thick,orange] ($(current page.north east)+(-10mm,0mm)$) -- ++(0,-60mm);
\draw[thick,orange] ($(current page.north east)+(0mm,-40mm)$) -- ++(-30mm,0in);
\draw[thick,orange] ($(current page.south east)+(-10mm,0mm)$) -- ++(0,50mm);
\draw[thick,orange] ($(current page.south east)+(0mm,30mm)$) -- ++(-30mm,0in);
\end{tikzpicture}%
\fi
}
}
\begin{document}
\blindtext[8]
\end{document}