问题很简单:我在 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}
\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}