Vine Linux
texlive-2009-22vl6.i686
dvipdfmx-20090708
での動作です。
================================================
\documentclass[a5paper,10pt]{jsbook}
\usepackage{plext} % 縦書き拡張
\usepackage[dvips]{graphicx}
%\usepackage[dvipdfm]{graphicx}
%\usepackage[dvipdfmx]{graphicx}
\begin{document}
scalebox のテスト。
\noindent\null
□\scalebox{1}[-1]{あ}□1,-1
\\
□\scalebox{-1}[1]{あ}□-1,1
\vspace{1cm}
\begin{minipage}<t>{4.5cm}
\noindent\null
□\scalebox{1}[-1]{あ}□1,-1
\\
□\scalebox{-1}[1]{あ}□-1,1
\end{minipage}
\end{document}
================================================
として、挙動調査しました。
オプション dvips で xdvi表示
横組み \scalebox{1}[-1]{あ}:上下反転、文字はベースラインより下に
横組み \scalebox{-1}[1]{あ}:左右反転
縦組み \scalebox{1}[-1]{あ}:左右反転
縦組み \scalebox{-1}[1]{あ}:上下反転
オプション dvipdfm で dvipdfm で変換、Adobe Reader表示
横組み \scalebox{1}[-1]{あ}:上下反転、文字はベースラインより下に
横組み \scalebox{-1}[1]{あ}:左右反転
縦組み \scalebox{1}[-1]{あ}:左右反転
縦組み \scalebox{-1}[1]{あ}:上下反転
オプション dvipdfmx で dvipdfmx で変換、Adobe Reader表示
横組み \scalebox{1}[-1]{あ}:上下反転、文字はベースラインより下に
横組み \scalebox{-1}[1]{あ}:左右反転
縦組み \scalebox{1}[-1]{あ}:上下反転、1個上に
縦組み \scalebox{-1}[1]{あ}:左右反転、1個下に
と、dvipdfmxの縦組時のみ挙動が違います。
dvipdfm.def, dvipdfmx.def を一応覗いてみたんですが、
どこを直せば良いのか全く分かりません。
dvipdfmxだとhiresbbが使えると思ったら、こんな罠がありました。
極めて古い(dvipdfm-jpn 時代)情報ですが、
W32TeX の $TEXMF/doc/dvipdfm/base/jpatch-p1.pdf
の 1.3 節にこの類の話が書いてあります。(私の環境の Adobe Reader だと非埋込の Heisei~ フォントが MS P フォントで代替されて悲惨なことになってますが、肝心の例の表示は欧文なので問題ないはず。)
その内容(および実験・解析の結果)によると、要するに
pTeX の縦書きの場合は、PS/PDF の変形の縦と横を交換する必要がある
ということのようです。その節の末尾に
単純に dvipdfm 側で縦ディレクションのときには PostScript オペレータ‘scale’の解釈をかえるようにするだけでもよいかもしれないが、(中略)しばらく様子を見るつもりである。
とありますが、現在の dvipdfmx ではこの「scale の解釈を変える」対策が施されているようです。そして、graphics/x パッケージの dvipdfm ドライバでは現在の版でも PostScript special を用いているようなので正常(= dvips と同じ)に出力されます。対して dvipdfmx ドライバ は PDF 用 special を用いるように改良されているため、先述の対策が効かなくなっているのが「異常な出力に戻った」原因です。
dvipdfmx ドライバの出力を正常にするには、ドライバの方で、縦と横を交換するのが最も簡単(そのコードも前傾の資料にある)です。取りあえず LaTeX ユーザが使えるように「パッチするパッケージ」を作ってみました。
pLaTeX で dvipdfmx 指定の graphicx の後にこのパッケージを読み込むと正常になるはずです。
…と書き込んだ直後ですが:
LaTeX Team の中のかたが dvipdfmx.def 本体にパッチを取り込んでくださいました。
> 本日 2017/01/22 にリリースされた新しい dvipdfmx.def
のリリースから一日も経っていませんが、数日後にはさらに新しいものを出してくださる
そうなので、それ以降はそもそも pxtatescale 自体が不要になります。
# \iftdir の if-トークン の扱いが面倒でこちらからは送らなかったのですが、
# なんとあちらからオファーが来て取り込まれるとは。
LaTeX Team の中のかたが dvipdfmx.def 本体にパッチを取り込んでくださいました。
> 本日 2017/01/22 にリリースされた新しい dvipdfmx.def
のリリースから一日も経っていませんが、数日後にはさらに新しいものを出してくださる
そうなので、それ以降はそもそも pxtatescale 自体が不要になります。
# \iftdir の if-トークン の扱いが面倒でこちらからは送らなかったのですが、
# なんとあちらからオファーが来て取り込まれるとは。