ハンバーグのおいしい季節

いっつもうめえよ

dvipdfmxが通らない時の対策をしよう

Texで編集する機会があったので、久しぶりに触ったらdvipdfmxのコンパイルが通らなかったのでメモ。前までは同環境で動いてたのに。

環境

macOS High Sierra

エラー

$ 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

できた。