Edited at

LaTeXによる執筆環境をrakeからnpmに移行したの巻

More than 3 years have passed since last update.

npmpackage.json を使うと…



  • chokidar-cli を使ってファイル変更を監視してコマンドを実行できる。


  • parallelshell を使えば複数の並列ビルドも楽にできそう。

  • なんといってもごちゃごちゃした設定が package.json だけで完結しそうで楽っぽい。


  • package.json に書誌情報も書き込んでおける。

これをLaTeXによる執筆環境に持ってくると…


package.json

{

"name": "sample-paper",
"version": "0.0.1",
"description": "This is a sample paper.",
"author": "Masayuki Higashino",
"scripts": {
"build:tex": "platex -kanji=utf8 main",
"build:bib": "pbibtex -kanji=utf8 main",
"build:dvi": "dvipdfmx main",
"build": "npm run clean && npm run build:tex && npm run build:bib && npm run build:tex && npm run build:tex && npm run build:dvi",
"build-dev": "npm run build:tex && npm run build:dvi",
"watch:tex": "chokidar '*.tex' -c 'npm run build-dev'",
"watch:bib": "chokidar '*.bib' -c 'npm run build-dev'",
"watch": "parallelshell 'npm run watch:tex' 'npm run watch:bib'",
"clean": "rm .DS_Store *.aux *.bbl *.blg *.dvi *.log; exit 0"
},
"devDependencies": {
"chokidar-cli": "^1.2.0",
"parallelshell": "^2.0.0"
}
}

な感じ。

使い方は package.json をLaTeXのファイルとかのディレクトリに配置する。例えば下記のような感じ。


  • package.json

  • main.tex

  • main.bib

必要なパッケージをインストールする。

$ npm install

ファイルを監視して変更があればコマンドを叩く。

$ npm run watch

提出用のPDFを生成する。

$ npm run build

わりと良い感じでは?