我想安排以下三张图
\[
\begin{tikzcd}
Z\arrow[dr, "h", dashed]\arrow[drr, "g", bend left]\\
& X\arrow[r, "f"] & Y
\end{tikzcd}
\]
\[
\begin{tikzcd}
pZ\arrow[dr, "w", dashed]\arrow[drr, "pg", bend left]\\
& I\arrow[r, "u"] & J
\end{tikzcd}
\]
\[
\begin{tikzcd}
\mathbb{E}\arrow[d, "p"]\\
\mathbb{B}
\end{tikzcd}
\]
最好的方法是什么?
答案1
我会用aligned
:
\documentclass{article}
\usepackage{amsmath,amssymb,tikz-cd}
\begin{document}
\[
\begin{tikzcd}[row sep=huge]
\mathbb{E}\arrow[d, "p"]\\
\mathbb{B}
\end{tikzcd}
\qquad\qquad
\begin{aligned}
& \begin{tikzcd}
\phantom{p}Z\arrow[dr, "h", dashed]\arrow[drr, "g", bend left]\\
& X\arrow[r, "f"] & Y
\end{tikzcd}
\\
& \begin{tikzcd}
pZ\arrow[dr, "w", dashed]\arrow[drr, "pg", bend left]\\
& I\arrow[r, "u"] & J
\end{tikzcd}
\end{aligned}
\]
\end{document}
在\phantom{p}
右上图中,我们确保与下图相似。
答案2
我想说的是,如果你把所有东西都放在一张图里,事情就会简单得多。这样你就可以完全轻松地控制所有维度。例如,我添加了[3em] after
& to make the gap between the left and the right two diagrams a bit larger. And, of course,
\mathbb{E} and
\mathbb{B}`,它们会自动与右侧的图对齐。
\documentclass{article}
\usepackage{amsmath,amsfonts}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}
&[3em] Z\arrow[ddr, "h", dashed]\arrow[ddrr, "g", bend left]\\[-2em]
\mathbb{E}\arrow[ddd, "p"] & & & \\[-2em]
& & X\arrow[r, "f"] & Y\\
& pZ\arrow[ddr, "w", dashed]\arrow[ddrr, "pg", bend left]\\[-2em]
\mathbb{B} & & & \\[-2em]
& & I\arrow[r, "u"] & J\\
\end{tikzcd}
\]
\end{document}
答案3
这里还有另一个建议,使用xy
用于绘制的包commutative-diagrams
来获取相同的图像。
在这种情况下,我使用了环境光minipage
来获得与您的图片相同的结构。
\documentclass[a4paper,12pt]{article}
\usepackage[all]{xy}
\usepackage{amssymb}
\begin{document}
\begin{figure}
\centering
\begin{minipage}[c][10mm]{.5\textwidth}
\centering
\xymatrix@+1pc{
\mathbb{E} \ar[d]_p \\
\mathbb{B}}
\end{minipage}
\begin{minipage}[c]{.5\textwidth}\hspace{0cm}
\centering
\xymatrix@+.5pc{
Z \ar@/^1.5pc/[drr]^g \ar@{-->}[dr]_h\\
& X \ar[r]<3pt>_f & Y
}
\vfill
\hspace{0cm}\xymatrix@+.5pc{
pZ \ar@/^1.5pc/[drr]^{u\,\circ\, w\,=\,pg} \ar[dr]_w\\
& I \ar[r]<3pt>_u & J
}
\end{minipage}
\end{figure}
\end{document}