TikZ/PGF 文档(v 2.10)包含以下使用示例local bounding box
:
\documentclass{article}
\usepackage{tikz}
\usepgfmodule{shapes}
\usetikzlibrary{scopes}
\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (3,2);
{ [local bounding box=outer box]
\draw (1,1) circle (.5) [local bounding box=inner box] (2,2) circle (.5);
}
\draw (outer box.south west) rectangle (outer box.north east);
\draw[fill,red] (inner box.south west) rectangle (inner box.north east);
\end{tikzpicture}
\end{document}
– 实际上只是tikzpicture
,我把它做成了一个完整的文档。在我明确设置全局边界框之前,它的工作方式与宣传的一样:
\documentclass{article}
\usepackage{tikz}
\usepgfmodule{shapes}
\usetikzlibrary{scopes}
\begin{document}
\begin{tikzpicture}
\path[use as bounding box] (-1,-1) rectangle (4,3); % <------------
\draw [help lines] (0,0) grid (3,2);
{ [local bounding box=outer box]
\draw (1,1) circle (.5) [local bounding box=inner box] (2,2) circle (.5);
}
\draw (outer box.south west) rectangle (outer box.north east);
\draw[fill,red] (inner box.south west) rectangle (inner box.north east);
\end{tikzpicture}
\end{document}
– 然后两个绘制的轮廓outer box
和inner box
消失。变为\draw
表示\fill
框变得很大并覆盖了整个页面甚至更多。
我的问题:我该如何让它发挥作用?这是一个已知的错误,有解决方法吗?
我的目标local bounding box
是使用以下方法来测量 TikZ 图形部分的宽度和高度卡拉姆迪尔的方法。万一local bounding box
坏了,我还能做什么?
答案1
来自以下文档/tikz/use as bounding box
:
通常,当在路径上给出此选项时,将使用当前路径的边界框来确定图片的大小,并所有后续路径的大小都被忽略。
这就是为什么你不能local bounding box
在它之后使用它。
但是您可以做的是随后重置边界框,如下所示:
\pgfresetboundingbox
\path[use as bounding box] (-1,-1) rectangle (4,3);
完整代码如下:
\documentclass[varwidth,border=10,convert]{standalone}
\usepackage{tikz}
\begin{document}
before
\begin{tikzpicture}
\draw [help lines] (0,0) grid (3,2);
\scoped[local bounding box=outer box]
\draw (1,1) circle (.5) [local bounding box=inner box] (2,2) circle (.5);
\draw (outer box.south west) rectangle (outer box.north east);
\draw[red] (inner box.south west) rectangle (inner box.north east);
\pgfresetboundingbox
\path[use as bounding box] (-1,-1) rectangle (4,3);
\end{tikzpicture}
after
\end{document}