为什么我不能用计算将大小乘以整数?

为什么我不能用计算将大小乘以整数?

这就是我正在做的事情:

\documentclass{article}
\usepackage{calc}
\newlength{\foo}
\newcommand{\zzz}{5}
\setlength{\foo}{\zzz * 2in}
\usepackage[paperwidth=\foo,paperheight=\foo]{geometry}
\begin{document}
\end{document}

我越来越:

! Illegal unit of measure (pt inserted).
<to be read again>
                   *
l.5 \setlength{\foo}{\zzz * 2in}

怎样做才正确?

答案1

指令参数的顺序\setlength很重要。您的代码有

\newlength{\foo}
\newcommand{\zzz}{5}
\setlength{\foo}{\zzz * 2in}

TeX 以标量 (5) 开始,并被告知将其乘以长度 (2in)。这种即时类型更改(此处:从标量到长度变量)是不允许的。

相反,表达式的语法

\setlength{\foo}{2in * \zzz}

是完全可以接受的,因为 TeX 从一个长度(2 英寸)开始,并将其乘以一个标量(5),得到另一个长度(10 英寸)。

答案2

\documentclass{article}
\usepackage{calc}
\newlength{\foo}
\newcommand{\zzz}{5}
\setlength{\foo}{ 2in * \zzz }
\usepackage[paperwidth=\foo,paperheight=\foo]{geometry}
\begin{document}
\end{document}

相关内容