制作这种类型的表格/图表的最简单方法是什么?

制作这种类型的表格/图表的最简单方法是什么?

我想要制作这样的表格:

在此处输入图片描述

这是否可以使用表格来实现,还是我需要使用图库?

答案1

以下将箱子和垂直结构设置为一组tabular

在此处输入图片描述

\documentclass{article}

\usepackage{xcolor,array}

\newcommand{\diagrambox}[2][15em]{%
  \fcolorbox{blue}{white}{%
    \setlength{\tabcolsep}{0pt}%
    \begin{tabular}{>{\centering\arraybackslash}p{#1}}
      #2
    \end{tabular}}}

\begin{document}

\begin{center}
  \begin{tabular}{c}
    \diagrambox{\textbf{Cloud Clients} \\
                Web browser, mobile app, thin client, terminal, emulator, \ldots} \\
    $\Updownarrow$ \\
    \diagrambox{\textbf{SaaS} \\
                CRM, Email, virtual desktop, communication, games, \ldots} \\[-\fboxrule]
    \diagrambox{\textbf{PaaS} \\
                Execution runtime, database, web server, development tools, \ldots} \\[-\fboxrule]
    \diagrambox{\textbf{IaaS} \\
                Virtual machines, servers, storage, load balancers, network, \ldots}
  \end{tabular}
\end{center}

\end{document}

\diagrambox[<width>]{<stuff>}可以通过可选的第一个参数进行调整以适应更宽的内容。默认值为15em

答案2

好的,我首先按照 Peter 的建议尝试了一下表格。不幸的是,我也在booktabs我的文档中使用了它,显然它不喜欢垂直线。

然后我按照 ebo 的建议进行操作tikz,对结果非常满意:

结果

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes,positioning}

\begin{document}

\begin{tikzpicture}[align=center, text width=6cm, line width=0.75pt]
    \node (client) [draw, rectangle] {
        \textbf{Client} \\
        text, text 
    };
    \node (arrow) [below = 0 of client] {$\Updownarrow$};
    \node (stack) [draw, rectangle split, rectangle split parts=3, below = 0 of arrow] {
        \textbf{BaaS} \\
        text, text 
        \nodepart{second}
        \textbf{PaaS} \\
        text, text
        \nodepart{third}
        \textbf{IaaS} \\
        text, text
     };
\end{tikzpicture}

\end{document}

感谢您的意见!

答案3

拿2个表格和1张图片。将其打包到minipage环境中。非常简单。

只是我的观点。

相关内容