有没有办法{
在 TikZ 中绘制一个将事物组合在一起的荣誉(-symbol)?我希望荣誉将三个矩形组合在一起。这意味着上部矩形的顶部必须是荣誉的顶部,下部三角形的底部必须是荣誉的底部。当然,我可以使用节点绘制荣誉,但我还没有找到确保尺寸满足此约束的方法。有没有解决方案或解决方法?
答案1
对我来说,这是一个更简单的解决方案,并且具有缩放的可能性。我添加了 Andrew 的想法的解决方案代码非常清晰,但我们无法进行缩放,也许有更好的解决方案可以垂直创建更多空间。使用矩阵的分隔符,括号更漂亮。
\documentclass[]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{fit,calc,positioning,decorations.pathreplacing,matrix}
\begin{document}
\begin{tikzpicture}[decoration={brace}][scale=2]
\node [draw] (A) {A};
\node [draw,yshift=1cm] (B) at (A) {B};
\node [draw,yshift=1cm] (C) at (B) {C};
\node [fit=(A) (B) (C)] (fit) {};
\draw [decorate,line width=1pt] (fit.south west) -- (fit.north west);
\end{tikzpicture}
\hspace*{1cm}
\begin{tikzpicture}[scale=2]
\matrix [matrix of nodes,left delimiter=\{,nodes={draw}] {
A \\[12pt] B \\[12pt] C \\
};
\end{tikzpicture}
\end{document}
答案2
您可以使用fit
TikZ 库创建一个包含节点的矩形节点,例如您的三个矩形。然后,您可以使用节点锚点来绘制您的节点,{
使用缩放{
字符 ( \resizebox{!}{<height of fit>}{\{}
) 或使用绘图命令。两条贝塞尔曲线应该可以做到。
\documentclass[png]{standalone}
\usepackage{tikz}
\usetikzlibrary{fit,calc,positioning}
\begin{document}
\begin{tikzpicture}
\node [draw] (A) {A};
\node [draw,below of=A] (B) {B};
\node [draw,below of=B] (C) {C};
\node [fit=(A) (B) (C)] (fit) {};
\path let \p1=(fit.north west), \p2 = (fit.south east) in
node [left of=fit] {%
\pgfmathsetmacro\heightoffit{.8*(\y1-\y2)}%
\resizebox{!}{\heightoffit pt}{\{}%
};%
\end{tikzpicture}
\end{document}