我有一个latex宏,它根据给定的参数使用PGF和Tikz绘制图片。所画图片的宽度取决于这些参数。
PGF自动计算绘制的任何图片的结果宽度,因此用户不必显式设置它(例如,在图片环境中使用latex build时)。
然而,我需要知道图片的宽度,将被绘制。当然,我可以像PGF一样计算它,但这将是相当多的工作(很多if语句...)。有没有办法问PGF要绘制的图片的宽度是多少(我希望有一些命令)?是在tikzpicture环境中,还是在它之后?谢谢你的帮助。
发布于 2010-04-12 05:44:46
我可能会做的是把tikzpicture环境放在一个盒子里,然后找出盒子的宽度:
\setbox0=\vbox{\hbox{%
\begin{tikzpicture}
% ...
\end{tizpicture}%
}}
The width of the following picture is {\the\wd0}.
\box0请注意,在运行\box0之后,该框将被插入到文档中,并且其内容将被销毁;因此,您需要在执行此操作之前查询框的宽度。如果想要保存宽度,可以使用\dimen0=\wd0将其存储在维度寄存器中;或者,可以使用\copybox0,它会插入长方体,但不会破坏它(尽管这可能会泄漏内存)。
此外,我以前尝试过其中的一些方法,我发现只使用\vbox会导致框始终是整个页面的宽度(如果你仔细想想,这是有意义的);然而,只使用\hbox会因为某些原因导致取消装箱失败(它似乎是一个已知的pug)。然而,使用这两种方式,我使用了非常类似的东西来将TikZ图片渲染成大小恰到好处的PDF文件。
https://stackoverflow.com/questions/2617342
复制相似问题