是否可以将一些行浮动在页面的顶部(或底部)?

是否可以将一些行浮动在页面的顶部(或底部)?

问题:我想知道是否可以告诉乳胶将浮动元素(自动)放置在 1)页面顶部的一些行或 2)页面底部的一些行?

澄清:

  • 我知道浮点数的 htbpH 选项,但它们都不能满足我的要求。
  • 我还是希望花车能够飘起来。
  • 如果浮动出现在段落中间,我不会反对,否则 H 选项就可以了。
  • 我知道这个问题,其中询问将浮点数放在哪里以达到较高的印刷标准(但没有询问如何在 TeX 中做到这一点)。
  • 我多少知道 TeX 非常适用于段落,这可能是无法实现的原因。如果是这样,这是一个可以接受的答案。

背景

在 WN Lansburgh (1961) 撰写的精美排版指南(瑞典语)“Sättningsregler”中,建议按上述方式放置图像。此外,这也是在较旧的(TeX 之前的)书籍中可以找到的东西。下面是我从一本 1904 年的书中扫描的两个示例图像,其中展示了这种放置方式。(希望分辨率足够低,这样我就不会违反某些版权法。)

示例图像

示例第一页 示例第二页

答案1

所以..这只是重新定义了b做得好t只需要两倍的工作量(但对于今晚来说太多了:-)添加新的“变体b”,比如说B保持原始b变量不变是可能的,但需要做更多的工作,因为你需要找到所有乳胶认为它“知道”可能的浮动区域的地方并让它知道另外两个。

它基本上让标准算法工作,因此在页面底部留出浮动空间,然后它将页面从底部任意分割 5 个基线,这可能不会实际上在那一点分割,因为它可能是等式或图像或任何东西,但它会在某个地方分割并且图形被插入,注意它使用\textfloatsep图形上方和下方的一半(因此空间加起来而不必对乳胶进行太多更改,所以您可能需要增加该值......

在此处输入图片描述

三个新的“几乎 b”花车和一个t

\documentclass[a4paper]{article}
\renewcommand\bottomfraction{.7}
\setcounter{bottomnumber}{1}% article default but don't change it:-)

\makeatletter
\def \@cflb {%
    \let\@elt\@comflelt
    \setbox\@tempboxa \vbox{}%
    \@botlist
    \setbox\@outputbox \vbox{%
%start of change
\setbox\tw@\vsplit\@outputbox to\dimexpr\ht\@outputbox-5\normalbaselineskip\relax
\unvbox\tw@
\vskip .5\textfloatsep
\unvbox\@tempboxa
\vskip -\floatsep
\vskip .5\textfloatsep
\unvbox\@outputbox
%end of change
                             }%
    \let\@elt\relax
    \xdef\@freelist{\@freelist\@botlist}%
    \global \let \@botlist\@empty
}
\makeatother



\errorcontextlines1000
\def\a{One \refstepcounter{enumi}\theenumi\ two \Roman{enumi}, three four chicken dug dog elephant penguin,\ifnum\value{enumi}<27\ \alph{enumi}\fi. }
\def\b{\a\a\a\a\begin{equation}\theenumi+1=\refstepcounter{enumi}\theenumi\end{equation}\a\a\a\ifodd\value{enumi}\a\a\fi\par}
\def\c{\a\a\b\a\a\b\b\a}
\newcommand\f[2][b]{\begin{figure}[#1]\centering\rule{5cm}{\ifodd\value{figure} 3cm\else6cm\fi}\caption{#2}\end{figure}}
\begin{document}

\a
\f[b]{zz}
\c
\c

\f{qq}
\a
\f{jj}
\f[tp]{ttt}
\b

\c\c
\end{document}

相关内容