尽管内容不同,但强制三角形具有相同的大小

尽管内容不同,但强制三角形具有相同的大小

我有以下代码可以生成 4 个三角形:

\documentclass[crop,tikz]{standalone}

\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{shapes}

\begin{document}

\tikzstyle{triangle} = [regular polygon,
regular polygon sides=3,draw, text width=0.5em,
inner sep=0.3mm, outer sep=0mm, shape border rotate=-90]

\begin{tikzpicture}
\node[triangle] (t1) {$A$};
\node[triangle,below=1cm of t1] (t2) {};
\node[triangle,below=1cm of t2] (t3) {$q$};
\node[triangle,below=1cm of t3] (t4) {$\frac{1}{2}$};
\end{tikzpicture}
\end{document}

我希望所有四个三角形具有相同的大小,并且它应该是代码中第二个三角形(最小的一个)的大小。

自动调整大小应该基本上忽略内容。它还应该将内容稍微向左移动,三角形较大的地方。然后例如 \frac{1}{2} 应该仍然能够适合小三角形。

我该如何让它工作?我已经尝试设置 inner sep=0,但没有帮助。

答案1

带有包的解决方案tkz-euclide

\documentclass[crop,tikz,margin=3mm]{standalone}

\usepackage{tkz-euclide}
\usetikzlibrary{positioning}
%\usetikzlibrary{shapes}
\tikzset{%
pics/triangle/.style args={#1}{
    code={
    \def\edge{1}% edge of triangle
\tkzDefPoint(0,0){A}
\tkzDefShiftPoint[A](90:\edge){B}
\tkzDefShiftPoint[A](30:\edge){C}
\tkzDrawPolygon(A,B,C)
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{G}
\node at (G) {$#1$};
    }
  }
}

\begin{document}

\begin{tikzpicture}
\foreach \t/\y in {A/1,/2, q/3,\frac{1}{2}/4}{
\pic at (0,-\y*1.2) {triangle=\t};
}
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

你喜欢这种简单的方法吗?而是使用node,创建一个图片以避免内部分离;内容是通过单独的节点添加的。

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}
\def\r{1}
\tikzset{triangle/.pic={
\draw (0:\r)--(120:\r)--(-120:\r)--cycle;
}}
\path 
(0,0) pic{triangle} node{$A$}
(3,0) pic{triangle} 
(6,0) pic{triangle} node{$q$}
(9,0) pic{triangle} node{$\dfrac{1}{2}$};
\end{tikzpicture}
\end{document}

相关内容