我正在使用 memoir,并且激活了 showtrims 设置,我希望它在我的页面上可见。我试图切换整个页面的阴影,但到目前为止,我还没有取得任何重大成功。我四处寻找,但没有发现任何明显可以帮助我的东西,但这是我设法想出的:
\documentclass[showtrims, 10pt]{memoir}
\usepackage{lipsum}
\usepackage{eso-pic}
\stockaiv
\settrims{20mm}{20mm}
\trimFrame
\pagesmallroyalvo
\setbinding{4mm}
\settypeblocksize{*}{24.5pc}{1.618}
\setlrmargins{*}{*}{1.5}
\setulmarginsandblock{6pc}{7pc}{*}
\setmarginnotes{6pt}{6pc}{12pt}
\strictpagecheck
\setlength{\topskip}{1.6\topskip}
\checkandfixthelayout
\begin{document}
\lipsum[1-4]
\newpage
\AddToShipoutPictureBG{
\AtStockUpperLeft{
\colorbox{cyan}{\vspace* \stockheight \hspace \stockwidth}
}
}
\lipsum[1-4]
\AddToShipoutPictureBG{
\AtStockUpperLeft{
}
}
\newpage
\lipsum[1-4]
\end{document}
然而存在两个问题。
我似乎无法在垂直方向上填满页面。只能在水平方向上填满。
我似乎无法通过再次更改船舶出港图片来将其关闭。
我做错了什么?或者有更好的方法吗?
答案1
您可以使用背景包;该\NoBgThispage
命令允许您抑制使用该命令的页面的颜色:
\documentclass[showtrims, 10pt]{memoir}
\usepackage{lipsum}
\usepackage{ifthen,background}
\stockaiv
\settrims{20mm}{20mm}
\trimFrame
\pagesmallroyalvo
\setbinding{4mm}
\settypeblocksize{*}{24.5pc}{1.618}
\setlrmargins{*}{*}{1.5}
\setulmarginsandblock{6pc}{7pc}{*}
\setmarginnotes{6pt}{6pc}{12pt}
\strictpagecheck
\setlength{\topskip}{1.6\topskip}
\checkandfixthelayout
\SetBgScale{1}
\SetBgAngle{0}
\SetBgVshift{10pc}
\SetBgColor{cyan}
\makeatletter
\AddEverypageHook{%
\ifthenelse{\isodd{\value{page}}}{\SetBgHshift{8pc-1.5pt}}{\SetBgHshift{5pc-3pt}}
\SetBgContents{\rule{\paperwidth}{\paperheight}}%
\bg@material
}
\makeatother
\begin{document}
\lipsum[1-4]
\newpage\NoBgThispage
\lipsum[1-4]
\newpage
\lipsum[1-4]
\end{document}
对文档进行两次编译。
使用上述代码,只有实际页面会收到彩色背景;增加规则的宽度和高度,可以获得一些出血。以下是在上述代码中替换\SetBgContents{\rule{\paperwidth}{\paperheight}}
为得到的结果:\SetBgContents{\rule{\dimexpr\paperwidth+3cm\relax}{\dimexpr\paperheight+3cm\relax}}
答案2
您可以使用\pagecolor
指定页面的背景颜色,并\afterpage
从包裹afterpage
\nopagecolor
输出当前页面后重置。
已知的问题:
- 正如@jonalv 所指出的,该解决方案将其自身置于显示纸张尺寸的框架顶部,因此当您同时需要框架和页面颜色时,这不是一个好的解决方案。
代码:
\documentclass{article}
\usepackage{afterpage}
\usepackage{xcolor}
\usepackage{lipsum}% for dummy text
\begin{document}
\pagecolor{yellow!20}\afterpage{\nopagecolor}
\lipsum[1-11]
\pagecolor{blue!20}\afterpage{\pagecolor{red!20}}
\lipsum[1-10]
\end{document}
答案3
我将 改为colorbox
a\rule
并将其固定在左下角,而不是左上角。
为了从后续页面中清除它,我使用了\ClearShipoutPictureBG
\documentclass[showtrims, 10pt]{memoir}
\usepackage{lipsum}
\usepackage{eso-pic}
\stockaiv
\settrims{20mm}{20mm}
\trimFrame
\pagesmallroyalvo
\setbinding{4mm}
\settypeblocksize{*}{24.5pc}{1.618}
\setlrmargins{*}{*}{1.5}
\setulmarginsandblock{6pc}{7pc}{*}
\setmarginnotes{6pt}{6pc}{12pt}
\strictpagecheck
\setlength{\topskip}{1.6\topskip}
\checkandfixthelayout
\begin{document}
\lipsum[1-4]
\newpage
\AddToShipoutPictureBG{
%\AtStockUpperLeft{
% \colorbox{cyan}{\vspace* \stockheight \hspace \stockwidth}
%}
\AtTextLowerLeft{% put it at the left bottom of the text area
\color{cyan}\rule{\textwidth}{\LenToUnit\textheight}%
}%
}
\lipsum[1-4]
\newpage
\lipsum[1-4]
\ClearShipoutPictureBG{}
\end{document}
答案4
根据 cmhughes 的回答,我想出了这个解决方案,它具有丑陋黑客的所有迹象:
\documentclass[showtrims, 10pt]{memoir}
\usepackage{lipsum}
\usepackage{eso-pic}
\usepackage{transparent}
\stockaiv
\settrims{20mm}{20mm}
\trimFrame
\pagesmallroyalvo
\setbinding{4mm}
\settypeblocksize{*}{24.5pc}{1.618}
\setlrmargins{*}{*}{1.5}
\setulmarginsandblock{6pc}{7pc}{*}
\setmarginnotes{6pt}{6pc}{12pt}
\strictpagecheck
\setlength{\topskip}{1.6\topskip}
\checkandfixthelayout
\begin{document}
\lipsum[1-4]
\newpage
\AddToShipoutPictureBG{
%\AtStockUpperLeft{
% \colorbox{cyan}{\vspace* \stockheight \hspace \stockwidth}
%}
\AtStockLowerLeft{% put it at the left bottom of the text area
\color{cyan}\transparent{0.5}\rule{\stockwidth}{\LenToUnit\stockheight}%
}%
}
\lipsum[1-4]
\newpage
\lipsum[1-4]
\ClearShipoutPictureBG{}
\end{document}
这个解决方案的缺点是需要考虑透明度来计算实际颜色,所以它不是理想的解决方案......