我对此一无所知,TeX
但想改进一个功能。
这是初始函数:
\newcommand{\setnewvsize}[1]{%
\global\paperheight\dimexpr#1+\initialVerticalInset\relax%
\global\pdfpageheight\paperheight%
\global\textheight\paperheight%
\global\@colht\textheight \global\@colroom\textheight \global\vsize\textheight%
\global\initialVerticalInset=0pt
}
以下是我想要做的事情:
\newlength{\bottomMargin}
\setlength{\bottomMargin}{3mm}
\newcommand{\setnewvsize}[1]{%
\global\paperheight\dimexpr#1+\initialVerticalInset\relax%
\global\pdfpageheight\paperheight%
\global\textheight\paperheight - \bottomMargin%
\global\@colht\textheight \global\@colroom\textheight \global\vsize\textheight%
\global\initialVerticalInset=0pt
}
我想设置\textheight
为\paperheight - \bottomMargin
。
我不知道这是否有意义,因为我不知道TeX
。
我如何在函数中执行这个计算?
答案1
您只需要\dimexpr .. \relax
在需要的地方使用具有维度的内联操作。
更像 LaTeX 的方式是使用
\global\setlength\textheight{\dimexpr\paperheight-\bottomMargin}
更简单的版本是
\global\textheight\dimexpr\paperheight-bottomMargin\relax
(如果您更好地理解了任务,您可以在设置的尺寸后使用等号\global\textheight=\dimexpr⟨whatever⟩\relax
)。