【问题标题】:The way to find out whole picture width in PGF (Latex)在 PGF (Latex) 中找出整个图片宽度的方法
【发布时间】:2010-04-11 14:27:11
【问题描述】:

我有一个乳胶宏,它根据给定的参数使用 PGF 和 Tikz 绘制图片。绘制的图片宽度取决于这些参数。

PGF 会自动计算绘制的任何图片的最终宽度,因此用户不必显式设置它(例如在图片环境中使用 Latex 构建时)。

但是我需要知道将要绘制的图片的宽度。当然,我可以像 PGF 那样计算它,但这将是相当多的工作(很多 if 语句......)。有没有办法询问 PGF 要绘制的图片宽度是多少(我期望的一些命令)?在 tikzpicture 环境中还是在它之后? 感谢您的帮助。

【问题讨论】:

    标签: latex macros tex image pgf


    【解决方案1】:

    我可能会做的是将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 文件。

    【讨论】:

    • 这就是我所说的好答案!谢谢你。它也应该出现在我的脑海中,我已经使用过盒子......但它只是没有。我想查询环境,但这对我来说更好。非常感谢!
    • 哇,这真的很有帮助也很有趣,@aAntal。谢谢!
    猜你喜欢
    • 2022-10-16
    • 2019-03-08
    • 2021-05-26
    • 2021-10-22
    • 2019-07-02
    • 2017-11-22
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    相关资源
    最近更新 更多