為什麼我不能在 calc 中將大小乘以整數?

為什麼我不能在 calc 中將大小乘以整數?

這就是我正在做的:

\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 以長度 (2in) 開始,然後將其乘以標量 (5),得到另一個長度 (10in)。

答案2

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

相關內容