关于菱形图

关于菱形图

在序列变换的文献中,一些算法可以很好地表示为菱形图,例如

永利艾普西隆

或者以扩展形式,

永利赌桌

我可能会作弊并使用matrixarray类似的构造,但是否有更好的方法在 LaTeX 中呈现它们?

答案1

我会用蒂克兹绘制此类图表。下面是绘制图表的一个小示例:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of math nodes, row sep=2em, column sep=2em] {%
      & \varepsilon_k^{(n)}   &  \\
  \varepsilon_{k-1}^{(n+1)} & &  \varepsilon_{k+1}^{(n)} \\
      & \varepsilon_k^{(n+1)} &  \\ };
\path[-stealth] (m-2-1) edge (m-1-2) edge (m-3-2) ;
\path[stealth-] (m-2-3) edge (m-3-2) edge (m-1-2) ;
\end{tikzpicture}
\end{document} 

输出:

替代文本

此类图表的替代软件包有xy-pic计算机辅助设计技巧

有关更多 TikZ 示例,请访问TikZ 示例库或这个博客 TikZ 类别

对于扩展图,矩阵就足够了。但你可以使用 TikZmatrix of math nodes功能,就像第一个示例中一样,这样你就可以受益于 TikZ 的所有功能,如箭头、标签、定位等等。

答案2

我同意 Stefan 的观点,TikZ最好的方法如下:

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows,scopes}
\usepackage{ifthen}

\begin{document}

\begin{tikzpicture}[x={(2cm,-0.5cm)},y={(0cm,-1cm)}]
    \foreach \x in {-1,...,3}
    {   \foreach \y in {0,...,3}
        {   \ifthenelse{\x=-1}{\xdef\more{=0}}{\ifthenelse{\x=0}{\xdef\more{=S_\y}}{\xdef\more{}}}
            \node[right] at (\x,\y) {$\epsilon_{\x}^{(\y)}\more$};
            \ifthenelse{\x=3}{\draw[dotted] (\x+0.5,\y) -- (\x+1,\y);}{}
            \ifthenelse{\y=3}{\draw[dotted] (\x+0.2,\y+0.5) -- (\x+0.2,6-\x/2);}{}
        }
    }
\end{tikzpicture}

\begin{tikzpicture}[x={(2cm,-1cm)},y={(0cm,-2cm)}]
    \node (l) at (0,0) {$\epsilon^{n+1}_{k-1}$};
    \node (b) at (2,0) {$\epsilon^{n+1}_{k-1}$};
    \node (t) at (2,-2) {$\epsilon^{n+1}_{k-1}$};
    \node (r) at (4,-2) {$\epsilon^{n+1}_{k-1}$};
    \draw[-latex] (l.20) -- (t.200);
    \draw[-latex] (l.340) -- (b.160);
    \draw[-latex] (t.340) -- (r.160);
    \draw[-latex] (b.20) -- (r.200);
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案3

对于第一个图表,您可以使用任何用于绘制交换图的包。我通常使用蒂克兹(也可以看看使用 TikZ 的交换图)。

第二张图可以这样排版:

\documentclass{article}
\usepackage{amsmath}
\renewcommand\epsilon\varepsilon
\begin{document}
\[ 
\begin{matrix}
    \epsilon_{-1}^{(0)} = 0 &                          &                    &                    & \\
                            & \epsilon_{0}^{(0)} = S_0 &                    &                    & \\
    \epsilon_{-1}^{(1)} = 0 &                          & \epsilon_{1}^{(0)} &                    & \\
                            & \epsilon_{0}^{(1)} = S_1 &                    & \epsilon_{2}^{(0)} & \\
    \epsilon_{-1}^{(2)} = 0 &                          & \epsilon_{1}^{(1)} &                    & \ddots \\
    \vdots                  & \epsilon_{0}^{(2)} = S_2 &                    & \epsilon_{2}^{(1)} & \\
    \vdots                  & \vdots                   & \epsilon_{1}^{(1)} &                    & \ddots \\
    \vdots                  & \vdots                   & \vdots             & \epsilon_{2}^{(2)} & \\
    \vdots                  & \vdots                   & \vdots             & \vdots             & \ddots \\
\end{matrix}
\]
\end{document}

在此处输入图片描述

相关内容