Ruby 1.8.7 で convbkmk.rb を使用した場合に正常な PS ファイルが出力できない場合がある
Ruby のバージョンは 1.8.7 です.
--------
test.tex
--------
\ifx\kanjiskip\undefined\else
\ifx\ucs\undefined
\documentclass{jsarticle}
\else
\documentclass[uplatex]{jsarticle}
\fi
\fi
\usepackage[dvips]{hyperref}
\begin{document}
\section{テスト}
abc
\end{document}
$ platex test.tex
$ platex.test.tex
$ dvips -Ppdf -z -f test.dvi | convbkmk -e > test.ps
または
$ uplatex test.tex
$ uplatex test.tex
$ dvips -Ppdf -z -f test.dvi | convbkmk -u > test.ps
で処理をすると
convbkmk:213:in `check_parentheses_balance': encoding is not consistent (RuntimeError)
という RuntimeError の例外が発生し正常な PS ファイルが出力されませんでした.
platex の場合は -g オプションを指定すれば処理が可能でした.
uplatex の場合は -g オプションを指定すると
convbkmk:319:in `file_treatment': did not succeed in guess encoding! (RuntimeError)
という RuntimeError の例外が発生し正常な PS ファイルが出力されませんでした.
この ps ファイルを ps2pdf で処理しようとすると
GPL Ghostscript 9.05: Unrecoverable error, exit code 1
となり正常な PDF ファイルが作成できません.
convbkmk.rb の 213 行目に
raise 'encoding is not consistent'
という行があり,この行を
#raise 'encoding is not consistent'
のようにコメントアウトすることで platex では -e または -g オプション,uplatex では -u オプションを指定することで
ps2pdf でエラーにならずに目次が文字化けしていない PDF ファイルができました.