einfachste Möglichkeit, die Eintragsgröße in tikzcd zu normalisieren

einfachste Möglichkeit, die Eintragsgröße in tikzcd zu normalisieren

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}

eine schlecht beabstandete Adjunktion

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}

Bildbeschreibung hier eingeben

Antwort2

Wie ist das? Ich verwende den \makebox*Befehl aus dem kleinen makeboxPaket, 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, tikzwenn 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} 

Bildbeschreibung hier eingeben

verwandte Informationen