如何將「L」恰好放在該行的中間?

如何將「L」恰好放在該行的中間?

例如,如果我有以下程式碼:

\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圓圈。然後您可以繪製一條線,將兩個尖端和兩個標籤繪製在一條線上。Circlearrows.meta

放置nodeafter --(或 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正在做什麼。現有答案之一涉及您的第二個問題,但並未真正解釋它。

要了解什麼xshiftyshift做什麼,您需要先考慮聯合國將出現移位節點。下圖用紅色顯示了這個位置。如果您只是將節點放在那裡,它就會出現在此處。

顯示節點預設位置的圖表

預設錨點是節點的錨點,它與圓形節點的center錨點對齊。center

xshift=-0.5cm只是說將節點向左移動0.5cm。讓我們用藍色顯示它。

左移0.5cm效果

這意味著紅色版本的中心和藍色版本的中心之間將有 5 毫米。

yshift=-0.7cm只是說將節點向下移動 0.7cm。讓我們用綠色顯示它。

向下平移0.7cm的效果

xshift=-0.5cm,yshift=-0.7cm結合這兩個指令,使節點向左移動 0.5 厘米,向下移動 0.7 厘米。

組合班次的效果

那是,

附有 xshift 和 yshift 解釋的圖表

\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

有兩種方法可以做到這一點,紅色和綠色。

  • xshiftyshift按照他們說的做:按給定量移動
  • 如果您知道所涉及的長度,那就沒問題了
  • 當您不使用midwaypos更好時
  • 簡單來說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}

相關內容