
¿Cómo puedo dibujar contikz-cd
- dos líneas verticales paralelas
- ¿Dos rectas verticales paralelas que apuntan en direcciones opuestas?
Respuesta1
¿Algo como esto?
\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}
Otra opción para las líneas dobles sería la de la equal
flecha:
\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}
Utilice el mismo valor de desplazamiento si desea una separación igual; en el siguiente ejemplo las flechas a la izquierda serán 0.7ex a la izquierda del ancla norte y las flechas a la derecha serán 0.7ex a la derecha del ancla norte (en lugar de 0.7ex
puedes usar cualquier otra longitud válida, según tus necesidades):
\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}
De forma predeterminada, tikz-cd
se utiliza \scriptstyle
para las etiquetas; Si desea cambiar esto, puede usar la tecla de etiquetas para usar, por ejemplo \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}
Respuesta2
¡Con PSTricks, es sólo por diversión!
\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}
Advertencia:
Hasta donde yo sé, el radio del nodo circular no se puede ajustar para que sea uniforme.
Respuesta3
El paquete/biblioteca TikZ-CD hoy en día viene con claves llamadas shift left
y shift right
.
Aceptan:
- sin argumentos,
- un factor (sin unidades) y
- una dimensión (con unidades).
La tecla desplazará la línea ortogonalmente a la línea que conecta las coordenadas inicial y final originales (generalmente un punto en el borde de los nodos) por
- cuyo valor predeterminado
shift left
es, por defecto, 0.56ex, - dicho valor predeterminado multiplicado por el factor dado o
- la longitud dada.
Los nodos a lo largo de la flecha (llamados etiquetas por TikZ-CD) se colocarán a lo largo de la nueva ruta desplazada, no de la que no está desplazada.
El primer diagrama en el código siguiente muestra
- dos líneas paralelas sin una punta de flecha entreAyC,
- dos flechas paralelas hacia adelante (entreByD) de donde se extraeBaDy uno deDaB(ambos con
shift left
) y - dos flechas paralelas extraídas deCaBdonde uno tiene puntas de flecha invertidas (
leftarrow
).
En el segundo diagrama muestro cómo funciona el cambio:
La línea gris son las conexiones directas entre los nodos. La línea verde delgada es la curva sin desplazamiento, mientras que la línea verde gruesa es la curva desplazada.
La línea discontinua azul muestra la conexión entre el punto inicial y final de la curva, las flechas azules muestran la dirección del cambio (ortogonal a la línea discontinua).
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}