xycentershow.ps

 xycentershow.psは文字あるいは文字列を,X方向だけではなく,Y方向に対してもセンタリングして表示するものです.centershowおよび,その類似コードはいわばxcentershowでX座標のみ考慮したものです.ネットで,xycentershow,hvcentershowなどを捜してみましたが,ヒットしませんでした.たまたま見ていたら,xycentershowに該当するものがあったので, ここに置いておきます. ←ここまでは,2011.1.6に書いたものです.この時は,説明とコードを読んで, stringwidthの意味を文法書で確認して納得しました. 2012.4になって,実際に使う必要が出てきたので使ってみたら, y方向のセンタリングがうまく行きません. 最初に必要になったときには,センタリングしようとした文字が小さく, centershowでもそんなに違和感がなかったので,それでよしとした訳ですが, 今回は文字が大きかったので,明らかにおかしい状態になってしまいました. そこで調べてみると,stringwidthは実際にはyの値として常に0を返すようなのです. これでは使い物にならないので,更に調べると,描画域のチェックには, 「charpath flattenpath pathbbox」がイデオムの様です. 但し,これでは描画範囲の中心は得られても, 見た目の中心にはならないという指摘もありました. ということで, 文法的に正しい例をここに置きました. 見た目では,中心線が大分上の方にあるように見えましたので, 「亜」の中心にセンタリングされるように補正してみたものも 作ってみました. まあ,当然ながら,文字あるいは文字列ごとに補正量は異なるでしょうから, きれいな結果が欲しいときには,補正量をケースごとに変更することになります. 大体でよければ,場合によっては,私の最初の経験のように, centershowで十分なこともあるし,文法通りのものでも問題にならないと思います.  
 
 
その他研究参考情報
正面玄関
現行版:2012年4月10日
初 版:2011年1月6日
メールアドレス:nmizunoアットマークaffrc.go.jp