OS X 上自動編譯 LaTeX 與自動更新

在 Windows 上如果用 Adobe Acorbat Reader,會因為預覽器把檔案鎖住,得先關掉再開。在 OS X 或是 Linux 則好一些,常見的預覽器如 OS X 上的 Preview 以及 Skim 或是 Linux 上的 Evince 都能夠自動更新檔案。配上 latexmk 這類自動編譯的 script 事情就變得複雜,要編譯一份略複雜的檔案,需要執行數次 latex 加上 bibtex,如果編譯失敗了,預覽器通常會停止更新。

而 latexmk 提供適當選項,除了編譯亦能夠掌管預覽流程。假設我們用 OS X 上的 Skim 來閱讀 pdf 檔案,在家目錄下的 .latexmkrc 中(也就是 ~/.latexmkrc)底下的設定:

$pdf_previewer = 'osascript -e "set theFile to POSIX file \"%S\" as alias" -e "set thePath to POSIX path of theFile" -e "tell application \"Skim\"" -e " set theDocs to get documents whose path is thePath" -e " if (count of theDocs) > 0 then revert theDocs" -e " if (count of theDocs) = 0 then open theDocs" -e "end tell"';
$pdf_update_method = 4;
$pdf_update_command = 'osascript -e "set theFile to POSIX file \"%S\" as alias" -e "set thePath to POSIX path of theFile" -e "tell application \"Skim\"" -e " set theDocs to get documents whose path is thePath" -e " if (count of theDocs) > 0 then revert theDocs" -e "end tell"';
    其中我們用到了 AppleScript 做條件判斷:

  1. 第一行設定要用什麼程式開啟 pdf 檔。一般在 OS X 可以用 open -a Skim 指定 Skim 為開啟的程式。但實務上 Skim 或許已經開啟檔案了,用 open -a Skim 並不會自動更新,所以加入檢查是否已開啟,若開啟則更新,若無則開啟。
  2. 第二行設定 latexmk 該如何更新檔案,選用 4 才能夠自設指令。
  3. 第三行說明用何指令更新檔案,此處若沒有開啟該檔案則無動作。

將相關設定寫入 .latexmkrc 後,之後用 latexmk 編譯則會使用這些設定,配合前幾篇提到的用 LaTeX Box 作為 vim 編輯的外掛,選用連續編譯模式(令 vim 的全域變數 g:LatexBox_latexmk_preview_continuously1)就可以在每次儲存檔案後,自動用 Skim 開啟及更新檔案囉。

用 Xy-pic 畫二維交換圖

在 LaTeX 下要如何用 Xy-pic 畫包含 2-cell 的交換圖(commutative diagram)呢?如果只用 Xy-pic 的基本功能,至少得用三個指令完成,先畫出兩個彎曲的 1-cell 並在中間插入一個 2-cell,但我們可以藉助 Xy-pic 額外的功能將簡化我們的工作。首先要先開啓選項 2cell 如: Continue reading

OS X 的 LaTeX 寫作環境

近幾個月換了 Macbook 用作平日工作的電腦,從 Windows 到 OS X 變化不小,但慣用的工具都類似,加上類  Unix 的環境還有些 OS X 才有的軟體如 Skim,其實比起 Windows 還要方便些。

首先是 LaTeX Box 這個 plug-in,使用 Latexmk 自動編譯 LaTeX 檔案的程式,比起 Vim-LaTeX 的 multiple compile 更為迅速。配合功能強大的 pdf 閱讀軟體 skim ,可以隨時自動更新檔案,並且支援 SyncTex 提供的反向定位功能。稍稍修改 LaTeX Box 的編譯指令,就可以同時在原始檔以及輸出的 pdf 中作正向以及反向定位,加速編輯流程。

所謂的正反向定位也就是在 skim 下點完成的 pdf 檔可以要 vim 定位到對應的文字區塊,而反過也可以在 vim 下點文字區塊,對應到輸出檔的位置。有時候在校稿的同時,常常需要反覆在成品以及原始檔間互相對照,找到對應的位置編輯。使用這個功能就可以很輕鬆的在閱讀軟體下直接定位到原始檔的位置;相對地,也可以很快速地在原始檔中要確認輸出結果。

Continue reading

LaTeX 轉成 WordPress

WordPress 因為支援 LaTeX 的數學語法深受許多數學家喜愛,如陶哲軒等人都用 wordpress 系統作為他們的 blog ,但是 WordPress 的線上編輯器並不是那麼的好用,而且要用 Latex 語法必須用 $ latex 標記語法開始,並用 $ 再結尾,當與文字交錯出現時,要打相當多的字,而且都是行內數式。要用其他排版方式就得另外指令標記,與原本 \LaTeX 的習慣有些不符合。所以就有人寫了(應該也是個 CS 或 Math 的教授)工具,將 LaTeX 檔案轉成 WordPress 的格式,只要將輸出的結果複製貼上到 WP 的編輯器就可以了!

下載與詳細資料:http://lucatrevisan.wordpress.com/2009/02/21/converting-latex-to-wordpress/

注:程式需要 Python 2.5 以上,Linux/Mac OS X 應該系統都有,而 Windows 的只需到 Python 的官方網頁下載即可。