latex 序言中的 plus/min 与 +/-

latex 序言中的 plus/min 与 +/-

在下面的代码中,我需要在用过的地方使用 +/-,在用过的地方使用加/减。

\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 是无害的,但没有任何作用。

相关内容