在下面的代码中,我需要在用过的地方使用 +/-,在用过的地方使用加/减。
\documentclass{amsart}
\usepackage{lipsum}
\usepackage{calc}
\parindent=0 pt
\parskip=12 pt plus 0 pt minus 0 pt
\def\headsep{25pt}
\newcommand{\LAYOUT}[5]{%
\setlength{\hoffset}{0pt}
\setlength{\voffset}{0pt}
\setlength{\topmargin}{#1 - 1in - \voffset - \headheight - \headsep}
\setlength{\oddsidemargin}{#2 - 1in - \hoffset}
\setlength{\evensidemargin}{\oddsidemargin}
\setlength{\textheight}{#3}
\setlength{\textwidth}{#4}
\setlength{\marginparwidth}{#5}
}
\newcommand{\FULLPAGE}{\LAYOUT{1in}{1in}{9in}{6.5in}{0.75in}}
\FULLPAGE
\begin{document}
\lipsum[1-10]
\end{document}
如果我将第 5 行中的加号和减号替换为 + 和 -,则会得到一个难以理解的
"missing begin{document}"
错误。如果我将第 10-11 行中的减号替换为“-”,则会得到一个同样难以理解的错误:
"Missing number, treated as zero.
Illegal unit of measure (pt inserted)."
有人可以解释一下什么时候可以使用 +/- 以及什么时候可以使用加/减吗?
想必有一个很好的理由来解释为什么 latex 的错误信息如此令人费解,为什么这些不一致的情况不断出现?这真的很难向我的合著者解释,他们经常抱怨 latex 是人类发明的最令人恼火的程序。
非常感谢您的建议!Leo
答案1
\setlength{\topmargin}{#1 - 1in - \voffset - \headheight - \headsep}
calc
是一个使用您所加载的包实现的语法的中缀表达式,该语法定义\topmargin
为此时该表达式的固定结果。
\parskip=12 pt plus 0 pt minus 0 pt
是一个原始的跳过分配,最好写成
\setlength{\parskip}{12pt plus 0pt minus 0pt}
在 LaTeX 中,或者在这种情况下,更简单地说
\setlength{\parskip}{12pt}
它设置\parskip
为具有自然长度 12pt 的灵活“粘合”长度,可以收缩到 12pt-0pt 并拉伸到 12pt+0pt 以将页面填充到所需高度。如您所见,指定正或负 0pt 是无害的,但没有任何作用。