我正在尝试绘制一个简单的三角形,并标记每条边的长度,并且我正在尝试使用 tikz。
\documentclass[12pt,letterpaper]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[black,thick] (0, 0) -- node[below]{\(1\)} ++ (1, 0);
\draw[black,thick] (0, 0) -- node[left]{\(1\)} ++ (0, 1);
\draw[black,thick] (1, 0) -- (0, 1);
\end{tikzpicture}
\end{document}
这有效,并生成一个带有预期标签的三角形:
\draw
但是,当我尝试通过将第三个语句更改为 来向斜边添加标签时\draw[black,thick] (1, 0) -- node[above right]{\(\sqrt{2}\)} ++ (0, 1);
,我得到了以下信息:
标签确实位于其上方和右侧,但我的三角形……不再是三角形。我该如何修复它,使其看起来更像这样(该图是为了表示我希望如何放置标签/线条 -\( ... \)
当然,我会使用适合标签的图形)
我该如何修正我的 LaTeX 以正确显示三边都有标签的三角形?
答案1
使用quote
库和绝对坐标:
\documentclass[12pt,margin=3mm]{standalone}
%\documentclass[12pt,letterpaper]{article}
\usepackage{tikz}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}[
every edge quotes/.style = {auto=right, font=\footnotesize, inner sep=2pt}
]
\draw[thick] (0,0) to["\(1\)"] (2,0)
to["\(\sqrt{2}\)"] (0,2)
to["\(1\)"] cycle;
\end{tikzpicture}
\end{document}
并带有相对坐标:
\documentclass[12pt,margin=3mm]{standalone}
%\documentclass[12pt,letterpaper]{article}
\usepackage{tikz}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}[
every edge quotes/.style = {auto=right, font=\footnotesize, inner sep=2pt}
]
\draw[thick] (0,0) to["\(1\)"] ++ ( 2,0)
to["\(\sqrt{2}\)"] ++ (-2,2)
to["\(1\)"] cycle;
\end{tikzpicture}
\end{document}
两种情况下的结果都相同:
答案2
此代码提供了两个选项,即正确的三角形和节点标记。上面的一个使用了您的标记样式,下面的一个是 Qrrbrbirlbel 提到的(包括他在评论中提到的缺失节点)。
\documentclass[12pt,letterpaper]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[black,thick] (0,0) -- node[below] {\(1\)} (1,0) -- node[above right]{\(\sqrt{2}\)} (0,1) -- node[left]{\(1\)} cycle;
\end{tikzpicture}
\begin{tikzpicture}
\draw[black, thick, auto=right] (0, 1) -- node{1} (0, 0) -- node{1}(1,0) -- node{$\sqrt 2$} cycle;
\end{tikzpicture}
\end{document}
在您的代码中,当您使用代码时,您实际上创建了一个矩形
\draw[black,thick] (0,0) -- node[below]{\(1\)} ++ (1,0);
您将左角放在位置 (0,0),并将矩形扩展 1 个单位宽和 0 个单位高。这就是++
节点后面的添加的含义。因此您无需绘制线定义一个三角形,但是块厚度为 0。
使用cycle
代码末尾的命令告诉 tikz 您正在绘制一个封闭的图形,最终也可以填充颜色。
答案3
和tkz-euclide
\documentclass{article}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,1/0/B,0/1/C}
\tkzDrawPolygon[thick](A,B,C)
\tkzLabelSegment(A,B){$1$}
\tkzLabelSegment[auto=right](B,C){$\sqrt{2}$}
\tkzLabelSegment[left](C,A){$1$}
\end{tikzpicture}
\end{document}