如何使用 xymatrix 生成类似 3D 的交换图?

如何使用 xymatrix 生成类似 3D 的交换图?

有人能给出如何创建以下 3D 交换图的想法吗? 在此处输入图片描述

答案1

基于的解决方案tikz

\documentclass{article}
\usepackage{amsfonts}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
  \matrix (m) [matrix of math nodes,row sep=2em,column sep=4em]{
     & S(n) & S(n) & \cdots\\
TM   &      &      &       \\
     &      \mathfrak{X}(n, n+q) & \mathfrak{X}(n, n+q+1) & \cdots\\
M    &      &      &       \\};
\path[-stealth]
(m-2-1) edge (m-1-2);  
\path[-stealth]
(m-1-2) edge (m-1-3);
\path[-stealth]
(m-1-3) edge (m-1-4);
\path[-stealth]
(m-4-1) edge (m-3-2);  
\path[-stealth]
(m-3-2) edge (m-3-3);
\path[-stealth]
(m-3-3) edge (m-3-4);
\path[-stealth]
(m-2-1) edge (m-4-1);
\path[-stealth]
(m-1-2) edge (m-3-2);
\path[-stealth]
(m-1-3) edge (m-3-3);
\end{tikzpicture}
\end{document}

输出:

在此处输入图片描述

您甚至可以使用一个来简化此过程\path。查看示例这里


[由 Steven B. Segletes 编辑,添加\slantbox来自剪切变换一个“盒子”

对于 3-D 效果,可以使用 Bruno 的\slantbox。请注意,在这种情况下,对于等距效果, 的可选参数\slantbox是旋转角度的正切。

\documentclass{article}
\usepackage{amsfonts}
\usepackage{tikz}
\usetikzlibrary{matrix}
\newsavebox\foobox
\newcommand{\slantbox}[2][.2]{\mbox{%
        \sbox{\foobox}{#2}%
        \hskip\wd\foobox
        \pdfsave
        \pdfsetmatrix{1 0 #1 1}%
        \llap{\usebox{\foobox}}%
        \pdfrestore
}}
\begin{document}
\begin{tikzpicture}
  \matrix (m) [matrix of math nodes,row sep=2em,column sep=4em]{
     & S(n) & S(n) & \cdots\\
\rotatebox{25}{\slantbox[.466]{TM}}   &      &      &       \\
     &      \mathfrak{X}(n, n+q) & \mathfrak{X}(n, n+q+1) & \cdots\\
\rotatebox{25}{\slantbox[.466]{M}}    &      &      &       \\};
\path[-stealth]
(m-2-1) edge (m-1-2);  
\path[-stealth]
(m-1-2) edge (m-1-3);
\path[-stealth]
(m-1-3) edge (m-1-4);
\path[-stealth]
(m-4-1) edge (m-3-2);  
\path[-stealth]
(m-3-2) edge (m-3-3);
\path[-stealth]
(m-3-3) edge (m-3-4);
\path[-stealth]
(m-2-1) edge (m-4-1);
\path[-stealth]
(m-1-2) edge (m-3-2);
\path[-stealth]
(m-1-3) edge (m-3-3);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

诀窍是使用四行,减少行之间的间距。

在 Xy-pic 和以下选项中任选其一tikz-cd

\documentclass{article}

\usepackage[all,cmtip]{xy}

\usepackage{tikz-cd}

\begin{document}

This is the diagram using Xy-pic
\[
\[email protected]{
  & S(n) \ar[rr] \ar[dd] && S(n) \ar[rr] \ar[dd] && \cdots \\
T(M) \ar[ur] \ar[dd] \\
  & \mathcal{X}(n,n+q) \ar[rr] && \mathcal{X}(n,n+q+1) \ar[rr] && \cdots \\
M \ar[ur]
}
\]

This is the diagram using tikz-cd
\[
\begin{tikzcd}[row sep=4ex]
  & S(n) \arrow[rr] \arrow[dd] && S(n) \arrow[rr] \arrow[dd] && \cdots \\
T(M) \arrow[ur] \arrow[dd] \\
  & \mathcal{X}(n,n+q) \arrow[rr] && \mathcal{X}(n,n+q+1) \arrow[rr] && \cdots \\
M \arrow[ur]
\end{tikzcd}
\]

\end{document}

在此处输入图片描述

相关内容