初めての CotEditor(TeX を使う設定)続

CotEditor で TeX を使う設定の続編です。

TeX を使う設定(改)

前回作成した「platex でタイプセットした後、dvips で PS ファイルを生成」するスクリプトは、タイプセットの度に、一瞬ターミナルが前面に出てきてしまう煩わしさがありましたので、改善方法を探してみました。

参考にさせていただいたサイトは下記の通りです。ありがとうございました。

※ 残念ながら以下のスクリプトはいずれも失敗作でしたので、改良版を作りました。

platex でタイプセットし、dvips で PostScript 化(改)

Finder を経由すれば、ターミナルが起動しているか否かを調べることができるそうです。そこで、ターミナルが起動していない場合にのみ、activate するように改良しました。

tell application "CotEditor"
	if exists front document then
		set thisfile to path of front document as Unicode text
		set thisdir to (do shell script "/usr/bin/dirname \"" & thisfile & "\"")
		set thisbase to thisdir & "/" & (do shell script "/usr/bin/basename \"" & thisfile & "\" .tex")
		set thistex to thisbase & ".tex"

		tell application "System Events"
			if exists file thistex then
				tell application "Finder"
					name of every process whose visible is true and name is "Terminal"
					if the result as Unicode text is "Terminal" as Unicode text then
						tell application "Terminal"
							set visible of window 0 to true
							do script "cd \"" & thisdir & "\" && platex \"" & thisbase & "\" && dvips \"" & thisbase & "\"" in window 0
						end tell
					else
						tell application "Terminal"
							activate
							set visible of window 0 to true
							do script "cd \"" & thisdir & "\" && platex \"" & thisbase & "\" && dvips \"" & thisbase & "\"" in window 0
						end tell
					end if
				end tell
			else
				display alert "TeX ファイルではないようです。"
			end if
		end tell
		activate
	end if
end tell

これでターミナルが一瞬前面に出てきてしまう煩わしさから解放されそうです。「platex でタイプセットし、dvips で PostScript 化し、更に ps2pdf で PDF 化」するスクリプトでも同様です。

platex でタイプセットし、dvips で PostScript 化し、更に ps2pdf で PDF 化(改)

「platex でタイプセットし、dvips で PostScript 化(改)」と同様です。

tell application "CotEditor"
	if exists front document then
		set thisfile to path of front document as Unicode text
		set thisdir to (do shell script "/usr/bin/dirname \"" & thisfile & "\"")
		set thisbase to thisdir & "/" & (do shell script "/usr/bin/basename \"" & thisfile & "\" .tex")
		set thistex to thisbase & ".tex"
		set thisps to thisbase & ".ps"

		tell application "System Events"
			if exists file thistex then
				tell application "Finder"
					name of every process whose visible is true and name is "Terminal"
					if the result as Unicode text is "Terminal" as Unicode text then
						tell application "Terminal"
							set visible of window 0 to true
							do script "cd \"" & thisdir & "\" && platex \"" & thisbase & "\" && dvips \"" & thisbase & "\"" & "&& ps2pdfne \"" & thisps & "\"" in window 0
						end tell
					else
						tell application "Terminal"
							activate
							set visible of window 0 to true
							do script "cd \"" & thisdir & "\" && platex \"" & thisbase & "\" && dvips \"" & thisbase & "\"" & "&& ps2pdfne \"" & thisps & "\"" in window 0
						end tell
					end if
				end tell
			else
				display alert "TeX ファイルではないようです。"
			end if
		end tell
		activate
	end if
end tell