The batch file dvipdf.bat has moved to GitHub repository: https://github.com/aminophen/dvipdf
Last active
January 7, 2017 15:38
-
-
Save aminophen/7d51e2f9e58056ebc4b4 to your computer and use it in GitHub Desktop.
"dvips + gs" on Windows (inspired by "dvipdf" shell script in Ghostscript distribution)
オリジナルのスクリプトと意図的に違う挙動をさせている部分が、dvips と gs へのオプションである。オリジナルを完全に再現するには
%DVIPS% -q -Ppdf %DVIPSOPTIONS% -f "%infile%" | %GS_EXECUTABLE% %OPTIONS% -P- -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%%stderr -sOutputFile="%outfile%" %OPTIONS% -c .setpdfwrite -
とすべきだが、ここでは
-q
を付けるとログが出ないのでデバッグしづらくなる-sstdout=%%stderr
を付けると gs の標準出力が標準エラー出力にリダイレクトされるのだが、dvips のログはそもそも標準エラー出力に出るのでこれと混ざってしまって見づらい
という理由から、これらのオプションを除去して次のようにした。
%DVIPS% -Ppdf %DVIPSOPTIONS% -f "%infile%" | %GS_EXECUTABLE% %OPTIONS% -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="%outfile%" %OPTIONS% -c .setpdfwrite -
ほかにも厳密にはいくつか異なる点があるが、出力にはまったく影響しない。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Ghostscript には dvips + gs (pdfwrite) を実行して PDF 出力するシェルスクリプトが入っているが、Windows 版 Ghostscript(角藤版含む)にも同じシェルスクリプトしか入っておらず、tlgs (Win32) にはそもそも見当たらない。というわけで、シェルスクリプトから Windows ネイティブ環境で動くバッチファイルへ大雑把に翻訳してみた。GPL Ghostscript の同梱物であるシェルスクリプトを翻訳したものなので、このバッチファイルのライセンスは Ghostscript 本体と同じ AGPL である。
冒頭の
DVIPS=
とGS_EXECUTABLE=
は僕の環境に合わせたものになっているので、適宜変更のこと(例えば TeX Live なら gswin32c.exe の代わりに rungs.exe となり、64bit Ghostscript なら gswin64c.exe となる)。