latexdiff-vcでGit差分に基づく変更箇所を示した原稿PDFを出力
関連:LaTeX,latexdiff-vc
目的
Git管理されている LaTeX 文書について、あるコミットとの差分を可視化した PDF と、通常の差分なし PDF を生成する。
前提
platex + dvipdfmx環境
latexdiff-vc の --pdf オプションは pdflatex 前提であり、platex + dvipdfmx では利用できない。
Cf. platex + dvipdfmx 環境において latexdiff-vc を使って差分あり/なしの PDF を出力する方法
日本語対応
latexdiff / latexdiff-vc のデフォルトマークアップ(ulem による下線・取り消し線)は、日本語の自動改行処理を妨げ、差分 PDF で日本語の行が右にはみ出すことがある。
Cf. 日本語 LaTeX 文書で latexdiff により差分 PDF を生成した際に発生する行はみ出し問題の対処
方針
latexdiff-vc は 差分入りの .tex を生成するところまでに使い、PDF 化は platex + dvipdfmx で行う。
差分マークアップには -t CFONT を指定し、下線・取り消し線を使わず色とフォント変更のみで差分を表現することで、日本語の行分割を安定させる。
手順
1. 差分用 .tex の生成(CFONTスタイル)
Git 管理下のディレクトリで、比較対象コミット <commit> を指定して次を実行する。
実行後、差分入り LaTeX ファイルfile-diff-<commit>.texが生成される。
code:bash
latexdiff-vc -t CFONT --git --force --revision=<commit> file.tex
2. 通常版 PDF(差分なし)の生成
元の file.tex を platex + dvipdfmx でコンパイルする。pdfが生成される。
code:bash
platex file.tex
platex file.tex # 参照解決が必要なら追加実行
dvipdfmx file.dvi
3. 差分版 PDF(差分あり)の生成
生成された file-diff-<commit>.tex を同様にコンパイルする。pdfが生成される。
code:bash
platex file-diff-<commit>.tex
platex file-diff-<commit>.tex # 必要に応じて追加実行
dvipdfmx file-diff-<commit>.dvi
まとめ
platex + dvipdfmx 環境では latexdiff-vc --pdf は使用せず、latexdiff-vc -t CFONT で差分 .tex を生成し、platex + dvipdfmx で通常版・差分版をそれぞれコンパイルする。
-t CFONT を用いることで、日本語の行はみ出し問題を抑えつつ、差分あり/なし両方の PDF を安定して得ることができる。
latexdiff トラブルシューティング