该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}