测量页面的剩余部分(如果其有标题)并将其插入到动态命令中

测量页面的剩余部分(如果其有标题)并将其插入到动态命令中

好的,我目前正在写一份报告(在文章类中),其中有一节都是化学光谱。我认为每页两个光谱是一个不错的数字,所以我写了

\RequirePackage{calc}
\newlength{\halfpage}
\setlength{\halfpage}{\textheight/2}
\newcommand{\twoandabitperpage}{height=\halfpage}
\newcommand\mygraphicspage[2][]{\centering\expandafter\includegraphics\expandafter[#1]{#2}}

这意味着我可以说\mygraphicspage[\twoandabitperpage]{spectrum_1.pdg}\mygraphicspage[\twoandabitperpage]{spectrum_2.pdg},这样一页上就能给我一些很好的光谱。(请注意,我需要 s \expandafter,否则我的代码会崩溃。我不完全理解它,但它就在那里,我猜它是有效的)。

“太棒了!”我心里想。但实际上,效果并不好。我的光谱部分如下:

\part{Spectras!}
\section{Spectrum One}
\mygraphicspage[\twoandabitperpage]{spectrum_1.pdf}
\section{Spectrum Two}
\mygraphicspage[\twoandabitperpage]{spectrum_2.pdf}

因此,当有部分或多个部分在起作用时(因为它们的标题占页面的理想大小),占用页面的一半并将其作为我的图像高度并不总是可行的。

于是我去谷歌搜索:我发现了这个

\newlength\remainder
\newcommand\measurepage{\dimexpr\pagegoal-\pagetotal-\baselineskip\relax}
\remainder=\measurepage\relax\the\remainder

因此,根据我的理解(我可能错了,因为我不太了解 TeX [我搞不清楚如何发出命令\mygraphicspage...]),它的作用是测量页面的剩余部分,可能通过一些黑魔法 — 当然,在定义页面的剩余长度应称为 之后remainder。然后,它会打印出来?这就是最后一行的用途吗?

无论如何,我希望能够定义

\newlength{\almosthalfpage}
\setlength{\almosthalfpage}{\textheight-\remainder/2}

其中\remainder由相关页面定义。仅当我使用长度 时,才会指定此页面\almosthalfpage

例如,假设我的 textheight=40em,部分标题占 4em,两个部分标题各占 2em。那么,页面的剩余部分为 32em。因此,我的单个图像高度应为 16em。此剩余的 32em 由 定义,但仅当我为该特定页面\remainder指定图像height(它是 的函数)时才如此。\remainder

如果这完全没有意义,我真的很抱歉……任何帮助都将不胜感激!在次要方面,我将不胜感激任何人对传达我目前拥有的代码的更好方法发表评论(即,我应该使用\def而不是\newcommand,和\let如何我该使用这些命令吗?等等等等...)。

谢谢你!

相关内容