例如,如果我有以下程式碼:
\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage[margin=2.625cm]{geometry}
\usepackage{subcaption}
\begin{document}
\begin{tikzpicture}
\fill (1.5,1.5) circle [radius=0.05] node[above, yshift=-0.03cm,
font=\small]{1};
\draw[<-, line width=0.3pt, >=stealth] (0.7,0.0) -- (1.5,1.5)
node[xshift=-0.5cm, yshift=-0.7cm, font=\tiny]{L};
\end{tikzpicture}
\end{document}
如何將「L」恰好放在該行的中間?我不太明白 xshift 和 yshift 是如何運作的。與什麼相比?
答案1
您可以指定為箭頭(需要庫),而不是用於\fill
圓圈。然後您可以繪製一條線,將兩個尖端和兩個標籤繪製在一條線上。Circle
arrows.meta
放置node
after --
(或 after to
)將預設放置在段的中間。
\documentclass{article}
\usepackage{tikz}
\usepackage[margin=2.625cm]{geometry}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\draw[stealth-Circle, line width=0.3pt] (0.7,0.0) --node[above left=-2pt, font=\tiny]{L} (1.5,1.5) node[above, font=\small]{1};
\end{tikzpicture}
\end{document}
答案2
早期的答案集中在如何將 L 放在行的中間,這涉及您的第一個問題,但較少談論shift
正在做什麼。現有答案之一涉及您的第二個問題,但並未真正解釋它。
要了解什麼xshift
和yshift
做什麼,您需要先考慮聯合國將出現移位節點。下圖用紅色顯示了這個位置。如果您只是將節點放在那裡,它就會出現在此處。
預設錨點是節點的錨點,它與圓形節點的center
錨點對齊。center
xshift=-0.5cm
只是說將節點向左移動0.5cm。讓我們用藍色顯示它。
這意味著紅色版本的中心和藍色版本的中心之間將有 5 毫米。
yshift=-0.7cm
只是說將節點向下移動 0.7cm。讓我們用綠色顯示它。
xshift=-0.5cm,yshift=-0.7cm
結合這兩個指令,使節點向左移動 0.5 厘米,向下移動 0.7 厘米。
那是,
\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{positioning,arrows.meta,backgrounds}
\begin{document}
\begin{tikzpicture}[every pin/.append style={font=\tiny,help lines,inner sep=1pt},every pin edge/.append style={help lines,densely dashed,{Circle[length=1pt]}-,shorten <=-.5pt},explan/.style={font=\tiny,densely dashed,draw}]
\fill (1.5,1.5) coordinate (c1) circle [radius=0.05] node[above, yshift=-0.03cm, font=\small]{1};
\draw[<-, line width=0.3pt, >=stealth,red] (0.7,0) coordinate (c2) -- (c1) node[explan,pin=45:default]{L};
\begin{scope}[on background layer]
\draw [help lines,densely dashed] (c1) edge +(1,0) edge +(-1,0) edge +(0,1) -- +(0,-1);
\draw [help lines,densely dashed] (c1) ++(-0.5,-0.7) edge +(1.5,0) edge +(-0.5,0) edge +(0,1.7) -- +(0,-0.3);
\draw[<-, line width=0.3pt, >=stealth,blue] (c2) -- (c1) node[xshift=-0.5cm, explan,pin=135:5mm left]{L};
\draw[<-, line width=0.3pt, >=stealth,green] (c2) -- (c1) node[yshift=-0.7cm, explan,pin=-45:7mm down]{L};
\draw [densely dashed,blue] (c1) -- ++(-0.5cm,0) coordinate [midway,pin=above:5mm] (c3) ;
\draw [densely dashed,green] (c1) -- ++(0,-0.7cm) coordinate [midway,pin=right:7mm] (c4) ;
\end{scope}
\draw[<-, line width=0.3pt, >=stealth] (c2) -- (c1) node[xshift=-0.5cm, yshift=-0.7cm, font=\tiny,pin=-135:5mm left 7mm down]{L};
\end{tikzpicture}
\end{document}
答案3
有兩種方法可以做到這一點,紅色和綠色。
xshift
,yshift
按照他們說的做:按給定量移動- 如果您知道所涉及的長度,那就沒問題了
- 當您不使用
midway
或pos
更好時 - 簡單來說
midway
就是pos=.5
順便說一句,綠色文字以及左/右關鍵字似乎出現在錯誤的一側,正如您所說<-
,即開頭的箭頭,然後是一行,最後沒有箭頭。
\documentclass{article}
%\usepackage{graphicx} % Required for inserting images
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage[margin=2.625cm]{geometry}
\usepackage{subcaption}
\begin{document}
\begin{tikzpicture}
\fill (1.5,1.5) circle [radius=0.05]
node[above, yshift=-0.03cm, font=\small] {1};
\draw[<-, line width=0.3pt, >=stealth] (0.7,0.0) -- (1.5,1.5)
node[xshift=-0.5cm, yshift=-0.7cm, font=\tiny]{L}
node[red,midway,right]{+}
node[green,pos=0.2,right]{+};
\end{tikzpicture}
\end{document}
答案4
像這樣:
代碼:
\documentclass{article}
%\usepackage{graphicx} % Required for inserting images
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage[margin=2.625cm]{geometry}
\begin{document}
\begin{tikzpicture}
\fill (1.5,1.5) circle [radius=0.05] node[above, yshift=-0.03cm,
font=\small]{1};
\draw[<-, line width=0.3pt, >=stealth] (0.7,0.0) -- (1.5,1.5)
node[pos=.5, font=\tiny,fill=white]{L};
\end{tikzpicture}
\end{document}