任务单 #36885

\pdfsavepos と \mag

开放日期: 2016-12-19 12:44 最后更新: 2016-12-20 02:32

报告人:
属主:
(无)
类型:
状态:
开启
组件:
(无)
里程碑:
(无)
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
文件:

Details

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

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

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

任务单历史 (3/3 Histories)

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

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

\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
评论

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

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

Attachment File List

No attachments

编辑

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