TikZ 图片的边界框

问题描述 投票:0回答:1

问题很简单:我在 LaTeX 文档中有 TikZ 图片,我需要确定它们的边界框的高度和宽度来计算长宽比。

我知道如何在 Ghostscript 中对 pdf、eps 文件和其他文件执行此操作,一种可能的解决方案是为每张图片单独编译 TikZ 代码,然后使用 GS。

然而,这看起来既不直接也不优雅,甚至可能给出错误的值,具体取决于独立编译的作用。

那么如何直接获取边界框坐标呢?

MWE - 我想获取图 1 的边界框的坐标:

\documentclass[10pt,a4paper]{article}

\usepackage{tikz}

\usepackage{lipsum}

\begin{document}
    \lipsum[1]
    
    \begin{figure}[h!]
    \begin{center}
    \begin{tikzpicture}
        \node[draw,fill,red,circle,radius=5cm] at (0,0) {};
        \draw[fill,green,] (2,0) rectangle (4,1);
    \end{tikzpicture}
    \end{center}
    \caption{\lipsum[1][1-3]}
    \end{figure}
    
    \lipsum[1]
\end{document} 
bounding-box tikz
1个回答
0
投票
\documentclass[10pt,a4paper]{article}

\usepackage{tikz}

\usepackage{lipsum}

\newsavebox{\quack}

\begin{document}
    \lipsum[1]
    
    \begin{figure}[h!]
    \begin{center}
    \sbox{\quack}{%    
    \begin{tikzpicture}
        \node[draw,fill,red,circle,radius=5cm] at (0,0) {};
        \draw[fill,green,] (2,0) rectangle (4,1);
    \end{tikzpicture}%
    }
    \usebox{\quack}
    
    Width: \the\wd\quack
    
    Height: \the\ht\quack
    
    Depth: \the\dp\quack
    \end{center}
    \caption{\lipsum[1][1-3]}
    \end{figure}
    
    

    
    \lipsum[1]
\end{document} 
© www.soinside.com 2019 - 2024. All rights reserved.