環境
WSL Ubuntu 18.04
Windows 10
概要
- latexmkを用いてファイルの監視を行い、変更がある度自動でコンパイルを行いPDFを作成
- Atomとlatexmkを紐づけることで、Atomの内部ビューワーでPDFの更新を確認しながらtexファイルを執筆できる
1. TeX Live(latexmk)のインストール
latexをコンパイルするためのもろもろをインストールします。
OSごとの詳しいインストール方法は TeX Wiki - TeX Live をご参照あれ。
自分の環境では、
$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
$ tar xvzf install-tl-unx.tar.gz
$ cd install-tl-yyyymmdd
$ sudo ./install-tl
PATHを通すため、~/.bash_profileに export PATH='/usr/local/texlive/20xx/bin/x86_64-linux:$PATH'
を追記(20xxの部分はインストールした年によって違う)
Linuxの場合、パッケージ管理コマンド (aptなど) を使ってのインストールを紹介しているサイトも多いですが、かなり古いversionがインストールされる+バージョンのアップデートがうまくできないらしいので、非推奨。
latexmkについて
通常texファイルをpdfにコンパイルする際には、
uplatex → upbibtex → uplatex → uplatex → dvipdfmx
のように、複数回コマンドを打たねばならず、大変
コマンドについての詳細は Latexmkから学ぶPDF化までの処理の流れ が分かりやすい
latexmkは、この一連の流れをすべてまとめてやってくれるツール(コマンド)です。
TeX Liveをインストールすると自動でついてきます。
ただし、 .latexmkrc
を作成し、コンパイラの設定をする必要があります(後述)
※latexmkを使わない場合は、Makeファイルでコマンドを定義しておくと楽
TeX Wiki - Make
2. Atomのダウンロード&インストール
こちらからダウンロード
コマンドラインから起動できるようにPATHを通しておくと良いかも(ただし起動は遅い)
3. Atomのパッケージをインストール
File → Settings → Installでパッケージ名を検索
パッケージ名 | 概要 |
---|---|
latexer | LateXスクリプトの自動補完 |
language-latex | LaTeXのシンタックスハイライト |
pdf-view | Atomの内部PDF viewer |
4. Atomの設定を変更
Atomの内部ビューワーでPDFを表示するため、File → Config からConfig.csonを開き、以下を追記
latex:
alwaysOpenResultInAtom: true
5. .latexmkrcを作成
コンパイルの設定を記述します。ホームディレクトリにおいてもOK(らしい)ですが、使用するスタイルファイルによってLateXエンジン等の設定を変えることがあるので、プロジェクトごとに作成してます。
設定例
# !/usr/bin/env perl
$latex = 'uplatex -synctex=1 -halt-on-error %O %S -kanji=utf8';
$bibtex = 'upbibtex -kanji=utf8 %O %B';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex -U %O -o %D %S';
$max_repeat = 5;
$pdf_mode = 3; # dvi → pdf
# 一時ファイルを出力する回数
$pvc_view_file_via_temporary = 0;
# pdf viewerの指定
# $pdf_previewer = 'open -a /Applications/Skim.app';
詳細は割愛しますが、Atomのpdf viewerを使用したいので、$pdf_previewer
はコメントアウトしています。
設定はこれで完了!
6. latexmkでファイル監視
LateXの編集開始時に、コマンドラインで、プロジェクトフォルダの直下で
latexmk -pvc hogehoge.tex
と入力するだけ!
-pvc
オプションは、hogehoge.texの変更を監視する命令です。
これで、hogehoge.texが更新されるたびに自動的にコンパイル→PDFを更新してくれます。
画像や参考文献の更新・\input{}
コマンドで読み込んだ別のtexファイルの更新時にも自動でコンパイルされます。
dvipdfmx:warningが出たら
dvipdfmx:warning: CMap has higher supplement number than CIDFont: Ryumin-Light
dvipdfmx:warning: Some chracters may not be displayed or printed.
dvipdfmx:warning: CMap has higher supplement number than CIDFont: GothicBBB-Medium
dvipdfmx:warning: Some chracters may not be displayed or printed.
PDFへの埋め込みフォントの警告。環境が変わってもPDFの和文が読み込めるよう、フォントを指定して埋め込みます。
現在の埋め込みの設定を sudo kanji-config-updmap-sys status
で確認
CURRENT family for ja: noEmbed
Standby family : ipa
Standby family : ipaex
CURRENT family for ja: noEmbed
が問題っぽい。
sudo kanji-config-updmap-sys auto
auto を指定することで、埋め込むフォントを自動的に指定する。
$ kanji-config-updmap-sys status
CURRENT family for ja: ipa
Standby family : ipaex