看板 LaTeX 關於我們 聯絡資訊
LaTeX 控制 float 物件的參數有好幾個,通常是在 document class 裡設定。 不爽的話可以自己更改。 例如 article.cls 的設定如下: % 每頁上半部最多放兩個 float \setcounter{topnumber}{2} % 每頁上半部最多 70% 可以是 float \renewcommand\topfraction{.7} % 每頁下半部最多放一個 float \setcounter{bottomnumber}{1} % 每頁下半部最多 70% 可以是 float \renewcommand\bottomfraction{.3} % 每頁最多 3 個 float objects \setcounter{totalnumber}{3} % 每頁最少 20% 必須是文字 \renewcommand\textfraction{.2} % 只有 float 的頁面至少要有 50% 是 float % 此數值設很小的話可能會出現一整頁只有一個 % 小小的 float 物件 \renewcommand\floatpagefraction{.5} 以上這些參數和 [bp], [hbp] 這些選項牽連在一起,簡直不是人腦可以理解的。 : 主要發生的情況是(以下pseudo code) : \section{1} : \figure1 : \figure2 : sometext here \ref{figure1、2} : \section{2} : sometext here : 原本預計那兩張圖或者放在那節的最前面或者放在最後面,但出來的結果是 : 1 : {figure1} : sometext \ref{figure1、2} : \newpage : 2 : {figure2} : sometext : 初學LaTeX不到一星期,關於排版幾乎是一無所知。只是因為自己沒看過類似的書才一廂 : 情願認為是惡果 Orz : 請問上面這樣的結果對於排版而言是正確的嗎? 以你的例子而言,可能 figure2 太大,違反上面的一個或多個設定,所以 LaTeX 決定把 figure2 放到下一頁。 這情況很常見,你要用 LaTeX + float 的話就要接受這邏輯。總之兩張大圖是 不太可能同時出現在一頁之中。 如果你不想讓 figure2 跑到 section 2,建議每個 section/chapter 結尾都加上 \clearpage 指令,強迫所有還沒排版到的 floats 都先排出來再 進入下一章節。 : 另外一種情況是 : \section{1} : \figure : sometext here \ref{equation} : \equation : 讓LaTeX自己排出來的結果是 : 1 : somtext \ref{equation} : {figure} : {equation} : 在數學書籍幾乎沒有看過即將要用到的equation被圖片隔開的,所以又一廂情願的以為是 : 惡果 Orz : 所以才想請教有沒有可以讓LaTeX知道文字跟equation之間不可插入圖表的相關設定或者 : 指令。 : 又或者在排版上這樣的情況反而才是正確的呢? : 謝謝! 我沒理解錯誤的話,上例中 figure 和 equation 都是 floats,此時 「讓LaTeX知道文字跟equation之間不可插入圖表的相關設定」這句話基本上違反你 把 equation 設成 float 的原意。 你覺得最後排版怪怪的,和第一例一樣,是因為 LaTeX 自己有決定權把 figure 放在該頁上半部還是下半部。並不是你把 figure 放在 text 之前,LaTeX 就要 聽你的。如果這認知沒有的話,那有你頭痛的了。 總之,我手上的 The LaTeX Companion, 2nd edition p.284,作者承認 LaTeX 對 floats 排版上有很多問題。原因是 LaTeX 開發的年代,一般文件根本 沒有多少圖表這類的 floats,所以簡單幾個控制參數就夠用。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.126.36.193 ※ 文章網址: https://www.ptt.cc/bbs/LaTeX/M.1446802746.A.CDD.html
leo80042: 推 11/10 00:55
lovesnake: 謝謝! 不好意思太晚看到,後來有嘗試clearpage,有比較 11/15 15:09
lovesnake: 符合期待了,雖然可能違反排版上的規則就是了Orz 11/15 15:10