next up previous
Next: 開発環境 Up: 使用方法 Previous: 制限事項

ちょっとしたテクニック

本マクロでは, 1ビットの幅や高さとビットフィールドに記述する文字列は 独立しています。従って実際にはビットフィールドの文字列の方が, 1ビットの幅よりも長くてもそのまま, はみ出させて描画します。

\RegisterDraw{3mm}{5mm}{\REG<7:0>{とても長い長い長い文字列\\です}}

これを防ぐ為には予め, 最も長い文字列をダミーの box に入れて長さを 計算することによって実現出来ます。

\newbox\DummyBox
\setbox\DummyBox\hbox{%
        \sf\shortstack{とても長い長い長い文字列\\です。}}
\RegisterDraw{.126\wd\DummyBox}{1.1\ht\DummyBox}{%
        \REG<7:0>{とても長い長い長い文字列\\です。}}

\wd, \ht という TeXのプリミティブを使用する事に よって長さを求める事が出来ます。 この例では幅を求める場合に 0.126 という値を乗じていますが, これは, 8ビットを打ち貫で表示していますので, 1ビットの長さを得る為には \wd で求めた値を 8 で割る必要があります。 で 1.125 という値が求まりますが, これだと文字と罫線の間にスペースが 入りませんので 0.126 という値を乗じています。高さの方も同様の処理 で求めています。



Tadamegu Furukawa
Sun Feb 2 19:18:13 1997