该crop
软件包提供了一种向页面添加裁剪标记和其他元素的绝佳方式,以便页面可以打印。其中一个元素是信息文本,其中包含有关作业名称、当前时间等的信息。
此文本打印时与要裁切的实际页面之间有一定的距离,但由于技术原因,此距离可能太近,与实际页面的距离太近。当然,您可以轻松停用此文本,但也许您只是想将其移远一些。
这是我们的起点:
\documentclass[paper=155mm:230mm]{scrbook}
\usepackage[frame,width=169.8truemm,height=247.4truemm,cam,pdftex]{crop}
\setlength{\voffset}{7.4mm}
\setlength{\hoffset}{7.4mm}
\begin{document}
Test
\end{document}
答案1
现在要将文本向上移动,不幸的是,我们必须重新定义 的内部宏crop
,即\CROP@@info
,即使我们只调整 行\vskip3mm
。但也许您还想在此行中添加一些内容,而不是用 的可用功能覆盖它crop
?
@UlrikeFischer 在下面的评论中提供的简单方法是:
\newcommand\raiseinfo[1]{\raisebox{3mm}[0pt][0pt]{#1}}
\makeatletter
\def\CROP@font{raiseinfo}
\makeatother
在此基础上,您还可以在文本行中添加其他内容,最好使用较小的字体,例如\footnotesize
:
\makeatletter
\newcommand\raiseinfo[1]{\raisebox{3mm}[0pt][0pt]{\footnotesize#1\x My additional information}}
\def\CROP@font{raiseinfo}
\makeatother
那么附加信息是什么呢?如果您使用的是git
,那么它可能是提交此 PDF 所基于的信息:
\makeatletter
\immediate\write18{git log -1 --format="\@percentchar h from \@percentchar cr" > currentVersion}
\newcommand\raiseinfo[1]{\raisebox{3mm}[0pt][0pt]{\footnotesize#1\x\IfFileExists{currentVersion}{\input{currentVersion}}{No commit info}}}
\def\CROP@font{raiseinfo}
\makeatother
但是,如果您需要修改整个命令,那么您也可以破解底层的基本命令:
\documentclass[paper=155mm:230mm]{scrbook}
\usepackage[frame,width=169.8truemm,height=247.4truemm,cam,pdftex]{crop}
\setlength{\voffset}{7.4mm}
\setlength{\hoffset}{7.4mm}
\makeatletter
\renewcommand*\CROP@@info{{%
\global\advance\CROP@index\@ne
\def\x{\discretionary{}{}{\hbox{\kern.5em---\kern.5em}}}%
\advance\paperwidth-20\p@
\dimen@4pt
\ifx\CROP@pagecolor\@empty
\else
\advance\dimen@\CROP@overlap
\fi
\hb@xt@\z@{%
\hss
\vbox to\z@{%
\centering
\hsize\paperwidth
\vss
\normalfont
\normalsize
\expandafter\csname\CROP@font\endcsname{%
``\jobname''\x
\the\year/\the\month/\the\day\x
\CROP@time\x
page\kern.5em\thepage\x
\#\the\CROP@index
\strut
}%
\vskip3mm
}%
\hss
}%
}}
\makeatother
\begin{document}
Test
\end{document}
我希望这对我以外的人也有帮助,我在 StackExchange 上提问之前很简短。也许这也值得改进https://github.com/rrthomas/crop/tree/master如何使该参数可调?