📒
latexmkからSkimで表示中のPDFをリロードさせる
はじめに
Mac上でのLaTeXによる文書作成において,SkimはPDFリーダーとしてよく用いられる.SkimはPDFの変更に合わせてPDFをリロードする機能を有しているが,この機能の使用は推奨されていない.私の環境でもリロードの際にPDFの表示がうまくいかなくなった(ページが真っ白になった)状況が発生したため,latexmkがコンパイル終了時にSkimの起動スクリプトを実行するようにして対処した.
環境
- M1 mac 12.0.1
- TeXLive 2021
- uplatex: 59450
- dvipdfmx: 61101
- latexmk: 60617
- ※ 本記事ではlatexmkによるコンパイルを想定する
- skim 1.6.6
やったこと
- コンパイルしたい.texファイルがあるディレクトリに
.latexmkrc
とreload_skim.sh
を作成する -
.latexmkrc
には$success_cmd = "/bin/bash $out_dir/reload_skim.sh $out_dir/%B.pdf"
を書く -
reload_skim.sh
には以下を書く(Skim Wikiより)
#!/bin/bash
/usr/bin/osascript << EOF
set theFile to POSIX file "$1" as alias
tell application "Skim"
activate
set theDocs to get documents whose path is (get POSIX path of theFile)
if (count of theDocs) > 0 then revert theDocs
open theFile
end tell
EOF
補足・参考記事など
- latexmkのドキュメント (TeXLiveがインストールされていれば
texdoc latexmk
で見られます) - コンパイルしたいファイルと同じディレクトリに
reload_skim.sh
を置く特別な理由はない(適当なディレクトリにおいて$HOME/.latexmkrc
の方で起動スクリプトを設定すれば問題ない).
Discussion