整页背景图像精确居中

整页背景图像精确居中

情况如下:

  1. 我必须使用memoir(v3.6j),与geometry(v5.6)和LuaTeX版本 beta-0.70.1-2011061410(rev 4277)A5项目在最终输出中,每边必须大 3 毫米,即 PDF 尺寸应为154x216毫米。我使用crop(v1.9)包来设置裁切标记和正确的纸张尺寸。

  2. 该项目有两张背景图像,分别用于左页和右页,适合154x216毫米尺寸。为此,这次我必须使用(v2.0c)(尽管非常欢迎有关和包的eso-pic建议)。backgroundwallpaper

  3. 虽然我可以手动调整这些背景图片的位置,但我想知道是否有一种自动的方法来放置它们确切地以页面为中心,如果可能的话,独立于使用crop包更改纸张尺寸(注释 l.13,取消注释 l.14)。

以下是示例文档代码。

\documentclass[10pt,twoside]{memoir}

\DisemulatePackage{geometry}
\DisemulatePackage{crop}

\usepackage{geometry}
\geometry{%
    papersize={148mm,210mm},%
    hmargin={2cm,2cm},%
    vmargin={2cm,2.2cm},
    showframe}

\usepackage[width=15.4cm,height=21.6cm,center,cam]{crop}
%\usepackage[width=16.3cm,height=22.5cm,center,cam]{crop}

\usepackage{xcolor}

\newcommand{\bgleft}{{\color{yellow}\rule{154mm}{216mm}}}% Background for even pages

\newcommand{\bgright}{{\color{green}\rule{154mm}{216mm}}}% Background for odd pages

\usepackage{eso-pic}
\usepackage{ifthen}

\usepackage{lipsum}

\begin{document}

\AddToShipoutPicture{\ifthenelse{\isodd{\thepage}}%
    {\bgright}%
    {\bgleft}
    }

\lipsum[1-15]

\end{document}

答案1

这是我在没有crop、、geometry或的情况下的尝试eso-pic

我假设您需要颜色在装饰物上渗出,因此需要裁切标记下方的背景(这就是第一条神秘的线所做的)。

注意尺寸的使用memoir。要移除/添加装饰,您需要做的就是更新\setstocksize\settrims

\RequirePackage{atbegshi}\AtBeginShipoutInit
\documentclass[10pt,twoside,showtrims]{memoir}
\setstocksize{216mm}{154mm}
\settrimmedsize{210mm}{148mm}{*}
\settrims{3mm}{3mm}
\setulmarginsandblock{20mm}{22mm}{*}
\setlrmarginsandblock{20mm}{20mm}{*}
\checkandfixthelayout
\trimLmarks
\usepackage{xcolor}
\newcommand{\bgleft}{{\color{yellow}\rule{\stockwidth}{\stockheight}}}% Background for even pages
\newcommand{\bgright}{{\color{green}\rule{\stockwidth}{\stockheight}}}% Background for odd pages
\usepackage{picture}
\usepackage{ifthen}
\usepackage{lipsum}
\begin{document}
\AtBeginShipout{%
    \AtBeginShipoutUpperLeft{%
        \ifthenelse{\isodd{\thepage}}%
            {\put(0,-\stockheight){\bgright}}%
            {\put(0,-\stockheight){\bgleft}}%
      }%
}
\lipsum[1-15]
\end{document}

根据 Meho 的评论,我重新开始画图,结果如下。我还没有参数化图像大小、修剪后的大小,也没有参数化 3 毫米的差异,但我相信这个解决方案适用于任何任意库存尺寸和修剪后最终为 A5 的修剪几何形状(甚至正确吗?)。

我将彩色背景的尺寸减半,以便于测试。它们的东北角与 Meho 图像的中心点相对应。

取消注释所示的行并调整那里的值——彩色框不应该相对于页面(和文本)移动。

那么,就是这样:

\RequirePackage{atbegshi}\AtBeginShipoutInit
\documentclass[10pt,twoside,draft,showtrims,a5paper]{memoir}
\settypeoutlayoutunit{mm}
\usepackage{lipsum}
\usepackage{ifthen}
\usepackage{picture}
\usepackage{xcolor}
\settrimmedsize{210mm}{148mm}{*}
% Un-comment to play with stock size and trimming arrangements
% \setstocksize{256mm}{184mm}
% \settrims{10mm}{10mm}
\setulmarginsandblock{20mm}{22mm}{*}
\setlrmarginsandblock{20mm}{30mm}{*}
\checkandfixthelayout
\trimLmarks
\newcommand{\bgleft}{{\color{yellow!50}\rule{77mm}{108mm}}}% Background for even pages
\newcommand{\bgright}{{\color{green!50}\rule{77mm}{108mm}}}% Background for odd pages
\newlength{\yboth}
\newlength{\xrecto}
\newlength{\xverso}
\yboth=\dimexpr\trimtop+\paperheight+3mm
\xrecto=\dimexpr\stockwidth-\trimedge-\paperwidth-3mm
\xverso=\dimexpr\trimedge-3mm
\AtBeginShipout{%
    \AtBeginShipoutUpperLeft{%
        \ifthenelse{\isodd{\thepage}}%
            {\put(\xrecto,-\yboth){\bgright}}%
            {\put(\xverso,-\yboth){\bgleft}}%
      }%
}
\begin{document}
\lipsum[1-15]
\end{document}

答案2

我无需以下操作即可获得精确定位crop

\usepackage{geometry}
\geometry{%
    papersize={154mm,216mm},
    layoutsize={148mm,210mm},
    hmargin={2cm,2cm},
    vmargin={2cm,2.2cm}
}

\AddToShipoutPicture{%
  \ifthenelse{\isodd{\thepage}}
    {\kern-62mm\bgright}
    {\bgleft}%
    }

但是,showcrop传递给\geometry不执行任何操作,可能是因为\AddToShipoutPicture之后有钩子geometry

那里应该可以计算出 62 毫米的合理性。:)

从一开始就裁剪这两张图像不是更简单吗?

相关内容