Ticket #36885

\pdfsavepos と \mag

Open Date: 2016-12-19 12:44 Last Update: 2016-12-20 02:32

Reporter:
Owner:
(None)
Type:
Status:
Open
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

TeX & LaTeX Advent Calendar 2016VoD氏の記事に詳細が報告されていますように,\mag が用いられたときの \pdfsavepos の原点位置が,

  • 水平方向は 1truein と 1in の差
  • 垂直方向は 1truein と 1in の差および \pdfpageheight と \paperheight の差の和

の分だけずれており,TeXconf16 でのh7kさんの発表資料21ページに表明されている仕様とは異なる値になっているようです。

Ticket History (3/3 Histories)

2016-12-19 12:44 Updated by: doratex
  • New Ticket "\pdfsavepos と \mag" created
2016-12-19 19:25 Updated by: h7k
Comment

まだ水平位置についてしか調べていませんが,次のソースを走らせてみました:

\mag 0500

\ifdefined\pdfoutput \pdfoutput0 %%% 
  \ifnum\pdfoutput=1
    \pdfhorigin1truein \pdfvorigin1truein 
  \fi
\fi

\setbox0=\hbox{\noindent\pdfsavepos%
  \vrule depth1truein height0pt width1pt\kern-1pt
  \vrule width1truein height0pt depth1pt}
\shipout\box0

\message{\the\pdflastxpos}
\bye

2ページ目の罫線は,pdf では 左上隅から 1truein ずつずれたところに,1 truein の長さで引かれます.

  • pdftex の pdf モードでは \pdfhorigin = 1truein (pdfTeX のマニュアルでそう再設定すべき,と書かれている)なので

\message の結果は 9472573 (1 truein) です.

  • eptex & dvipdfmx では, \message の結果は 4736286 (1in) です.
  • pdftex の dvi モードで dvi を作り,dvipdmfx で pdf 変換しても同様の結果です.

そのため,「現行の仕様は pdftex の dvi モードと同様なので,直さない」と言うこともできるかもしれませんし, 「pdftex の dvi モードもろとも直す」という選択肢もあるでしょう.

2016-12-20 02:32 Updated by: doratex
Comment

なるほど……。調査ありがとうございます。

「pdftex の dvi モードもろとも直す」というのが理想的かと思いますが,今さら直すというのもちょっと影響が大きいかもしれませんね。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login