Linhas/setas paralelas verticais

Linhas/setas paralelas verticais

Como posso desenhar comtikz-cd

  1. duas linhas verticais paralelas
  2. duas linhas verticais paralelas apontando em direções opostas?

Responder1

Algo assim?

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
A\arrow[transform canvas={xshift=0.3ex},-]{d} \arrow[transform canvas={xshift=-0.4ex},-]{d} & B\arrow[transform canvas={xshift=0.9ex}]{d} \\
C  & D \arrow[transform canvas={xshift=-0.4ex}]{u} 
\end{tikzcd}

\end{document}

insira a descrição da imagem aqui

Outra opção para as linhas duplas seria a equalseta:

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
A\arrow[equal]{d} & B\arrow[transform canvas={xshift=0.9ex}]{d} \\
C  & D \arrow[transform canvas={xshift=-0.4ex}]{u} 
\end{tikzcd}

\end{document}

insira a descrição da imagem aqui

Use o mesmo valor de deslocamento se desejar uma separação igual; no exemplo a seguir as setas à esquerda serão 0,7ex à esquerda da âncora norte e as setas à direita serão 0,7ex à direita da âncora norte (em vez de 0.7exvocê pode usar qualquer outro comprimento válido, de acordo com suas necessidades):

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
A\arrow[transform canvas={xshift=0.7ex},-]{d} \arrow[transform canvas={xshift=-0.7ex},-]{d} & B\arrow[transform canvas={xshift=0.7ex}]{d} \\
C  & D \arrow[transform canvas={xshift=-0.7ex}]{u} 
\end{tikzcd}

\end{document}

insira a descrição da imagem aqui

Por padrão, tikz-cdusa \scriptstylepara os rótulos; se quiser alterar isso, você pode usar a chave de rótulos para usar, por exemplo \textstyle,:

\documentclass{article}
\usepackage{tikz-cd}

\tikzset{commutative diagrams/diagrams={%
  labels={font=\everymath\expandafter{\the\everymath\textstyle}}}}

\begin{document}

\begin{tikzcd}
A \arrow{r}{\eta} & B \\
\end{tikzcd}

\end{document}

insira a descrição da imagem aqui

Responder2

Com o PSTricks, é só diversão!

insira a descrição da imagem aqui

\documentclass[preview,border=12pt]{standalone}
\usepackage{pst-node}
\begin{document}
\offinterlineskip
$
\begin{psmatrix}[rowsep=1,colsep=2,mnode=circle,shortput=tablr,nodesep=2pt]
    Left & Right
\ncline[offset=3pt]{->}{1,1}{1,2}^{above}
\ncline[offset=-3pt]{<-}{1,1}{1,2}_{below}
\end{psmatrix}
$
\qquad
$
\begin{psmatrix}[rowsep=1,colsep=2,mnode=circle,shortput=tablr,nodesep=2pt]
    Top \\
    Bottom
\ncline[offset=3pt]{->}{1,1}{2,1}>{right}
\ncline[offset=-3pt]{<-}{1,1}{2,1}<{left}
\end{psmatrix}
$
\end{document}

Aviso:

Pelo que eu sei, o raio do nó do círculo não pode ser ajustado para ser uniforme.

Responder3

O pacote/biblioteca TikZ-CD hoje em dia vem com chaves chamadas shift lefte shift right.

Eles aceitam:

  1. sem argumento,
  2. um fator (sem unidades) e
  3. uma dimensão (com unidades).

A chave mudará a linha ortogonalmente à linha que conecta as coordenadas iniciais e finais originais (geralmente um ponto na borda dos nós) por

  1. cujo valor padrão shift lefté, por padrão, 0,56ex,
  2. dito valor padrão multiplicado pelo fator fornecido ou
  3. o comprimento dado.

Os nós ao longo da seta (chamados de rótulos por TikZ-CD) serão colocados ao longo do novo caminho deslocado e não no caminho não deslocado.


O primeiro diagrama no código abaixo mostra

  • duas linhas paralelas sem ponta de seta entreAeC,
  • duas setas paralelas para frente (entreBeD) de onde alguém é extraídoBparaDe um deDparaB(ambos com shift left) e
  • duas setas paralelas desenhadas a partirCparaBonde se inverteu as pontas das setas ( leftarrow).

No segundo diagrama mostro como funciona a mudança:
insira a descrição da imagem aqui

A linha cinza representa as conexões diretas entre os nós. A linha verde fina é a curva não deslocada, enquanto a linha verde grossa é a curva deslocada.

A linha tracejada azul mostra a conexão entre o ponto inicial e final da curva, as setas azuis mostram a direção da mudança (ortogonal à linha tracejada).

Código

\documentclass[tikz]{standalone}
\usetikzlibrary{cd}
\begin{document}
\begin{tikzcd}
  A \ar[d, dash, shift left] \ar[d, dash, shift right]
& B \ar[d, shift left]\\
  C \ar[u, dash, shift left]
    \ar[ur, shift left]
    \ar[ur, shift right, leftarrow]
& D \ar[u, shift left]
\end{tikzcd}
\begin{tikzcd}[
  cells={nodes={draw, help lines}}, /tikz/>={Stealth[scale=.5]},
  /tikz/c/.style={shape=coordinate, name={#1}}, column sep=tiny, arrows=dash]
    & A \\
  B \ar[ur, help lines]
    \ar[ur, out=90, in=270, help lines, green,
        "" {at start, c=A }, "" {at end, c=B }]
    \ar[ur, out=90, in=270, shift left=3, green, thick,
        "" {at start, c=A'}, "" {at end, c=B'}]
    \ar[help lines, from=A, to=B, dashed, blue]
    \ar[help lines, blue, from=A, to=A', ->]
    \ar[help lines, blue, from=B, to=B', ->]
\end{tikzcd}
\end{document}

Saída

insira a descrição da imagem aqui

informação relacionada