Gitを使用した文書の管理

基本

LaTeX文書をGitで管理して,Gitホスティングサービス(GitHub,Bitbucketなど)と Overleaf を使えば,研究室外で編集する時の煩わしさが減る.
GitHub と Overleaf の連携機能(有料)が便利だった.
やたらとコミットの数が増えてしまうが,論文原稿の場合はあまり気にする必要がないし,わかりにくくなったら節目の段階でタグをつければ良い.

.gitignore

LaTeX文書に関するリポジトリでは,.gitignoreは大抵同じようなものになるはずなので,ここに示しておく.

*~
*.swp
*.aux
*.blg
*.dvi
*.lof
*.log
*.lot
*.out
*.pdf
*.toc
*.fdb_latexmk
*.fls
*-oldtmp-*.tex

Makefile

本文が main.tex,bibtexがmain.bibの場合は,次の通りにMakefileを作成しておく.
命令の記述内のインデントについてはタブに変換することを忘れないように.

PLATEX := platex
PBIB := pbibtex
DVIPDF := dvipdfmx -p a4

.PHONY: all clean
all: main

main:
        $(eval FILE := main)
        $(PLATEX) $(FILE)
        $(PBIB) $(FILE)
        $(PLATEX) $(FILE)
        $(PLATEX) $(FILE)
        $(DVIPDF) $(FILE) 

clean:
        -rm -f *~ *.log *.dvi *.blg *.aux *.out *.bbl *.lot *.toc *.lof *.pdf

latexdiff-git

現在のファイルの状況やコミット間での差分表示をするためのコマンド.
比較したい時点のコミットのハッシュを ABCDEFG とすると,

latexdiff-git --force -r ABCDEFG -e utf8 filename.tex

とすることで,差分を強調した tex ファイルが生成される.
ABCDEFGのようなコミットのハッシュではなく,HEADやHEAD^^ 等でも可.

tex ファイルの中に input や include で挿入した箇所がある場合は

latexdiff-git --force --flatten -r ABCDEFG -e utf8 filename.tex

のように --flatten をつけると input をした内容も展開してくれる.
ただし,--flatten は bib も展開してしまい,文献の欄のdiffがうまく機能しない(自分だけ?).

土木学会論文集の原稿のMakefileでは,下記のように書いておいた(メインのファイルは ronbun-j.tex).

diff:
	latexdiff-git --force -r ABCDEFG -e utf8 ronbun-j.tex # 1回目本原稿提出時のコミットのハッシュ(例:ABCDEFG)を置換する
	$(PLATEX) ronbun-j-diffABCDEFG
	$(PBIB) ronbun-j-diffABCDEFG.aux
	$(PLATEX) ronbun-j-diffABCDEFG
	$(PLATEX) ronbun-j-diffABCDEFG
	$(DVIPDF) ronbun-j-diffABCDEFG

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2020-06-29 (Mon) 08:24:41 (88d)