為什麼 \setlength 在序言中不起作用?

為什麼 \setlength 在序言中不起作用?

這就是我正在做的:

\documentclass{article}
\usepackage{calc}
\newcommand{\foo}{0}
\setlength{\foo}{2in + 3in}
\usepackage[paperwidth=\foo,paperheight=\foo]{geometry}
\begin{document}
Hello, world!
\end{document}

我越來越:

! LaTeX Error: Missing \begin{document}.

怎麼了?

答案1

您沒有顯示完整的錯誤訊息,即:

 ! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.4 \setlength{\foo}{2in + 3in}

因為\foo應該是一個長度參數,所以您不能使用\newcommand它來定義它。相反,使用\newlength.當然,下面的程式碼編譯得很好:

\documentclass{article}
\usepackage{calc}
\newlength{\foo}
\setlength{\foo}{2in + 3in}
\usepackage[paperwidth=\foo,paperheight=\foo]{geometry}
\begin{document}
Hello, world!
\end{document}

相關內容