(latexdiffのバージョンが古かったりで微妙だったので書き直した 2018年3月)
はじめに
論文や報告書で,TeXの文章を人に添削してもらう機会は多い. それなりに長い文章を添削してもらうとき,前回の添削からどこをどう訂正したのかわからないと, 何度も読まないといけないだろうし,申し訳ない.
自分が訂正した部分をわかりやすくするために,
などがあると思うが,どれも手動でやらなければならないので,めんどくさい. 画期的なソリューションが必要である.
探してみるとlatexdiffというのがあり,gitから呼ぶと便利らしいので,使ってみる.
latexdiff
latexdiffは2つのTeXファイルの差分をTeXファイルで出力してくれるアプリケーション.
サイトはこちら . 普通にapt-getからインストールできた.
$ sudo apt-get install latexdiff $ latexdiff --version Latexmk, John Collins, 1 January 2015. Version 4.41
とりあえず,以下のTeXファイルを適当に作る.
before.tex
\documentclass{jarticle} \begin{document} 消したところは赤で表示される. \end{document}
after.tex
\documentclass{jarticle} \begin{document} 追加したところは青で表示される. \end{document}
あとは以下のコマンドを叩く.
$ latexdiff -e utf8 -t CFONT before.tex after.tex > diff.tex
文字コードは nkf –guess とかで調べる. ちなみに指定しないと,日本語が文字化けしてコンパイルできなかった.
コンパイルするとこんな感じのPDFファイルができる.便利.
latexdiff-git
このままでも使えなくはないけど,変更前のファイルを残しておかないといけない. めんどくさいし,なによりださい. もともとgit使って管理しているなら,前のコミットをlatexdiffの入力として使える.
$ latexdiff-git -r -t CFONT -e utf8 test.tex
とすれば,差分ファイルが出力される.
直前以外のコミットと現在のファイルの差分を出力したいときは
$ latexdiff-git -r HEAD~1 -e utf8 -t CFONT main.tex
などでリビジョンを指定することもできる.
複数ファイルにまたがるとき
ここまでのやり方だと,inputのようなコマンドを使用しているときに,うまく差分ファイルを生成することができない. こちらによると,flattenというオプションを指定すればいいらしい.
以下のようなファイルで実際にやってみると,ちゃんとdiffファイルが生成された.
$ latexdiff -e utf8 --flatten main.tex main2.tex > diff.tex
\documentclass{jarticle} \begin{document} \input{before.tex} \end{document}