Se eu, por exemplo, tiver este código:
\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}
Como coloco o “L” exatamente no meio da linha? Eu realmente não entendo como o xshift e o yshift funcionam. A que se compara a mudança?
Responder1
Em vez de usar \fill
para o círculo, você pode especificar Circle
como ponta de seta (requer a arrows.meta
biblioteca). Então você pode desenhar a linha, ambas as pontas e os dois rótulos em uma linha.
Colocar o node
after --
(ou after to
) será padronizado no meio do segmento.
\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}
Responder2
As respostas anteriores se concentraram em como colocar o L no meio da linha, que trata da primeira de suas perguntas, mas dizem menos sobre o que shift
está acontecendo. Uma das respostas existentes aborda sua segunda pergunta, mas não a explica realmente.
Para entender o que xshift
e yshift
fazer, você precisa começar considerando onde ounnó deslocado apareceria. O diagrama a seguir mostra esta posição em vermelho. Se você simplesmente colocar o nó lá, é aqui que ele aparecerá.
A âncora padrão é a center
do nó, que está alinhada com a center
do nó circular.
xshift=-0.5cm
apenas diz para deslocar o nó 0,5 cm para a esquerda. Vamos mostrar isso em azul.
Isso significa que haverá 5 mm entre o centro da versão vermelha e o centro da versão azul.
yshift=-0.7cm
apenas diz para deslocar o nó 0,7 cm para baixo. Vamos mostrar isso em verde.
xshift=-0.5cm,yshift=-0.7cm
combina essas duas instruções para que o nó seja movido 0,5 cm para a esquerda e 0,7 cm para baixo.
Aquilo é,
\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}
Responder3
Aqui estão duas maneiras de fazer isso, em vermelho e verde.
xshift
,yshift
faça o que eles dizem: mude em uma determinada quantia- SE você conhece os comprimentos envolvidos, tudo bem
- QUANDO você não usa
midway
oupos
é melhor - onde
midway
simplesmente estápos=.5
Aliás, o texto verde, assim como a palavra-chave esquerda/direita, parecem aparecer no lado errado, como você colocou <-
, ou seja, a seta no início, depois uma linha e nenhuma seta no final.
\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}
Responder4
Assim:
Código:
\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}