取消设置 PGF/TikZ 密钥

取消设置 PGF/TikZ 密钥

是否有可能“取消设置” PGF/TikZ 密钥?“取消设置”的意思是将密钥从密钥列表中删除,并使 PGF/TikZ 表现得好像从未指定过一样。为了澄清起见,请考虑这个最小的工作示例:

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{shapes.misc}

\begin{document}
\begin{tikzpicture}
  \tikz\node[draw=red, circle] {Short 1};
  \node[draw, text width=3cm] (r1) {
    \tikz\node[draw=blue, circle] {Short 2};
  };
\end{tikzpicture}
\end{document}

在结果输出中,我期望两个圆圈大小相同(除了由于“1”与“2”而产生的微小差异)。但是,第二个(蓝色)圆圈从父节点继承了文本宽度属性。现在,我想让那个(蓝色)圆圈表现得好像从未为其指定文本宽度一样。我该如何实现呢?

当然,有效的方法是手动指定不同的文本宽度,但这对我来说不是一个选择,因为我想 动态的节点大小在另一个节点内。使用外部节点的最小宽度/高度而不是文本宽度也无法为我最终的用例产生令人满意的结果(即,顺便说一句,具有相同大小的节点,一些包含文本,一些包含其他节点)——我可以设法使用它,但据我所知,这意味着创建额外节点的开销很大。

当然,这个问题可以概括为“我如何将tikzpicture一个不是继承为父节点设置的键吗?

我希望我已经表达清楚了,并且我的问题能得到一个简单的答案;-)

答案1

\tikz如果您确实想在节点内使用,则需要将其添加text width=到蓝色节点内。如果不这样做,text width=5cm它将由最后一个节点继承。

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{shapes.misc}

\begin{document}
\begin{tikzpicture}
  \node[draw=red, circle] {Short 1}; % the first \tikz is not useful and it's a bad idea
  \node[draw, text width=5cm] (r1) {%
    \tikz \node[draw=blue, circle,text width=] {Short 2};%
  };
\end{tikzpicture}
\end{document}

在此处输入图片描述

如果代码更复杂,则需要将包含的环境 tikzpicture 保存在一个框内。(请参阅 Andrew 提供的链接)

相关内容