나는 한 항목이 다른 항목보다 훨씬 더 큰 tikzcd를 사용하여 교환 다이어그램을 그려왔습니다. 입력 크기가 어떻게든 "정규화"되어 디스플레이가 너무 고르지 않게 되고 각 다이어그램에 대해 로컬로 개별적으로 조정할 수 있기를 원합니다. 전형적인 예는 다음과 같습니다.
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-cd}
\usetikzlibrary{matrix}
\usetikzlibrary{arrows}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{trees}
\usetikzlibrary{backgrounds}
\usetikzlibrary{graphs}
\usetikzlibrary{graphdrawing}
\usegdlibrary{force}
\tikzset{
commutative diagrams/.cd,
arrow style=tikz,
diagrams={>={Straight Barb[scale=0.9]}, semithick}
}
\begin{document}
\[
\begin{tikzcd}
A \arrow[rr, bend right, dashed, "i"'] \arrow[dr, equals] \arrow[rr, phantom, "\bot"] & & \hom_B(B,f) \arrow[dl, two heads, "p_1"] \arrow[ll, bend right, two heads, "p_1"'] \\ & A
\end{tikzcd}
\]
\end{document}
답변1
다음을 사용하여 라벨 위치를 미세 조정할 수 있습니다 pos=<fraction>
.
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows}
\usetikzlibrary{arrows.meta}
\tikzset{
commutative diagrams/.cd,
arrow style=tikz,
diagrams={>={Straight Barb[scale=0.9]}, semithick}
}
\begin{document}
\[
\begin{tikzcd}[column sep={4em,between origins}]
A
\arrow[rr, bend right, dashed, "i"' pos=0.57]
\arrow[dr, equals]
& \bot &
\hom_B(B,f)
\arrow[dl, two heads, "p_1"]
\arrow[ll, bend right, two heads, "p_1"' pos=0.43]
\\
& A
\end{tikzcd}
\]
\end{document}
답변2
이와 같이? 간단한 구문으로 가장 오른쪽 노드를 가장 왼쪽 노드의 너비로 만들기 위해 \makebox*
작은 패키지의 명령을 사용합니다 .makebox
tikz
관련 없음: 을 로드하면 로드할 필요가 없습니다 tikz-cd
.
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{matrix}
\usetikzlibrary{arrows}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{trees}
\usetikzlibrary{backgrounds}
\usetikzlibrary{graphs}
\usetikzlibrary{graphdrawing}
\usegdlibrary{force}
\tikzset{
commutative diagrams/.cd,
arrow style=tikz,
diagrams={>={Straight Barb[scale=0.9]}, semithick}
}
\usepackage{makebox}
\begin{document}
\[
\begin{tikzcd}
A \arrow[rr, bend right, dashed, "i"'] \arrow[dr, equals] \arrow[rr, phantom, "\bot"] & &\makebox*{$A$}{$ \hom_B(B,f) $} \arrow[dl, two heads, "p_1"] \arrow[ll, bend right, two heads, "p_1"'] \\ & A
\end{tikzcd}
\]
\end{document}