合并两个 smartdiagram 图表

合并两个 smartdiagram 图表

我想加入两个智能图表 circular diagrams,这样就只有一个Research节点。到目前为止,我得到了:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{smartdiagram}
\begin{document}

\begin{center}
\smartdiagramset{
uniform color list=white!90!gray for 4 items,
uniform arrow color=true,
}
\smartdiagram[circular diagram:clockwise]{Sleeping,Eating,Research,Eating}
\smartdiagram[circular diagram]{Research, Finding problem,Solving problem,
                                Writing up solution}
\end{center}

\end{document}

这(显然)给了我以下信息:

MWE 已执行

是否可以使用智能图表来做到这一点,还是必须恢复到完整的 tikz?

答案1

由于似乎没有快速简单的答案,我刚刚回到 TikZ 并在那里重新创建了绘图。我使用 TikZ 的速度仍然很慢!

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{smartdiagram}

\usepackage{tikz}
\usetikzlibrary{arrows.meta, positioning}

\begin{document}

\begin{tikzpicture}[auto]  
\tikzset{
    mynode/.style={rectangle,rounded corners, draw=gray, top color=white,
                   bottom color=white!90!gray,very thick, inner sep=1em,
                   minimum size=1em, text centered, minimum width=2cm, 
                   drop shadow, text width=1.75cm},
    myright/.style={-{Stealth[length=4mm]}, color=gray, line width=0.1cm,
                   draw, shorten <=0.3cm,shorten >=0.3cm, bend right},
    myleft/.style={-{Stealth[length=4mm]}, color=gray, line width=0.1cm, 
                   draw, shorten <=0.3cm,shorten >=0.3cm, bend left},
}

\node[mynode] (research) {Research};
\node[mynode] at ([yshift=-2.75cm] 0:2.75cm) (writing) {Writing up solution};
\node[mynode] at ([yshift=-2.75cm] 180:2.75cm) (finding) {Finding problem};
\node[mynode] at ([yshift=-2.75cm] 270:2.75cm) (solving) {Solving problem};
\node[mynode] at ([yshift=2.75cm] 0:2.75cm) (eating1) {Eating};
\node[mynode] at ([yshift=2.75cm] 90:2.75cm) (sleeping) {Sleeping};
\node[mynode] at ([yshift=2.75cm] 180:2.75cm) (eating2) {Eating};

\path[myright] (research) to (finding);
\path[myright] (finding) to (solving);
\path[myright] (solving) to (writing);
\path[myright] (writing) to (research);
\path[myleft] (research) to (eating2);
\path[myleft] (eating2) to (sleeping);
\path[myleft] (sleeping) to (eating1);
\path[myleft] (eating1) to (research);
\end{tikzpicture} 

\end{document}

这给了我:

解决方案图片

当然,它更加冗长,但也更加通用(例如,我现在可以轻松地向箭头添加文本)。如果您能想到改进方法,请发表评论!

相关内容