
Wie kann ich zeichnen mittikz-cd
- zwei vertikale parallele Linien
- zwei vertikale parallele Linien, die in entgegengesetzte Richtungen zeigen?
Antwort1
Etwas wie das?
\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}
Eine weitere Möglichkeit für die Doppellinien wäre der equal
Pfeil:
\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}
Verwenden Sie denselben Verschiebungswert, wenn ein gleichmäßiger Abstand gewünscht ist. Im folgenden Beispiel befinden sich die Pfeile nach links 0,7 Ex links vom Nordanker und die Pfeile nach rechts 0,7 Ex rechts vom Nordanker (stattdessen 0.7ex
können Sie je nach Bedarf jede andere gültige Länge verwenden):
\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}
Standardmäßig wird für die Beschriftungen tikz-cd
verwendet \scriptstyle
. Wenn Sie dies ändern möchten, können Sie mit dem Schlüssel „labels“ beispielsweise Folgendes verwenden \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}
Antwort2
Mit PSTricks geht es einfach nur um den Spaß!
\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}
Warnung:
Soweit ich weiß, kann der Radius von Kreisknoten nicht einheitlich eingestellt werden.
Antwort3
Das TikZ-CD-Paket/die TikZ-Bibliothek wird heutzutage mit Schlüsseln namens shift left
und geliefert shift right
.
Sie akzeptieren:
- kein Argument,
- ein Faktor (ohne Einheiten) und
- eine Dimension (mit Einheiten).
Die Taste verschiebt die Linie orthogonal zur Linie, die die ursprüngliche Start- und Endkoordinate verbindet (normalerweise ein Punkt am Rand der Knoten) um
- Der Standardwert hierfür
shift left
ist standardmäßig 0,56ex, - dieser Standardwert multipliziert mit dem angegebenen Faktor oder
- die angegebene Länge.
Knoten entlang des Pfeils (von TikZ-CD „Labels“ genannt) werden entlang des neuen verschobenen Pfads platziert, nicht entlang des unverschobenen.
Das erste Diagramm im folgenden Code zeigt
- zwei parallele Linien ohne Pfeilspitze dazwischenAUndC,
- zwei parallele Vorwärtspfeile (zwischenBUndD), aus dem man gezogen wirdBZuDund einer vonDZuB(beide mit
shift left
) und - zwei parallele Pfeile ausCZuBwobei man umgekehrte Pfeilspitzen hat (
leftarrow
).
Im zweiten Diagramm zeige ich, wie die Schaltung funktioniert:
Die graue Linie stellt die direkte Verbindung zwischen den Knoten dar. Die dünne grüne Linie ist die unveränderte Kurve, während die dicke grüne Linie die verschobene Kurve darstellt.
Die blaue gestrichelte Linie stellt die Verbindung zwischen Start- und Endpunkt der Kurve dar, die blauen Pfeile zeigen die Verschieberichtung (orthogonal zur gestrichelten Linie).
Code
\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}