我在 TikZ 中有一个梯形节点,无论在\tikzpicture
.
\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\tikzstyle{object} = [draw, trapezium, trapezium left angle=70, trapezium right angle=-70, minimum width=3cm, minimum height=1cm, text centered, draw=black]
\begin{document}
\begin{tikzpicture}[node distance=2cm]
\node(n1)[object]{a};
\node(n2)[object, right of=n1, xshift=1cm]{ab};
\node(n3)[object, right of=n2, xshift=1cm]{abc};
\end{tikzpicture}
\end{document}
设置最小高度和宽度似乎是解决许多与该主题相关的问题的首选,但它却产生了意想不到的结果。
这些梯形的尺寸各不相同,而且梯形内部的字符越少,高度似乎就越高。为什么节点的高度越来越高,字符却越来越少?它试图容纳什么?我希望通过保持宽度不变来增加高度,以容纳更多文本。
% Same as before
\tikzstyle{object} = [draw, trapezium, trapezium left angle=70, trapezium right angle=-70, text width=3cm, text height=1cm, text centered, draw=black]
% Same as before
使用text height
和text width
代替minimum
变体,即使使用 ,文本仍会偏离中心text centered
。同时使用它们两个会产生相同的图像。
我也尝试过设置inner sep
各种值,但效果并不好。任何解决方案都值得赞赏。
答案1
设置文本宽度和文本高度应该会导致 TikZ 使用\parbox
,但显然没有使用[c]
。
\documentclass[10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\tikzset{object/.style={draw, trapezium, trapezium left angle=70, trapezium right angle=-70, draw=black, inner sep=0pt}}
\begin{document}
\begin{tikzpicture}[node distance=2cm]
\node(n1)[object]{\parbox[c][1cm][c]{3cm}{\centering a}};
\node(n2)[object, right=1cm] at (n1.east) {\parbox[c][1cm][c]{3cm}{\centering ab}};
\node(n3)[object, right=1cm] at (n2.east) {\parbox[c][1cm][c]{3cm}{\centering abc}};
\node[draw=red,minimum width=3cm, minimum height=1cm] at (n1.center){};
\node[draw=red,minimum width=3cm, minimum height=1cm] at (n2.center){};
\node[draw=red,minimum width=3cm, minimum height=1cm] at (n3.center){};
\end{tikzpicture}
\end{document}