答案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环境中。非常简单。
只是我的观点。