我希望在图片的特殊点附近放置一些文字,不与任何线重叠,但始终坚持从左侧开始的相同起点(或从右侧结束的相同点),无论文字的长度是多少(虽然总是很短,但我希望能够更改此文字,而不必每次都重新计算其位置)。
在下面的例子中,我在垂直虚线的右侧用黑色写了“1 cm”,并且,作为同一张图片上的另一个例子,我用红色添加了“1.75 mm”。 两者都从与虚线的相同距离开始(红色 1 恰好覆盖黑色 1),这就是我想要的。
但到目前为止,我发现的令人满意的解决方案对我来说有点过于复杂。我还没有找到更好的方法,比如使用right
、auto
或midway
关键字、锚点等(许多其他方法往往会将文本放在离虚线较远的地方)。
有很多类似的问题,但我还没有找到解决这个问题的方法。
有没有办法用更短或更好的代码来获得相同的结果?
\RequirePackage{luatex85}
\documentclass[a4paper, fleqn, 12pt]{article}
\usepackage{tikz}
\usetikzlibrary {positioning}
\begin{document}
\begin{tikzpicture}[scale=0.25]
\draw[semithick,black] (2, 0) -- (8, 0) -- (6, 3) -- (0, 3) -- cycle;
\draw[semithick,black!80,dash pattern=on 2pt off 1pt] (2, 0) -- (2, 3);
\begin{scope}[node distance=0]
\node (m) at (1,1.5) {};
\node [font=\tiny,right=of m] {$1$ cm};
\node [font=\tiny,red,right=of m] {$1.75$ mm};
\end{scope}
\draw[semithick,black!80] (2, 0.5) -- (2.5, 0.5) -- (2.5, 0);
\draw node[font=\tiny] at (4.75, -0.45) {$3$ cm};
\draw node[font=\tiny,rotate=-55] at (7.5, 1.75) {$2$ cm};
\end{tikzpicture}
\end{document}
注意:上面的解决方案只是“相当”令人满意,因为当改变比例时,文本不再正确定位;但无论如何,我scalebox
也尝试过使用,我认为在改变比例时我必须修改几件事,包括更合理的字体大小,所以可能没有任何解决方案包括令人满意的缩放能力,所以这不是我的问题所需要的。我会写这张图片的两个版本(小尺寸和大尺寸)。
答案1
像这样:
\documentclass[a4paper, fleqn, 12pt]{article}
\usepackage{tikz}
\usetikzlibrary{angles,
positioning,
quotes}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}[scale=0.25, %transform shape,
every edge quotes/.style = {auto=right, inner sep=2pt, font=\tiny, text=black}
]
\draw[semithick] (2,0) coordinate (a)
to["\qty{3}{cm}"]
(8,0) coordinate (b)
to["\qty{3}{cm}" ',sloped]
(6, 3) -- (0, 3) -- (2,0);
\draw[gray,dash pattern=on 2pt off 1pt]
(2, 0) to["\qty{1.75}{cm}"] (2, 3) coordinate (c);
\pic[draw, angle radius=2mm,
] {right angle = b--a--c}; % <------
\end{tikzpicture}
\end{document}