Si yo, por ejemplo, tengo 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}
¿Cómo pongo la "L" exactamente en el medio de la línea? Realmente no entiendo cómo funcionan xshift e yshift. ¿Con qué se compara el cambio?
Respuesta1
En lugar de usarlo \fill
para el círculo, puede especificarlo Circle
como punta de flecha (requiere la arrows.meta
biblioteca). Luego puedes dibujar la línea, ambas puntas y ambas etiquetas en una sola línea.
Colocar el node
después --
(o después to
) se colocará de forma predeterminada en el medio del 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}
Respuesta2
Las respuestas anteriores se han centrado en cómo poner la L en el medio de la línea, lo que aborda la primera de sus preguntas, pero dice menos sobre lo que shift
está haciendo. Una de las respuestas existentes toca su segunda pregunta, pero en realidad no la explica.
Para entender qué xshift
y yshift
hacer, es necesario empezar por considerar dóndeNaciones UnidasAparecería un nodo desplazado. El siguiente diagrama muestra esta posición en rojo. Si simplemente colocas el nodo ahí, aquí es donde aparecerá.
El ancla predeterminada es la center
del nodo, que está alineada con la center
del nodo circular.
xshift=-0.5cm
solo dice que desplace el nodo 0,5 cm hacia la izquierda. Mostremos esto en azul.
Esto significa que habrá 5 mm entre el centro de la versión roja y el centro de la azul.
yshift=-0.7cm
solo dice que mueva el nodo 0,7 cm hacia abajo. Mostremos esto en verde.
xshift=-0.5cm,yshift=-0.7cm
combina estas dos instrucciones para que el nodo se mueva 0,5 cm hacia la izquierda y 0,7 cm hacia abajo.
Eso es,
\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}
Respuesta3
Aquí tienes dos formas de hacerlo, en rojo y en verde.
xshift
,yshift
haz lo que dicen: cambia una cantidad determinada- SI conoces las longitudes involucradas, está bien.
- CUANDO no usas
midway
opos
es mejor - donde
midway
simplemente estapos=.5
Por cierto, el texto verde, así como la palabra clave izquierda/derecha, parecen aparecer en el lado equivocado, cuando pones <-
, es decir, la flecha al principio, luego una línea y luego ninguna flecha al 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}
Respuesta4
Como esto:
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}