マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

「クロップしない pdfcrop」的なものを使って PDF をクロップしない話

というわけで、イロイロ2イロイロ(別名:TeX2img)(の Windows 版)を使って、「majority ナントカ のせいで /Rotate な PDF をどうにかする」を試してみた。

/Rotate な PDF をこしらえる

早速 TeX2img の最新版をインストールしたので、イロイロ2イロイロ(今の場合は PDF2PDF)しようと思ったのだが、ここで致命的な問題に気付いてしまった。

手許に /Rorate な PDF 画像がない。

どうやら R を使うと作れるらしいが、面倒くさいので、TeX で頑張ってみる。

[majdec.tex]
% latex + dvips で処理する
\documentclass[a4paper,dvips]{standalone}
\usepackage{graphicx}
\begin{document}
test$\to$ \rotatebox[origin=c]{180}{Hello, {\TeX} world!}
\end{document}

これを次の手順で PDF に変換する。

latex majdec
dvips majdec.dvi
ps2pdf majdec.ps

生成された majdec.pdf を Adobe Reader で見ると……

おお、全体が逆さまになっている。素晴らしい!(えっ)

念のために「extractbb majdec.pdf」してみると……

extractbb:warning: << /Rotate 180 >> found. (Not supported yet)

警告が出るので、確かに /Rotate が含まれていることが判る。

イロイロ2イロイロしてみる

無事に所望の画像が得られたので、TeX2img してみた。

TeX2imgc /with-text majdec.pdf majdec-out.pdf

生成された majdec-out.pdf を Adobe Reader で見ると、当然ながら、変換前の majdec.pdf と同じ表示になる。

そして、この 2 つの PDF 画像を LaTeX + dvipdfmx な文書に挿入してみる。

% latex + dvipdfmx で処理する
\documentclass[a4paper,dvipdfmx]{article}
\usepackage{graphicx}
\begin{document}
\begin{center}
\includegraphics{majdec.pdf}
\par\bigskip
\includegraphics{majdec-out.pdf}
\end{center}
\end{document}

この出力は……。

変換前の majdec.pdf は「dvipdfmx が /Rotate できない」ために回転無しの(間違った*1)出力になっているが、変換後の majdec-out.pdf は正しい出力になっている。すなわち、変換によって /Rotate が“確定”できたわけである。

*1:Ghostscript が行う「majority dfecision」が妥当か否かは意見が分かれる所だろうが、何れにしても、Ghostscript が回転を行っていることは揺るぎのない事実である。だから、この PDF 画像を出力する場合は、回転させるのが唯一の正しい出力方法である。