代码之家  ›  专栏  ›  技术社区  ›  tux21b

乳胶:仅在有足够空间的情况下显示块

  •  5
  • tux21b  · 技术社区  · 15 年前

    嗨,乳胶爱好者和德州程序员!

    我目前正在为一些应该自动生成的传单开发单页文档类。不幸的是,有限的空间并不能显示页面上的所有内容,所以我需要完全跳过一些文章(我不希望传单上只打印一半的文章)。

    在伪代码中,这是我要查找的命令:

    \if_sufficient_vspace_left
        {<big block/minipage with an article>}
        {<otherwise do nothing or something else>}
    

    用例包括:

    • 如果页面上留有足够的垂直空间,可以完全打印文章。否则,只在“其他文章”列表中添加标题。
    • 如果有足够的垂直空间,添加一个大广告,否则添加一个小广告或什么都不做。

    我很肯定会有办法得到这个。例如,tex命令 \leaders 在垂直和水平模式下工作,仅在有足够空间的情况下插入引线。Unfortunately I don't want to repeat anything, and an else action might be great too.

    任何有用命令的关键词和提示都将受到赞赏。你不必发布完整的解决方案(当然可以)。

    多谢,
    克里斯托夫

    1 回复  |  直到 15 年前
        1
  •  1
  •   Herbert Sitz    15 年前

    The 'needspace' package may give you what you're looking for, although if there is not enough space it inserts a pagebreak:

    http://ctan.org/pkg/needspace

    您可以这样使用它:

    \needspace{5\BaseLineSkip}    %  assume you need 5 lines for minipage
        {<big block/minipage with an article>}
    

    如果在没有足够空间的情况下不希望分页符,而是希望更多的内容,但在下一页之前保存了小页面,那么您将需要研究乳胶如何处理“浮动”:

    http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions