📝

【LaTex】Overleafでlatexdiffコマンドを使う

に公開

はじめに

この記事では、overleafで2つのPDF間の差分を表示するlatexdiffを使用する方法を説明します。

なお、以下の記事の方法(latexmkrcを使う)でも同じことができますが、筆者の環境ではなぜか動かなかったので、公式ページで紹介されているもう一つの方法について説明します。

https://qiita.com/keith_campbell/items/812508ab081fef1f8d85

なお、こちらの方法は、Overleaf のサポート マネージャー Tom Hejda によって提案されたものです。

前提

プロジェクトには差分を表示したい2つのtexファイルが配置されているとします。パスを指定できるので、必ずしも同じ階層に用意する必要はありません。
image.png

※ latexmkrcは日本語での記述のために書いているものなので、今回のdiff表示のために必要なわけではないです。

% latexmkrc
$latex = 'platex';
$bibtex = 'pbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';

方法

  1. 差分を表示したい2つのtexファイルを用意する(例.before.tex, after.tex)を用意
    before.tex
    スクリーンショット 2025-04-10 21.48.03.png
    after.tex
    スクリーンショット 2025-04-10 21.48.16.png

  2. プロジェクト内に、差分を表示するためのtexファイル(例.diff.tex)を作成
    diff.texの内容は、以下のようにします。

    \RequirePackage{shellesc}
    \ShellEscape{latexdiff before.tex after.tex > main-d.tex}
    \input{main-d}
    \documentclass{dummy}
    \title{Demonstrating latexdiff}
    
  3. diff.texをコンパイルすると、差分が表示されたPDFファイルが生成されます

スクリーンショット 2025-04-10 21.48.27.png

いいね!

latexdiffには色々Optionがあるみたいなので、今後調べてみます。

注意点

差分表示されたPDFが出力されるのは、diff.texをコンパイルした時のみです。before.texやafter.texをコンパイルしたときは、それぞれのコンパイル結果が普通に出力されます。

Discussion