IntelliJ+LaTeXで本を書く✍🏻

2018-03-11 執筆

デレステのルームを模様替えしたら尊い空間が生まれた今日このごろ、皆様いかがお過ごしでしょうか。

息抜きだからね?

土曜は技術書典に出る知人とともに、ブース準備会+もくもく会をやったりしてました。

ブース出す練習、テンションが上がるし当日テンパる可能性を減らせるのでお勧めです。

✒ 技術書典4

📆 カウンティング

前回の記事でサークル配置について書きましたが、技術書典4にサークル参加します。

一応カレンダーは気にしてるのですが、もうちょい切実な感じのアレが欲しいなーと思って、はてなカウンティングを使って技術書典4までのカウントダウンを作りました。
この記事を書いている時点で残り42日だそうです。

余裕そうに見えて、入稿〆切考えると1ヶ月ちょっとしかないので結構アレですね。
よければご活用下さい。

📕 頒布予定

情報ガールの続刊で、チャーチ=チューリングのテーゼをテーマにした本を頒布する予定です。
ちなみに既刊はBOOTHで電子版を頒布してますので、よければ覗いてみて下さい。

あと、オマージュ元の数学ガールもぜひ。
4月には久々の本編新刊、数学ガール/ポアンカレ予想も出ますよ!

数学ガール
数学ガール

✍🏻 LaTeX環境

技術書典3で頒布したいろんな言語でライフゲームRe:VIEWで書いたのですが、その前に出した情報ガールはLaTeXで書いていました。

今回の「情報ガール チャーチ=チューリングのテーゼ」は、オートマトンを書くのにtikzを使いたいこともあり、また前作とフォーマットを揃えることも考えてLaTeXで書いています。

TeXworks

前作を書くときに使っていた環境はTeXworksです。
TeXインストーラ 3を使うとTeX本体と一緒に導入されて楽なんですよね。

ただしファイルエクスプローラーがないので、subfilesなどを使ってファイル分割するとファイル間移動がかなりしづらいです。
メニューバーから切り替えればいいっちゃいいんですが、やっぱりタブが欲しくなってきますよね……

あと、キー設定を弄れないのも地味にストレスです。
普段はEmacsキーバインドに慣れてるので、うっかりC-nして新しいウィンドウが開くとぐぬぬってなります。

IntelliJ

というわけで、今回は執筆環境をIntelliJ IDEAに移しました。
ハイライトやインデントはTeXiFy-IDEAを入れればバッチリです。

またPDFプレビューにはSumatraPDFを使っています。
タブで複数ファイルを開ける+PDF変更時にオートリロードできるので、subfilesとの相性が完璧でした。

執筆時はこんな感じで、画面の左2/3くらいをIntelliJ、残りをSumatraPDFに割り当てています。
40インチモニタのおかげで、これでもエディタ部分は相当広いです。

また仮想デスクトップを使って3デスクトップを使い、IntelliJ+SumatraPDF、調査などで使うブラウザ、キャラ設定や前作PDFなどの資料をキーボードショートカットで切り替えられるようにしています。

ビルドショートカット

IntelliJでtexファイルを編集すると、いま編集しているtexをPDFで確認したくなってきます。
このために、自分はIntelliJのExternal Toolsを以下のように設定しています。

ポイントはArgumentsのbin/build $FileName$で、これにより現在編集中のファイルを元にコマンドを実行できます。
bin/buildの中はdocker-composeを叩いているだけです。
この辺はlatex-scaffoldからそんなに変えてないはず。

あとはこのコマンドにKeymapから適当なショートカットを割り当てれば、

 作業が一段落したタイミングでショートカットキーを押す
→編集中のファイルからPDFが作られる
→PDFが更新されたことでSumatraPDFでリロードされる
→出力を確認して編集を続ける

が簡単にできるようになります。
快適!

無視ファイル設定

LaTeXでビルドすると、副産物のファイルが沢山吐き出されます。
cleanすればいいって話ではあるんですが、毎回cleanするのも効率が悪そうなのでIntelliJのFile TypesからIgnore Filesに指定して、ファイルツリーに表示されないようにしています。

こんな感じで*.auxなどをひたすら入れると、texファイルとpdfだけが隣に表示されるようになって非常に分かりやすくなります。
ついでに.gitignoreにはこれらの一時ファイルに加えて*.pdfも入れておけば、texファイルだけをコミットできるのでdiffも綺麗に。

🏁 まとめ

IntelliJは万能でした。
みんなIntelliJ使おう。