我怎样才能将“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 是如何工作的。shift 与什么相比较?

答案1

除了使用\fill圆圈,您还可以指定Circle箭头尖端(需要arrows.meta库)。然后,您可以在一条线上绘制线条、两个尖端和两个标签。

放置node之后--(或之后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.5 厘米。我们用蓝色来显示。

向左移动 0.5cm 的效果

这意味着红色版本的中心和蓝色版本的中心之间将有 5 毫米。

yshift=-0.7cm只是说将节点向下移动 0.7 厘米。我们用绿色显示它。

向下移动 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

这里有两种方法可以做到,红色和绿色。

  • xshift按照他们说的做:yshift按给定的量移动
  • 如果你知道所涉及的长度,那就没问题
  • 当你不使用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}

相关内容