私は tikzcd を使用して、1 つのエントリが他のエントリよりも大幅に大きい可換図を描いています。エントリのサイズを何らかの方法で「正規化」して、表示が不均一にならないようにし、各図ごとにローカルで調整できるようにしたいと考えています。以下に典型的な例を示します。
\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}