Как поставить букву «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библиотека). Тогда вы можете нарисовать линию, оба наконечника и обе метки в одну линию.

Размещение 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делает. Один из существующих ответов касается вашего второго вопроса, но на самом деле не объясняет его.

Чтобы понять, что xshiftи yshiftкак делать, нужно начать с рассмотрения того, гдеООНПоявится смещенный узел. Следующая диаграмма показывает это положение красным цветом. Если вы просто поместите узел туда, это то место, где он появится.

диаграмма, показывающая положение узла по умолчанию

Якорем по умолчанию является centerузел, который совмещен с centerкруглым узлом.

xshift=-0.5cmпросто говорит сместить узел на 0,5 см влево. Давайте покажем это синим цветом.

эффект смещения на 0,5 см влево

Это значит, что между центром красной версии и центром синей будет расстояние в 5 мм.

yshift=-0.7cmпросто говорит о том, чтобы сместить узел на 0,7 см вниз. Давайте покажем это зеленым цветом.

эффект смещения на 0,7 см вниз

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делай то, что они говорят: сдвиг на заданную величину
  • ЕСЛИ вы знаете, насколько это будет длинно, это нормально.
  • КОГДА вы не используете midwayили posлучше
  • где midwayпросто находитсяpos=.5

Кстати, зеленый текст, а также ключевое слово left/right, похоже, появляются не с той стороны, как вы указали <-, то есть стрелка в начале, затем линия, а в конце стрелки нет.

результат

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

Связанный контент