器用貧乏です。はげたかです。日記です。

どうも、はげたかです。今まで器用貧乏に生きてきました。ジェネラリスト・フルスタックエンジニアを目指しています。

今日の一言:カテゴリ分けをしっかりしたらPVあがるかな?

Sublime Text3におけるLaTeXコンパイル時のゴミファイルの処理

LaTeXのコンパイルを行うと、

  • hoge.fls
  • hoge.log
  • hoge.aux

のようなゴミファイルが出来ると思う。
それにより、フォルダ内のファイルがごちゃごちゃする。

そのようなことを解消するために、コンパイル後ファイルを削除するようにしたい。

そこで考えたのが、ビルド時にbatファイルをかませる方法とビルド時の方法を変えることである。

この記事は、1日1○から
環境を整えたことを前提としている。

batファイルをかませる方法

新しくビルド環境をまずつくる。

予め出来上がっている、LaTeXのビルド環境を流用することにする。

C:\Users\あなたのユーザ名\AppData\Roaming\Sublime Text 3\Packages\LaTeXTools\Latex.sublime-build

"あなたのユーザ名"はあなたのユーザ名で。
これでLaTeXToolsにあるLaTeXビルドをゲットできる。
これをコピーする。

       "cmd" : ["latexmk",
       "-e","\\$latex = 'platex %O %S'",
       "-e","\\$dvipdf = 'dvipdfmx %O %S'",
       "-f",
       "-pdfdvi",
       "-silent",
       ],

の部分を

       "cmd" : ["costom_latex_compile.bat", "$file",
       ],

に置き換える。

これを見ればわかると思うが、
batファイルを作成しないといけない。

batファイルは、ファイル名を costom_latex_compile.batとし、下記のコードを書く

@echo off
cd %~p1
platex %~n1.tex > null
platex %~n1.tex 2> null
dvipdfm %~n1.dvi 2> null
@echo;
@echo "%~n1.tex -> %~n1.pdf Finished complile."
rm %~n1.dvi %~n1.aux %~n1.log %~n1.fls %~n1.fdb* 2> null
@echo;
@echo unnecessary files was deleted.
"C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" %~n1.pdf

汚いコードだが、頑張ってみた。
※私の環境では、Unixコマンドが使えるため rmと書いてあるが、
何もしていないwindows環境だと、rmが使えない。
よって、rmを del に変える必要性がある。

"C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" %~n1.pdf

の部分は、自分のPDFビューアにする。

後はこのbatファイルにPATHを通すだけだ。
ここでは省略をする。

問題点

この方法は、少し問題がある。
まず、Macと一貫して使うことが出来ない点だ。

もう一つは、コンソール画面が汚くなることだ。
ここはどうしようもなかった。
個々の部分をどうでもよいと思う人は、このまま使っても良いだろう。
私は嫌だ、よって次の方法を書きたいと思う。

ビルド時の方法を変える

これはまだ完成をしていない。
しかし、メモとしてここに残す。

       "cmd" : ["latexmk",
       "-e","\\$latex = 'platex %O %S'",
       "-e","\\$dvipdf = 'dvipdfmx %O %S'",
       "-f",
       "-pdfdvi",
       "-silent",
       ],

コマンドを複数追加することができれば、この処理に rm ファイルで完成なのだが、
調べても関数を複数使う方法は出てこない。

これを見ると、"latexmk"しか呼ぶことができていない。
この後に消す方法を入れれば良いだろう。

latexmk実行後、rmでファイル削除を行う。

おわりに

汚いコードだが、これはこれでbatファイルについて学べることが出来たのでよかった。
後に、batファイルの書き方とこれの完成した方法について書きたいと思う。
まだ勉強中であり、課題がたくさんあるため進むことは出来ないだろう。