chemplants:使用 TikZ 选项填充默认图片

chemplants:使用 TikZ 选项填充默认图片

chemplants软件包提供绘制简单或不太复杂的化学过程方案的工具。流程单元和流和公用设施的样式被定义为 TikZ 软件包的一种扩展,因此需要对这个强大工具的逻辑有基本的了解才能有效地使用它chemplants

由于此包基于 TikZ,因此其选项应该有效。但如果我尝试将其fill=gray!25作为参数传递,则不起作用。以下是 MWE:

\documentclass[12pt]{article}
\usepackage{tikz}
\definecolor{viola}{HTML}{8100FF}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepackage{chemplants}
\renewcommand{\dim}[1]{\left[\mathrm{#1}\right]}
\begin{document}
\begin{figure}
    \centering
    \begin{tikzpicture}
        \pic[xscale = 1.50 ,yscale = 2.50, fill=gray!25] (R) at (0 ,0) { tank reactor };
                    
        \node[xshift=1cm,yshift=1cm] (topright) at (R-anchor) {};

        \pic (het) at (3,1) { heat exchanger };
        \draw[-stealth] (2.5,1) --++ (-1.3,0);      
        \draw[dotted] (-1.2,1.25) --++ (2.4,0);
        \draw[dotted] (-1.2,0.75) --++ (2.4,0);
        
        \pic (heb) at (3,-1) { heat exchanger };
        \draw[-stealth] (2.5,-1) --++ (-1.3,0);     
        \draw[dotted] (-1.2,-1.25) --++ (2.4,0);
        \draw[dotted] (-1.2,-0.75) --++ (2.4,0);
    \end{tikzpicture}
\end{figure}
\end{document}

有任何想法吗?

答案1

包中提供的大多数元素chemplants被定义为\pic。您不能\pic像设置节点那样设置 a 的样式,因为 a\pic可以说是一个作用域迷你tikzpicture

(事实上​​,你\pic如果 a 使用键,则将其样式化为节点pic actions。但是\pic此包中定义的 s 不使用此键。感谢 Qrrbrbirlbel 对此注释。)

然而,在研究了该包的源代码之后,似乎\pic包中定义的几乎所有 s 都使用某个选项,即,作为每个 s 的chpunitstyle主命令,用于设置线条粗细和缩放比例。\draw\pic

例如tank reactor定义如下:

\tikzset{tank reactor/.pic=%
    {%
    \draw [chpunitstyle]
        (-0.8,-0.732) to [out=270, in=270]
        (0.8,-0.732) --
        (0.8,0.732) to [out=90, in=90]
        (-0.8,0.732) -- cycle;
    \begin{scope} [scale=\chp@UnitScale]
        \coordinate (-anchor) at (0,0);
        \coordinate (-left) at (-0.8,0);
        \coordinate (-bottom left) at (-0.8,-0.732);
        \coordinate (-bottom) at (0,-1.2);
        \coordinate (-bottom right) at (0.8,-0.732);
        \coordinate (-right) at (0.8,0);
        \coordinate (-top right) at (0.8,0.732);
        \coordinate (-top) at (0,1.2);
        \coordinate (-top left) at (-0.8,0.732);
    \end{scope}
    }%
}

因此,您可以使用例如将自定义样式附加到此选项chpunitstyle/.append style={fill=gray!25}。当然,使用此技巧,您只能使用此键来设置元素的样式。要设置更复杂的\pic样式,这种方法可能不起作用。

\documentclass[border=10pt]{standalone}
\usepackage{chemplants}

\begin{document}
    \begin{tikzpicture}
        \pic[xscale = 1.50, yscale = 2.50, chpunitstyle/.append style={fill=gray!25}] (R) at (0,0) { tank reactor };
                    
        \node[xshift=1cm, yshift=1cm] (topright) at (R-anchor) {};

        \pic (het) at (3,1) { heat exchanger };
        \draw[-stealth] (2.5,1) -- ++(-1.3,0);      
        \draw[dotted] (-1.2,1.25) -- ++(2.4,0);
        \draw[dotted] (-1.2,0.75) -- ++(2.4,0);
        
        \pic (heb) at (3,-1) { heat exchanger };
        \draw[-stealth] (2.5,-1) -- ++(-1.3,0);     
        \draw[dotted] (-1.2,-1.25) -- ++(2.4,0);
        \draw[dotted] (-1.2,-0.75) -- ++(2.4,0);
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容