TikZ 图片中的文本定位

TikZ 图片中的文本定位

我希望在图片的特殊点附近放置一些文字,不与任何线重叠,但始终坚持从左侧开始的相同起点(或从右侧结束的相同点),无论文字的长度是多少(虽然总是很短,但我希望能够更改此文字,而不必每次都重新计算其位置)。

在下面的例子中,我在垂直虚线的右侧用黑色写了“1 cm”,并且,作为同一张图片上的另一个例子,我用红色添加了“1.75 mm”。 两者都从与虚线的相同距离开始(红色 1 恰好覆盖黑色 1),这就是我想要的。

平行四边形,其高度为垂直虚线,红色文字“1.75 毫米”覆盖虚线高度线右侧的黑色文字“1 厘米”

但到目前为止,我发现的令人满意的解决方案对我来说有点过于复杂。我还没有找到更好的方法,比如使用rightautomidway关键字、锚点等(许多其他方法往往会将文本放在离虚线较远的地方)。

有很多类似的问题,但我还没有找到解决这个问题的方法。

有没有办法用更短或更好的代码来获得相同的结果?

\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}

相关内容