![无法通过计算使裁剪与动态长度和宽度配合使用](https://linux22.com/image/312678/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%E8%AE%A1%E7%AE%97%E4%BD%BF%E8%A3%81%E5%89%AA%E4%B8%8E%E5%8A%A8%E6%80%81%E9%95%BF%E5%BA%A6%E5%92%8C%E5%AE%BD%E5%BA%A6%E9%85%8D%E5%90%88%E4%BD%BF%E7%94%A8.png)
我正在使用XeTeX
,Version 3.1415926-2.4-0.9998
(TeX Live 2012/W32TeX) 设计书籍封面。我想编写一个通用文档,其中包含可自定义的书籍宽度、高度、出血和书脊尺寸,我也可以使用该文档来设计其他尺寸的书籍。我正在使用 calc 包来计算最终的宽度和高度,包括书脊和/或出血。
我无法让裁剪适应动态宽度和长度。下面是 MWE。
\documentclass[12pt]{article}
\usepackage{calc}
\newlength{\bookwidth}
\newlength{\bookheight}
\newlength{\bookspine}
\newlength{\bookbleed}
\newlength{\ltwidth}
\newlength{\cvrwidth}
\newlength{\cvrheight}
\setlength{\bookwidth}{138mm} % metric demy 8vo
\setlength{\bookheight}{216mm} % metric demy 8vo
\setlength{\bookspine}{8mm} % spine based on number of pages
\setlength{\bookbleed}{3mm} % bleed as suggested by printing press
\setlength{\ltwidth}{\bookwidth*\real{2.0} + \bookspine}
\setlength{\cvrwidth}{\bookwidth*\real{2.0} + \bookspine + \bookbleed*\real{2.0}}
\setlength{\cvrheight}{\bookheight + \bookbleed*\real{2.0}}
\usepackage[dvips=false,pdftex=false,vtex=false,margin=0in,paperwidth=\ltwidth,paperheight=\bookheight]{geometry}
%Does not compile with the following
%\usepackage[noaxes,noinfo,cam,dvips,pdftex,center,width=\cvrwidth,height=\cvrheight]{crop}
%The following works though
\usepackage[noaxes,noinfo,cam,dvips,pdftex,center,width=290mm,height=222mm]{crop}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\noindent Book cover content here.\\
\the\ltwidth\\\the\cvrwidth\\\the\cvrheight
\end{document}
答案1
LaTeX 期望包选项是简单字符串或可展开为简单字符串的内容。长度寄存器无法展开,并且会中断,例如,当 LaTeX 尝试找出选项是否已定义时。长度寄存器可以通过在其前面加上前缀来展开\the
:
\usepackage[..., width=\the\cvrwidth, height=\the\cvrheight, ...]{crop}