3

与えられたパラメータに従ってPGFとTikzを使用して絵を描くラテックスマクロがあります。描画される画像の幅は、これらのパラメータによって異なります。

PGFは、描画された画像の結果の幅を自動的に計算するため、ユーザーは明示的に設定する必要はありません(たとえば、画像環境でラテックスビルドを使用する場合など)。

ただし、描画される画像の幅を知る必要があります。当然のことながら、PGFと同じように計算できますが、これはかなりの作業になります(多くのifステートメント...)。描画される画像の幅をPGFに尋ねる方法はありますか(私が期待するコマンド)?tikzpicture環境内ですか、それとも直後ですか?手伝ってくれてありがとう。

4

1 に答える 1

5

私がおそらく行うことは、tikzpicture環境をボックスに入れてから、ボックスの幅を見つけることです。

\setbox0=\vbox{\hbox{%
  \begin{tikzpicture}
    % ...
  \end{tizpicture}%
}}
The width of the following picture is {\the\wd0}.
\box0

を実行する\box0と、ボックスがドキュメントに挿入され、その内容が破棄されることに注意してください。したがって、それを行う前に、ボックスの幅を照会する必要があります。幅を保存したい場合は、\dimen0=\wd0;を使用して次元レジスタに格納できます。または、を使用することもできます\copybox0。これは、ボックスを挿入しますが、ボックスを破棄しません(ただし、これによりメモリがリークする可能性があります)。

また、これまでにいくつか遊んだことがありますが、これを使用する\vboxと、ボックスが常にページの全幅になることがわかりました(考えてみれば、これは理にかなっています)。ただし、単にを使用\hboxすると、何らかの理由で開梱が失敗しました(既知のパグのようです)。ただし、このように両方を使用すると、TikZ画像を正確に適切なサイズのPDFファイルにレンダリングするためにこのようなものを使用しています。

于 2010-04-11T21:44:46.403 に答える