2013年9月12日 星期四

LyX 中的文繞圖功能

之前寫過一篇「LyX 中文文章 文繞圖的設定方法」 , 但最近又遇到了非常詭異的問題,使我下定決定要來好好研究一下 LyX 文件中文繞圖的設定。

文繞圖(或文繞表格) 這個功能是由 wrapfig 套件所提供的,因此詳細的解說都寫在 wrapfig 說明文件中。這裡紀錄的只是解說文件中的一小部份,更詳細的說明請參考套件說明文件。




首先,插入浮動的文繞圖環境,從  Insert > Float > Figure Wrap Float  選擇, 如下圖。

放置這個文繞圖浮動框的時候,需要注意放置位置,才能得出最好的排版效果。因此,這裡有幾點要注意的:

  • 獨立成一行,不要放在某個段落之後,或是段落開頭,這樣文字編排的時候容易出問題。
  • 絕對不能放在 List 裡面,List 前面。放在 List 環境的後方 OK, 但要空一個空白行(\par)。(其實不空好像也沒關係)
  • 注意圖有沒有排放在跨頁的交界處。
  • 不要放在任何 title, section, 等標題處。
  • 建議手動設定文繞圖的寬度、跨行數,以取得最佳的排版效果。
  • 如果圖片遇到 List 的內容,非常容易造成 List 右方排出空白, 要盡量避免文繞圖的圖,跨過內容很長的 List 環境。
插入一個文繞圖區塊,獨立放置一行,如下圖。
縮起文繞圖區塊

展開文繞圖區塊


接下來,就該了解 wrapfigure 的參數代表的意義。在  wrap:圖 灰色區塊上按滑鼠右鍵,選擇 Settings... 就會跳出設定視窗。如下圖

這裡面的設定值解釋如下:
  • Placement 設定圖放置的位置。只能夠放在段落的左或右兩端,不能夠放置在中間。一般這裡用預設值就好了。
  • Width 寬度設定。如果設定為 0, 則程式自動判斷圖片寬度。
  • Overhang(遮蔽範圍): 設定要凸出(或內縮)邊界多少距離。
  • Line span(行跨距): 設定圖片高度橫跨的段落行數。如果沒有打勾,則程式自動判斷橫跨的行數。
以下直接看排版結果,對設定值如何影響排版結果會有比較直觀的感覺。
另外,在排版英文文件的時候,文繞圖很容易成功。但排版中文文件的時候,就會有一些問題。因此先以英文繞圖的文件做示範。圖中的網格, 一格就是 1cm。 

使用自動設定, 圖片的上下方會有較多空白。

設定 line span=7, 不夠多,因此下方文字蓋到圖上去了。

設定 width=5cm, 不夠寬,因此圖片被擠出頁面外。

設定 overhang=1.5cm, 圖片突出右邊界 1.5cm. (設定負值的話就往內縮)。
對照網格,更能看出 1.5cm 是指那一段距離。

錯誤範例, 文繞圖圖片放在 List 前一行,排版出現錯誤結果!

錯誤範例, 文繞圖圖片放在 List 項目裡面,圖片直接排到第二頁空白處, 排版出現錯誤結果!

圖片放在 List 後,OK! 排版正確。

英文文件的文繞圖,只需要注意放置位置即可。而且建議手動指定 width, line span 以得到最佳的排版效果。(顯示模式的數學式算 3 行 line span.)

至於中文文件的文繞圖功能,就比較麻煩一點點(其實也沒多麻煩)。

跟英文文件一樣,先按照正常方式放置圖片,如下左圖原始文件中的灰色區塊;得到輸出結果如下右圖。可以看到中文內容會整個蓋過圖片。這時候不論 line span 設定多大,結果都一樣。
錯誤結果1
為了讓文繞圖功能正常啟用,欲繞圖的段落前方,需加上 \mbox{} 的一個 TeX Code. 該段落才會正確避開圖片。

第一個段落加上 \mbox{}, 該段文字正確避開圖片。

第二個段落加上 \mbox{}, 兩段文字正確避開圖片。但 List 的文字右方整個空出來了。
由於圖片跨到 list, 手動調整 width、 line span 讓 List 區域正常顯示。
設定 Width=9cm, Line span=12 (可以觀查到圖左方的確有 12 行文字繞過圖了)

設定 Width=10.5cm, Line span=12, 可以觀察到 List 前面一行文字沒有做繞圖。
 看上圖,調整完 Width, Line span 之後,會發現 List 下方的中文字竟然也做文繞圖的動作了。這段如果不要做文繞圖,一樣在行首加入 \mbox{} 的 TeX Code 即可解決了。
把不應該做文繞圖的段落前方也加上 \mbox{} 命令。
這樣,就可以正確編排出一個文繞圖的文件了。

至於,為何加上 \mbox{} 文繞圖就會正常,這個我真的不知道。如果有人知道,也歡迎留言指導一下了。

希望大家都能在 LyX 的中文文件中順利的運用文繞圖的功能。

沒有留言:

張貼留言