在撰寫一篇論文時, 常常會需要去修改它, 使得論文更加完善。
對使用 latex 寫論文的人來說, 如果原先有一個 paper.tex, 現在從 paper.tex 出發, 做了一些修改得到 refine-paper.tex。
要如何知道哪些地方做了修改?
從 source tex file 去看嗎? 我想很少會人會做這種事情。
也許你可以在轉寫 refine-paper.tex 時, 撰寫良好的註解,知道哪些地方做了修改。 但如果接下來有 refine2-paper.tex, refine3-paper.tex, 那不就會出現一大堆註解,我想要寫清楚註解會不太容易。
另一個方式是編譯 paper.tex 得到 paper.pdf, 編譯 refine-paper.tex 得到 refine-paper.pdf, 然後去看看這兩個 pdf 檔有什麼不同。 我想這個方式會比看原始碼輕鬆許多。
不過針對這個狀況, 有一個非常漂亮的解決方式。
它是會比較兩個 tex 檔,製作出一個 diff.tex。
將這個 diff.tex 編譯得到 diff.pdf 檔之後, 打開來看你會發現有修改過的地方會被清楚的標示
刪除的地方用紅色標記 並劃上刪除獻
新增的地方用藍色標記 並加上底線
如何弄出出上述的 diff.tex 檔
- 首先你需要有 perl。
- 下載 latexdiff.zip 壓縮檔 然後解壓縮得到 latexdiff 資料夾。
- 載點: http://www.ctan.org/tex-archive/support/latexdiff/
- Step1 (非必要,但與 Step2 有關)
- 將 paper.tex 改名為 old.tex 將 refine-paper 改名為 new.tex 然後將 old.tex 與 new.tex 放入 latexdiff 資料夾。
- Step2
>>> cd /path/to/latexdiff
>>> .latexdiff old.tex new.tex > diff.tex or >>> .latexdiff-so old.tex new.tex > diff.tex
假如你略過 Step1, 則你要做的是將 paper.tex 與 refine-paper.tex 放到 latexdiff 資料夾,然後輸入
>>> ./latexdiff paper.tex refine-paper.tex or >>> ./latexdiff-so paper.tex refine-paper.tex
如果 latexdiff 指令不能使用,可以換成 latexdiff-so 試試看。
- Step3
- 編譯 diff.tex 得到 diff.pdf ,觀看 diff.pdf 就可以清楚知道新舊兩個版本之間差異的內容了。
Ubuntu
不過要是你使用的作業系統是 debian/ubuntu 的話,在終端機下輸入
>>> sudo apt-get install latexdiff
就為自動安裝 latexdiff。
安裝好之後,不論是在哪個目錄,都可以直接使用 latexdiff 這個指令 [1] 。
[1] | 因為它會將 latexdiff 所在目錄加入 $PATH 環境變數中。 |