画像に字を入れてそれをEPSファイルにしたいときや、tpicで描いた図をEPSファイルにしたいとき、
ということをしていましたが、こうして作ったEPSファイルをTeXファイルに取り込むと、 何故かDVIOUTで画像が表示されない(PSやPDFに変換すると正常に見えるにも関わらず)ことがあることに気が付きました。
原因は上の2のステップにありました。DVIPSでPSファイルを作るときに「-t a4」というように紙の大きさを指定してはいけないのでした。例えば、
\documentclass{article} \usepackage[dvips]{graphicx} \begin{document}\thispagestyle{empty} \huge\LaTeX \end{document}
のようなLaTeXファイルから作ったDVIファイルを二つのやり方
dvips -o test1.ps test.dvi dvips -o test2.ps -t a4 test.dvi
でPSファイルにします。更にtest1.psとtest2.psをGSViewのメニューの「PS to EPS」で、あるいは
ps2epsi test1.ps a1.eps ps2epsi test2.ps a2.eps
によって、それぞれEPSファイルtest1.epsとtest2.epsに変換します。このときtest1.epsはTeXに取り込んだときDVIOUTで正しく表示できますが、test2.epsはDVIOUTで正しく表示されません。GhostScriptのヘルプにヒントがありました:
EPS documents must not use any of the following operators: banddevice clear cleardictstack copypage erasepage exitserver framedevice grestoreall initclip initgraphics initmatrix quit renderbands setglobal setpagedevice setpageparams setshared startjob letter note legal a3 a4 a5 The following operators should be used with care: nulldevice setgstate sethalftone setmatrix setscreen settransfer setcolortransfer
上の場合、test2.epsから
%%BeginPaperSize: a4 a4 %%EndPaperSize
という部分を探し出し、「a4」の行を削ってしまえば、TeXに取り込んだときDVIOUTでも表示されるようになります。ただ結論としては
dvips -E -o a3.eps test.dvi
とやっていきなりEPSを作るのが一番安全な気がします(GSViewのメニューから作ったEPSと微妙に違いますが)。以下はテストに使ったTeXファイル。
\documentclass{article} \usepackage[dvips]{graphicx} \begin{document} \begin{figure}[h] \fbox{\includegraphics[height=30mm,keepaspectratio]{a1.eps}} \end{figure} \begin{figure}[h] \fbox{\includegraphics[height=30mm,keepaspectratio]{a2.eps}} \end{figure} \begin{figure}[h] \fbox{\includegraphics[height=30mm,keepaspectratio]{a3.eps}} \end{figure} \end{document}