FreeBSD上でLaTeXでpdfを作成する際にいろいろ躓いたので覚え書き。
- dvi → pdfにはdvipdfmxを使っている。これは基本。
- 基本的にUNIX環境のdvipdfmxは文書中の欧文フォントを埋め込んでくれるらしい。しかし、
- dvipdfmxは図中で使われている埋め込まれていないフォントまでは埋め込んでくれない。したがって、デバイスフォントを使用しているpdfファイルを取り込んだりした場合にはフォント組み込まれない。
- フォントが全部組み込まれているかどうかはadobe acrobat readerで読み込んで、「ファイル→文書のプロパティ」で参照出来る
- WMF2EPSで作ったepsファイルをincludegraphicsを使用してlatexで使っているが、dvipdfmxでpdfを作るときに 「Rotate xx found. (not supported yet)」というワーニングが出ることがある。できあがったpdfを見る限り特におかしい様子はないが気持ちが悪い。そういうときにはadobe acrobat distillerでpdfにして取り込めば大丈夫っぽい
- dvipdfmxで取り込めるPDFのバージョンは最新ではないので、distillerでpdfに変換するときには互換性設定をPDF1.2, PDF1.3あたりにしておくと無難。ついでに画像ファイルは可逆圧縮のZIPを指定し、フォントは全て取り込むようにしておくと安心。
- Windows上のdvipdfmxではフォントを埋め込まないらしいので、もし欧文フォント14種類を埋め込みたいときには次のようにするらしい。
- dvipdfmx -f dlbase14.map foo.dvi
- includegraphicsでpdfを読み込むと、xdviは大きさがでかくなってしまう。どうもpdf読み込みは対応していないみたい。しかたがないので、プレビュー用にはepsファイルを用意して、preview時とpdf作成時に切り替えて使うとよさそう。こんなふうにして、\previewtrue の時にはpdf,jpgは代わりにepsを使うようにしてます
- プリアンブル部分
- %true の場合は epsの図を使ってxdvi用にする。
\newif\ifpreview
%
%\previewtrue
\previewfalse
%
\ifpreview
\def\jpegextension{eps}
\def\pdfextension{eps}
\typeout{Preview Mode. All eps images are used instead of pdf, jpg.}
\else
\def\jpegextension{jpg}
\def\pdfextension{pdf}
\typeout{Publishing Mode. All pdf, jpg images are used.}
\fi\ifpreview
\usepackage[xdvi]{graphicx}
\usepackage[xdvi]{color}
\else
%\usepackage[dvipdfm]{graphicx}
\usepackage[dvipdfm]{graphicx}
\usepackage[dvipdfm]{color}
\fi
\usepackage{mediabb} - 図を入れる部分
- \begin{figure}[hbt]
\begin{center}
\includegraphics[width=0.8\columnwidth]{figures/foo.\pdfextension}
\vspace*{-2mm}
\caption{Figure Foo}
\label{fig:foo}
\end{center}
\end{figure}