계산에서 크기에 정수를 곱할 수 없는 이유는 무엇입니까?

계산에서 크기에 정수를 곱할 수 없는 이유는 무엇입니까?

이것이 내가 하는 일이다:

\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}

관련 정보