我问了很多关于嵌套 tikzpicture 环境的问题,如果我同意 Andrew 和 Martin 的观点,认为嵌套 TikZ 图片不是一个好主意,那么了解原因就很有趣了。我给出了一些看起来可以嵌套 TikZ 图片的示例。
通过这些例子,我发现或创建了一些有用的宏,例如
\begin{pgfinterruptboundingbox}
\end{pgfinterruptboundingbox}
这里\useasboundingbox
这里\pgfinterruptpicture
\endpgfinterruptpicture
\ensuretikz
通过马丁这里\restorefont
由 Martin 创建 这里\savecurrentboundingbox
\restorecurrentboundingbox
由我创建这里\tikzifinpicture
这里- 其他
7)它很有趣,因为定义是\pgfutil@ifundefined{filldraw}{#2}{#1}%
。
这些宏对于管理边界框和字体很有用,但也许其他值的保存和恢复也很有趣。
可以查看源代码,但对我们很多人来说这并不容易。我的问题的目的是建立参考答案来描述 tikz 图片开始时设置的变量是什么以及与范围有什么区别?
答案1
范围和 tikzpictures 之间的差异
使用方式。
scope
仅当已经处于“TikZ 模式”时才可使用A。Atikzpicture
启动“TikZ 模式”。a 的内容
node
是文本模式。如何在节点内部排版图片?保留边界框。
概括:范围会努力确保范围的边界框正确传递到周围的 tikzpicture。tikzpicture 环境不希望包含在另一个 tikzpicture 环境中,因此不会充分注意确保外部环境的边界框不受内部环境的影响。
基线的继承。
概括:tikzpicture 的垂直位置可以通过设置
baseline
选项来调整。这是在图片末尾完成的,通过设置在末尾检查的宏来完成(延迟是为了使用图片期间定义的坐标)。此宏不会在图片开始时重置,因此嵌套图片会从外部图片继承设置。更多信息:看TikZ:[基线] 干扰背景层上的模糊阴影
关于这个答案的注意事项:这个答案旨在概括关于此事的信息。请不要在此处发布详细信息,但请提供链接。但是,请确保此信息在此站点的某个位置。因此,如果它在现有答案中,请在此答案中总结并链接到更详细的答案。如果没有,请添加一个包含详细信息的新答案(不是社区 Wiki),并在此处添加摘要。此答案是社区 Wiki,以便于添加。此问题的其他答案不必如此。