dvipdfmxが通らない時の対策をしよう
Texで編集する機会があったので、久しぶりに触ったらdvipdfmxのコンパイルが通らなかったのでメモ。前までは同環境で動いてたのに。
エラー
$ dvipdfmx hoge.dvi
上記コマンドを実行しようとすると、下記で怒られる。
** WARNING ** Filtering file via -->rungs -q -dNOPAUSE -dBATCH -dEPSCrop -sPAPERSIZE=a0 ..... ** ERROR ** pdf_ref_obj(): passed invalid object.
対策1
command -->rungs...で怒られているので、/usr/local/texlive/2017/texmf-config/dvipdfmx/dvipdfmx.cfgを編集する必要があるらしい。
D "rungs -q -dNOPAUSE -dBATCH -dEPSCrop -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImage s=false -dColorImageFilter=/FlateEncode -dAutoRotatePages=/None -sOutputFile='%o' '%i' -c quit" ↓ D "gs -q -dNOPAUSE -dBATCH -dEPSCrop -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImage s=false -dColorImageFilter=/FlateEncode -dAutoRotatePages=/None -sOutputFile='%o' '%i' -c quit"
これで解決だ!と思い実行してみるが、コンパイル通らず。
対策2
ghostscriptをもう一度入れ直してみる。
$ brew install ghostscript
gsはシンボリックリンクなのでリンクを貼り直す。
$ rm /usr/local/bin/gs $ ln -s /usr/local/Cellar/ghostscript/9.26/bin/gs /usr/local/bin/gs
バージョンを確認してみる。
$ gs -v GPL Ghostscript 9.26 (2018-11-20) Copyright (C) 2018 Artifex Software, Inc. All rights reserved.
最新になってるので、実行してみる。
$ dvipdfmx hoge.dvi hoge.dvi -> hoge.pdf [1][2][3][4][5][6][7][8][9][10] 5443026 bytes written
できた。