Observações

Observações

Eu tenho a seguinte imagem tikz:

 \documentclass{book}
 \usepackage{tikz}

 \begin{document}

 \begin{tikzpicture}
 \node(x1) {$x_1$};
 \node(x2) [right of = x1] {$x_2$};
 \node(x3) [right of = x2]{$x_3$};
 \node(x4) [right of = x3]{$x_4$};

 \draw [->] (x1) -- (x2) ;
 \draw [->] (x2) -- (x3) ;
 \draw [->] (x3) -- (x4) ;


 \node(y1) [below of = x1]{$y_1$};
 \node(y2) [right of = y1] {$y_2$};
 \node(y3) [right of = y2] {$y_3$};
 \node(y4) [right of = y3] {$y_4$};

 \draw [->] (y1) -- (x1) ;
 \draw [->] (y2) -- (x2) ;
 \draw [->] (y3) -- (x3) ;
 \draw [->] (y4) -- (x4) ;

 \end{tikzpicture}

  \end{document}

Quero que as flechas sejam mais longas. Quando uso "encurtar >= -5pt" por exemplo, no comando desenhar entre colchetes, as setas ficam mais longas, mas passam por cima dos nós. Tem como deixar tudo mais espaçoso, além de alongar as setas?

Além disso, existe uma maneira de inserir outro nó à esquerda de uma das setas verticais? (ou mais especificamente, como declaro "abaixo de" ou "à esquerda de" etc. para uma seta, e não um nó?) Tentei \draw(arr1) rotular a seta e depois coloquei um nó no esquerda de arr1, mas recebo um erro.

Responder1

Você não deveria usar below of = node. Está obsoleto (vejaDiferença entre "direito de =" e "direito = de" em PGF/TikZ). Em vez disso, use a positioningbiblioteca do tikz. Ele permite que você escreva right = 1.5cm of node. Você pode variar ou omitir a distância.

Para rotular um caminho, basta adicionar node[left] {label 1}atrás do --. Você pode adicionar pos=valueum valor entre 0 e 1 às opções do nó para especificar a posição no caminho.

Exemplo

(seu código modificado)

\documentclass{article}

\usepackage{tikz}

\usetikzlibrary{positioning}

\begin{document}
    \begin{tikzpicture}
        \node(x1) {$x_1$};
        \node(x2) [right = 1.5cm of x1] {$x_2$};
        \node(x3) [right = 1.5cm of x2]{$x_3$};
        \node(x4) [right = 1.5cm of x3]{$x_4$};

        \draw [->] (x1) -- (x2) ;
        \draw [->] (x2) -- (x3) ;
        \draw [->] (x3) -- (x4) ;


        \node(y1) [below = 2 of x1]{$y_1$};
        \node(y2) [below = 2 of x2] {$y_2$};
        \node(y3) [below = 2 of x3] {$y_3$};
        \node(y4) [below = 2 of x4] {$y_4$};

        \draw [->] (y1) -- node[left, pos=0.2] {beginning} (x1) ;
        \draw [->] (y2) -- node[left, pos=.8] {ending} (x2) ;
        \draw [->] (y3) -- node[left] {label 3} (x3) ;
        \draw [->] (y4) -- node[left] {label 4} (x4) ;
    \end{tikzpicture}
\end{document}

Resulta em:

resultado

Responder2

Observações

Você pode especificar a distância padrão entre os nós, que são colocados usando right of=, left of=, etc. usando a chave node distance=<length>.

Para colocar um nó ao longo de um caminho, basta inseri-lo após a operação lineto, ou seja

\draw (0,0) -- node {on the path} (4,0);

Se você quiser que o texto seja inclinado com o seu caminho, use a slopedchave como uma opção para o nó.

Leia mais sobre o posicionamento dos nós noDocumentação TikZna seção 16.8 na página 190. Você também pode estar interessado no Tutorial "A Petri-Net for Hagen", que investiga em nós e pode ser encontrado no capítulo 3 na página 40.

Implementação

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[node distance=2.5cm]
    \node(x1) {$x_1$};
    \node(x2) [right of = x1] {$x_2$};
    \node(x3) [right of = x2] {$x_3$};
    \node(x4) [right of = x3] {$x_4$};

    \draw [->] (x1) -- (x2) ;
    \draw [->] (x2) -- (x3) ;
    \draw [->] (x3) -- (x4) ;


    \node(y1) [below of = x1]{$y_1$};
    \node(y2) [right of = y1] {$y_2$};
    \node(y3) [right of = y2] {$y_3$};
    \node(y4) [right of = y3] {$y_4$};

    \draw [->] (y1) -- node[sloped,below] {(y1) $\to$ (x1)} (x1) ;
    \draw [->] (y2) -- node[sloped,below] {(y2) $\to$ (x2)} (x2) ;
    \draw [->] (y3) -- node[sloped,below] {(y3) $\to$ (x3)} (x3) ;
    \draw [->] (y4) -- node[sloped,below] {(y4) $\to$ (x4)} (x4) ;
\end{tikzpicture}
\end{document}

Saída

insira a descrição da imagem aqui

informação relacionada