Что я, вероятно, сделал бы, это поместил среду tikzpicture
в коробку, а затем нашел ширину рамки:
\setbox0=\vbox{\hbox{%
\begin{tikzpicture}
% ...
\end{tizpicture}%
}}
The width of the following picture is {\the\wd0}.
\box0
Обратите внимание, что после запуска \box0
поле будет вставлено в документ, а его содержимое будет уничтожено; Таким образом, вам нужно запросить ширину окна, прежде чем сделать это. Если вы хотите сохранить ширину, вы можете сохранить ее в регистре измерений с помощью \dimen0=\wd0
; В качестве альтернативы вы можете использовать \copybox0
, который вставляет поле, но не разрушает его (хотя это может привести к утечке памяти).
Кроме того, поиграв с этим ранее, я обнаружил, что использование только \vbox
приводит к тому, что поле всегда будет иметь полную ширину страницы (что, если вы об этом думаете, имеет смысл); однако, использование только \hbox
вызвало сбой распаковки по какой-то причине (это был известный мопс). Использование обоих подобных способов работает, однако & mdash; я использую нечто очень похожее для рендеринга изображений TikZ в файлы PDF точно подходящего размера.