# Draw Chemical reactors

I was wondering if there is a package or some way of drawing chemical reactors as in the following image

I was looking in the documentation of chemfig, streetex and xymtex but the closest one was to draw a polygon as suggested in streetex

But I'm not sure if it's the best way and then how to manage to add the input and outputs. Thanks in advance

• Oh, I just find the chemplants package, If I can, in a while I willl publish an answer to my own question Jun 15, 2021 at 6:47

After looking at chemistry tag in CTAN I found the chemplants package, which uses PGF (TkiZ).

It has a lot of figures you can use. In the example below I used and stirred reactor and for labeling. I used nodes, inside them you can't put many things so I used the parbox to group the text and components I needed.

\documentclass[UTF8]{article}

%%%%%%%   Document configuration   %%%%%%%
\usepackage[spanish,es-tabla]{babel}
%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%  Other  %%%%%%%%%%%
\usepackage[shortlabels]{enumitem}
\usepackage{tikz}
%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%   Math   %%%%%%%%%%%
\usepackage{amsmath}
\usepackage{siunitx}
\DeclareSIUnit[number-unit-product = ]\percent{\%}
%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%   Chemistry   %%%%%%%%%%
\usepackage{chemfig}
\usepackage{chemplants}
%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\begin{tikzpicture}
%%%% Arrows left %%%%

\draw[main stream] (1 ,3) -- (3 ,3);
\node[above] at (1 ,3) {
\parbox{3cm}{
\scriptsize
\textbf{$\dot{M}_1$}
\begin{itemize}[label=\textbullet, nolistsep]
\item \SI{20}{\percent} $H_2S$ \newline
\item \SI{80}{\percent} $CH_4$
\end{itemize}
}
};

\draw[main stream] (1 ,2) -- (3 ,2);
\node[below] at (1 ,2) {
\parbox{3cm}{
\scriptsize
\textbf{$\dot{M}_2$}
\begin{itemize}[label=\textbullet, nolistsep]
\item $SO_2$
\end{itemize}
}
};

%%%% Reactor %%%%

\pic (Reactor) at (4,2.5) {stirred reactor};

%%%% Arrows below %%%%

\draw[main stream] (4 , 1.25) -- (4 , 0);
\node[below] at (4,0) {
\parbox{2cm}{
\begin{center}
{\bf S} \\
\SI{5000}{lb}
\end{center}
}
};

%%%% Arrows right %%%%

\draw[main stream] (5 , 2.5) -- (7 , 2.5);
\node[right] at (7,2.5) {
\parbox{3cm}{
\scriptsize
\textbf{$\dot{M}_3$}
\begin{itemize}[label=\textbullet, nolistsep]
\item $k_1\space SO_2$
\item $k_2\space H_2S$
\item $k_3\space H_2O$
\item $k_4\space CH_4$
\end{itemize}
}
};
\end{tikzpicture}
}
\end{document}


The output it's beautiful

• Instead of math mode you may want to use a package dedicated to chemical formulae such as chemformula or mhchem. Jun 15, 2021 at 9:55
• @EduardoJiménez Be aware that English people talk about "native language". ;-) Jul 15, 2021 at 11:15