#author("2020-06-29T17:24:12+09:00","default:Miyashita","Miyashita")
#author("2020-06-29T17:24:41+09:00","default:Miyashita","Miyashita")
*Gitを使用した文書の管理 [#y6a71f6a]
**基本 [#md054b97]
LaTeX文書をGitで管理して,Gitホスティングサービス(GitHub,Bitbucketなど)と 
[[Overleaf>https://www.overleaf.com?r=7883716f&rm=d&rs=b]] を使えば,研究室外で編集する時の煩わしさが減る.~
GitHub と Overleaf の連携機能(有料)が便利だった.~
やたらとコミットの数が増えてしまうが,論文原稿の場合はあまり気にする必要がないし,わかりにくくなったら節目の段階でタグをつければ良い.

**.gitignore [#je85249d]
LaTeX文書に関するリポジトリでは,.gitignoreは大抵同じようなものになるはずなので,ここに示しておく.
#codeprettify{{
*~
*.swp
*.aux
*.blg
*.dvi
*.lof
*.log
*.lot
*.out
*.pdf
*.toc
*.fdb_latexmk
*.fls
*-oldtmp-*.tex
}}

**Makefile [#n3b56a3c]
本文が main.tex,bibtexがmain.bibの場合は,次の通りにMakefileを作成しておく.~
命令の記述内のインデントについてはタブに変換することを忘れないように.
~
#codeprettify{{
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 [#j867526f]
現在のファイルの状況やコミット間での差分表示をするためのコマンド.~
比較したい時点のコミットのハッシュを ABCDEFG とすると,
#codeprettify{{
latexdiff-git --force -r ABCDEFG -e utf8 filename.tex
}}
とすることで,差分を強調した tex ファイルが生成される.~
ABCDEFGのようなコミットのハッシュではなく,HEADやHEAD^^ 等でも可.~
~


tex ファイルの中に input や include で挿入した箇所がある場合は
#codeprettify{{
latexdiff-git --force --flatten -r ABCDEFG -e utf8 filename.tex
}}
のように --flatten をつけると input をした内容も展開してくれる.~
ただし,--flatten は bib も展開してしまい,bblがおかしくなるので, 文献の欄のdiffがうまく機能しない(自分だけ?).~
ただし,--flatten は bib も展開してしまい,文献の欄のdiffがうまく機能しない(自分だけ?).~
~


土木学会論文集の原稿のMakefileでは,下記のように書いておいた(メインのファイルは ronbun-j.tex).
#codeprettify{{
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