読者です 読者をやめる 読者になる 読者になる

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

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

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

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

LaTeX Sublime Text3 Windows Mac

前回の記事Sublime Text3におけるLaTeXコンパイル時のゴミファイルの処理 - 1日1○の続きである。

前回の記事では、

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

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

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

と述べた。
調べてみると、
Sublime Forum • View topic - multiple cmd in build system?
に辿り着いた。

Is it possible to run multiple commands in one build system?

Among other combinations I tried to do something like this: 
~~~~~

「複数コマンド動くの?」

Unfortunately, there is no support for multiple commands in a build system. I ran into this issue when working with java. Your best option is to make a bash file with the commands and have a build system that runs the bash file. I'm not a expert when it comes to build systems, so that's as far as I can help.

Hope that points you in the right direction.

「ビルドシステムは、複数コマンドをサポートしていないよ」と言っている事がわかる。

つまり、自分が考えていたビルド方法は、だめらしい。

シェルスクリプトで解決する・・・?

ということで、諦めてシェルスクリプトを書いてみた。

name: tex2pdf.sh

#!/bin/sh 
if [ $# -ge 1 ]; then 
    fileName=`echo $1 | sed -e 's/\..*//'` 
    cat $fileName.tex > tex2pdfTemp.tex
    platex tex2pdfTemp > /dev/null
    dvipdfmx tex2pdfTemp > /dev/null
    mv tex2pdfTemp.pdf $fileName.pdf
    rm tex2pdfTemp.*
    open $fileName.pdf & 
else 
    echo "error:input file name." 
fi

参考サイト:texをpdfにしようと思ったら、ごちゃごちゃ鬱陶しいから、もっとスマートにしてくれや。 - mekanical blog

latex.sublime_build

"osx":
	{
	"cmd":["tex2pdf.sh", "$file_name"],
	
	--------------
}

とした、なおtex2pdf.shにPATHを通している。

しかし、ここで問題が...
ビルドすると何も起きない。

そこで、ターミナルの方で以下のコマンドを実行した。

tex2pdf.sh hoge.tex

これは、実行でき、PDFが開く処理まで行ってくれた。

この解決法がわからない。
今後これを参考にしていきたい

まとめ

英語のフォーラムを見ることで、解決法(してないけど)を得ることが出来た。
英語をある程度出来るようにしたほうが良いということが分かった。

今後、このシェルスクリプトの実行方法について考えていきたい。