垂直平行線/箭頭

垂直平行線/箭頭

我怎樣才能畫畫tikz-cd

  1. 兩條垂直平行線
  2. 兩條垂直平行線指向相反的方向?

答案1

像這樣的東西嗎?

\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}

在此輸入影像描述

雙線的另一個選擇是equal箭頭:

\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}

在此輸入影像描述

如果需要相等的分離,請使用相同的移位值;在下面的範例中,向左的箭頭將是北錨點左側 0.7ex,向右的箭頭將是北錨點右側 0.7ex(0.7ex您也可以使用任何其他有效長度,根據您的需求):

\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}

在此輸入影像描述

預設情況下,tikz-cd用於\scriptstyle標籤;如果你想改變這個,你可以使用 labels 鍵來使用,例如\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}

在此輸入影像描述

答案2

使用 PSTricks,只是為了好玩!

在此輸入影像描述

\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}

警告:

據我所知,圓節點的半徑無法調整為統一。

答案3

TikZ-CD 套件/庫現在帶有名為shift left和 的金鑰shift right

他們接受:

  1. 沒有爭論,
  2. 一個因子(無單位)和
  3. 尺寸(附單位)。

此鍵將垂直於連接原始起點和終點座標(通常是節點邊界上的點)的線移動

  1. 預設值為shift left0.56ex,
  2. 所述預設值乘以給定因子或
  3. 給定的長度。

沿著箭頭的節點(TikZ-CD 稱為標籤)將沿著新的移動路徑放置,而不是沿著未移動的路徑放置。


下面程式碼中的第一張圖顯示

  • 兩條平行線之間沒有箭頭AC,
  • 兩個平行的向前箭頭(之間D) 其中 1 是從中抽取的D和一個來自D(都與shift left)和
  • 兩個平行箭頭從C其中有反向箭頭 ( leftarrow)。

在第二張圖中,我展示了移位的工作原理:
在此輸入影像描述

灰線是節點之間的直接連接。細綠線是未平移的曲線,而粗綠線是平移的曲線。

藍色虛線表示曲線起點和終點之間的連接,藍色箭頭表示移動方向(與虛線正交)。

程式碼

\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}

輸出

在此輸入影像描述

相關內容