![Gráfico dirigido diferente](https://rvso.com/image/298811/Gr%C3%A1fico%20dirigido%20diferente.png)
Necesito hacer un gráfico similar al de la imagen de arriba pero no sé cómo hacer las líneas horizontales sin la flecha, ni la flecha vertical. Lo mejor que puedo hacer es lo siguiente:
\documentclass{amsart}
\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}
\node (p1) at ( 0, 0) {};
\node (p2) at ( 1, -0.2) {i};
\node (p3) at ( 3,0) {};
\node (p4) at ( 0,1) {};
\node (p5) at ( 2,1.2) {n+j};
\node (p6) at ( 3,1) {};
\begin{scope}[every path/.style={->}]
\draw (p1) -- (p3);
\draw (p4) -- (p6);
\draw (p2) -- (p5);
\end{scope}
\end{tikzpicture}
\end{center}
\end{document}
Producción
Respuesta1
¿Es este el resultado deseado?
Notas:
- Si no desea puntas de flecha al final de las líneas, cambie el estilo
every path/.style={-}
o simplemente elimine esa opción como lo hice a continuación. Las líneas no tienen puntas de flecha de forma predeterminada. - El estilo de flecha que deseas es
-latex
. Entonces, simplemente agregue esa opción cuando sea necesario (como es el caso de la línea naranja). - Añadido
shorten <=
yshorten >=
para ampliar la línea naranja. Alternativamente, puede seleccionar manualmente puntos que esténenla línea. - La
calc
biblioteca se utilizó para calcular los puntos intermedioscoordinate
con los que se dibujó la línea negra vertical. - Hice que las etiquetas de los nodos estuvieran en modo matemático agregando el archivo
$
. - Se agregaron colores para que sea más fácil saber qué comando de dibujo está haciendo qué.
Código:
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{center}
\begin{tikzpicture}[thick]
\node (p1) at ( 0, 0) {};
\node (p2) at ( 1, -0.2) {$i$};
\node (p3) at ( 3,0) {};
\node (p4) at ( 0,1) {};
\node (p5) at ( 2,1.2) {$n+j$};
\node (p6) at ( 3,1) {};
\coordinate (p1MidwayP3) at ($(p1)!0.5!(p3)$);
\coordinate (p4MidwayP6) at ($(p4)!0.5!(p6)$);
\begin{scope}%[every path/.style={-}]
\draw [red] (p1) -- (p3);
\draw [blue] (p4) -- (p6);
\draw [orange, shorten <=-0.08cm, shorten >=-0.10cm, -latex](p2) -- (p5);
\draw (p1MidwayP3) -- (p4MidwayP6);
\end{scope}
\end{tikzpicture}
\end{center}
\end{document}
Respuesta2
Una solución PSTricks, combinada conxfp
:
\documentclass{article}
\usepackage{pstricks-add}
\usepackage{xfp}
\begin{document}
\def\Horizontal{5} % length of the horizontal line segments
\def\Vertical{3} % length of the vertical line segment
\def\Indent{0.5} % indentation of the arrow from both sides
\begin{pspicture}(0,-0.4)(\Horizontal,\fpeval{\Vertical+0.45})
\psline(0,0)(\Horizontal,0)
\psline(0,\Vertical)(\Horizontal,\Vertical)
\psline(\fpeval{\Horizontal/2},0)(\fpeval{\Horizontal/2},\Vertical)
\psline{->}(\Indent,0)(\fpeval{\Horizontal-\Indent},\Vertical)
\uput[270](\Indent,0){$i$}
\uput[90](\fpeval{\Horizontal-\Indent},\Vertical){$n+j$}
\end{pspicture}
\end{document}
Todo lo que tienes que hacer es elegir los valores de \Horizontal
, \Vertical
y \Indent
y el dibujo se ajustará en consecuencia.