1

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

Chemical reactor with inputs and outputs

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

enter image description here

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

1
  • 1
    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

1 Answer 1

1

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}
\usepackage{adjustbox}
%%%%%%%%%%%%%%%%%%%%%%%%%%

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

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

\begin{document}
    
    \adjustbox{center=\textwidth}{
        \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

enter image description here

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

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.