
어떻게 그릴 수 있나요?tikz-cd
- 두 개의 수직 평행선
- 반대 방향을 가리키는 두 개의 수직 평행선?
답변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
.
그들은 다음을 받아들입니다:
- 논쟁의 여지가 없습니다.
- 요인(단위 없음) 및
- 차원(단위 포함)
키는 다음과 같이 원래 시작 좌표와 끝 좌표(일반적으로 노드 경계의 점)를 연결하는 선에 직각으로 선을 이동합니다.
- 기본값은
shift left
기본적으로 0.56ex입니다. - 상기 기본값에 주어진 요소를 곱하거나
- 주어진 길이.
화살표를 따라 있는 노드(TikZ-CD에서는 레이블이라고 함)는 이동되지 않은 경로가 아닌 새로운 이동된 경로를 따라 배치됩니다.
아래 코드의 첫 번째 다이어그램은 다음과 같습니다.
- 사이에 화살표 끝이 없는 두 개의 평행선ㅏ그리고씨,
- 두 개의 평행한 앞으로 화살표(사이비그리고디) 하나가 가져온 곳비에게디그리고 하나는디에게비(둘 다
shift left
) 및 - 에서 그린 두 개의 평행 화살표씨에게비여기서 화살표 끝이 반전되었습니다(
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}