Ich habe mit tikzcd kommutative Diagramme gezeichnet, in denen ein Eintrag deutlich größer ist als die anderen. Ich möchte, dass die Eintragsgrößen irgendwie „normalisiert“ werden, damit die Anzeige nicht zu ungleichmäßig ist, und ich möchte sie für jedes Diagramm einzeln lokal anpassen können. Hier ist ein typisches Beispiel:
\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}
Antwort1
Sie können die Position des Etiketts wie folgt feinabstimmen 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}
Antwort2
Wie ist das? Ich verwende den \makebox*
Befehl aus dem kleinen makebox
Paket, um den Knoten ganz rechts mit einer einfachen Syntax auf die Breite des Knotens ganz links zu bringen.
Unabhängig davon: Es ist kein Laden nötig, tikz
wenn Sie laden 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}