1

I'm currently trying to achieve the following inside a tcolorbox: Boxes with arrows between them

I'm running into trouble with the way I'm currently doing it, but I don't think the way I'm doing it is right in the first place.

I created a tcolorbox (so, the environment) and then created three tcboxes with arrows in-between them. In my attempts, tcboxes are not permitting line breaks, which is necessary for what I am trying to do.

Additionally, the boxes and arrows are not even in a line together.

Since I don't think it is possible to create line breaks, how do I go about achieving the picture above?

My attempt:

\begin{tcolorbox}[colback=red!5!white,
colframe=red!75!black,fonttitle=\bfseries,
title=Big Box]

    \tcbox[colback=red!5!white,
    colframe=red!75!black,fonttitle=\bfseries,
    title=Smaller box]{Some words \\ followed by more}$\rightarrow$

    \tcbox[colback=red!5!white,
    colframe=red!75!black,fonttitle=\bfseries,
    title=Smaller box]{Some words \\ followed by more}$\rightarrow$

    \tcbox[colback=red!5!white,
    colframe=red!75!black,fonttitle=\bfseries,
    title=Smaller box]{Some words \\ followed by more}
\end{tcolorbox}

My code does not actually have the enters, I've added them so it is easier to read.

Thank you in advance!

  • 1
    If you want to stay with your tcolourbox approach, I would use normal tcolorboxes and place them in a tcbraster. If you are flexible in the approach: simply use tikz – user36296 Jan 8 at 16:39
3

From your original code it seems that you wanted something like:

enter image description here

It was done with a tcboxeditemize. The arrows between boxes are drawn with an overlay option which is supressed on last column box.

\documentclass{article}
\usepackage[most]{tcolorbox}
\usetikzlibrary{shapes.arrows}

\tikzset{
    myjoin/.style={single arrow, shape border uses incircle, fill=red!75!black, minimum height=8mm}}

\begin{document}
\begin{tcboxeditemize}[%
% raster and inner boxes definitions
raster columns=3, raster equal height, raster column skip=1cm, colback=red!5, colframe=red!75, fonttitle=\bfseries, title={Small Box},
enhanced, overlay={\node[myjoin] at ([xshift=4mm]frame.east) {};}]{%
% external box definitions
colback=red!5, colframe=red!75, fonttitle=\bfseries, 
title={Big Box}}
\tcbitem Some words\\ followed by more
\tcbitem Some words\\ followed by more
\tcbitem[no overlay] Some words\\ followed by more
\end{tcboxeditemize}
\end{document}
  • Thank you, it works. However, I am getting the error "Package pgfkeys Error: I do not know the key '/tikz/myjoin' and I am going to ignore it. Perhaps you misspelled it." – zylitoL Jan 8 at 21:09
  • @zylitoL Did you included tikzset line in your code? – Ignasi Jan 8 at 21:35
3

A quick alternative might be to use a smartdiagram

\documentclass{article}

\usepackage{tcolorbox}
\usepackage{smartdiagram}


\begin{document}

\begin{tcolorbox}[colback=red!5!white,
colframe=red!75!black,fonttitle=\bfseries,
title=Big Box]

\smartdiagramset{
  uniform color list=cyan!50!blue for 3 items,
  back arrow disabled=true,
  module x sep=3.83cm,
  text width=3cm,
    border color=none,
 }
 \smartdiagram[flow diagram:horizontal]{Some words More words, Even more words And then some more,Lorem Lipsum et}


\end{tcolorbox}

\end{document}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.