【LaTeX】文章を自動でコンパイルする
こんにちは、しきゆらです
時期的に、卒論や修論を書き始める時期でしょうか?
論文を書くときは、おそらくTeXで書くと思いますが
これがまた面倒なやつ
文章を直すたびにコンパイルをし直す必要があったり
画像を埋め込むときは複数回コンパイルしないといけなかったりと
何かと面倒
これをなんとかすることはできないかと思って調べてみたら・・・
ありました!
latexmkというコマンドがありました
どうもMacTexを入れて少しばかり設定すれば使えるようになりました
詳しくは続きからどうぞ
手順
使うための手順としては
- MacTexをインストールする
- brewでghostscript、skimをインストールする
- .latexmkrcファイルに設定を書き込む
- TeX文章を書く
こんな感じ
一つ目のMacTeXに関しては配布サイトからダウンロードしてインストールしてください
brewでghostscript、skimをインストールする
homebrewが入っていない場合は、こちらのサイトをもとにインストールしてください
といっても、以下のスクリプトをターミナルから実行するだけなんですが
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
homebrewはいわゆるパッケージ管理のためのソフトです
これを入れておけば大半のアプリケーションをコマンド一つでインストールできます
brewが使えるようになったら上記の2つをインストールします
# ghostscriptのインストール brew install ghostscript # skimをインストール brew cask install skim
エディタが入ってない場合は、Atomとかを入れておけばいいのではないかと
# atomをインストール brew cask install atom
skimをインストールしたら、設定をしましょう
skimの設定を開きます
画像のように、「同期する」タブの「ファイルの変更をチェック」にチェックを入れます
ただし、これだけだとファイルを更新するたびに確認ダイアログが出てきてしまうので
ターミナルから以下のコマンドを実行します
defaults write -app Skim SKAutoReloadFileUpdate -boolean true
.latexmkrcファイルに設定を書く
適当なエディタを開いて、以下の内容を書き込みます
#!/usr/bin/env perl $latex = 'platex -synctex=1 -halt-on-error %O %S'; $bibtex = 'upbibtex %O %B'; $dvipdf = 'dvipdfmx %O -o %D %S'; $makeindex = 'mendex -U %O -o %D %S'; $max_repeat = 5; $pdf_mode = 3; # generates pdf via dvipdfmx # Prevent latexmk from removing PDF after typeset. # This enables Skim to chase the update in PDF automatically. $pvc_view_file_via_temporary = 0;# Use Skim as a previewer $pdf_previewer = 'open -a /Applications/Skim.app'; # Skimの場所を指定する
スクリプト内の$latexの部分は、コンパイルする時に使うものを指定できます
これを~/.latexmkrcとなるように置きます
また、論文内の「、」「。」を「,」「.」に置き換える必要がある場合は
#!/usr/bin/env perl $latex = "find . -type f -name '*.tex' | xargs sed -i '' -e 's/、/,/g' -e 's/。/./g'; uplatex -synctex=1 -halt-on-error %O %S";
これを.latexmkrcファイルに書き込み
TeXファイルと同じところに置きます
TeXで文章を書く
これまでの設定が終わったらあとは文章を書くだけ
・・・と行きたいのですが最後に一つだけ
ターミナルから以下のコマンドを実行します
latexmk -pvc hogehoge.tex
hogehoge.texは現在書いているTeXファイルに置き換えてください
なんの意味があるかというと
hogehoge.texの更新があるときに自動でコンパイルしてね
というようなコマンドです
あとは文章を作成するだけですね
画像を入れたり、参考文献をbibで作っていても
いい感じにすべて自動でやってくれます
これで毎回面倒なコンパイルを勝手にやってくれます
結果はSkimに反映されるので確認も楽
今回はTeXでの文章を書くときの環境を作りました
おわり
ディスカッション
コメント一覧
まだ、コメントがありません