2008/02/23

[TeX] 編寫大型文件的技巧

在編寫大型文件這件事上, Latex 可以說是絕佳的工具, 底下是我個人使用 latex 編寫長文章時會用到的技巧, 簡單記錄一下, 以便將來忘記時可以回來參考. 將來有新的心得或發現的話, 會再來修改.

把文稿拆成多份 tex 檔

利用 \include, \input, \includeonly 可以把文稿拆成好多個小檔案, 比方說, introduction 這個 section 的內容可以單獨寫在 introduction.tex 裡, 然後在主文稿內用 \include{introduction} 把它 include 進來.

這麼做的好處是 (1) 個別 tex 的檔案都小小的, 方便編輯; (2) 如果文稿是多人編寫而成, 各作者處理自己負責的部分時不會互相衝突到; 比方說, 教授在改 introduction 時, 我就可以寫其他章節. (3) 通常, 我們寫完一小段之後, 就會想要看看編排的結果, 此時可以取消其他 tex 檔的 inclusiion, 以減少 compile 的時間.

\input 指令可以擺在 preamble 區, 所以我們可以跟據不同的版面需求, 把 \documentclass 等最基本的定義寫在不同的 tex 檔裡面, 以方便切換排版設計.

有關 \input, \include 和 \includeonly 的用法在每本談 Latex 的書都會提到, 在這裡就不贅述了. 另外, 如果有使用 CJK package的話, 則相對應的指令為 \CJKinput 和 \CJKinclude.

善用 draft 模式

在 \documentclass 指定 draft 選項可以讓 latex 不處理圖檔, 因此可以*極大量*減少 compile 的時間.

在 draft (草稿)模式下, 圖檔的位置及其大小會框出來, 但裡面會顯示 foo.eps 這類的文字. 整體版面和不用 draft mode 時一樣.

把檔案分類好

把檔案分門別類可以增加處理效率; 以圖檔為例, \graphicspath 指令可以定義圖檔所在目錄, 比方說, \graphicspath{{./eps/}{./pdf/}} 會告訴 latex 依序去 eps 和 pdf 這兩個目錄下找圖檔. (注意: 每個圖檔最好都有個獨一無二的檔名).

tex 文稿的分類就比較麻煩一些, 因為這牽涉到 TEXINPUTS 這個環境變數, 在不同的環境下有不同的處理方式, 沒辦法把搜尋路徑直接定義在文稿中, 所以我都是直接把 tex 檔全部放在同個目錄, 以避免麻煩. (註: chapterfolder 和 import 這兩個 package 專門處理這個問題, 但我沒有用過, 不敢斷言.)

定義一些 Macro 以增加文稿的彈性

有些出版商會規定排版的細節, 比方說 figure 1 這個詞, 有的出版商會規定寫成 Fig. 1, 有的規定是 Figure 1; 這種情況就是使用macro的最佳機會:

\newcommand{\Fig}[1]{Fig.~\ref{#1}}

要用的時候就下 \Fig{fig:foo} 這個指令, 會輸出 Fig. 和 fig:foo 這張圖的編號.

沒有留言: