2010-06-22 120 views
5

Hi LaTeX愛好者和TeX程序員!LaTeX:只有剩下足夠的空間時才顯示塊

我目前正在爲應該自動生成的某種傳單開發單頁文檔類。不幸的是,有限的空間數量無法顯示頁面上的所有內容,因此我需要完全跳過一些文章(我不希望傳單上打印的文章只有一半)。

在僞代碼,這就是我要尋找的命令:

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

和用例是:

  • 如果留在頁面上對下面的文章足夠的垂直空間,完全打印文章。否則,只將標題添加到「其他文章」列表中。
  • 如果剩下足夠的垂直空間,請添加一個大廣告,否則添加一個較小的廣告或者什麼也不做。

我很確定會有辦法獲得這個。例如,在垂直和水平模式下工作的TeX命令\leaders只會在剩餘空間足夠的情況下插入引導程序。不幸的是,我不想重複任何事情,而其他行爲也可能很棒。

任何有用的命令的關鍵字和技巧將不勝感激。你不必發佈完整的解決方案(但你當然可以)。

非常感謝,
克里斯托夫

回答

1

的「needspace」包可以給你你在找什麼,如果有,雖然沒有足夠的空間把它插入一個分頁符:

http://ctan.org/pkg/needspace

你會用這樣的東西:

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

如果你不婉TA當沒有足夠的空間分頁符,而是希望有更多的內容,但與保存,直到下一個頁面的minipage,那麼你就需要研究如何LaTeX的句柄「浮」:

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

+0

我不認爲'needspace'包將對我有用,因爲我不想在任何情況下生成第二個頁面。 無論如何,'needspace'包使用的兩個宏'\ pagetotal'和'\ pagegoal'看起來很有希望。我想我會先看看他們。謝謝你的提示。 – tux21b 2010-06-22 17:14:26

+0

@ tux21b:對不起,我沒有仔細閱讀你的問題。你可能已經這樣做了,但是使用Tex的條件或者LaTeX中的'ifthen'包(如果/ then/else也會這樣做)可能有助於實現你想要的基礎結構。哦,另外,尋求幫助的最佳位置可能在http://www.latex-community.org的論壇上。 – 2010-06-22 17:54:33

+0

呵呵,你說得對。我現在已經解決了ifthen包和兩個宏'\ pagetotal'和'\ pagegoal'的問題。所以,感謝您的幫助和鏈接。 – tux21b 2010-06-22 18:04:03

相關問題