- LaTeX環境をローカルにインストールしたくないので作りました
- 研究室や学会で使用するLaTeXフォーマットのビルド環境です
- Docker
- make
- bash
- VScode
- 拡張機能
- LaTeX-Workshop
- LaTeXの補完
- 保存時に自動ビルド
- Remote SSH
- WindowsからVBox上のUbuntuに接続する際に便利です
- LaTeX-Workshop
- Linux
- 推奨環境です
- Windows
- VirtualBoxやWSL2を使ってLinux環境を用意してください
- VSCodeのRemote SSHを使用すると快適に作業できます
- macOS
- Dockerを動かすためにDocker Desktopを用意してください
- M1 Macで動作確認済みです
- LinuxでDocker環境がない場合はこのコマンドを実行してください
- WSLではこのコマンドでインストールできない可能性があります
- MacユーザはDocker Desktopをインストールしてください
make install
- Docker Imageの取得
make get-image
make test
VSCodeのTextLint拡張機能を利用し,VSCode上にTextLintの結果を表示することができます.
その場合はローカル環境にTextLintをインストールしてください.
make lint
コマンドを利用する場合は,ローカルへのTextLintのインストールは不要です.
- Ubuntuの場合
make install-textlint
- それ以外
- node環境を構築し,
npm install
を実行してください
- node環境を構築し,
-
作業ディレクトリ
- このディレクトリ(semi-latex)内であれば任意のディレクトリを使用できます
- 適当なディレクトリを作成し,その中で別途Gitでtexのバージョン管理するのがおススメです
- make run実行時に自動的に最新のtexファイルを探索し、ビルドします
- このディレクトリ(semi-latex)内であれば任意のディレクトリを使用できます
-
コマンドから実行
- ファイルを指定してLaTeXをビルド
make f=${tex_path}
例)
make f=sample/semi-sample/semi.tex
- semi-latexディレクトリ内で最近変更されたtexをビルド
make
-
VSCode上で実行
- texファイル保存時にビルドします
- LaTeX-Workshopの拡張機能が必要
- 2つのtexファイルの差分を色付けしてpdfを出力する機能です.
- 従来は手動で色を付けていましたが,面倒なので自動化しました
- 比較対象となる古いtexが必要です.
- 論文レビューを依頼する際に,前回のバージョンとの差異を色付けして再レビューを依頼する...といった利用を想定しています.
make diff old=${古いtexのpath} new=${新しいtexのpath}
make diff old=${古いtexのpath}
- 変更を取得
git pull
- 最新のdocker imageを取得
make get-image
texファイルのdocumentclassで使用するテンプレートを選択できます
\documentclass[submit,techreq,noauthor,dvipdfmx]{eco}
- B3輪講
\documentclass[submit,techreq,noauthor,dvipdfmx]{b3-eco}
- B4中間発表
\documentclass[submit,techreq,noauthor,dvipdfmx]{mid-eco}
- 卒論
- サンプルコード
- 他のサンプルと違い,複数のtexファイルに分かれています
texファイルの表記ゆれや誤植を機械的に検出できます
- VSCode上のターミナルを使うとファイルパスのCtrl+クリックで該当箇所にジャンプできます
- このリポジトリのmakefileと同じディレクトリ階層で実行してください
make lint
- 自動修正
make lint-fix
- eps
- png
- svg
- pdfへ自動変換
- 画像用のディレクトリを作成し,すべての画像を同じディレクトリに入れることが必要です
- ディレクトリ名は任意
- 作成したディレクトリ内でネストしない
```
sample.tex
fig/
|--hoge.png
|--huga.svg
```
- ディレクトリがネスト
- fig/内にfig/が存在
sample.tex fig/ |--fig/ |--hoge.png |--huga.svg
- ディレクトリに保存されていない
sample.tex hoge.png huga.svg
- 例:ローカルにfig/hoge.pngがある場合
\includegraphics[]{fig/hoge.png}
- 拡張子は指定しない
- コンテナ内で自動的にsvgからpdfを生成
- pdbはベクタ形式で生成
- ベクタ形式なのでズームしても画像が荒くなりません
- 例:ローカルにfig/huga.svgがある場合
\includegraphics[]{fig/huga}
- .github
- GitHub Actionsの設定
- .vscode
- VSCodeで保存時にビルドするための設定
- internal
- 触る必要のないファイル群
- custom-rules/textlint-rule-ja-custom-ng-word
- 論文でのNGワード集
- sample
- サンプル
主にデバッグ用なので普段使う必要はないはず
- root権限なし
make bash
- root権限あり
make root
- 一度ビルドすると再起動するまでコンテナは起動したままなので停止したい人向け
- コンテナを毎回起動するとコンパルに時間がかかるため起動したままにしています
make docker-stop
- トラブルが起きたときはとりあえず実行すると,直る場合があります
make docker-clean
- キャッシュを有効にしてDocker Imageをビルド
- キャッシュを利用するので2回目以降のビルドが高速です
- キャッシュが原因で失敗する場合があります
make docker-build
- コンテナをキャッシュなしでビルド
- キャッシュを利用しないので信頼性は高いですがビルドに時間がかかります
make docker-rebuild
- Dockerがインストールされていない場合はインストールする
- Linux限定
make install
- Dockerをインストールし,sudo権限なしで動作させるよう設定
- make installから呼ばれます
make install-docker
- サンプルがビルドできることを確認
make test