TeX で PDF 作成の注意点

TeX で PDF ファイルをどのように作成するかは、他のサイトに任せるとして、この過程で困ったことがあったので、覚書を残しておく。

秀丸エディタが Ver.7.09 にヴァージョン・アップしたので、手元の「秀丸エディタ公式マニュアル」の原稿をそれに合わせる。更に、これを機に更新されている LaTeX のプログラムや使っているスタイル・ファイルなど、角藤さんのサイトから最新版を入手して、PDF を作成。すると出力サイズが合わない??? おおまかな作成手順は

  1. pLaTeX で原稿を作成
  2. platex でタイプセット DVI を作成
  3. dvipdfmx で PDF に変換

そもそも Makefile は編集しないで、

make

しているだけで、手順が変わっている筈はない。Makefile を見ても、

dvipdfm -p "182mm,257mm" hoge.dvi

にあたることをして、B5 サイズで出力されるはずなのに。もちろん原稿には出力サイズに関わる変更は何もしていない。不思議。

いろいろ試していると、hyperref.sty を使うと問題が起きる。この原稿の最終的な出力は印刷なので、hyperref.sty の主目的たるハイパー・リンクは必要無いのだが、URL を単に印字するときも有用なので、できれば使い続けたい。そこで、更に原因を追究すると、hyperref.sty の内部でサイズが指定され、これは dvipdfmx の実行時のオプションより優先されることが原因の様。

この出力サイズが指定されるという変更は、LaTeX 標準のクラス・ファイルを使って原稿に、

\documentclass[a4paper]{article}

とした時はもちろん、日本語に対応した pLaTeX 標準のクラス・ファイルを使った

\documentclass[a4paper]{jarticle}

や、広く使われている奥村先生のクラス・ファイルなら

\documentclass[a4paper]{jsarticle}

としておけば、A4 等の A? 系のサイズなら dvipdfmx の実行時にオプションで指定する事なく適切なサイズで出力され、多くの場合は便利ある。

しかし落とし穴がある。LaTeX の旧バージョンからの関係で、

\documentclass[a4j]{jarticle}

や、

\documentclass[a4j]{jsarticle}

も多く使われる (実際にはどちらも同じ結果になると思う) が、hyperref.sty は欧米で作成されているので、

  1. a4j といったサイズは規定されていない (j は Japan を表すと思われる)
  2. hyperref.sty で規定されていないサイズは、標準のサイズを内部で指定
  3. PDF 出力時もその内部で指定されたサイズが優先
  4. 出力サイズが狂う

ということが起きる。更に B? 系のサイズは欧米と日本では異なり、

\documentclass[b5paper]{jsarticle}

としても、hyperref.sty では欧米での B5 サイズに置き変わるので、やはりサイズが狂ってしまう。しかたが無いので、

\usepackage{hyperref} \special{papersize=182mm,257mm} \begin{document}

という要領で、hyperref.sty を読み込んだあと、\begin{document} の前で、\special 命令を使って設定を上書きすることにした。