summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'graphics')
-rw-r--r--graphics/pgf/contrib/chemplants/README.md6
-rw-r--r--graphics/pgf/contrib/chemplants/chemplants-changes.pdfbin119507 -> 123017 bytes
-rw-r--r--graphics/pgf/contrib/chemplants/chemplants-changes.tex34
-rw-r--r--graphics/pgf/contrib/chemplants/chemplants-doc.pdfbin722239 -> 828382 bytes
-rw-r--r--graphics/pgf/contrib/chemplants/chemplants-doc.tex1284
-rw-r--r--graphics/pgf/contrib/chemplants/chemplants.sty700
-rw-r--r--graphics/pstricks/base/Changes5
-rw-r--r--graphics/pstricks/base/config/distiller.cfg2
-rw-r--r--graphics/pstricks/base/config/dvips.cfg2
-rw-r--r--graphics/pstricks/base/config/dvipsone.cfg2
-rw-r--r--graphics/pstricks/base/config/gastex.cfg2
-rw-r--r--graphics/pstricks/base/config/textures.cfg2
-rw-r--r--graphics/pstricks/base/config/vtex.cfg2
-rw-r--r--graphics/pstricks/base/doc/PSTricks.bib17
-rw-r--r--graphics/pstricks/base/doc/pst-doc.cls3
-rw-r--r--graphics/pstricks/base/doc/pst-news.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news08.pdfbin195188 -> 131821 bytes
-rw-r--r--graphics/pstricks/base/doc/pst-news09.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news10.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news11.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news12.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news13.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news14.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news15.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news16.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news17.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news18.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news19.pdfbin59875 -> 71977 bytes
-rw-r--r--graphics/pstricks/base/doc/pst-news19.tex36
-rw-r--r--graphics/pstricks/base/doc/pst-news20.tex2
-rw-r--r--graphics/pstricks/base/doc/pst-news21.tex2
-rw-r--r--graphics/pstricks/base/dvips/pstricks.pro8
-rw-r--r--graphics/pstricks/base/generic/pstricks-dots.tex2
-rw-r--r--graphics/pstricks/base/generic/pstricks.tex6
-rw-r--r--graphics/pstricks/base/latex/pstricks-pdf.sty2
-rw-r--r--graphics/pstricks/base/latex/pstricks.sty3
-rw-r--r--graphics/pstricks/contrib/pstricks-add/Changes289
-rw-r--r--graphics/pstricks/contrib/pstricks-add/History313
-rw-r--r--graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.pdfbin12909993 -> 12431528 bytes
-rw-r--r--graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.tex37
-rw-r--r--graphics/pstricks/contrib/pstricks-add/tex/pstricks-add.tex20
41 files changed, 2283 insertions, 520 deletions
diff --git a/graphics/pgf/contrib/chemplants/README.md b/graphics/pgf/contrib/chemplants/README.md
index 811d5a7506..42561facaa 100644
--- a/graphics/pgf/contrib/chemplants/README.md
+++ b/graphics/pgf/contrib/chemplants/README.md
@@ -1,10 +1,10 @@
# The chemplants package
-Copyright 2018-2019 Elia Arnese Feffin.
+Copyright 2018-2021 Elia Arnese Feffin.
Contact: <elia24913@me.com>.
-Current version: 0.9.8 - 2019/11/19.
+Current version: 0.9.9 - 2019/09/25.
## Abstract
@@ -27,5 +27,5 @@ version 1.3c or later. The latest version can be found at
The documentation of the package can be found in `chemplants-doc.pdf`, provided
together with its source code. Changes to the package facilities are collected
-in `chemplants-changes.pdf`, which is provided together with its source code too.
+in `chemplants-changes.pdf`, which is provided together with its source code.
However, notice that versions prior to 0.9.8 were never officially published.
diff --git a/graphics/pgf/contrib/chemplants/chemplants-changes.pdf b/graphics/pgf/contrib/chemplants/chemplants-changes.pdf
index ec93be26da..36eaf3f095 100644
--- a/graphics/pgf/contrib/chemplants/chemplants-changes.pdf
+++ b/graphics/pgf/contrib/chemplants/chemplants-changes.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/chemplants/chemplants-changes.tex b/graphics/pgf/contrib/chemplants/chemplants-changes.tex
index 0b515b6812..47947ef6d2 100644
--- a/graphics/pgf/contrib/chemplants/chemplants-changes.tex
+++ b/graphics/pgf/contrib/chemplants/chemplants-changes.tex
@@ -1,6 +1,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% chemplants-changes.tex
-%% Copyright 2018-2019 Elia Arnese Feffin
+%% Copyright 2018-2021 Elia Arnese Feffin
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -8,7 +8,7 @@
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
+% version 2008/05/04 or later.
%
% This work has the LPPL maintenance status "maintained".
%
@@ -156,7 +156,7 @@
\subsection*{Version 0.9.3 -- 2019/02/26}
\begin{itemize}
- \item Review of the \chpp{cyclone} node names
+ \item Review of the \chpp{cyclone} node names.
\item New units: \chpp{fluidized bed reactor}, \chpp{steam trap},
\chpp{scrubber}, \chpp{stratifier} and \chpp{settler}.
\end{itemize}
@@ -175,7 +175,7 @@
\begin{itemize}
\item Review of the \chpn{kettle boiler} node names.
\item Review of the code to draw packings: no more sharp knees protruding
- around units
+ around units.
\item Added a \TikZ\ library to access to the Hobby's algorithm.
\item New units: \chpp{air heat exchanger},
\chpp{tube bundle heat exchanger}, \chpp{plates heat exchanger},
@@ -210,10 +210,10 @@
\item Review of the \chps{signal} style: the default thickness is now
\verb|very thin| and the algorithm to place markings has changed.
\item New stream style: \chps{secondary stream} (provided of thickness
- custumisation command).
+ customisation command).
\item Review of \chpp{valve} and \chpp{valve triple}: these units now accept
a new argument for \chps{secondary streams} thickness.
- \item Review of \chpp{actuator}: dimensione of this units are now doubled.
+ \item Review of \chpp{actuator}: dimensions of this units are now doubled.
\item New units: \chpp{valve quadruple}, \chpp{safety valve}.
\end{itemize}
@@ -228,6 +228,28 @@
embedded into the source file of the documentation.
\end{itemize}
+\subsection*{Version 0.9.9 -- 2021/02/25}
+
+\begin{itemize}
+ \item Added a \TikZ\ library to better manage arrows on curved and slanted
+ paths.
+ \item Liquid handling machines and gas handling machines have been divided
+ into different subsections.
+ \item The \chpp{lamination valve} has been moved among gas handling units.
+ \item New category of units: solid materials processing units.
+ \item Physical separators and thermal separators have been divided into
+ different subsections.
+ \item New units: \chpp{silos}, \chpp{spherical tank}, \chpp{drum},
+ \chpp{compressor}, \chpp{turbine}, \chpp{belt conveyor},
+ \chpp{screw conveyor}, \chpp{roller conveyor}, \chpp{bucket elevator},
+ \chpp{cylinder crusher},\\
+ \chpp{hammer crusher}, \chpp{mill}, \chpp{extruder},
+ \chpp{tube bundle heat exchanger var}, \chpp{tunnel furnace},
+ \chpp{rotary furnace}, \chpp{bag filter}, \chpp{filter press},
+ \chpp{rotary filter}, \chpp{deck screen}, \chpp{rotary screen} and
+ \chpp{check valve}.
+\end{itemize}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document} % Document End \ No newline at end of file
diff --git a/graphics/pgf/contrib/chemplants/chemplants-doc.pdf b/graphics/pgf/contrib/chemplants/chemplants-doc.pdf
index 1c601e6b82..4ec4f72f57 100644
--- a/graphics/pgf/contrib/chemplants/chemplants-doc.pdf
+++ b/graphics/pgf/contrib/chemplants/chemplants-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/chemplants/chemplants-doc.tex b/graphics/pgf/contrib/chemplants/chemplants-doc.tex
index 10d862c9a2..74f9c54f14 100644
--- a/graphics/pgf/contrib/chemplants/chemplants-doc.tex
+++ b/graphics/pgf/contrib/chemplants/chemplants-doc.tex
@@ -1,6 +1,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% chemplants-doc.tex
-%% Copyright 2018-2019 Elia Arnese Feffin
+%% Copyright 2018-2021 Elia Arnese Feffin
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -8,7 +8,7 @@
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
+% version 2008/05/04 or later.
%
% This work has the LPPL maintenance status "maintained".
%
@@ -859,6 +859,7 @@ for example, the length of a pipe or the real dimensions of a unit in a process
scheme.
\subsection{Fluids and Solids Storage}
+\label{subsec:storag}
\subsubsection{Tank}
@@ -900,7 +901,7 @@ and yields a vertical tank anchored in its centre:
\end{center}
where the measure on the right indicates the distance from the middle of the tank
to the point where the curvature begins. This point is identified by the
-\chpn{top right} node and by its analogs.
+\chpn{top right} node and by its analogous.
The \chpp{tank} pic is generic and it is useful to represent process tanks.
Storage tanks can be represented with the same pic, but there are also some
@@ -1039,6 +1040,42 @@ where the measure on the bottom right indicates the distance from the middle of
the tank to the point where the outlet stream should be connected. This point is
identified by the \chpn{bottom right} node and by its analogous node on the left.
+\subsubsection{Spherical Tank}
+
+A special kind of tank, quite used for gas storage, is shaped like a sphere. It
+is defined as a simple pic called \chpp{spherical tank}:
+\begin{chpcode}
+ \pic at (0,0) {spherical tank};
+\end{chpcode}
+and yields a circle, in which centre there is the anchor, supported by two stems:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-5,0) {spherical tank};
+ \pic at (0,0) {spherical tank};
+ \measure{(-1.5,-1.7)}{(1.5,-1.7)}{\SI{30}{\mm}}
+ \measure{(-1.7,1.4)}{(-1.7,-1.5)}{\SI{29}{\mm}}
+ \measure[above]{(-1.4,1.6)}{(1.4,1.6)}{\SI{28}{\mm}}
+ \measure[above]{(1.7,0)}{(1.7,-1.5)}{\SI{15}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (T) at (5,0) {spherical tank};
+ \pic at (T-anchor) {anchor mark};
+ \pic at (T-left) {node mark};
+ \pic at (T-bottom) {node mark};
+ \pic at (T-right) {node mark};
+ \pic at (T-top) {node mark};
+ \node[left] at (T-left) {\chpn{l}};
+ \node[below] at (T-bottom) {\chpn{b}};
+ \node[right] at (T-right) {\chpn{r}};
+ \node[above] at (T-top) {\chpn{t}};
+\end{tikzpicture}
+\end{center}
+where the measure on the bottom indicates the total width of the unit (the stands
+protrude by \SI{1}{\mm} each side of the circle), the measure on the right
+indicates the distance from the centre of the circle to its base, while the
+measure on the top indicates the diameter of the circle. Besides the
+\chpn{anchor} node, only \chpn{left}, \chpn{top}, \chpn{bottom} and \chpn{right}
+nodes are defined for this unit.
+
\subsubsection{Bell GasHolder}
Tanks introduced so far can be used to represent general systems to store either
@@ -1150,18 +1187,113 @@ abbreviated name \chpn{dt}. This node can be called in the usual way: for
example, in a \chpn{dry gasholder} identified as \chpn{G} the node is
\chpn{G-dome top}.
-\subsection{Fluid Handling}
+\subsubsection{Silos}
+
+Also considering solids, more precisely granula materials, some special storage
+unit exist. Among them, the silos is for sure the most iconic. It is defined as a
+simple pic calles \chpp{silos}:
+\begin{chpcode}
+ \pic at (0,0) {silos};
+\end{chpcode}
+and yields a thin vertical tank, in which centre there is the anchor, supported
+by two stems and with a sketch of the outlet hopper:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-3.6,0) {silos};
+ \pic at (0,0) {silos};
+ \measure{(-0.8,-2.2)}{(0.8,-2.2)}{\SI{16}{\mm}}
+ \measure{(-1.5,2)}{(-1.5,-2)}{\SI{40}{\mm}}
+ \measure{(-1,2)}{(-1,0)}{\SI{20}{\mm}}
+ \measure{(-1,0)}{(-1,-2)}{\SI{20}{\mm}}
+ \measure[above]{(-0.7,2.2)}{(0.7,2.2)}{\SI{14}{\mm}}
+ \measure[above]{(1.5,1.590)}{(1.5,0)}{\SI{15.9}{\mm}}
+ \measure[above]{(1.5,0)}{(1.5,-1.8)}{\SI{18}{\mm}}
+ \measure[above]{(1,0)}{(1,-0.8)}{\SI{8}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (T) at (3.6,0) {silos};
+ \pic at (T-anchor) {anchor mark};
+ \pic at (T-left) {node mark};
+ \pic at (T-bottom left) {node mark};
+ \pic at (T-outlet) {node mark};
+ \pic at (T-bottom right) {node mark};
+ \pic at (T-right) {node mark};
+ \pic at (T-top right) {node mark};
+ \pic at (T-top) {node mark};
+ \pic at (T-top left) {node mark};
+ \node[left] at (T-left) {\chpn{l}};
+ \node[left] at (T-bottom left) {\chpn{bl}};
+ \node[below] at (T-outlet) {\chpn{o}};
+ \node[right] at (T-bottom right) {\chpn{br}};
+ \node[right] at (T-right) {\chpn{r}};
+ \node[right] at (T-top right) {\chpn{tr}};
+ \node[above] at (T-top) {\chpn{t}};
+ \node[left] at (T-top left) {\chpn{tl}};
+\end{tikzpicture}
+\end{center}
+
+Measures concerning this unit are quite complex. The unit has a total width of
+\SI{16}{\mm} and a total height of \SI{40}{\mm}. The \chpn{anchor} node is placed
+halfway the overall height. Since the stands of the units protrudes by
+\SI{1}{\mm} on each side, the silos body has a width of \SI{14}{\mm}. Moving to
+nodes, the \chpn{top right} node and its analogous are placed \SI{15.9}{\mm}
+above the anchor and the \chpn{bottom right} node and its analogous are placed
+\SI{8}{\mm} below the anchor.
+
+No \chpn{bottom} node is defined for the \chpp{silos}, but a special node exists:
+the outlet stream have to be connected to the end of the hopper on the bottom
+of the unit. This special node is called \chpn{outlet} and it is marked in the
+above drawing using the abbreviated name \chpn{o}. This node is placed
+\SI{18}{\mm} below the anchor.
+
+\subsubsection{Drum}
+
+The last storage unit defined by \chemplants\ is a small horizontal tank. It can
+be used to indicate, in general, a surge tank, but its sole purpose is indeed to
+mark reflux drums of distillation columns. It is defined as a simple pic called
+\chpp{drum}:
+\begin{chpcode}
+ \pic at (0,0) {drum};
+\end{chpcode}
+and yields a horizontal tank anchored in its centre:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-3,0) {drum};
+ \pic at (0,0) {drum};
+ \measure{(-0.5,-0.5)}{(0.5,-0.5)}{\SI{10}{\mm}}
+ \measure{(-0.7,0.3)}{(-0.7,-0.3)}{\SI{6}{\mm}}
+ \measure[above]{(0.324,0.5)}{(0,0.5)}{\SI{3.24}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (T) at (3,0) {drum};
+ \pic at (T-anchor) {anchor mark};
+ \pic at (T-left) {node mark};
+ \pic at (T-bottom left) {node mark};
+ \pic at (T-bottom) {node mark};
+ \pic at (T-bottom right) {node mark};
+ \pic at (T-right) {node mark};
+ \pic at (T-top right) {node mark};
+ \pic at (T-top) {node mark};
+ \pic at (T-top left) {node mark};
+ \node[left] at (T-left) {\chpn{l}};
+ \node[below left] at (T-bottom left) {\chpn{bl}};
+ \node[below] at (T-bottom) {\chpn{b}};
+ \node[below right] at (T-bottom right) {\chpn{br}};
+ \node[right] at (T-right) {\chpn{r}};
+ \node[above right] at (T-top right) {\chpn{tr}};
+ \node[above] at (T-top) {\chpn{t}};
+ \node[above left] at (T-top left) {\chpn{tl}};
+\end{tikzpicture}
+\end{center}
+where the measure on the top indicates the distance from the middle of the tank
+to the point where the curvature begins. This point is identified by the
+\chpn{top right} node and by its analogous.
+
+\subsection{Liquid Handling}
Fluid handling devices are essential to chemical plants because it is always
necessary to move a fluid, from one place to another against pressure drops
-generated by pipes or units.
-
-Fluid handling units used in the chemical industry are basically classified
-considering the kind of fluid they can move, either a liquid or a gas. On the
-basis of this classification, there is a main distinction between pumps for
-liquids and equipments to move gases. The latter are furthermore distinguished
-with respect to the pressure rise a unit can achieve: fans, blowers and
-compressors.
+generated by pipes or units. Fluid handling units used in the chemical industry
+are basically classified considering the kind of fluid they can move, either a
+liquid or a gas. Liquid handling units are considered first.
\subsubsection{Centrifugal Pump}
@@ -1322,11 +1454,17 @@ where the measure on the right indicates the distance from the inlet of the pump
(placed on its boundary) to its base, while the measure on the top indicates the
length of the side side of the square.
-\subsubsection{Fan}
+\subsection{Gas Handling}
+\label{subsec:gashan}
Liquid handling equipments are done, so the description can move to gas handling
units. As told before, these are mainly distinguished on the basis of the
-pressure rise they can achieve, but also on their working principle.
+pressure rise they can achieve, but also on their working principle. Considering
+the pressure rise, there are: fans, blowers and compressors. Discussing gas
+handling units is also a good opportunity to introduce pressure reduction
+operations.
+
+\subsubsection{Fan}
If it is simply required to move a gas, without a significant pressure rise, a
fan or, at most, a blower, is enough. These two units are simple kinetic machines
@@ -1370,12 +1508,65 @@ outlet of the unit, thus it is identified by the \chpn{outlet} node, indicated
as \chpn{o} in the above representation. As for the centrifugal pump, the
\chpn{anchor} node should be used to snap the inlet stream to the fan.
-\subsubsection{Centrifugal Compressor}
+\subsubsection{Compressor}
When a gas needs a high pressure rise, there is no other way but using a
-compressor. The only kinetic machine useful to compress a gas that has a
-symbol defined by \chemplants\ is the centrifugal compressor. It is defined as a
-simple pic called \chpp{centrifugal compressor}:
+compressor. If one has the need to represent a generic compression operations
+rather than a specific compressor, a general symbol can be used. It is defined
+as a simple pic called \chpp{compressor}:
+\begin{chpcode}
+ \pic at (0,0) {compressor};
+\end{chpcode}
+and yields a cone frustum, in which middle there is the anchor:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-2.8,0) {compressor};
+ \pic at (0,0) {compressor};
+ \measure{(-0.4,-0.7)}{(0.4,-0.7)}{\SI{8}{\mm}}
+ \measure{(-0.6,0.5)}{(-0.6,-0.5)}{\SI{10}{\mm}}
+ \measure[above]{(0.6,0.2)}{(0.6,-0.2)}{\SI{4}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (C) at (2.8,0) {compressor};
+ \pic at (C-anchor) {anchor mark};
+ \pic at (C-left) {node mark};
+ \pic at (C-right) {node mark};
+ \pic at (C-inlet bottom) {node mark};
+ \pic at (C-outlet bottom) {node mark};
+ \pic at (C-outlet top) {node mark};
+ \pic at (C-inlet top) {node mark};
+ \node[left] at (C-left) {\chpn{l}};
+ \node[right] at (C-right) {\chpn{r}};
+ \node[below] at (C-inlet bottom) {\chpn{ib}};
+ \node[below] at (C-outlet bottom) {\chpn{ob}};
+ \node[above] at (C-outlet top) {\chpn{ot}};
+ \node[above] at (C-inlet top) {\chpn{it}};
+\end{tikzpicture}
+\end{center}
+where the measure on the right indicates the height of the smallar base of the
+cone frustum.
+
+Nodes require some clarifications. The shape of the \chpp{compressor} recalls a
+volume reduction, hence entering streams should be attached to the larger base of
+the unit, while leaving streams should be connected to the smaller one. Besides
+the usual \chpn{left} and \chpn{right} nodes, four special nodes are defined:
+\begin{itemize}
+ \item a node called \chpn{inlet bottom}, abbreviated in the picture above as
+ \chpn{ib};
+ \item a node called \chpn{outlet bottom}, abbreviated in the picture above as
+ \chpn{ob};
+ \item a node called \chpn{outlet top}, abbreviated in the picture above as
+ \chpn{ot};
+ \item a node called \chpn{inlet top}, abbreviated in the picture above as
+ \chpn{it}.
+\end{itemize}
+
+\subsubsection{Centrifugal Compressor}
+
+Besides the two ``generic'' units introduced above, \chemplants\ defines also
+more specific symbols to be used to represent particular compressors. The only
+kinetic machine useful to compress a gas that has a symbol defined by
+\chemplants\ is the centrifugal compressor. It is defined as a simple pic called
+\chpp{centrifugal compressor}:
\begin{chpcode}
\pic at (0,0) {centrifugal compressor};
\end{chpcode}
@@ -1416,14 +1607,15 @@ and a total height of \SI{10}{\mm}. The cone frustum has a length of
all of the other symbols defined as fluid handling units), its larger base has
a height of \SI{8}{\mm} and the smaller one of \SI{4}{\mm}.
-Also nodes are not that easy to understand. As always, the \chpn{bottom} node is
-defined to labelling purposes. The \chpn{left} and \chpn{right} nodes should
-not be used to connect streams, but can be exploited to connect control
-instrumentation or to represent the shaft of the compressor. Streams should be
-connected on the sides of the cone frustum: more precisely the inlet stream has
-to enter the unit on the side of the larger base and the outlet one has to leave
-the unit on the side of the smaller one, both of them vertically, in the
-direction perpendicular to the axis of the cone frustum. To this aim, four
+Nodes have to be interpreted similarly to the one of the \chpp{compressor}. As
+always, the \chpn{bottom} node is defined to labelling purposes. This time, the
+\chpn{left} and \chpn{right} nodes should not be used to connect streams, but can
+be exploited to connect control instrumentation or to represent the shaft of the
+compressor. Given the operations principle of a centrifugal compressor, streams
+should be connected on the sides of the cone frustum: more precisely the inlet
+stream has to enter the unit on the side of the larger base and the outlet one
+has to leave the unit on the side of the smaller one, both of them vertically, in
+the direction perpendicular to the axis of the cone frustum. To this aim, four
special nodes are defined:
\begin{itemize}
\item a node called \chpn{inlet bottom}, abbreviated in the picture above as
@@ -1435,9 +1627,9 @@ special nodes are defined:
\item a node called \chpn{inlet top}, abbreviated in the picture above as
\chpn{it}.
\end{itemize}
-(At most, it is possible to tolerate the inlet
-placed on the left side of the unit, on the \chpn{left} node, but the outlet has
-to be compulsorily on the side of the smaller base.)
+(At most, it is possible to tolerate the inlet placed on the left side of the
+unit, on the \chpn{left} node, but the outlet has to be compulsorily on the side
+of the smaller base.)
\subsubsection{Rotary Compressor}
@@ -1681,15 +1873,109 @@ complex paths can be produced thanks to these nodes, using them improperly as
outlets to represent cooling operations applied to the fluid and interposed
between compression stages.
+\subsubsection{Lamination Valve}
+
+A completely different kind of gas handling units is not aimed at increasing
+the pressure of the gas, but at reducing it. The simplest way in which this
+pressure reduction can be accomplished is passing the gas through a valve with
+high pressure drop, hence achieving an operation known as lamination. In fact, a
+lamination valve is a unit useful to expand a fluid. It can be represented using
+a simple pic called \chpp{lamination valve}:
+\begin{chpcode}
+ \pic at (0,0) {lamination valve};
+\end{chpcode}
+which yields a rectangle anchored in its centre in which there is an arrow
+sketch:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-2.4,0) {lamination valve};
+ \pic at (0,0) {lamination valve};
+ \measure{(-0.2,-0.3)}{(0.2,-0.3)}{\SI{4}{\mm}}
+ \measure{(-0.4,0.1)}{(-0.4,-0.1)}{\SI{2}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (V) at (2.4,0) {lamination valve};
+ \pic at (V-anchor) {anchor mark};
+ \pic at (V-inlet) {node mark};
+ \pic at (V-outlet) {node mark};
+ \node[left] at (V-inlet) {\chpn{i}};
+ \node[right] at (V-outlet) {\chpn{o}};
+\end{tikzpicture}
+\end{center}
+
+Nodes defined for the \chpp{lamination valve} are particular. A lamination
+valve is a unit much more similar to a simple electric bipole, in fact it has
+only two nodes (plus the \chpn{anchor}); moreover this unit is a ``one way
+operation'', so the nodes have a simple logic: one \chpn{inlet} and one
+\chpn{outlet}. These two are indicated in the drawing above as \chpn{i} and
+\chpn{o} respectively.
+
+\subsubsection{Turbine}
+
+Another way to reduce the pressure of a gas also allows to recover a part of the
+energy released. In a sense, this operations is the exact opposite of
+compression: expansion in a turbine. A generic symbols to represent this is made
+available by \chemplants. It is defined as a simple pic called \chpp{turbine}:
+\begin{chpcode}
+ \pic at (0,0) {turbine};
+\end{chpcode}
+and yields a ``reversed'' cone frustum, in which middle there is the anchor:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-2.8,0) {turbine};
+ \pic at (0,0) {turbine};
+ \measure{(-0.4,-0.7)}{(0.4,-0.7)}{\SI{8}{\mm}}
+ \measure{(-0.6,0.2)}{(-0.6,-0.2)}{\SI{4}{\mm}}
+ \measure[above]{(0.6,0.5)}{(0.6,-0.5)}{\SI{10}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (T) at (2.8,0) {turbine};
+ \pic at (T-anchor) {anchor mark};
+ \pic at (T-left) {node mark};
+ \pic at (T-right) {node mark};
+ \pic at (T-inlet bottom) {node mark};
+ \pic at (T-outlet bottom) {node mark};
+ \pic at (T-outlet top) {node mark};
+ \pic at (T-inlet top) {node mark};
+ \node[left] at (T-left) {\chpn{l}};
+ \node[right] at (T-right) {\chpn{r}};
+ \node[below] at (T-inlet bottom) {\chpn{ib}};
+ \node[below] at (T-outlet bottom) {\chpn{ob}};
+ \node[above] at (T-outlet top) {\chpn{ot}};
+ \node[above] at (T-inlet top) {\chpn{it}};
+\end{tikzpicture}
+\end{center}
+where the measure on the right indicates the height of the larger base of the
+cone frustum.
+
+Nodes have to be used in a similar was to the one just outlined for the
+\chpp{compressor}. This time, the shape of the \chpp{turbine} recalls a volume
+expansion, hence entering streams should be attached to the smaller base of
+the unit, while leaving streams should be connected to the larger one. Besides
+the usual \chpn{left} and \chpn{right} nodes, four special nodes are defined:
+\begin{itemize}
+ \item a node called \chpn{inlet bottom}, abbreviated in the picture above as
+ \chpn{ib};
+ \item a node called \chpn{outlet bottom}, abbreviated in the picture above as
+ \chpn{ob};
+ \item a node called \chpn{outlet top}, abbreviated in the picture above as
+ \chpn{ot};
+ \item a node called \chpn{inlet top}, abbreviated in the picture above as
+ \chpn{it}.
+\end{itemize}
+
+A turbine is usually associated to a mechanical work production: the \chpn{right}
+node (or the \chpn{left} node) comes in hand in this situation, since it can be
+exploited to symbolise the connection of the shaft of a generator.
+
\subsubsection{Ejector}
-The last fluid handling unit defined by \chemplants\ is neither a kinetic nor
+The last gas handling unit defined by \chemplants\ is neither a kinetic nor
a volumetric machine, but it belongs to (and is the most remarkable example of)
-static machines category. The ejector works thanks to the relation of the
-pressure energy with the kinetic energy of a fluid, usually a gas, and most of
-the time is used to suck a secondary fluid into a driving stream or to generate
-vacuum thanks to this effect. It is defined as a simple pic called
-\chpp{ejector}:
+static machines category. Properly, it is not even a gas handling machine as
+classically intended (which means using mechanical work to move a gas). The
+ejector works thanks to the relation of the pressure energy with the kinetic
+energy of a fluid, usually a gas, and most of the time is used to suck a
+secondary fluid into a driving stream or to generate vacuum thanks to this
+effect. It is defined as a simple pic called \chpp{ejector}:
\begin{chpcode}
\pic at (0,0) {ejector};
\end{chpcode}
@@ -1726,7 +2012,421 @@ the secondary one is aspired through the \chpn{suck inlet bottom} node or the
respectively. The two streams, mixed together, leave the unit from the
\chpn{outlet} node, identified as \chpn{o} in the above drawing.
+\subsection{Solid Handling}
+
+Solids, especially if under the form of granular material, are very common in the
+chemical industry. Processing granular materials require some special
+machines and even some special unit operations exist for solids. Also moving
+granular materials is not an easy task and, clearly, pumps and compressors are
+useless to this purpose (except for some very special case of suspended
+transport). The \chemplants\ package defines some special symbols to denote
+``pure'' solid handling units.
+
+\subsubsection{Hopper}
+
+The hopper is a simple ``funnel'' which channel granular materials to their
+destinations. The most common place where one can find a hopper is below a silos,
+in fact the \chpp{silos} introduced in subsection~\ref{subsec:storag} ends in a
+hopper. Sometimes, a hopper can exist by itself and a special symbol is defined
+to indicate such case. It is defined as a simple pic called \chpp{hopper}:
+\begin{chpcode}
+ \pic at (0,0) {hopper};
+\end{chpcode}
+and yields the sketch of a hopper anchored at its top:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-3,0) {hopper};
+ \pic at (0,0) {hopper};
+ \measure{(-0.4,-1.7)}{(0.4,-1.7)}{\SI{8}{\mm}}
+ \measure{(-0.3,-1.2)}{(0,-1.2)}{\SI{3}{\mm}}
+ \measure{(-1.2,0)}{(-1.2,-1)}{\SI{10}{\mm}}
+ \measure{(-0.7,0)}{(-0.7,-0.5)}{\SI{5}{\mm}}
+ \measure[above]{(-0.5,0.2)}{(0.5,0.2)}{\SI{10}{\mm}}
+ \measure[above]{(0.7,0)}{(0.7,-0.4)}{\SI{4}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (H) at (3,0) {hopper};
+ \pic at (H-anchor) {anchor mark};
+ \pic at (H-left) {node mark};
+ \pic at (H-outlet) {node mark};
+ \pic at (H-right) {node mark};
+ \node[left] at (H-left) {\chpn{l}};
+ \node[below] at (H-outlet) {\chpn{o}};
+ \node[right] at (H-right) {\chpn{r}};
+\end{tikzpicture}
+\end{center}
+
+Measures require some clarifications. The unit has a total width of \SI{10}{\mm}
+and a total height of \SI{10}{\mm}. Since the top line protrudes by \SI{1}{\mm}
+on each side, the hopper body has a width of \SI{8}{\mm}. Moving to
+nodes, the \chpn{right} node is placed \SI{4}{\mm} below the anchor and the
+\chpn{left} node is placed \SI{5}{\mm} below the anchor.
+
+The inlet stream should be connected to the top of the hopper (use the
+\chpn{anchor} node to snap purposes), while the outlet stream should leave the
+unit from the bottom. A special node is defined to this last purpose: the
+\chpn{outlet} node, \chpn{o} in the above representation. This node is placed
+\SI{3}{\mm} to the left of the anchor.
+
+\subsubsection{Conveyor Belt}
+
+Carrying solids around a plant is an operation accomplished by special mechanical
+units. The simplest one is the conveyor belt. It is defined as a simple pic
+called \chpp{conveyor belt}:
+\begin{chpcode}
+ \pic at (0,0) {conveyor belt};
+\end{chpcode}
+and yields the sketch of a conveyor belt at its centre:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4,0) {conveyor belt};
+ \pic at (0,0) {conveyor belt};
+ \measure{(-1,-0.4)}{(1,-0.4)}{\SI{20}{\mm}}
+ \measure{(-1.2,0.2)}{(-1.2,-0.2)}{\SI{4}{\mm}}
+ \measure[above]{(0,0.4)}{(0.6,0.4)}{\SI{6}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (C) at (4,0) {conveyor belt};
+ \pic at (C-anchor) {anchor mark};
+ \pic at (C-outlet left) {node mark};
+ \pic at (C-bottom) {node mark};
+ \pic at (C-outlet right) {node mark};
+ \pic at (C-inlet right) {node mark};
+ \pic at (C-top) {node mark};
+ \pic at (C-inlet left) {node mark};
+ \node[left] at (C-outlet left) {\chpn{ol}};
+ \node[below] at (C-bottom) {\chpn{b}};
+ \node[right] at (C-outlet right) {\chpn{or}};
+ \node[above] at (C-inlet right) {\chpn{ir}};
+ \node[above] at (C-top) {\chpn{t}};
+ \node[above] at (C-inlet left) {\chpn{il}};
+\end{tikzpicture}
+\end{center}
+where the measure on the top indicates the distance from the middle of the
+unit to the point where the inlet stream should be connected.
+
+Nodes require some clarifications. The entering stream should be attached to the
+upper part of the unit on one side, while the leaving stream should be connected
+to opposite side. Both streams should be pointed downwards. Besides the usual
+\chpn{bottom} and \chpn{top} nodes, four special nodes are defined:
+\begin{itemize}
+ \item a node called \chpn{outlet left}, abbreviated in the picture above as
+ \chpn{ol};
+ \item a node called \chpn{outlet right}, abbreviated in the picture above as
+ \chpn{or};
+ \item a node called \chpn{inlet right}, abbreviated in the picture above as
+ \chpn{ir};
+ \item a node called \chpn{inlet left}, abbreviated in the picture above as
+ \chpn{il}.
+\end{itemize}
+
+\subsubsection{Screw Conveyor}
+
+Another kind of solid handling unit, especially suitable to carry around granular
+materials, is the screw conveyor. It is defined as a simple pic called
+\chpp{screw conveyor}:
+\begin{chpcode}
+ \pic at (0,0) {screw conveyor};
+\end{chpcode}
+and yields a rectangle, in which centre there is the anchor, with a sketch of
+the screw:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4,0) {screw conveyor};
+ \pic at (0,0) {screw conveyor};
+ \measure{(-1,-0.4)}{(1,-0.4)}{\SI{20}{\mm}}
+ \measure{(-1.2,0.2)}{(-1.2,-0.2)}{\SI{4}{\mm}}
+ \measure[above]{(0,0.4)}{(0.8,0.4)}{\SI{8}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (C) at (4,0) {screw conveyor};
+ \pic at (C-anchor) {anchor mark};
+ \pic at (C-left) {node mark};
+ \pic at (C-outlet left) {node mark};
+ \pic at (C-bottom) {node mark};
+ \pic at (C-outlet right) {node mark};
+ \pic at (C-right) {node mark};
+ \pic at (C-inlet right) {node mark};
+ \pic at (C-top) {node mark};
+ \pic at (C-inlet left) {node mark};
+ \node[left] at (C-left) {\chpn{l}};
+ \node[below] at (C-outlet left) {\chpn{ol}};
+ \node[below] at (C-bottom) {\chpn{b}};
+ \node[below] at (C-outlet right) {\chpn{or}};
+ \node[right] at (C-right) {\chpn{r}};
+ \node[above] at (C-inlet right) {\chpn{ir}};
+ \node[above] at (C-top) {\chpn{t}};
+ \node[above] at (C-inlet left) {\chpn{il}};
+\end{tikzpicture}
+\end{center}
+where the measure on the top indicates the distance from the middle of the
+unit to the point where the inlet stream should be connected.
+
+Nodes require some clarifications. The entering stream should be attached to the
+upper part of the unit on one side, while the leaving stream should be connected
+to the lower part and on the opposite side. Both streams should be pointed
+downwards. Besides the usual \chpn{left}, \chpn{bottom}, \chpn{right} and
+\chpn{top} nodes, four special nodes are defined:
+\begin{itemize}
+ \item a node called \chpn{outlet left}, abbreviated in the picture above as
+ \chpn{ol};
+ \item a node called \chpn{outlet right}, abbreviated in the picture above as
+ \chpn{or};
+ \item a node called \chpn{inlet right}, abbreviated in the picture above as
+ \chpn{ir};
+ \item a node called \chpn{inlet left}, abbreviated in the picture above as
+ \chpn{il}.
+\end{itemize}
+
+\subsubsection{Roller Conveyor}
+
+A roller conveyor can be use if slabs of bars of solid materials have to be
+moved. It is defined as a simple pic called \chpp{roller conveyor}:
+\begin{chpcode}
+ \pic at (0,0) {roller conveyor};
+\end{chpcode}
+and yields a series of circles placed on a planar support anchored at its top:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4,0) {roller conveyor};
+ \pic at (0,0) {roller conveyor};
+ \measure{(-1,-0.4)}{(1,-0.4)}{\SI{20}{\mm}}
+ \measure{(-1.2,0.2)}{(-1.2,-0.2)}{\SI{4}{\mm}}
+ \measure[above]{(0,0.4)}{(0.9,0.4)}{\SI{9}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (C) at (4,0) {roller conveyor};
+ \pic at (C-anchor) {anchor mark};
+ \pic at (C-left) {node mark};
+ \pic at (C-right) {node mark};
+ \pic at (C-top right) {node mark};
+ \pic at (C-top) {node mark};
+ \pic at (C-top left) {node mark};
+ \node[left] at (C-left) {\chpn{l}};
+ \node[right] at (C-right) {\chpn{r}};
+ \node[above] at (C-top right) {\chpn{tr}};
+ \node[above] at (C-top) {\chpn{t}};
+ \node[above] at (C-top left) {\chpn{tl}};
+\end{tikzpicture}
+\end{center}
+where the measure on the top indicates the distance from the middle of the
+unit to the point where the streams should be connected.
+
+Only common nodes are defined for \chpp{roller conveyor}, but it should be
+noticed that the only nodes to be used to connect streams are \chpn{top left} and
+\chpn{top left}.
+
+\subsubsection{Bucket Elevator}
+
+A special kind of solid handling machines can be used not to cover horizontal
+paths, but to elevate a granular material. The most common one is the bucket
+elevator. It is defined as a simple pic called \chpp{bucket elevator}:
+\begin{chpcode}
+ \pic at (0,0) {bucket elevator};
+\end{chpcode}
+and yields the sketch of a bucket elevator anchored in its centre:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-3,0) {bucket elevator};
+ \pic at (0,0) {bucket elevator};
+ \measure{(-0.5,-1.7)}{(0.5,-1.7)}{\SI{10}{\mm}}
+ \measure{(-0.15,-1.2)}{(0.15,-1.2)}{\SI{3}{\mm}}
+ \measure{(-0.7,1)}{(-0.7,-1)}{\SI{20}{\mm}}
+ \measure[above]{(0,1.2)}{(0.4,1.2)}{\SI{4}{\mm}}
+ \measure[above]{(0.7,0.7)}{(0.7,0)}{\SI{7}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (C) at (3,0) {bucket elevator};
+ \pic at (C-anchor) {anchor mark};
+ \pic at (C-left) {node mark};
+ \pic at (C-outlet) {node mark};
+ \pic at (C-bottom) {node mark};
+ \pic at (C-right) {node mark};
+ \pic at (C-inlet) {node mark};
+ \pic at (C-top) {node mark};
+ \node[left] at (C-left) {\chpn{l}};
+ \node[above] at (C-inlet) {\chpn{i}};
+ \node[below] at (C-bottom) {\chpn{b}};
+ \node[right] at (C-right) {\chpn{r}};
+ \node[below] at (C-outlet) {\chpn{o}};
+ \node[above] at (C-top) {\chpn{t}};
+\end{tikzpicture}
+\end{center}
+
+Measures require some clarifications. The unit has a total width of \SI{10}{\mm}
+and a total height of \SI{20}{\mm}. The central body has a width of \SI{3}{\mm}.
+
+The inlet and outlet streams should be connected to specific points of the unit.
+Two special nodes are defined to this purpose: the \chpn{inlet} node, \chpn{i}
+in the above representation, and the \chpn{outlet} node, \chpn{o} in the above
+representation. Considering this last node, it is placed \SI{4}{\mm} to the left
+of the anchor and \SI{7}{\mm} above it. Similar considerations hold true for the
+\chpn{inlet} node.
+
+\subsubsection{Cylinder Crusher}
+
+Pure solid handling units are done, but \chemplants\ defines some more symbols
+useful to denote operations concerning solids. Some of them represent size
+reduction operations, the most common of which is carried out in a cylinder
+crusher. It is defined as a simple pic called \chpp{cylinder crusher}:
+\begin{chpcode}
+ \pic at (0,0) {cylinder crusher};
+\end{chpcode}
+and yields two circles, in which middle point there is the anchor, with a sketch
+of the machine structure:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4,0) {cylinder crusher};
+ \pic at (0,0) {cylinder crusher};
+ \measure{(-1,-0.8)}{(1,-0.8)}{\SI{20}{\mm}}
+ \measure{(-1.2,0.6)}{(-1.2,-0.6)}{\SI{12}{\mm}}
+ \measure[above]{(1.2,0.5)}{(1.2,-0.5)}{\SI{10}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (C) at (4,0) {cylinder crusher};
+ \pic at (C-anchor) {anchor mark};
+ \pic at (C-left) {node mark};
+ \pic at (C-outlet) {node mark};
+ \pic at (C-right) {node mark};
+ \pic at (C-inlet) {node mark};
+ \node[left] at (C-left) {\chpn{l}};
+ \node[below] at (C-outlet) {\chpn{o}};
+ \node[right] at (C-right) {\chpn{r}};
+ \node[above] at (C-inlet) {\chpn{i}};
+\end{tikzpicture}
+\end{center}
+where the measure on the right indicates the height of the unit without the
+little protruding lines which marks the inlet and outlet conveying channels.
+
+Besides the usual \chpn{left} and \chpn{right} nodes, two special nodes are
+defined: the \chpn{inlet} node, \chpn{i} in the above representation, and the
+\chpn{outlet} node, \chpn{o} in the above representation.
+
+\subsubsection{Hammer Crusher}
+
+Another rather common size reduction unit is the hammer crusher. It is defined as
+a simple pic called \chpp{hammer crusher}:
+\begin{chpcode}
+ \pic at (0,0) {hammer crusher};
+\end{chpcode}
+and yields the sketch of a hammer crusher anchored in its centre:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4,0) {hammer crusher};
+ \pic at (0,0) {hammer crusher};
+ \measure{(-0.5,-1.2)}{(0.6,-1.2)}{\SI{11}{\mm}}
+ \measure{(-0.3,-0.7)}{(0,-0.7)}{\SI{3}{\mm}}
+ \measure{(-1.2,0.6)}{(-1.2,-0.5)}{\SI{11}{\mm}}
+ \measure{(-0.7,0)}{(-0.7,-0.5)}{\SI{5}{\mm}}
+ \measure[above]{(0,0.8)}{(0.3,0.8)}{\SI{3}{\mm}}
+ \measure[above]{(0.8,0.5)}{(0.8,0)}{\SI{5}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (C) at (4,0) {hammer crusher};
+ \pic at (C-anchor) {anchor mark};
+ \pic at (C-left) {node mark};
+ \pic at (C-outlet) {node mark};
+ \pic at (C-bottom) {node mark};
+ \pic at (C-right) {node mark};
+ \pic at (C-inlet) {node mark};
+ \node[left] at (C-left) {\chpn{l}};
+ \node[below] at (C-outlet) {\chpn{o}};
+ \node[below] at (C-bottom) {\chpn{b}};
+ \node[right] at (C-right) {\chpn{r}};
+ \node[above] at (C-inlet) {\chpn{i}};
+\end{tikzpicture}
+
+\end{center}
+
+Besides the usual \chpn{left}, \chpn{bottom} and \chpn{right} nodes, two special
+nodes are defined: the \chpn{inlet} node, \chpn{i} in the above representation,
+and the \chpn{outlet} node, \chpn{o} in the above representation. These nodes are
+both \SI{3}{\mm} far from the anchor in the horizontal direction and \SI{5}{\mm}
+far from the anchor in the vertical direction.
+
+\subsubsection{Mill}
+
+While a crusher is a rough operation, a fine particle size reduction can be
+achieved in a mill. A single mill is defined by \chemplants, a symbol to be used
+to denote a general milling operation. It is defined as a simple pic called
+\chpp{mill}:
+\begin{chpcode}
+ \pic at (0,0) {mill};
+\end{chpcode}
+and yields a rectangle, in which centre there is the anchor with some
+``decoration lines'':
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4,0) {mill};
+ \pic at (0,0) {mill};
+ \measure{(-1,-0.7)}{(1.1,-0.7)}{\SI{21}{\mm}}
+ \measure{(-1.2,0.5)}{(-1.2,-0.5)}{\SI{10}{\mm}}
+ \measure[above]{(-1,0.7)}{(1,0.7)}{\SI{20}{\mm}}
+ \measure[above]{(1.3,0.4)}{(1.3,-0.4)}{\SI{8}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (C) at (4,0) {mill};
+ \pic at (C-anchor) {anchor mark};
+ \pic at (C-inlet) {node mark};
+ \pic at (C-bottom) {node mark};
+ \pic at (C-outlet) {node mark};
+ \pic at (C-top) {node mark};
+ \node[left] at (C-inlet) {\chpn{i}};;
+ \node[below] at (C-bottom) {\chpn{b}};
+ \node[right] at (C-outlet) {\chpn{o}};
+ \node[above] at (C-top) {\chpn{t}};
+\end{tikzpicture}
+\end{center}
+where measure on the top and on the right both refers to the dimensions of the
+unit without the protruding ``decoration lines''.
+
+Besides the usual \chpn{bottom} and \chpn{right} nodes, two special
+nodes are defined: the \chpn{inlet} node, \chpn{i} in the above representation,
+and the \chpn{outlet} node, \chpn{o} in the above representation.
+
+\subsubsection{Extruder}
+
+The last solid handling unit defined by \chemplants\ represents a special
+process: extrusion. The operation is denoted in general as a screw extruder.
+It is defined as a simple pic called \chpp{extruder}:
+\begin{chpcode}
+ \pic at (0,0) {extruder};
+\end{chpcode}
+and yields the sketch of an extruder anchored in its centre:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4,0) {extruder};
+ \pic at (0,0) {extruder};
+ \measure{(-1,-1)}{(1,-1)}{\SI{20}{\mm}}
+ \measure{(-1,-0.5)}{(0,-0.5)}{\SI{10}{\mm}}
+ \measure{(0,-0.5)}{(1,-0.5)}{\SI{10}{\mm}}
+ \measure{(-1.7,0.5)}{(-1.7,-0.3)}{\SI{8}{\mm}}
+ \measure{(-1.2,0.5)}{(-1.2,0)}{\SI{5}{\mm}}
+ \measure[above]{(-0.7,0.7)}{(0,0.7)}{\SI{7}{\mm}}
+ \measure[above]{(1.2,0.2)}{(1.2,-0.2)}{\SI{4}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (C) at (4,0) {extruder};
+ \pic at (C-anchor) {anchor mark};
+ \pic at (C-left) {node mark};
+ \pic at (C-bottom) {node mark};
+ \pic at (C-outlet) {node mark};
+ \pic at (C-top) {node mark};
+ \pic at (C-inlet) {node mark};
+ \node[left] at (C-left) {\chpn{l}};
+ \node[below] at (C-bottom) {\chpn{b}};
+ \node[right] at (C-outlet) {\chpn{o}};
+ \node[above] at (C-top) {\chpn{t}};
+ \node[above] at (C-inlet) {\chpn{i}};
+\end{tikzpicture}
+\end{center}
+
+Measures require some clarifications. The unit has a total width of \SI{20}{\mm}
+and a total height of \SI{8}{\mm}. A hopper is sketched on the extruder, which
+main body has a height of \SI{4}{\mm}.
+
+The inlet stream should be connected to the top of the hopper, while the outlet
+stream should leave the unit from the end on the right. Two special nodes are
+defined: the \chpn{inlet} node, \chpn{i} in the above representation, and the
+\chpn{outlet} node, \chpn{o} in the above representation. The former is placed
+\SI{7}{\mm} to the left of the anchor and \SI{5}{\mm} above it.
+
+As a last remark, notice that the \chpn{left} node can be exploited to attach
+something to the shaft of the screw, like a motor or a control signal.
+
\subsection{Heat Exchangers}
+\label{subsec:heahex}
Many variants of heat exchangers are defined by \chemplants. Among ``simple
symbols'', two heat exchangers are available to general purposes, while three
@@ -1974,7 +2674,7 @@ and yields a horizontal rectangle, in which centre there is the anchor, with a
rounded end and a sketch of the internal pipes:
\begin{center}
\begin{tikzpicture}
- \pic at (-3.6,0) {tube bundle heat exchanger};
+ \pic at (-3.6,0) {tube bundle heat exchanger};
% \pic at (0,0) {tube bundle heat exchanger};
% \measure{(-1.0,-0.5)}{(1.0,-0.5)}{\SI{20}{\mm}}
% \measure{(-1.2,0.35)}{(-1.2,-0.35)}{\SI{7}{\mm}}
@@ -1985,7 +2685,7 @@ rounded end and a sketch of the internal pipes:
% \pic (E) at (3.6,0) {tube bundle heat exchanger};
% \pic at (E-anchor) {anchor mark};
% \pic at (E-right) {node mark};
-% \pic at (E-head left) {node mark};
+% \pic at (E-left) {node mark};
% \pic at (E-head bottom) {node mark};
% \pic at (E-head top) {node mark};
% \pic at (E-shell bottom left) {node mark};
@@ -1995,7 +2695,7 @@ rounded end and a sketch of the internal pipes:
% \pic at (E-shell top) {node mark};
% \pic at (E-shell top left) {node mark};
% \node[right] at (E-right) {\chpn{r}};
-% \node[left] at (E-head left) {\chpn{hl}};
+% \node[left] at (E-left) {\chpn{l}};
% \node[below left] at (E-head bottom) {\chpn{hb}};
% \node[above left] at (E-head top) {\chpn{ht}};
% \node[below] at (E-shell bottom left) {\chpn{sbl}};
@@ -2072,6 +2772,56 @@ flexible as possibile, in fact flow configuration can have a great impact on
the heat exchanger performances and it is often useful to represent it also
graphically.
+\subsubsection{Tube Bundle Heat Exchanger (Variant)}
+
+The \chpp{tube bundle heat exchanger} has a single head, thus it can be used to
+represent units with an even number of tube-side passes. A variant of this heat
+exchanger is defined by \chemplants\ to better denote machines with an odd number
+of tube-side passes (note that \UNICHIM\ uses the same symbol in both cases, the
+\chpp{tube bundle heat exchanger}). It is defined as a simple pic called
+\chpp{tube bundle heat exchanger var}:
+\begin{chpcode}
+ \pic at (0,0) {tube bundle heat exchanger var};
+\end{chpcode}
+and yields a horizontal rectangle, in which centre there is the anchor, with
+rounded ends and a sketch of the internal pipes:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-3.6,0) {tube bundle heat exchanger var};
+ \pic at (0,0) {tube bundle heat exchanger var};
+ \measure{(-1.0,-0.5)}{(1.0,-0.5)}{\SI{20}{\mm}}
+ \measure{(-1.2,0.35)}{(-1.2,-0.35)}{\SI{7}{\mm}}
+ \measure[above]{(0,0.5)}{(0.5,0.5)}{\SI{5}{\mm}}
+ \measure[above]{(1.2,0.3)}{(1.2,-0.3)}{\SI{6}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (E) at (3.6,0) {tube bundle heat exchanger var};
+ \pic at (E-anchor) {anchor mark};
+ \pic at (E-head left) {node mark};
+ \pic at (E-head right) {node mark};
+ \pic at (E-shell bottom left) {node mark};
+ \pic at (E-shell bottom) {node mark};
+ \pic at (E-shell bottom right) {node mark};
+ \pic at (E-shell top right) {node mark};
+ \pic at (E-shell top) {node mark};
+ \pic at (E-shell top left) {node mark};
+ \node[left] at (E-head left) {\chpn{hl}};
+ \node[right] at (E-head right) {\chpn{hr}};
+ \node[below left] at (E-shell bottom left) {\chpn{sbl}};
+ \node[below] at (E-shell bottom) {\chpn{sb}};
+ \node[below right] at (E-shell bottom right) {\chpn{sbr}};
+ \node[above right] at (E-shell top right) {\chpn{str}};
+ \node[above] at (E-shell top) {\chpn{st}};
+ \node[above left] at (E-shell top left) {\chpn{stl}};
+\end{tikzpicture}
+\end{center}
+
+Measures are totally analogous to the ones of the
+\chpp{tube bundle heat exchanger} just discussed. Also nodes concerning the shell
+are the same, but there are no more \chpn{left} and \chpn{right nodes}. These are
+replaced by the \chpn{head left} node, shown above as \chpn{hl}, and by the
+\chpn{head right} node, shown above as \chpn{hr}. The fluid that passes through
+the internal pipes have to be connected using these nodes
+
\subsubsection{Plate Heat Exchanger}
The tube bundle heat exchanger is the most widely used, but it is not the only
@@ -2169,9 +2919,10 @@ the \chpn{outer center} node is abbreviated above as \chpn{oc}, while the
\subsubsection{Pipe Furnace}
-The last heat transfer equipment defined by \chemplants\ (at least in this
-section of the manual) is not properly a heat exchanger, but it is a furnace.
-It is defined as a simple pic called \chpp{pipe furnace}:
+The last heat transfer equipments defined by \chemplants\ (at least in this
+section of the manual) are not heat exchanger as properly intended, but furnaces.
+The first one is a pipe furnace useful to heat liquids and gases. It is defined
+as a simple pic called \chpp{pipe furnace}:
\begin{chpcode}
\pic at (0,0) {pipe furnace};
\end{chpcode}
@@ -2208,17 +2959,105 @@ fuel inlet and stack gases outlet. In addition, there are two nodes more: a node
called \chpn{pipes left}, abbreviated in the picture above as \chpn{pl}, and a
node called \chpn{pipes right}, abbreviated in the picture above as \chpn{pr}.
-\subsection{Separators}
+\subsubsection{Tunnel Furnace}
+
+If one has to represent a solid drying operation, a tunnel furnace may come in
+hand. It is defined as a simple pic called \chpp{tunnel furnace}:
+\begin{chpcode}
+ \pic at (0,0) {tunnel furnace};
+\end{chpcode}
+and yields a rectangle, in which lower centre there is the anchor, with a sketch
+of the tunnel entrance and exit:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4.4,0) {tunnel furnace};
+ \pic at (0,0) {tunnel furnace};
+ \measure{(-1.2,-0.7)}{(1.2,-0.7)}{\SI{24}{\mm}}
+ \measure{(-1.4,1)}{(-1.4,-0.5)}{\SI{15}{\mm}}
+ \measure[above]{(0,1.2)}{(0.9,1.2)}{\SI{9}{\mm}}
+ \measure[above]{(1.4,1)}{(1.4,0)}{\SI{10}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (E) at (4.4,0) {tunnel furnace};
+ \pic at (E-anchor) {anchor mark};
+ \pic at (E-bottom) {node mark};
+ \pic at (E-top right) {node mark};
+ \pic at (E-top) {node mark};
+ \pic at (E-top left) {node mark};
+ \pic at (E-tunnel left) {node mark};
+ \pic at (E-tunnel right) {node mark};
+ \node[below] at (E-bottom) {\chpn{b}};
+ \node[above] at (E-top right) {\chpn{tr}};
+ \node[above] at (E-top) {\chpn{t}};
+ \node[above] at (E-top left) {\chpn{tl}};
+ \node[left] at (E-tunnel left) {\chpn{tul}};
+ \node[right] at (E-tunnel right) {\chpn{tur}};
+\end{tikzpicture}
+\end{center}
+where the measure on the right indicates the distance from the anchor point to
+the top of the unit, while the measure on the top concern nodes.
+
+The \chpp{tunnel furnace} has some special nodes. Among the common ones, only
+\chpn{bottom} and \chpn{top} are defined and they may be useful to represent
+fuel inlet and stack gases outlet. Also \chpn{top left} and \chpn{top right} may
+serve this cause. In addition, there are two nodes more: a node called
+\chpn{tunnel left}, abbreviated in the picture above as \chpn{tul}, and a
+node called \chpn{tunnel right}, abbreviated in the picture above as \chpn{tur}.
+
+\subsubsection{Rotary Furnace}
+
+Granular materials can be thermally treated into a unit called rotary furnace. It
+is defined as a simple pic called \chpp{rotary furnace}:
+\begin{chpcode}
+ \pic at (0,0) {rotary furnace};
+\end{chpcode}
+and yields a slanted rectangle, in which centre there is the anchor, with a
+sketch of the revolution movement:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (0,0) {rotary furnace};
+\end{tikzpicture}
+\end{center}
+
+No measures or nodes are shown in the above drawing, that is the pure symbol.
+Marking measures on a slanted unit like this one is not trivial, thus the
+\chpp{rotary furnace} is reproduced as rotated here:
+\begin{center}
+\begin{tikzpicture}
+ \pic[rotate=10] (F) at (0,0) {rotary furnace};
+ \measure{(-1,-0.8)}{(1,-0.8)}{\SI{20}{\mm}}
+ \measure{(-1.7,0.4)}{(-1.7,-0.4)}{\SI{8}{\mm}}
+ \measure[above]{(-0.9,0.8)}{(0,0.8)}{\SI{9}{\mm}}
+ \measure[above]{(1.7,0.3)}{(1.7,-0.3)}{\SI{6}{\mm}}
+ \pic at (F-anchor) {anchor mark};
+ \pic at (F-gas outlet) {node mark};
+ \pic at (F-solid outlet) {node mark};
+ \pic at (F-gas inlet) {node mark};
+ \pic at (F-solid inlet) {node mark};
+ \node[left] at (F-gas outlet) {\chpn{go}};
+ \node[below] at (F-solid outlet) {\chpn{so}};
+ \node[right] at (F-gas inlet) {\chpn{gi}};
+ \node[above] at (F-solid inlet) {\chpn{si}};
+\end{tikzpicture}
+\end{center}
+The measure on the right indicates the height of the rotation drum without the
+motion sketch, while the measure on the top concern nodes.
+
+None of the common nodes are defined for the \chpn{rotary furnace}, but there are
+special nodes to be used to connect specific streams. In the above drawing,
+\chpn{gi} and \chpn{si} indicate respectively the \chpn{gas inlet} node and the
+\chpn{solid inlet} node, which should be used to connect the inlet streams. On
+the left of the unit there is the \chpn{gas outlet} node, abbreviated as
+\chpn{go} in the figure, while on its bottom right there is the
+\chpn{solid outlet} node, abbreviated as \chpn{so} in the figure. Names should be
+self-explicative.
+
+\subsection{Physical Separators}
Separation unit operations are some of the most important operations in chemical
engineering. Besides the separation of homogenous mixtures, that is usually done
in ``simple'' equipments which will be introduced in the following, the
separation of heterogeneous mixtures is practically much more simple and some
-specific equipments based on mechanical principles exist. Also more complex
-separation units will be introduced after the mechanical ones, mainly the ones
-based on thermal energy supply or removal and aimed to separate special kinds of
-homogenous mixtures. (Notice that the terms gas and vapour will be used
-indiscriminately, although not properly correct.)
+specific equipments based on mechanical principles exist.
\subsubsection{Steam Trap}
@@ -2406,6 +3245,7 @@ triangular funnel end:
\pic at (0,0) {settler};
\measure{(-1.5,-1.0)}{(1.5,-1.0)}{\SI{30}{\mm}}
\measure{(-1.7,0.8)}{(-1.7,-0.8)}{\SI{16}{\mm}}
+ \measure[above]{(2.2,0.8)}{(2.2,0)}{\SI{8}{\mm}}
\measure[above]{(1.7,0)}{(1.7,-0.2)}{\SI{2}{\mm}}
\pic at (0,0) {anchor mark};
\pic (S) at (5,0) {settler};
@@ -2424,8 +3264,9 @@ triangular funnel end:
\node[below] at (S-solid outlet) {\chpn{so}};
\end{tikzpicture}
\end{center}
-where the measure on the right indicates the distance from the middle of the unit
-to the point where the funnel begins.
+where the measure on the inner right indicates the distance from the middle of
+the unit to the point where the funnel begins, while the measure on the outer
+right indicates the distance from the middle of the unit to its top.
None of the common nodes are defined for the \chpp{settler}, but there are
special nodes to be used to connect specific streams. In the above drawing,
@@ -2440,6 +3281,229 @@ abbreviated as \chpn{so} in the figure. Three inlets are defined to give
flexibility to the representation, in fact the same symbol can be used to
indicate circular settling basins as well as rectangular settling basins.
+\subsubsection{Bag Filter}
+
+A bag filter can be used to separate particulate solids entrained by a fluid,
+either a gas or a liquid. It is defined as a simple pic called \chpp{bag filter}:
+\begin{chpcode}
+ \pic at (0,0) {bag filter};
+\end{chpcode}
+and yields a little rectangle, on which base there is the anchor, attached to a
+sketch of the filtering bags which ends in a triangular funnel:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-2.9,0) {bag filter};
+ \pic at (0,0) {bag filter};
+ \measure{(-0.45,-1.6)}{(0.45,-1.6)}{\SI{9}{\mm}}
+ \measure{(-0.65,0.2)}{(-0.65,-1.4)}{\SI{16}{\mm}}
+ \measure[above]{(0.65,0.2)}{(0.65,0)}{\SI{2}{\mm}}
+ \measure[above]{(1.3,0)}{(1.3,-1)}{\SI{10}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (F) at (2.9,0) {bag filter};
+ \pic at (F-anchor) {anchor mark};
+ \pic at (F-top) {node mark};
+ \pic at (F-inlet left) {node mark};
+ \pic at (F-inlet right) {node mark};
+ \pic at (F-fluid outlet left) {node mark};
+ \pic at (F-fluid outlet right) {node mark};
+ \pic at (F-solid outlet) {node mark};
+ \node[above] at (F-top) {\chpn{t}};
+ \node[left] at (F-inlet left) {\chpn{il}};
+ \node[right] at (F-inlet right) {\chpn{ir}};
+ \node[left] at (F-fluid outlet left) {\chpn{fol}};
+ \node[right] at (F-fluid outlet right) {\chpn{for}};
+ \node[below] at (F-solid outlet) {\chpn{so}};
+\end{tikzpicture}
+\end{center}
+
+Besides the common nodes, special nodes are defined for stream connections. In
+the above drawing, \chpn{il} and \chpn{ir} indicate respectively the
+\chpn{inlet left} node and the \chpn{inlet right} node, which should be used to
+connect the inlet stream. On the bottom left and on the bottom right of the unit
+there are respectively the \chpn{fluid outlet left} node and the
+\chpn{fluid outlet right} node, abbreviated as \chpn{fol} and \chpn{for} in the
+figure, while on its bottom there is the \chpn{solid outlet} node, abbreviated as
+\chpn{so} in the figure. Names should be self-explicative.
+
+\subsubsection{Filter Press}
+
+Quite common in the food industry, a filter press can be used to separate
+particulate solids suspended in a liquid. It is defined as a simple pic called
+\chpp{filter press}:
+\begin{chpcode}
+ \pic at (0,0) {filter press};
+\end{chpcode}
+and yields a little rectangle, in which centre there is the anchor, with a sketch
+of the filtering layers and the plate used to collect solids beneath it:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4,0) {filter press};
+ \pic at (0,0) {filter press};
+ \measure{(-1,-0.7)}{(1,-0.7)}{\SI{20}{\mm}}
+ \measure{(-1.2,0.4)}{(-1.2,-0.5)}{\SI{9}{\mm}}
+ \measure[above]{(-0.9,0.6)}{(0.9,0.6)}{\SI{18}{\mm}}
+ \measure[above]{(1.2,0.4)}{(1.2,-0.4)}{\SI{8}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (F) at (4,0) {filter press};
+ \pic at (F-anchor) {anchor mark};
+ \pic at (F-left) {node mark};
+ \pic at (F-right) {node mark};
+ \pic at (F-top) {node mark};
+ \pic at (F-solid outlet) {node mark};
+ \node[left] at (F-left) {\chpn{l}};
+ \node[right] at (F-right) {\chpn{r}};
+ \node[above] at (F-top) {\chpn{t}};
+ \node[below] at (F-solid outlet) {\chpn{so}};
+\end{tikzpicture}
+\end{center}
+where measures on the right and on the top refers to the dimension of the unit
+without the underlying tray.
+
+Besides the common nodes, special nodes are defined for stream connections, but
+this time also common nodes should be used wisely. The \chpn{top} node is
+defined to labelling purposes, while the \chpn{left} and \chpn{right} nodes have
+a scope: one must be used to connect the entering mixture, while the other
+represents the liquid outlet. On the bottom of the unit there is the \chpn{solid
+outlet} node, abbreviated as \chpn{so} in the figure, which is used to represent
+the outlet of filtered solids.
+
+\subsubsection{Rotary Filter}
+
+A quite ingenious machine is the rotary filter. It is defined as a simple pic
+called \chpp{rotary filter}:
+\begin{chpcode}
+ \pic at (0,0) {rotary filter};
+\end{chpcode}
+and yields a circle, in which centre there is the anchor, with a sketch of the
+liquid feeding system:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-3.3,0) {rotary filter};
+ \pic at (0,0) {rotary filter};
+ \measure{(-0.7,-0.8)}{(0.6,-0.8)}{\SI{13}{\mm}}
+ \measure{(-0.9,0.5)}{(-0.9,-0.6)}{\SI{11}{\mm}}
+ \measure[above]{(-0.6,0.7)}{(0.6,0.7)}{\SI{12}{\mm}}
+ \measure[above]{(0.8,0.5)}{(0.8,-0.5)}{\SI{10}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (F) at (3.3,0) {rotary filter};
+ \pic at (F-anchor) {anchor mark};
+ \pic at (F-bottom) {node mark};
+ \pic at (F-top) {node mark};
+ \pic at (F-inlet) {node mark};
+ \pic at (F-solid outlet) {node mark};
+ \node[below] at (F-bottom) {\chpn{b}};
+ \node[above] at (F-top) {\chpn{t}};
+ \node[left] at (F-inlet) {\chpn{i}};
+ \node[right] at (F-solid outlet) {\chpn{so}};
+\end{tikzpicture}
+\end{center}
+where measures on the right and on the top refers to the dimension of the unit
+without the underlying liquid feeding system.
+
+Besides the common nodes, special nodes are defined for stream connections.
+The inlet stream should enter from the \chpn{inlet} node, marked as \chpn{i} in
+the figure. Recalling that the separation achieved in such unit is driven by the
+vacuum generated in the internal channel, sketched in the symbol as a filled
+black circle, the liquid outlet stream should be connected to the \chpn{anchor}
+node. Solids form a cake on the outside of the revolving cylinder and are
+scraped away by a blade. The special node \chpn{solid outlet}, abbreviated as
+\chpn{so} in the figure, is defined to this purpose.
+
+\subsubsection{Deck Screen}
+
+The last two physical separation units defined by \chemplants\ are used to
+fractionate granular materials by dimension. One of these units is the deck
+screen. It is defined as a simple pic called \chpp{deck screen}:
+\begin{chpcode}
+ \pic at (0,0) {deck screen};
+\end{chpcode}
+and yields a little rectangle, on which base there is the anchor, with a sketch
+of the screening mesh and attached to a triangular funnel:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-4,0) {deck screen};
+ \pic at (0,0) {deck screen};
+ \measure{(-1,-1.2)}{(1,-1.2)}{\SI{20}{\mm}}
+ \measure{(-1.2,0.5)}{(-1.2,-1)}{\SI{15}{\mm}}
+ \measure[above]{(1.2,0.5)}{(1.2,0)}{\SI{5}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (S) at (4,0) {deck screen};
+ \pic at (S-anchor) {anchor mark};
+ \pic at (S-undersize outlet) {node mark};
+ \pic at (S-oversize outlet) {node mark};
+ \pic at (S-top) {node mark};
+ \pic at (S-inlet) {node mark};
+ \node[below] at (S-undersize outlet) {\chpn{uo}};
+ \node[right] at (S-oversize outlet) {\chpn{oo}};
+ \node[above] at (S-top) {\chpn{t}};
+ \node[above] at (S-inlet) {\chpn{i}};
+\end{tikzpicture}
+\end{center}
+
+Besides the common nodes, special nodes are defined for stream connections. In
+the above drawing, \chpn{i} indicate the \chpn{inlet} node, which should be used
+to connect the inlet stream. On the bottom right of the unit there is the
+\chpn{oversize outlet} node, abbreviated as \chpn{oo} in the figure, while on its
+bottom there is the \chpn{undersize outlet} node, abbreviated as \chpn{uo} in the
+figure. The former have to be used to connect the leaving oversize stream, while
+the latter is for the undersize stream.
+
+\subsubsection{Rotary Screen}
+
+Another common screen is a close friend of the rotary furnace introduced in
+subsection~\ref{subsec:heahex}: the rotary screen. It is defined as a simple
+pic called \chpp{rotary screen}:
+\begin{chpcode}
+ \pic at (0,0) {rotary screen};
+\end{chpcode}
+and yields a slanted rectangle, in which centre there is the anchor, with
+sketches of the screening mesh and of the revolution movement:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (0,0) {rotary screen};
+\end{tikzpicture}
+\end{center}
+
+No measures or nodes are shown in the above drawing, that is the pure symbol.
+Marking measures on a slanted unit like this one is not trivial, thus the
+\chpp{rotary screen} is reproduced as rotated here:
+\begin{center}
+\begin{tikzpicture}
+ \pic[rotate=10] (S) at (0,0) {rotary screen};
+ \measure{(-1,-0.8)}{(1,-0.8)}{\SI{20}{\mm}}
+ \measure{(-1.5,0.4)}{(-1.5,-0.4)}{\SI{8}{\mm}}
+ \measure[above]{(-0.9,0.6)}{(0,0.6)}{\SI{9}{\mm}}
+ \measure[above]{(1.7,0.3)}{(1.7,-0.3)}{\SI{6}{\mm}}
+ \pic at (S-anchor) {anchor mark};
+ \pic at (S-inlet) {node mark};
+ \pic at (S-undersize outlet left) {node mark};
+ \pic at (S-undersize outlet right) {node mark};
+ \pic at (S-oversize outlet) {node mark};
+ \node[left] at (S-inlet) {\chpn{i}};
+ \node[below] at (S-undersize outlet left) {\chpn{uol}};
+ \node[below] at (S-undersize outlet right) {\chpn{uor}};
+ \node[right] at (S-oversize outlet) {\chpn{oo}};
+\end{tikzpicture}
+\end{center}
+The measure on the right indicates the height of the rotation drum without the
+motion sketch, while the measure on the top concerns nodes.
+
+None of the common nodes are defined for the \chpn{rotary furnace}, but there are
+special nodes to be used to connect specific streams. In the above drawing,
+\chpn{i} indicates the \chpn{inlet} node, which should be used to connect the
+inlet streams. On the right of the unit there is the \chpn{oversize outlet} node,
+abbreviated as \chpn{oo} in the figure, while on its bottom there are the
+\chpn{undersize outlet left} node and the \chpn{undersize outlet right} node,
+abbreviated as \chpn{uol} and \chpn{uor} in the figure. Outlets have to be used
+as already outlined discussing the \chpn{deck screen}.
+
+\subsection{Thermal Separators}
+
+After physical separation unit operations, some more complex separation units are
+to be introduced, mainly the ones based on thermal energy supply or removal and
+aimed at separating special kinds of homogenous mixtures. (Notice that the terms
+gas and vapour will be used indiscriminately, although not properly correct.)
+
\subsubsection{Scrubber}
Another case in which the separation of a ``gas-liquid'' mixture is needed is
@@ -2793,7 +3857,7 @@ dimension of real units) and nodes:
\measure{(-2.9,3.0)}{(-2.9,-3.0)}{\SI{30}{\mm}}
\measure{(-2.4,2.064)}{(-2.4,0)}{\SI{10.32}{\mm}}
\measure[above]{(-1.6,3.7)}{(1.6,3.7)}{\SI{16}{\mm}}
- \measure[above]{(3.4,0)}{(3.4,-1.8)}{\SI{9}{\mm}}
+ \measure[above]{(3.4,0)}{(3.4,-1.6)}{\SI{8}{\mm}}
\measure[above]{(2.9,0)}{(2.9,-1.0)}{\SI{5}{\mm}}
\measure[above]{(2.4,0)}{(2.4,-0.4)}{\SI{2}{\mm}}
\draw[dashed] (4,5) -- (4,-5);
@@ -3371,7 +4435,7 @@ and yields a vertical tank anchored in its centre:
where the measure on the right indicates the distance from the middle of the tank
to the point where the curvature begins.
-This pic is formally analogue to the \chpp{tank}, the very first pic
+This pic is formally analogous to the \chpp{tank}, the very first pic
introduced, but smaller. It is useful to know that the scale factor to
``convert'' a \chpp{tank reactor} into a \chpp{tank} is \num{1.25}. The reason
why it is useful to know it will be explained in the future, when pics
@@ -3672,40 +4736,9 @@ A utility valve should not be misconceived with a lamination valve (as it often
happens). Despite the extremely common fact that the same symbol is used for
both the units, for the sake of clearance \UNICHIM\ indicates the lamination of
a fluid through a valve using a different symbol with respect to the one used
-for regulation or interception valves.
-
-\subsubsection{Lamination Valve}
-
-A lamination valve is a unit useful to expand a fluid, hence to reduce its
-pressure. It can be represented using a simple pic called
-\chpp{lamination valve}:
-\begin{chpcode}
- \pic at (0,0) {lamination valve};
-\end{chpcode}
-which yields a rectangle anchored in its centre in which there is an arrow
-sketch:
-\begin{center}
-\begin{tikzpicture}
- \pic at (-2.4,0) {lamination valve};
- \pic at (0,0) {lamination valve};
- \measure{(-0.2,-0.3)}{(0.2,-0.3)}{\SI{4}{\mm}}
- \measure{(-0.4,0.1)}{(-0.4,-0.1)}{\SI{2}{\mm}}
- \pic at (0,0) {anchor mark};
- \pic (V) at (2.4,0) {lamination valve};
- \pic at (V-anchor) {anchor mark};
- \pic at (V-inlet) {node mark};
- \pic at (V-outlet) {node mark};
- \node[left] at (V-inlet) {\chpn{i}};
- \node[right] at (V-outlet) {\chpn{o}};
-\end{tikzpicture}
-\end{center}
-
-Nodes defined for the \chpp{lamination valve} are particular. A lamination
-valve is a unit much more similar to a simple electric bipole, in fact it has
-only two nodes (plus the \chpn{anchor}); moreover this unit is a ``one way
-operation'', so the nodes have a simple logic: one \chpn{inlet} and one
-\chpn{outlet}. These two are indicated in the drawing above as \chpn{i} and
-\chpn{o} respectively.
+for regulation or interception valves. The \chpp{lamination valve} has already
+been introduced in subsection~\ref{subsec:gashan}, while this section is reserved
+to utility valves.
\subsubsection{Valve}
@@ -3843,12 +4876,47 @@ Just like for the valve, three kinds of four-way valves are defined:
with \verb|semithick| lines, \verb|thin| lines and \verb|very thin| lines. These
keys should be used as arguments of the \chpp{valve quadruple} pic.
+\subsubsection{Check Valve}
+
+Another kind of valve allows the flow in one direction only and it is known as
+check valve. It is defined as a pic with arguments called \chpp{check valve}:
+\begin{chpcode}
+ \pic at (0,0) {check valve=main};
+\end{chpcode}
+which yields a horizontal lid valve anchored in its centre:
+\begin{center}
+\begin{tikzpicture}
+ \pic at (-2.4,0) {check valve=main};
+ \pic at (0,0) {check valve=main};
+ \measure{(-0.2,-0.3)}{(0.2,-0.3)}{\SI{4}{\mm}}
+ \measure{(-0.4,0.1)}{(-0.4,-0.1)}{\SI{2}{\mm}}
+ \pic at (0,0) {anchor mark};
+ \pic (V) at (2.4,0) {check valve=main};
+ \pic at (V-anchor) {anchor mark};
+ \pic at (V-inlet) {node mark};
+ \pic at (V-outlet) {node mark};
+ \node[left] at (V-inlet) {\chpn{i}};
+ \node[right] at (V-outlet) {\chpn{o}};
+\end{tikzpicture}
+\end{center}
+
+Nodes defined for the \chpp{check valve} follow the same logic of the ones
+defined for the \chpp{lamination valve}. Being a check valve a ``directional''
+unit, the nodes have a simple logic: one \chpn{inlet} and one \chpn{outlet}.
+These two are indicated in the drawing above as \chpn{i} and \chpn{o}
+respectively.
+
+Just like for the valve, three kinds of safety valves are defined: \chpa{main},
+\chpa{secondary} and \chpa{utility}, which are drawn respectively with
+\verb|semithick| lines, \verb|thin| lines and \verb|very thin| lines. These keys
+should be used as arguments of the \chpp{check valve} pic.
+
\subsubsection{Safety Valve}
A special kind of valve is the one used to protect a vessel against pressure
anomalies: the safety valve. The \chemplants\ package defines a single symbols to
represent both safety valves and relief valves. It is defined as a pic with
-arguments called \chpp{safety quadruple}:
+arguments called \chpp{safety valve}:
\begin{chpcode}
\pic at (0,0) {safety valve=main};
\end{chpcode}
@@ -3876,8 +4944,7 @@ of the spring, while the measure on the measure on the top indicates the distanc
from the anchor to the vent.
Nodes defined for the \chpp{safety valve} follow the same logic of the ones
-defined for the \chpp{lamination valve}. Being a safety valve a ``directional''
-unit, the nodes have a simple logic: one \chpn{inlet} and one \chpn{outlet}.
+defined for the \chpp{check valve}: one \chpn{inlet} and one \chpn{outlet}.
These two are indicated in the drawing above as \chpn{i} and \chpn{o}
respectively. The \chpn{outlet} node may be used to represent the collection of
the discharged stream into a particular treatment circuit.
@@ -4077,7 +5144,7 @@ sketch:
\end{center}
while an outlet is defined as a simple pic called \chpp{outlet}:
\begin{chpcode}
- \pic at (0,0) {output};
+ \pic at (0,0) {outlet};
\end{chpcode}
and yields a circle, in which centre there is the anchor, with an empty arrow
sketch:
@@ -4418,7 +5485,7 @@ also its nodes:
Finally, some special considerations concerning associative pics used to give
flexible representation of reactors. It has been specified that the
-\chpp{tank reactor} is analogue to the \chpp{tank} and that the scale factor to
+\chpp{tank reactor} is analogous to the \chpp{tank} and that the scale factor to
``convert'' the first into the second is \num{1.25}. This is useful, for
example, if one has to represent a stirrer within a tank. The code:
\begin{chpcode}
@@ -5530,6 +6597,35 @@ to connect streams.
\label{fig:absstr}
\end{figure}
+\section{Acknowledgments}
+
+There is a quite long list of people I wish to thank concerning \chemplants.
+Although this project is rather personal, the package and its documentation would
+not have been what they are now without the help of the people listed here.
+
+Desi Costa offered her support on linguistics, allowing me to yield a document
+written in a decent english.
+
+Massimiliano Cailotto, Marco Sandrin and Stefano Peschiutta were perhaps the
+first users of the package when it was not of public domain yet and
+helped me spotting errors in the documentation, suggesting improvements and
+providing some complete diagrams. The experience of Massimiliano also proved
+to be very useful in selecting the most common units for processing granular
+materials.
+
+Alberto Saccardo, Nicolò Soave and Michele Cherubin were my recurring fellows
+during most of the homework we had to carry out during the Master's Degree and
+always tolerated my maniacal desiare to produce diagrams using \chemplants.
+
+I also wish to thank all of the members of the \GuIT, the Italian \TeX\ and
+\LaTeX\ users group, in particular the ones who take charge of the organisation
+of the annual group meeting. Editions of the \GuITmeeting[style=inline] have
+inspired me from the very first time I attended them and keep increasing my
+knowledge of the \TeX\ and \LaTeX\ world and my appetite for a continuous
+improvement. The passion and the support of some members I had the pleasure to
+know during the meeting are largely responsible of the development of of the
+\chemplants\ package and of its presence on the public \TeX\ distributions.
+
\section{What Happens Next}
As conceived, \chemplants\ is just a toolbox to draw in an easier way chemical
@@ -5542,7 +6638,13 @@ done step by step. I have a list of the ``most commonly used'' units to
define, but users are free (and invited) to send suggestion about new units
which they would like to see in the \chemplants\ palette.
-Besides the mentioned modifications, I am always opened to suggestions which can
+The documentation file will also be subject to a deep review. It started out as a
+simple list of units, basically for my own use. However, as the package grew and
+new features got added, it became clear that the current structure of the
+documentation was bounding the ease of use. Hopefully, this constraint will be
+removed in future releases.
+
+Besides the mentioned modifications, I am always open to suggestions which can
improve the functionality and usability of \chemplants. Users who have something
to suggest, find errors and bugs or are simply happy to use this package can
contact me writing to \mail{elia24913@me.com} and possibly placing
diff --git a/graphics/pgf/contrib/chemplants/chemplants.sty b/graphics/pgf/contrib/chemplants/chemplants.sty
index 460078dd53..fab48f551d 100644
--- a/graphics/pgf/contrib/chemplants/chemplants.sty
+++ b/graphics/pgf/contrib/chemplants/chemplants.sty
@@ -1,6 +1,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% chemplants.sty
-%% Copyright 2018-2019 Elia Arnese Feffin
+%% Copyright 2018-2021 Elia Arnese Feffin
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -8,7 +8,7 @@
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
+% version 2008/05/04 or later.
%
% This work has the LPPL maintenance status "maintained".
%
@@ -22,10 +22,10 @@
%:File chemplants.sty
\NeedsTeXFormat{LaTeX2e}
-\def\chpversion{0.9.8}
-\def\chpdate{2019/11/19}
+\def\chpversion{0.9.9}
+\def\chpdate{2021/09/25}
\ProvidesPackage{chemplants}[%
- 2019/11/19 v0.9.8 Symbology to draw chemical plants with TikZ%
+ 2021/09/25 v0.9.9 Symbology to draw chemical plants with TikZ%
]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -36,6 +36,7 @@
\RequirePackage{tikz} % The Mother of Them All
\usetikzlibrary{decorations.markings} % Patch Patterns
\usetikzlibrary{hobby} % Hobby's Algorithm
+ \usetikzlibrary{bending} % Better Slanted Arrows
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -237,9 +238,9 @@
\tikzset{tank/.pic=%
{%
\draw [chpunitstyle]
- (-1,-0.915) to [out=270,in=270]
+ (-1,-0.915) to [out=270, in=270]
(1,-0.915) --
- (1,0.915) to [out=90,in=90]
+ (1,0.915) to [out=90, in=90]
(-1,0.915) -- cycle;
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
@@ -282,8 +283,8 @@
\draw [chpunitstyle]
(-1.5,-1.5) --
(1.5,-1.5) --
- (1.5,0.7) to [out=90,in=0]
- (0,1.5) to [out=180,in=90]
+ (1.5,0.7) to [out=90, in=0]
+ (0,1.5) to [out=180, in=90]
(-1.5,0.7) -- cycle;
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
@@ -323,6 +324,25 @@
\end{scope}
}%
}
+%: Spherical Tank
+\tikzset{spherical tank/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (0,0) circle (1.4);
+ \draw [chpunitstyle]
+ (-1.4,0) -- (-1.4,-1.5)
+ (-1.5,-1.5) -- (-1.3,-1.5)
+ (1.4,0) -- (1.4,-1.5)
+ (1.3,-1.5) -- (1.5,-1.5);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-1.4,0);
+ \coordinate (-bottom) at (0,-1.4);
+ \coordinate (-right) at (1.4,0);
+ \coordinate (-top) at (0,1.4);
+ \end{scope}
+ }%
+}
%: Bell Gasholder
\tikzset{bell gasholder/.pic=%
{%
@@ -333,8 +353,8 @@
(1.5,0.5);
\draw [chpunitstyle]
(1.45,-0.5) --
- (1.45,0.7) to [out=90,in=0]
- (0,1.45) to [out=180,in=90]
+ (1.45,0.7) to [out=90, in=0]
+ (0,1.45) to [out=180, in=90]
(-1.45,0.7) -- (-1.45,-0.50);
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
@@ -374,8 +394,56 @@
\end{scope}
}%
}
+%: Silos
+\tikzset{silos/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.7,-0.8) --
+ (0,-1.8) --
+ (0.7,-0.8) --
+ (0.7,1.590) to [out=90, in=90]
+ (-0.7,1.590) -- cycle;
+ \draw [chpunitstyle]
+ (-0.7,-0.8) -- (-0.7,-2)
+ (-0.8,-2) -- (-0.6,-2)
+ (0.7,-0.8) -- (0.7,-2)
+ (0.6,-2) -- (0.8,-2);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-0.7,0);
+ \coordinate (-bottom left) at (-0.7,-0.8);
+ \coordinate (-outlet) at (0,-1.8);
+ \coordinate (-bottom right) at (0.7,-0.8);
+ \coordinate (-right) at (0.7,0);
+ \coordinate (-top right) at (0.7,1.590);
+ \coordinate (-top) at (0,2);
+ \coordinate (-top left) at (-0.7,1.590);
+ \end{scope}
+ }%
+}
+%: Drum
+\tikzset{drum/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (0.324,-0.3) to [out=0, in=0]
+ (0.324,0.3) --
+ (-0.324,0.3) to [out=180, in=180]
+ (-0.324,-0.3) -- cycle;
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-0.5,0);
+ \coordinate (-bottom left) at (-0.324,-0.3);
+ \coordinate (-bottom) at (0,-0.3);
+ \coordinate (-bottom right) at (0.324,-0.3);
+ \coordinate (-right) at (0.5,0);
+ \coordinate (-top right) at (0.324,0.3);
+ \coordinate (-top) at (0,0.3);
+ \coordinate (-top left) at (-0.324,0.3);
+ \end{scope}
+ }%
+}
-%: Fluids Handling
+%: Liquid Handling
%: Centrifugal Pump
\tikzset{centrifugal pump/.pic=%
{%
@@ -453,6 +521,8 @@
\end{scope}
}%
}
+
+%: Gas Handling
%: Fan
\tikzset{fan/.pic=%
{%
@@ -475,6 +545,25 @@
\end{scope}
}%
}
+%: Compressor
+\tikzset{compressor/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.4,-0.5) --
+ (0.4,-0.2) --
+ (0.4,0.2) --
+ (-0.4,0.5) -- cycle;
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-0.4,0);
+ \coordinate (-right) at (0.4,0);
+ \coordinate (-inlet bottom) at (-0.4,-0.5);
+ \coordinate (-outlet bottom) at (0.4,-0.2);
+ \coordinate (-outlet top) at (0.4,0.2);
+ \coordinate (-inlet top) at (-0.4,0.5);
+ \end{scope}
+ }%
+}
%: Centrifugal Compressor
\tikzset{centrifugal compressor/.pic=%
{%
@@ -508,7 +597,7 @@
(0.4,0.5) arc
(0:180:0.4) -- cycle
(0.325,0.5) arc
- (0:180:0.325) to [out=270,in=90]
+ (0:180:0.325) to [out=270, in=90]
(0.325,0) arc (360:180:0.325);
\draw [chpunitstyle]
(230.19:0.4) --
@@ -582,6 +671,39 @@
\end{scope}
}%
}
+%: Lamination Valve
+\tikzset{lamination valve/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.2,-0.1) rectangle (0.2,0.1)
+ (-0.2,0.1) -- (0.2,0)
+ (-0.2,-0.1) -- (0.2,0);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-inlet) at (-0.2,0);
+ \coordinate (-outlet) at (0.2,0);
+ \end{scope}
+ }%
+}
+%: Turbine
+\tikzset{turbine/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.4,-0.2) --
+ (0.4,-0.5) --
+ (0.4,0.5) --
+ (-0.4,0.2) -- cycle;
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-0.4,0);
+ \coordinate (-right) at (0.4,0);
+ \coordinate (-inlet bottom) at (-0.4,-0.2);
+ \coordinate (-outlet bottom) at (0.4,-0.5);
+ \coordinate (-outlet top) at (0.4,0.5);
+ \coordinate (-inlet top) at (-0.4,0.2);
+ \end{scope}
+ }%
+}
%: Ejector
\tikzset{ejector/.pic=%
{%
@@ -604,6 +726,224 @@
}%
}
+%: Solid Handling
+%: Hopper
+\tikzset{hopper/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.4,0) --
+ (-0.4,-1) --
+ (-0.2,-1) --
+ (0.4,-0.4) -- (0.4,0)
+ (-0.5,0) -- (0.5,0);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-0.4,-0.5);
+ \coordinate (-outlet) at (-0.3,-1);
+ \coordinate (-right) at (0.4,-0.4);
+ \end{scope}
+ }%
+}
+%: Conveyor Belt
+\tikzset{conveyor belt/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.8,0) circle (0.2)
+ (0.8,0) circle (0.2)
+ (-0.8,-0.2) -- (0.8,-0.2)
+ (-0.8,0.2) -- (0.8,0.2);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-outlet left) at (-1,0);
+ \coordinate (-bottom) at (0,-0.2);
+ \coordinate (-outlet right) at (1,0);
+ \coordinate (-inlet right) at (0.6,0.2);
+ \coordinate (-top) at (0,0.2);
+ \coordinate (-inlet left) at (-0.6,0.2);
+ \end{scope}
+ }%
+}
+%: Screw Conveyor
+\tikzset{screw conveyor/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-1,-0.2) rectangle (1,0.2)
+ (-1,0) -- (1,0)
+ (-0.85,0.05) --
+ (-0.7,-0.1) --
+ (-0.5,0.1) --
+ (-0.3,-0.1) --
+ (-0.1,0.1) --
+ (0.1,-0.1) --
+ (0.3,0.1) --
+ (0.5,-0.1) --
+ (0.7,0.1) -- (0.85,-0.05);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-1,0);
+ \coordinate (-outlet left) at (-0.8,-0.2);
+ \coordinate (-bottom) at (0,-0.2);
+ \coordinate (-outlet right) at (0.8,-0.2);
+ \coordinate (-right) at (1,0);
+ \coordinate (-inlet right) at (0.8,0.2);
+ \coordinate (-top) at (0,0.2);
+ \coordinate (-inlet left) at (-0.8,0.2);
+ \end{scope}
+ }%
+}
+%: Roller Conveyor
+\tikzset{roller conveyor/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-1,-0.2) --
+ (-1,0) --
+ (1,0) -- (1,-0.2)
+ (-0.9,0.1) circle (0.1)
+ (-0.6,0.1) circle (0.1)
+ (-0.3,0.1) circle (0.1)
+ (0,0.1) circle (0.1)
+ (0.3,0.1) circle (0.1)
+ (0.6,0.1) circle (0.1)
+ (0.9,0.1) circle (0.1);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-1,0);
+ \coordinate (-right) at (1,0);
+ \coordinate (-top right) at (0.9,0.2);
+ \coordinate (-top) at (0,0.2);
+ \coordinate (-top left) at (-0.9,0.2);
+ \end{scope}
+ }%
+}
+%: Bucket Elevator
+\tikzset{bucket elevator/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.15,-1) --
+ (0.15,-1) --
+ (0.15,0.7) --
+ (0.5,0.7) --
+ (0.15,1) --
+ (-0.15,1) --
+ (-0.15,-0.7) --
+ (-0.5,-0.7) -- cycle;
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-0.15,0);
+ \coordinate (-inlet) at (-0.4,-0.7);
+ \coordinate (-bottom) at (0,-1);
+ \coordinate (-right) at (0.15,0);
+ \coordinate (-outlet) at (0.4,0.7);
+ \coordinate (-top) at (0,1);
+ \end{scope}
+ }%
+}
+%: Cylinder Crusher
+\tikzset{cylinder crusher/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.5,0) circle (0.4)
+ (-0.5,0.6) --
+ (-0.4,0.5) --
+ (-0.5,0.5) arc
+ (90:270:0.5) --
+ (-0.3,-0.5) -- (-0.2,-0.6)
+ (0.5,0) circle (0.4)
+ (0.2,-0.6) --
+ (0.3,-0.5) --
+ (0.5,-0.5) arc
+ (270:450:0.5) --
+ (0.4,0.5) --
+ (0.5,0.6);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-1,0);
+ \coordinate (-outlet) at (0,-0.6);
+ \coordinate (-right) at (1,0);
+ \coordinate (-inlet) at (0,0.6);
+ \end{scope}
+ }%
+}
+%: Hammer Crusher
+\tikzset{hammer crusher/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.1,0.6) --
+ (0,0.5) arc
+ (90:180:0.5) --
+ (-0.5,-0.5) --
+ (0.5,-0.5) --
+ (0.5,0.5) -- (0.6,0.6);
+ \draw [chpunitstyle, fill]
+ (0,0) circle (0.05);
+ \draw [chpunitstyle]
+ (0,0) --
+ (135:0.4)
+ ++(225:0.1) -- ++(45:0.2);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-0.5,0);
+ \coordinate (-outlet) at (-0.3,-0.5);
+ \coordinate (-bottom) at (0,-0.5);
+ \coordinate (-right) at (0.5,0);
+ \coordinate (-inlet) at (0.3,0.5);
+ \end{scope}
+ }%
+}
+%: Mill
+\tikzset{mill/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-1,-0.4) rectangle (1,0.4)
+ (-0.5,-0.5) -- (-0.5,0.5)
+ (1,0.05) -- (1.1,0.15)
+ (1,-0.05) -- (1.1,-0.15);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-inlet) at (-1,0);
+ \coordinate (-bottom) at (0,-0.5);
+ \coordinate (-outlet) at (1,0);
+ \coordinate (-top) at (0,0.5);
+ \end{scope}
+ }%
+}
+%: Extruder
+\tikzset{extruder/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-1,-0.3) --
+ (-0.5,-0.3) --
+ (-0.5,-0.2) --
+ (0.7,-0.2) --
+ (1,-0.15) --
+ (1,0.15) --
+ (0.7,0.2) --
+ (-0.5,0.2) --
+ (-0.5,0.5) --
+ (-0.9,0.5) --
+ (-0.75,0.2) --
+ (-1,0.2) -- cycle
+ (-1,0) -- (-0.5,0)
+ (-0.5,-0.1) --
+ (-0.5,0.1) --
+ (-0.3,-0.1) --
+ (-0.1,0.1) --
+ (0.1,-0.1) --
+ (0.3,0.1) --
+ (0.5,-0.1) --
+ (0.7,0.1) --
+ (0.8,0);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-1,0);
+ \coordinate (-bottom) at (0,-0.2);
+ \coordinate (-outlet) at (1,0);
+ \coordinate (-top) at (0,0.2);
+ \coordinate (-inlet) at (-0.7,0.5);
+ \end{scope}
+ }%
+}
+
%: Heat Exchangers
%: Heat Exchanger
\tikzset{heat exchanger/.pic=%
@@ -709,10 +1049,9 @@
{%
\draw [chpunitstyle]
(-1.0,-0.3) --
- (0.7,-0.3) arc
- (270:450:0.3) --
+ (0.7,-0.3) arc (270:450:0.3) --
(-1.0,0.3) -- cycle;
- \foreach \i in {1, 2, ...,10} {%
+ \foreach \i in {1, 2, ..., 10} {%
\draw [chpunitstyle]
(-0.6,-0.3 + 0.06*\i) -- ++(1.2,0);
}
@@ -736,6 +1075,32 @@
\end{scope}
}%
}
+%: Tube Bundle Heat Exchanger Var
+\tikzset{tube bundle heat exchanger var/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (0.7,-0.3) arc (270:450:0.3) --
+ (-0.7,0.3) arc (90:270:0.3) -- cycle;
+ \foreach \i in {1, 2, ..., 10} {%
+ \draw [chpunitstyle]
+ (-0.6,-0.3 + 0.06*\i) -- ++(1.2,0);
+ }
+ \draw [chpunitstyle]
+ (-0.6,-0.35) -- (-0.6,0.35)
+ (0.6,-0.35) -- (0.6,0.35);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-head left) at (-1.0,0);
+ \coordinate (-head right) at (1.0,0);
+ \coordinate (-shell bottom left) at (-0.5,-0.3);
+ \coordinate (-shell bottom) at (0,-0.3);
+ \coordinate (-shell bottom right) at (0.5,-0.3);
+ \coordinate (-shell top right) at (0.5,0.3);
+ \coordinate (-shell top) at (0,0.3);
+ \coordinate (-shell top left) at (-0.5,0.3);
+ \end{scope}
+ }%
+}
%: Plate Heat Exchanger
\tikzset{plate heat exchanger/.pic=%
{%
@@ -817,8 +1182,57 @@
\end{scope}
}%
}
+%: Tunnel Furnace
+\tikzset{tunnel furnace/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-1.0,-0.5) --
+ (1,-0.5) --
+ (1,-0.1) --
+ (1.2,-0.1) --
+ (1.2,0.1) --
+ (1,0.1) --
+ (1,1) --
+ (-1,1) --
+ (-1,0.1) --
+ (-1.2,0.1) --
+ (-1.2,-0.1) --
+ (-1,-0.1) -- cycle;
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-bottom) at (0,-0.5);
+ \coordinate (-top right) at (0.9,1);
+ \coordinate (-top) at (0,1);
+ \coordinate (-top left) at (-0.9,1);
+ \coordinate (-tunnel left) at (-1.2,0);
+ \coordinate (-tunnel right) at (1.2,0);
+ \end{scope}
+ }%
+}
+%: Rotary Furnace
+\tikzset{rotary furnace/.pic=%
+ {%
+ \begin{scope} [rotate=-10]
+ \draw [chpunitstyle]
+ (-1,-0.3) rectangle (1,0.3);
+ \draw [chpunitstyle]
+ (-0.14772,0.069459) arc (170:50:0.15 and 0.4);
+ \draw [chpunitstyle, dotted]
+ (0.096418,0.30642) arc (50:-50:0.15 and 0.4);
+ \draw [chpunitstyle, -{\chp@StreamTip[flex]}]
+ (0.096418,-0.30642) arc (310:190:0.15 and 0.4);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-gas outlet) at (-1.0,0);
+ \coordinate (-solid outlet) at (0.9,-0.3);
+ \coordinate (-gas inlet) at (1,0);
+ \coordinate (-solid inlet) at (-0.9,0.3);
+ \end{scope}
+ \end{scope}
+ }%
+}
-%: Separators
+%: Physical Separators
%: Steam Trap
\tikzset{steam trap/.pic=%
{%
@@ -839,9 +1253,9 @@
\tikzset{gas-liquid separator/.pic=%
{%
\draw [chpunitstyle]
- (-0.8,-1.032) to [out=270,in=270]
+ (-0.8,-1.032) to [out=270, in=270]
(0.8,-1.032) --
- (0.8,1.032) to [out=90,in=90]
+ (0.8,1.032) to [out=90, in=90]
(-0.8,1.032) -- cycle;
\draw [chpunitstyle, densely dotted]
(-0.755,1.2) -- (0.755,1.2);
@@ -879,9 +1293,9 @@
\tikzset{stratifier/.pic=%
{%
\draw [chpunitstyle]
- (1.032,-0.8) to [out=0,in=0]
+ (1.032,-0.8) to [out=0, in=0]
(1.032,0.8) --
- (-1.032,0.8) to [out=180,in=180]
+ (-1.032,0.8) to [out=180, in=180]
(-1.032,-0.8) -- cycle;
\draw [chpunitstyle]
(-0.9,-0.85) -- (-0.9,0.3)
@@ -921,6 +1335,122 @@
\end{scope}
}%
}
+%: Bag Filter
+\tikzset{bag filter/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.45,-1) --
+ (0,-1.4) --
+ (0.45,-1) --
+ (0.45,0.2) --
+ (-0.45,0.2) -- cycle
+ (-0.45,-1) -- (0.45,-1)
+ (-0.45,0) -- (0.45,0)
+ (-0.15,0) -- (-0.15,-1)
+ (0.15,0) -- (0.15,-1);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-top) at (0,0.2);
+ \coordinate (-inlet left) at (-0.45,0.1);
+ \coordinate (-inlet right) at (0.45,0.1);
+ \coordinate (-fluid outlet left) at (-0.45,-1);
+ \coordinate (-fluid outlet right) at (0.45,-1);
+ \coordinate (-solid outlet) at (0,-1.4);
+ \end{scope}
+ }%
+}
+%: Filter Press
+\tikzset{filter press/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-0.9,-0.4) rectangle (0.9,0.4);
+ \foreach \i in {1, 2, ..., 17} {%
+ \draw [chpunitstyle]
+ (-0.9 + 0.1*\i,-0.4) -- ++(0,0.8);
+ }
+ \draw [chpunitstyle]
+ (-1,-0.4) --
+ (-1,-0.5) --
+ (1,-0.5) --
+ (1,-0.4);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-left) at (-0.9,0);
+ \coordinate (-right) at (0.9,0);
+ \coordinate (-top) at (0,0.4);
+ \coordinate (-solid outlet) at (0,-0.5);
+ \end{scope}
+ }%
+}
+%: Rotary Filter
+\tikzset{rotary filter/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (0,0) circle (0.5);
+ \draw [chpunitstyle, fill]
+ (0,0) circle (0.05);
+ \draw [chpunitstyle]
+ (-0.7,0) --
+ (-0.6,0) arc
+ (180:360:0.6) -- (0.5,0);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-bottom) at (0,-0.6);
+ \coordinate (-top) at (0,0.5);
+ \coordinate (-inlet) at (-0.6,0);
+ \coordinate (-solid outlet) at (0.6,0);
+ \end{scope}
+ }%
+}
+%: Deck Screen
+\tikzset{deck screen/.pic=%
+ {%
+ \draw [chpunitstyle]
+ (-1,0) --
+ (0,-1) --
+ (1,0) --
+ (1,0.5) --
+ (-1,0.5) -- cycle
+ (-1,0) -- (1,0);
+ \draw [chpunitstyle, densely dotted]
+ (-1,0.5) -- (1,0);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-undersize outlet) at (0,-1);
+ \coordinate (-oversize outlet) at (1,0);
+ \coordinate (-top) at (0,0.5);
+ \coordinate (-inlet) at (-1,0.5);
+ \end{scope}
+ }%
+}
+%: Rotary Screen
+\tikzset{rotary screen/.pic=%
+ {%
+ \begin{scope} [rotate=-10]
+ \draw [chpunitstyle]
+ (-1,-0.3) -- (-1,0.3)
+ (1,-0.3) -- (1,0.3);
+ \draw [chpunitstyle, densely dotted]
+ (-1,-0.3) -- (1,-0.3)
+ (-1,0.3) -- (1,0.3);
+ \draw [chpunitstyle]
+ (-0.14772,0.069459) arc (170:50:0.15 and 0.4);
+ \draw [chpunitstyle, dotted]
+ (0.096418,0.30642) arc (50:-50:0.15 and 0.4);
+ \draw [chpunitstyle, -{\chp@StreamTip[flex]}]
+ (0.096418,-0.30642) arc (310:190:0.15 and 0.4);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-inlet) at (-1,0);
+ \coordinate (-undersize outlet left) at (-0.9,-0.3);
+ \coordinate (-undersize outlet right) at (0.9,-0.3);
+ \coordinate (-oversize outlet) at (1,0);
+ \end{scope}
+ \end{scope}
+ }%
+}
+
+%: Thermal Separators
%: Scrubber
\tikzset{scrubber/.pic=%
{%
@@ -928,8 +1458,8 @@
(-0.3,-0.25) --
(0,-0.75) --
(0.3,-0.25) --
- (0.3,0.55) to [out=90,in=0]
- (0,0.75) to [out=180,in=90]
+ (0.3,0.55) to [out=90, in=0]
+ (0,0.75) to [out=180, in=90]
(-0.3,0.55) -- cycle;
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
@@ -947,8 +1477,8 @@
{%
\draw [chpunitstyle]
(-1.0,-0.3) --
- (0.7,-0.3) to [out=0,in=270]
- (1.0,0.2) to [out=90,in=0]
+ (0.7,-0.3) to [out=0, in=270]
+ (1.0,0.2) to [out=90, in=0]
(0.7,0.7) --
(-0.3,0.7) --
(-0.6,0.3) --
@@ -974,9 +1504,9 @@
\tikzset{tube bundle evaporator/.pic=%
{%
\draw [chpunitstyle]
- (-0.8,-1.032) to [out=270,in=270]
+ (-0.8,-1.032) to [out=270, in=270]
(0.8,-1.032) --
- (0.8,1.032) to [out=90,in=90]
+ (0.8,1.032) to [out=90, in=90]
(-0.8,1.032) -- cycle;
\foreach \i in {0, 1, ..., 10} {%
\draw [chpunitstyle]
@@ -1006,11 +1536,11 @@
\tikzset{basket evaporator/.pic=%
{%
\draw [chpunitstyle]
- (-0.8,-1.032) to [out=270,in=270]
+ (-0.8,-1.032) to [out=270, in=270]
(0.8,-1.032) --
- (0.8,1.032) to [out=90,in=90]
+ (0.8,1.032) to [out=90, in=90]
(-0.8,1.032) -- cycle;
- \foreach \i in {1, 2, ...,19} {%
+ \foreach \i in {1, 2, ..., 19} {%
\draw [chpunitstyle]
(-0.8 + 0.08*\i,-0.9) -- ++(0,0.8);
}
@@ -1043,15 +1573,15 @@
{%
\draw [chpunitstyle]
(-0.4,0.4) --
- (-0.4,-1.2) to [out=270,in=180]
- (0,-1.5) to [out=0,in=270]
+ (-0.4,-1.2) to [out=270, in=180]
+ (0,-1.5) to [out=0, in=270]
(0.4,-1.2) -- (0.4,0.4)
(0.4,0.3) --
(0.8,0.6) --
- (0.8,1.032) to [out=90,in=90]
+ (0.8,1.032) to [out=90, in=90]
(-0.8,1.032) --
(-0.8,0.6) -- (-0.4,0.3);
- \foreach \i in {1, 2, ...,10} {%
+ \foreach \i in {1, 2, ..., 10} {%
\draw [chpunitstyle]
(-0.4 + 0.08*\i,-1.2) -- ++(0,1.5);
}
@@ -1088,7 +1618,7 @@
(-0.8,-1.032) --
(0,-1.5) --
(0.8,-1.032) --
- (0.8,1.032) to [out=90,in=90]
+ (0.8,1.032) to [out=90, in=90]
(-0.8,1.032) -- cycle;
\foreach \i in {0, 1, ..., 10} {%
\draw [chpunitstyle]
@@ -1119,14 +1649,14 @@
(-0.8,-1.032) --
(0,-1.5) --
(0.8,-1.032) --
- (0.8,1.032) to [out=90,in=90]
+ (0.8,1.032) to [out=90, in=90]
(-0.8,1.032) -- cycle;
\draw [chpunitstyle, yshift=-0.25cm, xslant=0.285]
(0,1.75) --
- (0,0) to [out=150,in=90]
- (-0.5,0) to [out=270,in=210]
- (0,0) to [out=30,in=90]
- (0.5,0) to [out=270,in=330] (0,0);
+ (0,0) to [out=150, in=90]
+ (-0.5,0) to [out=270, in=210]
+ (0,0) to [out=30, in=90]
+ (0.5,0) to [out=270, in=330] (0,0);
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
\coordinate (-bottom left) at (-0.8,-1.032);
@@ -1149,9 +1679,9 @@
code=%
{%
\draw [chpunitstyle]
- (-0.5,-2.7) to [out=270,in=270]
+ (-0.5,-2.7) to [out=270, in=270]
(0.5,-2.7) --
- (0.5,2.7) to [out=90,in=90]
+ (0.5,2.7) to [out=90, in=90]
(-0.5,2.7) -- cycle;
\ifthenelse{\equal{#1}{empty}}{%
\relax%
@@ -1213,16 +1743,16 @@
\tikzset{stirred reactor/.pic=%
{%
\draw [chpunitstyle]
- (-0.8,-0.732) to [out=270,in=270]
+ (-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) to [out=90, in=90]
(-0.8,0.732) -- cycle;
\draw [chpunitstyle, yshift=-0.25cm, xslant=0.285]
(0,1.75) --
- (0,0) to [out=150,in=90]
- (-0.5,0) to [out=270,in=210]
- (0,0) to [out=30,in=90]
- (0.5,0) to [out=270,in=330] (0,0);
+ (0,0) to [out=150, in=90]
+ (-0.5,0) to [out=270, in=210]
+ (0,0) to [out=30, in=90]
+ (0.5,0) to [out=270, in=330] (0,0);
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
\coordinate (-left) at (-0.8,0);
@@ -1272,7 +1802,7 @@
(0.2,-1.2) --
(0.2,-0.8) --
(0.8,-0.4) --
- (0.8,0.732) to [out=90,in=90]
+ (0.8,0.732) to [out=90, in=90]
(-0.8,0.732) -- cycle;
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
@@ -1291,9 +1821,9 @@
\tikzset{tube bundle reactor/.pic=%
{%
\draw [chpunitstyle]
- (-0.8,-0.732) to [out=270,in=270]
+ (-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) to [out=90, in=90]
(-0.8,0.732) -- cycle;
\foreach \i in {1, 2, ...,19} {%
\draw [chpunitstyle]
@@ -1320,9 +1850,9 @@
\tikzset{tank reactor/.pic=%
{%
\draw [chpunitstyle]
- (-0.8,-0.732) to [out=270,in=270]
+ (-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) to [out=90, in=90]
(-0.8,0.732) -- cycle;
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
@@ -1343,11 +1873,11 @@
\draw [chpunitstyle]
(-0.8,0.7) --
(-1.0,0.5) --
- (-1.0,-0.732) to [out=270,in=180]
+ (-1.0,-0.732) to [out=270, in=180]
(-0.15,-1.3) -- (-0.1,-1.2)
(0.8,0.7) --
(1.0,0.5) --
- (1.0,-0.732) to [out=270,in=0]
+ (1.0,-0.732) to [out=270, in=0]
(0.15,-1.3) -- (0.1,-1.2);
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
@@ -1365,10 +1895,10 @@
{%
\draw [chpunitstyle, yshift=-0.25cm, xslant=0.285]
(0,1.75) --
- (0,0) to [out=150,in=90]
- (-0.5,0) to [out=270,in=210]
- (0,0) to [out=30,in=90]
- (0.5,0) to [out=270,in=330] (0,0);
+ (0,0) to [out=150, in=90]
+ (-0.5,0) to [out=270, in=210]
+ (0,0) to [out=30, in=90]
+ (0.5,0) to [out=270, in=330] (0,0);
\begin{scope} [scale=\chp@UnitScale]
\coordinate (-anchor) at (0,0);
\coordinate (-shaft) at (0.5,1.5);
@@ -1449,20 +1979,6 @@
%: Process Utilities
%: Valves
-%: Lamination Valve
-\tikzset{lamination valve/.pic=%
- {%
- \draw [chpunitstyle]
- (-0.2,-0.1) rectangle (0.2,0.1)
- (-0.2,0.1) -- (0.2,0)
- (-0.2,-0.1) -- (0.2,0);
- \begin{scope} [scale=\chp@UnitScale]
- \coordinate (-anchor) at (0,0);
- \coordinate (-inlet) at (-0.2,0);
- \coordinate (-outlet) at (0.2,0);
- \end{scope}
- }%
-}
%: Valve
\tikzset{pics/valve/.style=%
{%
@@ -1583,6 +2099,44 @@
}%
}%
}
+%: Check Valve
+\tikzset{pics/check valve/.style=%
+ {%
+ code=%
+ {%
+ \ifthenelse{\equal{#1}{main}}{%
+ \let\chp@ValveThickness\chp@MainStreamThickness%
+ }%
+ {%
+ \relax%
+ }
+ \ifthenelse{\equal{#1}{secondary}}{%
+ \let\chp@ValveThickness\chp@SecondaryStreamThickness%
+ }%
+ {%
+ \relax%
+ }
+ \ifthenelse{\equal{#1}{utility}}{%
+ \let\chp@ValveThickness\chp@UtilityStreamThickness%
+ }%
+ {%
+ \relax%
+ }
+ \draw [\chp@ValveThickness, scale=\chp@UnitScale]
+ (-0.2,-0.1) --
+ (-0.2,0.1) --
+ (0.2,-0.1) --
+ (0.2,0.1);
+ \draw [\chp@ValveThickness, fill, scale=\chp@UnitScale]
+ (-0.2,0.1) circle (0.05);
+ \begin{scope} [scale=\chp@UnitScale]
+ \coordinate (-anchor) at (0,0);
+ \coordinate (-inlet) at (-0.2,0);
+ \coordinate (-outlet) at (0.2,0);
+ \end{scope}
+ }%
+ }%
+}
%: Safety Valve
\tikzset{pics/safety valve/.style=%
{%
diff --git a/graphics/pstricks/base/Changes b/graphics/pstricks/base/Changes
index 3afab9a35a..33efe0df40 100644
--- a/graphics/pstricks/base/Changes
+++ b/graphics/pstricks/base/Changes
@@ -1,4 +1,4 @@
-% $Id: Changes 253 2021-09-15 09:56:15Z herbert $
+% $Id: Changes 269 2021-09-25 13:47:26Z herbert $
For all changes see file History! Here are only the last one changes
listed.
@@ -26,6 +26,7 @@ pstricks.tex --------
versions like 2.47a have only changes in other files, but not
in this main package.
+3.10a 2021-09-25 - fix introduced bug in pstricks.pro
3.10 2021-09-23 - move dot macros into a separate file pstricks-dots.tex
- use the internal Type1 version of PSTricksDotFont for
latex and the OpenType version for lualatex
@@ -72,7 +73,6 @@ pst-fp.tex ----------- (hv)
-
xdvipdfmx.con ------
0.07 2021-09-05 - fix for ps: -> pst:
0.06 2021-08-21 - small changes in the code
@@ -98,6 +98,7 @@ pstricks-doc -----------
---- pstricks.pro
+1.40 2021-09-25 - revert 1.39
1.39 2021-09-09 - run OpenCurve in a dictionary
1.38 2021-09-05 - increase memory for PenroseFill and PenrodeFillA
1.37 2021-08-27 - revert fix for .setblendmode
diff --git a/graphics/pstricks/base/config/distiller.cfg b/graphics/pstricks/base/config/distiller.cfg
index db654b14d7..9ade331215 100644
--- a/graphics/pstricks/base/config/distiller.cfg
+++ b/graphics/pstricks/base/config/distiller.cfg
@@ -1,4 +1,4 @@
-% $Id: distiller.cfg 446 2017-04-19 11:40:55Z herbert $
+% $Id: distiller.cfg 4 2020-06-09 08:32:19Z herbert $
%% BEGIN: distiller.con (for distiller driver)
%%
%% Configuration file for PSTricks
diff --git a/graphics/pstricks/base/config/dvips.cfg b/graphics/pstricks/base/config/dvips.cfg
index d9648c1d0a..f9c5da698e 100644
--- a/graphics/pstricks/base/config/dvips.cfg
+++ b/graphics/pstricks/base/config/dvips.cfg
@@ -1,4 +1,4 @@
-% $Id: dvips.cfg 797 2018-08-23 18:33:16Z herbert $
+% $Id: dvips.cfg 4 2020-06-09 08:32:19Z herbert $
%% BEGIN: pstricks.con (for dvips driver)
%%
%% Configuration file for PSTricks
diff --git a/graphics/pstricks/base/config/dvipsone.cfg b/graphics/pstricks/base/config/dvipsone.cfg
index 965e635fd5..bb59975bfa 100644
--- a/graphics/pstricks/base/config/dvipsone.cfg
+++ b/graphics/pstricks/base/config/dvipsone.cfg
@@ -1,4 +1,4 @@
-% $Id: dvipsone.cfg 446 2017-04-19 11:40:55Z herbert $
+% $Id: dvipsone.cfg 4 2020-06-09 08:32:19Z herbert $
%% BEGIN pstricks.con (for DVIPSONE driver)
%%
%% Configuration file for PSTricks 97: must be renamed `pstricks.con'
diff --git a/graphics/pstricks/base/config/gastex.cfg b/graphics/pstricks/base/config/gastex.cfg
index b3549c8c56..f0fe5486cd 100644
--- a/graphics/pstricks/base/config/gastex.cfg
+++ b/graphics/pstricks/base/config/gastex.cfg
@@ -1,4 +1,4 @@
-% $Id: gastex.cfg 446 2017-04-19 11:40:55Z herbert $
+% $Id: gastex.cfg 4 2020-06-09 08:32:19Z herbert $
%% BEGIN: pstricks.con (for xdvipdfmx driver)
%%
%% Configuration file for PSTricks
diff --git a/graphics/pstricks/base/config/textures.cfg b/graphics/pstricks/base/config/textures.cfg
index 48667d3950..ef088b5791 100644
--- a/graphics/pstricks/base/config/textures.cfg
+++ b/graphics/pstricks/base/config/textures.cfg
@@ -1,4 +1,4 @@
-% $Id: textures.cfg 446 2017-04-19 11:40:55Z herbert $
+% $Id: textures.cfg 4 2020-06-09 08:32:19Z herbert $
%% BEGIN pstricks.con (for Textures 1.7 and 1.8 driver)
%%
%% Configuration file for PSTricks 97: must be renamed `pstricks.con'
diff --git a/graphics/pstricks/base/config/vtex.cfg b/graphics/pstricks/base/config/vtex.cfg
index e4b7184404..7cb84c0f9e 100644
--- a/graphics/pstricks/base/config/vtex.cfg
+++ b/graphics/pstricks/base/config/vtex.cfg
@@ -1,4 +1,4 @@
-% $Id: vtex.cfg 446 2017-04-19 11:40:55Z herbert $
+% $Id: vtex.cfg 4 2020-06-09 08:32:19Z herbert $
%% BEGIN: pstricks.con (for VTeX)
%%
%% Configuration file for PSTricks 97
diff --git a/graphics/pstricks/base/doc/PSTricks.bib b/graphics/pstricks/base/doc/PSTricks.bib
index daaa78d445..d49525facf 100644
--- a/graphics/pstricks/base/doc/PSTricks.bib
+++ b/graphics/pstricks/base/doc/PSTricks.bib
@@ -1,4 +1,21 @@
@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+@STRING{beiprogramm = {{\TeX}-Beiprogramm}}
+@STRING{bretter = {Bretter, die die Welt bedeuten}}
+@STRING{dtk = {DTK}}
+@STRING{editorial = {Editorial}}
+@STRING{fremdebuehne = {Von fremden Bühnen}}
+@STRING{fundus = {Aus dem Fundus}}
+@STRING{grusswort = {Grußwort}}
+@STRING{hinterbuehne = {Hinter der Bühne}}
+@STRING{komascript = {\KOMAScript}}
+@STRING{leserbriefe = {Leserbriefe}}
+@STRING{magazin = {Magazin}}
+@STRING{rezensionen = {Bücher und Rezensionen}}
+@STRING{schonimmer = {Was Sie schon immer über {\TeX} wissen wollten, \dots}}
+@STRING{spielplan = {Spielplan}}
+@STRING{theaterkasse = {Von der Theaterkasse}}
+@STRING{theatertage = {{\TeX}-Theatertage}}
+@STRING{tippstricks = {Tipps und Tricks}}
@Book{PostScript,
Author = {Kollock, Nikolai G.},
diff --git a/graphics/pstricks/base/doc/pst-doc.cls b/graphics/pstricks/base/doc/pst-doc.cls
index befda92d6a..642eb9f1c7 100644
--- a/graphics/pstricks/base/doc/pst-doc.cls
+++ b/graphics/pstricks/base/doc/pst-doc.cls
@@ -454,8 +454,8 @@ xleftmargin=0pt,xrightmargin=0pt,
\def\settitle{%
\thispagestyle{empty}%
- \newgeometry{lmargin=1cm,rmargin=1cm,bmargin=1cm,includeheadfoot}
\begin{titlepage}
+ \newgeometry{lmargin=1cm,rmargin=1cm,bmargin=1cm,includeheadfoot}
\ifpdf
\AddToShipoutPicture*{\includegraphics{pst-doc.pdf}}
\vspace*{0.3\textheight}
@@ -507,6 +507,7 @@ xleftmargin=0pt,xrightmargin=0pt,
\global\let\author\relax%
\global\let\date\relax%
\global\let\and\relax%
+ \restoregeometry
}
\newdimen\fullWidth
diff --git a/graphics/pstricks/base/doc/pst-news.tex b/graphics/pstricks/base/doc/pst-news.tex
index f9e40428f8..6f3946714c 100644
--- a/graphics/pstricks/base/doc/pst-news.tex
+++ b/graphics/pstricks/base/doc/pst-news.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news.tex 444 2017-04-19 10:55:35Z herbert $
+%% $Id: pst-news.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
headexclude,footexclude,oneside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news08.pdf b/graphics/pstricks/base/doc/pst-news08.pdf
index 428653ebf2..00811580d4 100644
--- a/graphics/pstricks/base/doc/pst-news08.pdf
+++ b/graphics/pstricks/base/doc/pst-news08.pdf
Binary files differ
diff --git a/graphics/pstricks/base/doc/pst-news09.tex b/graphics/pstricks/base/doc/pst-news09.tex
index 4a656a8566..a548f6e1bb 100644
--- a/graphics/pstricks/base/doc/pst-news09.tex
+++ b/graphics/pstricks/base/doc/pst-news09.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news09.tex 165 2015-07-26 07:27:55Z herbert $
+%% $Id: pst-news09.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
headexclude,footexclude,oneside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news10.tex b/graphics/pstricks/base/doc/pst-news10.tex
index d4c018d92e..e679c0a617 100644
--- a/graphics/pstricks/base/doc/pst-news10.tex
+++ b/graphics/pstricks/base/doc/pst-news10.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news10.tex 697 2017-12-30 19:04:03Z herbert $
+%% $Id: pst-news10.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR=10mm,DIV12,bibliography=totoc,parskip=false,headings=small,,
headinclude=false,footinclude=false,oneside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news11.tex b/graphics/pstricks/base/doc/pst-news11.tex
index a4254f226f..61efbef06c 100644
--- a/graphics/pstricks/base/doc/pst-news11.tex
+++ b/graphics/pstricks/base/doc/pst-news11.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news11.tex 165 2015-07-26 07:27:55Z herbert $
+%% $Id: pst-news11.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
headexclude,footexclude,oneside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news12.tex b/graphics/pstricks/base/doc/pst-news12.tex
index 759869d864..2b3e185931 100644
--- a/graphics/pstricks/base/doc/pst-news12.tex
+++ b/graphics/pstricks/base/doc/pst-news12.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news12.tex 847 2018-12-04 08:04:28Z herbert $
+%% $Id: pst-news12.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
headexclude,footexclude,oneside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news13.tex b/graphics/pstricks/base/doc/pst-news13.tex
index 2995cf042d..04b7de5995 100644
--- a/graphics/pstricks/base/doc/pst-news13.tex
+++ b/graphics/pstricks/base/doc/pst-news13.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news13.tex 165 2015-07-26 07:27:55Z herbert $
+%% $Id: pst-news13.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
headexclude,footexclude,oneside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news14.tex b/graphics/pstricks/base/doc/pst-news14.tex
index 75b209b580..f0a108fba1 100644
--- a/graphics/pstricks/base/doc/pst-news14.tex
+++ b/graphics/pstricks/base/doc/pst-news14.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news14.tex 165 2015-07-26 07:27:55Z herbert $
+%% $Id: pst-news14.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
headexclude,footexclude,oneside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news15.tex b/graphics/pstricks/base/doc/pst-news15.tex
index c2369d7018..231a8bd38c 100644
--- a/graphics/pstricks/base/doc/pst-news15.tex
+++ b/graphics/pstricks/base/doc/pst-news15.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news15.tex 444 2017-04-19 10:55:35Z herbert $
+%% $Id: pst-news15.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
headexclude,footexclude,oneside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news16.tex b/graphics/pstricks/base/doc/pst-news16.tex
index 9a544ca5bd..b0d91ec84a 100644
--- a/graphics/pstricks/base/doc/pst-news16.tex
+++ b/graphics/pstricks/base/doc/pst-news16.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news16.tex 446 2017-04-19 11:40:55Z herbert $
+%% $Id: pst-news16.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
headinclude=false,footinclude=false,twoside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news17.tex b/graphics/pstricks/base/doc/pst-news17.tex
index 53cf23c2ce..1bd25716a6 100644
--- a/graphics/pstricks/base/doc/pst-news17.tex
+++ b/graphics/pstricks/base/doc/pst-news17.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news17.tex 699 2017-12-31 10:27:45Z herbert $
+%% $Id: pst-news17.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
headinclude=false,footinclude=false,twoside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news18.tex b/graphics/pstricks/base/doc/pst-news18.tex
index dde1638e58..ac3ec7c4a4 100644
--- a/graphics/pstricks/base/doc/pst-news18.tex
+++ b/graphics/pstricks/base/doc/pst-news18.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news17.tex 699 2017-12-31 10:27:45Z herbert $
+%% $Id: pst-news18.tex 4 2020-06-09 08:32:19Z herbert $
\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
headinclude=false,footinclude=false,twoside]{pst-doc}
\listfiles
diff --git a/graphics/pstricks/base/doc/pst-news19.pdf b/graphics/pstricks/base/doc/pst-news19.pdf
index 4c32cf3c1c..8fceedb1b9 100644
--- a/graphics/pstricks/base/doc/pst-news19.pdf
+++ b/graphics/pstricks/base/doc/pst-news19.pdf
Binary files differ
diff --git a/graphics/pstricks/base/doc/pst-news19.tex b/graphics/pstricks/base/doc/pst-news19.tex
index 9db696bc29..c670a6697d 100644
--- a/graphics/pstricks/base/doc/pst-news19.tex
+++ b/graphics/pstricks/base/doc/pst-news19.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news19.tex 934 2019-02-23 14:07:34Z herbert $
+%% $Id: pst-news19.tex 4 2020-06-09 08:32:19Z herbert $
\PassOptionsToPackage{useCalc}{pstricks}
\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
headinclude=false,footinclude=false,twoside]{pst-doc}
@@ -54,9 +54,11 @@ this new file.
%--------------------------------------------------------------------------------------
-\section{\texttt{pstricks.tex} (v. 2.94 -- 2019/01/07)}
+\section{\texttt{pstricks.tex} (v. 2.98 -- 2019/05/16)}
%--------------------------------------------------------------------------------------
+\subsection{Plotting multilines}
+
There is a new macro called \Lcs{psLine} (uppercase L!) which can have
only one or two pairs of coordinates. Remember that \Lcs{psline} can have more.
With \Lcs{psLine} and an defined arrow you'll get nothing for something
@@ -118,6 +120,36 @@ coordinates. It needs
\end{LTXexample}
\fi
+%$
+
+\subsection{Relative coordinates -- experimental}
+
+All objects which can have at least two pairs of coordinates
+can use the »+«-operator to mark relative coordinates:
+
+\begin{BDef}
+\Lcs{psline}\OptArgs\OptArg{\Largr{$x_0,y_0$}}\Largr{$x_1,y_1$}+\Largr{$x_2,y_2$}\ldots\\
+\end{BDef}
+
+\begin{LTXexample}[width=5.5cm]
+\begin{pspicture}[showgrid](5,5)
+\psline[linecolor=blue]{->}%
+ (1,1)+(3,4)+(-2,-3)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=5.5cm]
+\begin{pspicture}[showgrid](-1,-2)(4,3)
+\psaxes[labels=none]{->}(0,0)(-1,-2)(4,3)
+\psbezier%
+ (!0.8 -95 PtoC 1 sub)+(8.5;85)+(5;-100)(2,1)%
+ +(1;-70)+(0.5;-110)(3,2)%
+ +(1;-80)+(0.5;95)(3.4,-0.8)
+\end{pspicture}
+\end{LTXexample}
+
+
\subsection{Error message}
diff --git a/graphics/pstricks/base/doc/pst-news20.tex b/graphics/pstricks/base/doc/pst-news20.tex
index 00acba1ff2..f5a8094d14 100644
--- a/graphics/pstricks/base/doc/pst-news20.tex
+++ b/graphics/pstricks/base/doc/pst-news20.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news20.tex 23 2020-09-18 06:29:04Z herbert $
+%% $Id: pst-news20.tex 25 2020-09-18 06:59:21Z herbert $
\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
headinclude=false,footinclude=false,twoside]{scrartcl}
diff --git a/graphics/pstricks/base/doc/pst-news21.tex b/graphics/pstricks/base/doc/pst-news21.tex
index 4dcc203c70..de90a7cc5c 100644
--- a/graphics/pstricks/base/doc/pst-news21.tex
+++ b/graphics/pstricks/base/doc/pst-news21.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-news21.tex 212 2021-09-10 09:21:06Z herbert $
+%% $Id: pst-news21.tex 263 2021-09-24 17:58:30Z herbert $
\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{}
\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
diff --git a/graphics/pstricks/base/dvips/pstricks.pro b/graphics/pstricks/base/dvips/pstricks.pro
index acd43111d7..178eb0475a 100644
--- a/graphics/pstricks/base/dvips/pstricks.pro
+++ b/graphics/pstricks/base/dvips/pstricks.pro
@@ -1,7 +1,7 @@
-% $Id: pstricks.pro 256 2021-09-22 18:42:59Z herbert $
+% $Id: pstricks.pro 269 2021-09-25 13:47:26Z herbert $
%
%% PostScript prologue for pstricks.tex.
-%% Version 1.39, 2021/09/10
+%% Version 1.40, 2021/09/25
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
@@ -706,11 +706,11 @@ tx@Dict begin
/EAC { x2 y2 x y ArrowB curveto pop pop } def
%
/OpenCurve {
- 5 dict begin
+% 5 dict begin
NArray n 3 lt
{ n { pop pop } repeat }
{ BOC /n n 3 sub def n { NC } repeat EOC } ifelse
- end
+% end
} def
%
/CurvePath {
diff --git a/graphics/pstricks/base/generic/pstricks-dots.tex b/graphics/pstricks/base/generic/pstricks-dots.tex
index 67528a5853..eecc52c096 100644
--- a/graphics/pstricks/base/generic/pstricks-dots.tex
+++ b/graphics/pstricks/base/generic/pstricks-dots.tex
@@ -1,4 +1,4 @@
-%% $Id: pstricks-dots.tex 262 2021-09-24 09:02:54Z herbert $
+%% $Id: pstricks-dots.tex 269 2021-09-25 13:47:26Z herbert $
%%
%% This is file `pstricks-dots.tex',
%%
diff --git a/graphics/pstricks/base/generic/pstricks.tex b/graphics/pstricks/base/generic/pstricks.tex
index 36976bf0a6..1ce453ecf5 100644
--- a/graphics/pstricks/base/generic/pstricks.tex
+++ b/graphics/pstricks/base/generic/pstricks.tex
@@ -81,8 +81,8 @@
\fi
\let\pgfforeach\foreach
%
-\def\fileversion{3.10}
-\def\filedate{2021/09/23}
+\def\fileversion{3.10a}
+\def\filedate{2021/09/25}
\pst@addfams{pstricks}
%
%\define@boolkey[psset]{pstricks}[Pst@]{useURWfonts}[true]{}
@@ -4100,7 +4100,7 @@ pop
\ifshowgrid\ifnum\showgridp@s=0\psgrid[style=gridstyle]\fi\fi
% ----------- 1.10/12 end hv -------------------
\ignorespaces% % 2008-12-07
- \pstVerb{\pst@number\pslinewidth setlinewidth 0 setgray}% default setting
+ \pstVerb{\pst@number\pslinewidth setlinewidth 0 setgray}% default setting (needed for lualatex)
\ifPst@pgffunctions\pstVerb{ pgffunctions }\fi% hv 2013-04-17
}
\def\pic@coor{(0,0)(0,0)(10,10)}
diff --git a/graphics/pstricks/base/latex/pstricks-pdf.sty b/graphics/pstricks/base/latex/pstricks-pdf.sty
index 9923109fbb..8fe00f7bc7 100644
--- a/graphics/pstricks/base/latex/pstricks-pdf.sty
+++ b/graphics/pstricks/base/latex/pstricks-pdf.sty
@@ -1,4 +1,4 @@
-% $Id: pstricks-pdf.sty 23 2020-09-18 06:29:04Z herbert $
+% $Id: pstricks-pdf.sty 25 2020-09-18 06:59:21Z herbert $
%%
%% This is file `pstricks-pdf.sty'.
%%
diff --git a/graphics/pstricks/base/latex/pstricks.sty b/graphics/pstricks/base/latex/pstricks.sty
index 30de94d110..ad58f86fca 100644
--- a/graphics/pstricks/base/latex/pstricks.sty
+++ b/graphics/pstricks/base/latex/pstricks.sty
@@ -1,4 +1,4 @@
-% $Id: pstricks.sty 262 2021-09-24 09:02:54Z herbert $
+% $Id: pstricks.sty 181 2021-09-04 06:35:45Z herbert $
%%
%% This is file `pstricks.sty'.
%%
@@ -84,6 +84,7 @@
\DeclareOption*{\PassOptionsToPackage\CurrentOption{\pst@ColorPackage}}
\ProcessOptions\relax
+%\RequirePackage{iftex}
\ifpst@useCalc
\RequirePackage{pst-calculate}
\fi
diff --git a/graphics/pstricks/contrib/pstricks-add/Changes b/graphics/pstricks/contrib/pstricks-add/Changes
index 90a2834f06..b071230a2e 100644
--- a/graphics/pstricks/contrib/pstricks-add/Changes
+++ b/graphics/pstricks/contrib/pstricks-add/Changes
@@ -5,43 +5,16 @@ pstricks-add.pro -----------
- intiialize the random generator with realtime
0.22 2009-03-17 - add LineByHand stuff
0.21 2008-10-13 - add bubblesort macro
-0.20 2008-01-12 - moved the AlgParser into pst-algparser.pro
- - moved Pyth2 and tan into pstricks.pro
-0.14 2007-09-17 - moved Pyth2 into tx@Add part
-0.13 2007-09-12 - temporarely version for \psbrace, code
- will later go into pstricks.pro
-0.12 2007-09-03 - Added
- RGBtoGRAY, CMYKtoGRAY, HSBtoGRAY (hv)
-0.11 2007-06-23 - Added wavelengthToCMYK routine (hv)
- - RGBtoCMYK
-0.10 2006-10-15 - bug correction, x^-1 (dr)
- - Constants into tx@Dict to make them global (hv)
- - small stuff (hv)
- - define tan
-0.09 2006-10-10 cvi for the wavelength to get an integer (hv)
-0.08 2006-06-17 more improvements to the code (hv)
-0.07 2006-04-03 remove whitespace (dr)
-0.06 2006-01-16 EXP -> Exp, to prevent missmatch with pst-math (hv)
-0.05 2005-11-12 fix bug in GTriangle (hv)
-0.04 2005-10-06 added subroutines for calculating wavelength to rgb color(hv)
- changing name of pst-eqdf.pro to pstricks-add.pro
-2005.03 2005/05/16 (hv) small changes to the code
-2005.02 2005/03/05 (dr) white space removal from expression
-2004.02 2004/11/14 (dr) correction of a priority problem ^ before unary - (new rule FS)
-2004.01 2004/09/14 (dr) initial version
pstricks-add.sty ----------- (hv)
v. 0.17 2021-09-10 move \psRiemann into the tex file
v. 0.16 2018-02-04 use \pscalculate from package pst-calculate
v. 0.15 2018-02-03 added \psCalc from xpl3 (only for latex)
- v. 0.14 2010-02-11 move pst-fp message into pstricks.sty
- v. 0.13 2009-04-17 change pro file version number
- v. 0.12 2007-11-18 change pro file version number
- v. 0.11 2007-09-04 add a message for loading the prolouge file pstrick-add.pro
pstricks-add.tex ----------- (hv)
+ v 3.91 2021-09-25 - fix for \psContourPlot
v 3.90 2021-09-10 - changes for using package with lualatex
- fix \psOLympicRings
v 3.89a 2020-02-12 - modified documentation for \psbrace
@@ -51,263 +24,3 @@ pstricks-add.tex ----------- (hv)
v 3.86 2018-12-08 - added some more options for \psCancel
v 3.85b 2018-02-04 - use LaTeX package pst-calculate
v 3.85a 2018-02-03 - added area computing for \psStep
- v 3.85 2018-01-29 - added area computing for \psStep
- v 3.84 2017-09-16 - added \psRandomPointsArea
- v 3.83a 2017-08-24 - updated documentation
- v 3.83 2017-05-10 - use the star version for \psChar if no extra
- linecolor present.
- v 3.82 2016-09-01 - moved arrow macros to new package pst-arrow
- v 3.81 2016-08-08 - added \psOlympicRings
- v 3.80 2016-04-25 - moved node definitions into pst-node
- v 3.79 2016-02-09 - added optional argument randInit to intialize
- the random generator
- v 3.78 2016-02-07 - fix bug with strokeopacity for arrows
- v 3.77 2014-12-08 - fix bug with sup/inf for \psStep
- v 3.76 2014-11-29 - fix bug with color setting and \psrotate
- v 3.75 2014-07-22 - use \pcline instead of \psline for \psRelLine
- and \psParallelLine
- v 3.74 2014-07-15 - Allow a node as a startpoint for \psVector
- v 3.73 2014-06-16 - enable \ncput et al for \psVector
- v 3.72 2014-06-12 - allow multiple coors for \psVector
- v 3.67 2014-05-07 - some minor fixes to \psStep
- v 3.66 2014-04-17 - added \psBigArrow
- v 3.65 2014-01-21 - added \ignorespaces for \psStartPoint
- v 3.64 2014-01-03 - fix for \psCircleTangent
- v 3.63 2013-12-14 - added \ignorespaces in \psRelNode
- v 3.62 2013-11-13 - added \noVerticalLines
- v 3.61 2013-09-18 - added \pstContour
- v 3.60 2013-01-01 - fix bug with correct angle in \psPlotTangent
- v 3.59 2012-09-27 - added uselinecolor option for \psChart
- v 3.58 2012-06-04 - don't close data file
- v 3.57 2011-12-20 - added \psparallelogrambox
- v 3.56 2011-12-12 - added node definitions for \psTangentLine
- v 3.55 2011-12-11 - fix bug in \psplotTangent for arrows and linewidth
- v 3.54 2011-08-20 - new optional argument for the vee arrow line style
- v 3.53 2011-08-03 - use setting of \Pst@Debug for shownode()
- v 3.52 2011-06-09 - add new optional argument for \psCancel
- v 3.51 2011-02-02 - add new Macro\psKiviat for Kiviat diagrams
- v 3.50 2011-01-29 - add new optional argument colorTypeDef for \psMatrix
- v 3.49 2011-01-18 - add macro \psEllipseTangents for drawing tangent
- lines of a point and an ellipse.
- v 3.48 2010-12-18 - add macro \psCircleTangents for drawing tangent
- lines of a point and a circle or two circles.
- v 3.47 2010-12-14 - save the absolute coordinates of \psVector in node names
- v 3.46 2010-12-13 - added new macro \psVector for drawing vectors with
- relative coordinates (hv)
- v 3.45 2010-11-01 - modified \Put for checking coor type (hv)
- v 3.44 2010-08-28 - new option XYoffset for \psMatrixPlot (hv)
- v 3.43 2010-08-17 - moved option method into pst-plot (hv)
- v 3.42 2010-08-01 - fix bug with \newcount\pst@cntC (hv)
- v 3.41 2010-06-16 - fix bug with psComment and the \if@star (hv)
- v 3.40 2010-03-12 - add macros for ticks on curves (ms)
- v 3.39 2010-03-12 - fixed bug with algebraic option in \psplotTangent
- v 3.38 2009-12-13 - moved \Pst@algebraic into the base pstricks.tex
- - add SAveFinalState for plots
- v 3.37 2009-12-01 - fix bug with Tnormal in \psPlotTangent
- v 3.36 2009-11-14 - fix bug with missing \def\pst@par in objects
- - add \pstGetDistance
- v 3.35 2009-08-13 - fix bug with trailing space in \psaxes@vi
- - fix bug with star version of psplotTangent
- take care of math mode for comma or dot
- v 3.34 2009-05-25 - modified macro \psMatrixPlot
- v 3.33 2009-05-23 - fixed introduced bug with \pstScalePoints
- v 3.32 2009-05-11 - added psTangentLine for a curve of three points
- Tnormal option is valid
- - load pst-math for equation solver
- v 3.31 2009-04-29 - added \pstFPDiv for division int(#1=#2/#3)
- - added axes style "polar" \psaxes[axesstyle=polar](5,5)
- - fix trailing space with yAxisLabel
- - added option decimalSeparator to allow special symbols
- for persian language
- v 3.30 2009-04-17 - rewrote unit calculation for \psgraph. It uses now the
- package pst-fp, which has the division macro (stolen
- from the fp package)
- - new star option for psPlotTangent
- - new optional argument for a x interval for psPlotTangent
- . new macro pslineByHand to make "hand drawn lines"
- v 3.20 2009-03-16 - add option showOriginTick, similiar to showorigin from
- the basic pst-plot
- v 3.19 2009-03-06 - fix introduced bug with division in the \psgraph macro
- v 3.18 2009-03-03 - fix bug with division in the \psgraph macro
- - add macro \psComment
- - add optional argument for \psplot and \parametricplot
- for additional PostScript settings
- - add macro \psGetSlope
- - add \psForeach (without grouping its contents)
- v 3.17 2009-01-17 - add optional argument for \psplot ans \parametricplot
- for additional PostScript settings
- v 3.16 2008-12-22 - make showorigin also valid for the ticks
- v 3.15 2008-12-12 - fixed bug with \psgraph and the optional labels
- v 3.14 2008-12-02 - fixed bug with \psaxes and the optional arguments
- v 3.13 2008-11-24 - added the PostScript variable ps@Exit to exit loops in
- \psaxes and \parametricplot
- - added yMaxValue option for plotstyles lines, polygons and beziers
- to draw discontinued functions
- v 3.12 2008-11-14 - modified \psxTick and \psyTick (Martin Chicoine)
- - new macro \use@keep@par, which doesn't delete the setting
- after using it
- v 3.11 2008-10-15 - added \psBoxplot
- v 3.10 2008-08-27 - fix bug with \pslabelsep and \psh(v)label
- v 3.09 2008-08-06 - fix bug with lineAngle
- - make chartNodes variable
- v 3.08 2008-08-06 - fix bug with xyDecimals
- v 3.07 2008-07-18 - fix bug with \psdice
- - new macro \psChart
- - added setlinecap to linestyle dashed
- - fix bug with \psGTriangle and fillstyle for \pspolygon
- v 3.06 2008-06-20 - fix bug with vertical setting of the horizontal labels
- - add option value inner for tickstyle
- - add Makro \psCancel (Stefano Baroni)
- v 3.05 2008-06-06 - rewrote the axes-label setting for the psgraph environment
- - add \pst@mindim{#1}{#2}#3
- - rewrote label setting for \psaxes
- v 3.04 2008-06-02 - make \pslinewidth and \psfillstyle available in \psbrace
- v 3.03 2008-05-20 - fix introduced bug with ps.pro
- v 3.02 2008-04-25 - set correct labelFontSize for math mode
- - add macro \psPie with some additional
- optional arguments
- v 3.01 2008-04-15 - import changes from pst-plot in \ps@axisiv
- new option mathLabel for setting labels in text
- or math mode
- - fix bug with labelstyle
- v 3.00 2008-01-01 - delete transalpha stuff
- - load header file pst-algparser.pro
- v 2.93 2007-12-23 - fix bug with transpalpha
- v 2.92 2007-11-18 - fix bug with pst@getcolor for tickcolor option
- v 2.91 2007-10-20 - add the step types supremum/infimum for showing the
- integral of a function
- - add \chardef\f@ur=4
- v 2.90 2007-09-25 - add \DefPSPNodes to defines 9 nodes depending to the
- pspciture environment.
- - fix bug in psHomothetie and pstRotate for special coor
- v 2.89 2007-09-12 - temporarely version for \psbrace, code
- will later go into pstricks.tex
- v 2.88 2007-09-03 - add \psHomothetie for mirroring any object
- - add option Tnormal for the \psplotTangent macro
- - add \psxTick and \psyTick for single ticks with a label
- - add arrowLW (arrowlinewidth for the line ends o and *
- - new \psbrace for a better look
- v 2.87 2007-07-19 - fix bug with \psrotate
- add two optional arguments for \psaxes for the xy label
- v 2.86 2007-06-23 - add option CMYK
- - add additional arrow types
- v 2.85 2007-04-01 - fix bug with labelFontSize (missing in fractions)
- v 2.84 2007-03-13 - add plotstyle LSM for a Least Square Method to calculate
- the values for a line y=v*x+u, which fits best all
- data records (hv)
- v 2.83 2007-01-22 - write the x-y values of psDiffEqn to a file (hv)
- - fix bug in pst@Triangle
- v 2.82 2007-01-02 - rename \pstranspalpha to \psk@transpalpha (hv)
- v 2.81 2006-10-10 - fix a trailing space in \pstScalePoints
- - add macro \psforeach
- - fix bug in the line macros \length -> \linelength
- v 2.80 2006-09-25 - fix a trailing space for fillstyle transparent
- v 2.79 2006-09-21 - make ! not active (for french language and SpecialCoor)
- - added macro \psforeach
- - added transalpha option for tranparency color
- - rename the family name to pstricksadd (pst-xkey)
- allows using the interla macros of xkeyval
- v 2.78 2006-08-07 - allow ! for the y Length in \psgraph
- fix bug with undefined \psk@barwidth (missing \psset}
- v 2.77 2006-07-12 - use of abs(dx) to get labels for negative \pst@dx
- - fix bug in trigLabels
- v 2.76 2006-06-24 - renaming all \Pixxx macros to \psPixx
- to prevent mismatches with other packages,
- which define also \Pi.
- also renamed \RadUnit and \RadUnitInv to \pstRad...
- (not valid for pstricks-add.pro)
- v 2.75 2006-06-17 - plot a derivative of a function by the equation or numerical
- (\psplot and \paramericplot)
- - delete macro \psLineIII and the two special options
- - add macro \psMatrixPlot
- - option trigLabelBase for advanced setting of trogonometrical
- x-axis labels
- - option labelFontSize
- - fix introduced bug with Hook arrow and (-)
- - fix bug for Hook arrow with ArrowInside option
- - fix bug with readdata
- - revert all changes
- - fix a bug with lines and psgraph
- v 2.74 2006-01-02 - add \psdice
- v 2.73 2005-12-21 - renaming the \setLNode and \setLCNode to
- \psLNode and \psLCNode.
- new macro \psLDNode
- - add missing fillstyle for \psStep
- - add StepType Riemann
- v 2.72 2005-11-27 - fix introduced bug in psgraph
- - add new macro \psStep with new option StepType
- v 2.71 2005-10-24 - use \def instead of \edef for subtickcolor
- and also using \pst@getcolor
- - fix bug with Ox and log axes
- v 2.70 2005-10-20 - use \def instead of \edef for X|YAxisLabel
- - make psgraph correct use of the origin values
- - added a new macro \psLNode and \nlput for a
- node label with absolute position
- v 2.69 2005-10-12 moving the basic arrows into pstricks )-(,]-[
- bugfix for hook arrow
- v 2.68 2005-10-09 fix a bug with trigLabels and showorigin
- v 2.67 2005-10-08 rewrote \psrotate macro
- added three predefined hatchstyles for simulating transparent colors
- TRed, TGreen,TBlue
- v 2.66 2005-10-06 add more support for Gouraud-shading, emulate the PS subroutines
- if not present in the PS level
- v 2.65 2005-10-03 add support for Gouraud-shading
- v 2.64 2005-09-25 fix a bug in reading ticksize values (\pst@getdimdim}
- v 2.63 2005-09-18 fix another bug with option names
- v 2.62 2005-09-08 fix new introduced bug in \psbrace
- v 2.61 2005-09-08 fix bug in \psbrace
- v 2.60 2005-08-28 added some more line fill styles
- v 2.59 2005-08-06 bugfix for option intSeparator
- add macro \psrotate
- v 2.58 2005-07-25 ArrowInside=- for \psbrace
- v 2.57 2005-07-07 some improvements to psgraph
- v 2.56 2005-06-25 fix bug with \pscustom and poynom
- fix introduced trailing space in \readdata
- v 2.55 2005-05-26 some tweeks to the code, updating the documentation
- v 2.54 2005-05-25 added option ChangeOrder
- v 2.53 2005-05-23 dito
- v 2.52 2005-05-22 fix bug in psplotTangent
- v 2.51 2005-05-21 drop support of option varStep
- v 2.50 2005-05-20 first try with psplotDiffEqn, plotting differential equation,
- needs _newest_ pst-eqdf.pro and pstricks.pro
- v 2.49 2005-05-19 fix bug in psplotTangent and make option showpointa available
- v 2.48 2005-05-18 fix some new introduced bugs and make psplotTangent for all
- plot macros working
- v 2.47 2005-05-17 make psplotTangens also available for the parametric plot
- together with the algebraic option
- v 2.46 2005-05-16 make psplotTangens also available for the polarplot and
- algebraic option
- v 2.45 2005-05-16 small changes to the code
- v 2.44 2005-05-15 added macro psplotTangent
- v 2.43 2005-04-20 some more tweeks to triglabels
- v 2.42 2005-04-17 small bugfix with the options
- v 2.41 2005-04-17 new option ignoreLines for \readdata
- v 2.40 2005-04-13 new option trigLabels
- v 2.39 2005-03-17 modify the Rhook subroutine (abs)
- v 2.38 2005-03-03 move the loading of a config file into pstricks-add.sty
- v 2.37 2005-02-20 drop support of tickstyle (pst-plot),
- fix several bugs in connection with the ticksize option
- minor code changes
- v 2.36 2005-02-20 added missing LabelFactor
- v 2.35 2005-02-19 small improvements
- v 2.34 2005-02-10 fix bug with comma
- v 2.33 2005-01-18 add a config file
- v 2.32 2005-01-16 added hook arrow (for bond lines)
- v 2.31 2004-12-11 activate \pslinestyle for the axes
- v 2.30 2004-12-07 make xyAxes run
- v 2.29 2004-12-04 spurious blank in ArrowInside
- v 2.28 2004-11-23 small changes to the code
- v 2.27 2004-11-19 tickstyle now a pstricks-add key
- v 2.26 2004-11-17 spurious blank in \psbrace
- v 2.25 2004-11-13 fixed a new introduced bug
- v 2.24 2004-11-12 added the psRandom macro for random dots
- v 2.23 2004-11-11 added the star option for psgraph
- v 2.22 2004-11-04 fixed bug with \psset
- v 2.21 2004-10-24 added \psParallelLine for lines parallel to another one
- added \psIntersectionPoint(#1)(#2)(#3)(#4){nodeName}
- v 2.20 2004-10-24 added \psRelLine for lines relative to another one
- v 2.19 2004-10-20 small changes
- v 2.18 2004-10-20 add \ncbarr
- v 2.17 2004-10-14 new multiple arrows
-
-
diff --git a/graphics/pstricks/contrib/pstricks-add/History b/graphics/pstricks/contrib/pstricks-add/History
new file mode 100644
index 0000000000..90a2834f06
--- /dev/null
+++ b/graphics/pstricks/contrib/pstricks-add/History
@@ -0,0 +1,313 @@
+%% $Id: Changes 1142 2020-02-12 19:07:50Z herbert $
+%%
+pstricks-add.pro -----------
+0.23 2009-12-17 - add RGBtoGRAY and WavelengthToGRAY
+ - intiialize the random generator with realtime
+0.22 2009-03-17 - add LineByHand stuff
+0.21 2008-10-13 - add bubblesort macro
+0.20 2008-01-12 - moved the AlgParser into pst-algparser.pro
+ - moved Pyth2 and tan into pstricks.pro
+0.14 2007-09-17 - moved Pyth2 into tx@Add part
+0.13 2007-09-12 - temporarely version for \psbrace, code
+ will later go into pstricks.pro
+0.12 2007-09-03 - Added
+ RGBtoGRAY, CMYKtoGRAY, HSBtoGRAY (hv)
+0.11 2007-06-23 - Added wavelengthToCMYK routine (hv)
+ - RGBtoCMYK
+0.10 2006-10-15 - bug correction, x^-1 (dr)
+ - Constants into tx@Dict to make them global (hv)
+ - small stuff (hv)
+ - define tan
+0.09 2006-10-10 cvi for the wavelength to get an integer (hv)
+0.08 2006-06-17 more improvements to the code (hv)
+0.07 2006-04-03 remove whitespace (dr)
+0.06 2006-01-16 EXP -> Exp, to prevent missmatch with pst-math (hv)
+0.05 2005-11-12 fix bug in GTriangle (hv)
+0.04 2005-10-06 added subroutines for calculating wavelength to rgb color(hv)
+ changing name of pst-eqdf.pro to pstricks-add.pro
+2005.03 2005/05/16 (hv) small changes to the code
+2005.02 2005/03/05 (dr) white space removal from expression
+2004.02 2004/11/14 (dr) correction of a priority problem ^ before unary - (new rule FS)
+2004.01 2004/09/14 (dr) initial version
+
+
+pstricks-add.sty ----------- (hv)
+ v. 0.17 2021-09-10 move \psRiemann into the tex file
+ v. 0.16 2018-02-04 use \pscalculate from package pst-calculate
+ v. 0.15 2018-02-03 added \psCalc from xpl3 (only for latex)
+ v. 0.14 2010-02-11 move pst-fp message into pstricks.sty
+ v. 0.13 2009-04-17 change pro file version number
+ v. 0.12 2007-11-18 change pro file version number
+ v. 0.11 2007-09-04 add a message for loading the prolouge file pstrick-add.pro
+
+
+pstricks-add.tex ----------- (hv)
+ v 3.90 2021-09-10 - changes for using package with lualatex
+ - fix \psOLympicRings
+ v 3.89a 2020-02-12 - modified documentation for \psbrace
+ v 3.89 2019-11-01 - added otion sngleline for \psbrace
+ v 3.88 2019-05-11 - fix for a trailing space after \psrotatet
+ v 3.87 2019-01-12 - added \psCallout
+ v 3.86 2018-12-08 - added some more options for \psCancel
+ v 3.85b 2018-02-04 - use LaTeX package pst-calculate
+ v 3.85a 2018-02-03 - added area computing for \psStep
+ v 3.85 2018-01-29 - added area computing for \psStep
+ v 3.84 2017-09-16 - added \psRandomPointsArea
+ v 3.83a 2017-08-24 - updated documentation
+ v 3.83 2017-05-10 - use the star version for \psChar if no extra
+ linecolor present.
+ v 3.82 2016-09-01 - moved arrow macros to new package pst-arrow
+ v 3.81 2016-08-08 - added \psOlympicRings
+ v 3.80 2016-04-25 - moved node definitions into pst-node
+ v 3.79 2016-02-09 - added optional argument randInit to intialize
+ the random generator
+ v 3.78 2016-02-07 - fix bug with strokeopacity for arrows
+ v 3.77 2014-12-08 - fix bug with sup/inf for \psStep
+ v 3.76 2014-11-29 - fix bug with color setting and \psrotate
+ v 3.75 2014-07-22 - use \pcline instead of \psline for \psRelLine
+ and \psParallelLine
+ v 3.74 2014-07-15 - Allow a node as a startpoint for \psVector
+ v 3.73 2014-06-16 - enable \ncput et al for \psVector
+ v 3.72 2014-06-12 - allow multiple coors for \psVector
+ v 3.67 2014-05-07 - some minor fixes to \psStep
+ v 3.66 2014-04-17 - added \psBigArrow
+ v 3.65 2014-01-21 - added \ignorespaces for \psStartPoint
+ v 3.64 2014-01-03 - fix for \psCircleTangent
+ v 3.63 2013-12-14 - added \ignorespaces in \psRelNode
+ v 3.62 2013-11-13 - added \noVerticalLines
+ v 3.61 2013-09-18 - added \pstContour
+ v 3.60 2013-01-01 - fix bug with correct angle in \psPlotTangent
+ v 3.59 2012-09-27 - added uselinecolor option for \psChart
+ v 3.58 2012-06-04 - don't close data file
+ v 3.57 2011-12-20 - added \psparallelogrambox
+ v 3.56 2011-12-12 - added node definitions for \psTangentLine
+ v 3.55 2011-12-11 - fix bug in \psplotTangent for arrows and linewidth
+ v 3.54 2011-08-20 - new optional argument for the vee arrow line style
+ v 3.53 2011-08-03 - use setting of \Pst@Debug for shownode()
+ v 3.52 2011-06-09 - add new optional argument for \psCancel
+ v 3.51 2011-02-02 - add new Macro\psKiviat for Kiviat diagrams
+ v 3.50 2011-01-29 - add new optional argument colorTypeDef for \psMatrix
+ v 3.49 2011-01-18 - add macro \psEllipseTangents for drawing tangent
+ lines of a point and an ellipse.
+ v 3.48 2010-12-18 - add macro \psCircleTangents for drawing tangent
+ lines of a point and a circle or two circles.
+ v 3.47 2010-12-14 - save the absolute coordinates of \psVector in node names
+ v 3.46 2010-12-13 - added new macro \psVector for drawing vectors with
+ relative coordinates (hv)
+ v 3.45 2010-11-01 - modified \Put for checking coor type (hv)
+ v 3.44 2010-08-28 - new option XYoffset for \psMatrixPlot (hv)
+ v 3.43 2010-08-17 - moved option method into pst-plot (hv)
+ v 3.42 2010-08-01 - fix bug with \newcount\pst@cntC (hv)
+ v 3.41 2010-06-16 - fix bug with psComment and the \if@star (hv)
+ v 3.40 2010-03-12 - add macros for ticks on curves (ms)
+ v 3.39 2010-03-12 - fixed bug with algebraic option in \psplotTangent
+ v 3.38 2009-12-13 - moved \Pst@algebraic into the base pstricks.tex
+ - add SAveFinalState for plots
+ v 3.37 2009-12-01 - fix bug with Tnormal in \psPlotTangent
+ v 3.36 2009-11-14 - fix bug with missing \def\pst@par in objects
+ - add \pstGetDistance
+ v 3.35 2009-08-13 - fix bug with trailing space in \psaxes@vi
+ - fix bug with star version of psplotTangent
+ take care of math mode for comma or dot
+ v 3.34 2009-05-25 - modified macro \psMatrixPlot
+ v 3.33 2009-05-23 - fixed introduced bug with \pstScalePoints
+ v 3.32 2009-05-11 - added psTangentLine for a curve of three points
+ Tnormal option is valid
+ - load pst-math for equation solver
+ v 3.31 2009-04-29 - added \pstFPDiv for division int(#1=#2/#3)
+ - added axes style "polar" \psaxes[axesstyle=polar](5,5)
+ - fix trailing space with yAxisLabel
+ - added option decimalSeparator to allow special symbols
+ for persian language
+ v 3.30 2009-04-17 - rewrote unit calculation for \psgraph. It uses now the
+ package pst-fp, which has the division macro (stolen
+ from the fp package)
+ - new star option for psPlotTangent
+ - new optional argument for a x interval for psPlotTangent
+ . new macro pslineByHand to make "hand drawn lines"
+ v 3.20 2009-03-16 - add option showOriginTick, similiar to showorigin from
+ the basic pst-plot
+ v 3.19 2009-03-06 - fix introduced bug with division in the \psgraph macro
+ v 3.18 2009-03-03 - fix bug with division in the \psgraph macro
+ - add macro \psComment
+ - add optional argument for \psplot and \parametricplot
+ for additional PostScript settings
+ - add macro \psGetSlope
+ - add \psForeach (without grouping its contents)
+ v 3.17 2009-01-17 - add optional argument for \psplot ans \parametricplot
+ for additional PostScript settings
+ v 3.16 2008-12-22 - make showorigin also valid for the ticks
+ v 3.15 2008-12-12 - fixed bug with \psgraph and the optional labels
+ v 3.14 2008-12-02 - fixed bug with \psaxes and the optional arguments
+ v 3.13 2008-11-24 - added the PostScript variable ps@Exit to exit loops in
+ \psaxes and \parametricplot
+ - added yMaxValue option for plotstyles lines, polygons and beziers
+ to draw discontinued functions
+ v 3.12 2008-11-14 - modified \psxTick and \psyTick (Martin Chicoine)
+ - new macro \use@keep@par, which doesn't delete the setting
+ after using it
+ v 3.11 2008-10-15 - added \psBoxplot
+ v 3.10 2008-08-27 - fix bug with \pslabelsep and \psh(v)label
+ v 3.09 2008-08-06 - fix bug with lineAngle
+ - make chartNodes variable
+ v 3.08 2008-08-06 - fix bug with xyDecimals
+ v 3.07 2008-07-18 - fix bug with \psdice
+ - new macro \psChart
+ - added setlinecap to linestyle dashed
+ - fix bug with \psGTriangle and fillstyle for \pspolygon
+ v 3.06 2008-06-20 - fix bug with vertical setting of the horizontal labels
+ - add option value inner for tickstyle
+ - add Makro \psCancel (Stefano Baroni)
+ v 3.05 2008-06-06 - rewrote the axes-label setting for the psgraph environment
+ - add \pst@mindim{#1}{#2}#3
+ - rewrote label setting for \psaxes
+ v 3.04 2008-06-02 - make \pslinewidth and \psfillstyle available in \psbrace
+ v 3.03 2008-05-20 - fix introduced bug with ps.pro
+ v 3.02 2008-04-25 - set correct labelFontSize for math mode
+ - add macro \psPie with some additional
+ optional arguments
+ v 3.01 2008-04-15 - import changes from pst-plot in \ps@axisiv
+ new option mathLabel for setting labels in text
+ or math mode
+ - fix bug with labelstyle
+ v 3.00 2008-01-01 - delete transalpha stuff
+ - load header file pst-algparser.pro
+ v 2.93 2007-12-23 - fix bug with transpalpha
+ v 2.92 2007-11-18 - fix bug with pst@getcolor for tickcolor option
+ v 2.91 2007-10-20 - add the step types supremum/infimum for showing the
+ integral of a function
+ - add \chardef\f@ur=4
+ v 2.90 2007-09-25 - add \DefPSPNodes to defines 9 nodes depending to the
+ pspciture environment.
+ - fix bug in psHomothetie and pstRotate for special coor
+ v 2.89 2007-09-12 - temporarely version for \psbrace, code
+ will later go into pstricks.tex
+ v 2.88 2007-09-03 - add \psHomothetie for mirroring any object
+ - add option Tnormal for the \psplotTangent macro
+ - add \psxTick and \psyTick for single ticks with a label
+ - add arrowLW (arrowlinewidth for the line ends o and *
+ - new \psbrace for a better look
+ v 2.87 2007-07-19 - fix bug with \psrotate
+ add two optional arguments for \psaxes for the xy label
+ v 2.86 2007-06-23 - add option CMYK
+ - add additional arrow types
+ v 2.85 2007-04-01 - fix bug with labelFontSize (missing in fractions)
+ v 2.84 2007-03-13 - add plotstyle LSM for a Least Square Method to calculate
+ the values for a line y=v*x+u, which fits best all
+ data records (hv)
+ v 2.83 2007-01-22 - write the x-y values of psDiffEqn to a file (hv)
+ - fix bug in pst@Triangle
+ v 2.82 2007-01-02 - rename \pstranspalpha to \psk@transpalpha (hv)
+ v 2.81 2006-10-10 - fix a trailing space in \pstScalePoints
+ - add macro \psforeach
+ - fix bug in the line macros \length -> \linelength
+ v 2.80 2006-09-25 - fix a trailing space for fillstyle transparent
+ v 2.79 2006-09-21 - make ! not active (for french language and SpecialCoor)
+ - added macro \psforeach
+ - added transalpha option for tranparency color
+ - rename the family name to pstricksadd (pst-xkey)
+ allows using the interla macros of xkeyval
+ v 2.78 2006-08-07 - allow ! for the y Length in \psgraph
+ fix bug with undefined \psk@barwidth (missing \psset}
+ v 2.77 2006-07-12 - use of abs(dx) to get labels for negative \pst@dx
+ - fix bug in trigLabels
+ v 2.76 2006-06-24 - renaming all \Pixxx macros to \psPixx
+ to prevent mismatches with other packages,
+ which define also \Pi.
+ also renamed \RadUnit and \RadUnitInv to \pstRad...
+ (not valid for pstricks-add.pro)
+ v 2.75 2006-06-17 - plot a derivative of a function by the equation or numerical
+ (\psplot and \paramericplot)
+ - delete macro \psLineIII and the two special options
+ - add macro \psMatrixPlot
+ - option trigLabelBase for advanced setting of trogonometrical
+ x-axis labels
+ - option labelFontSize
+ - fix introduced bug with Hook arrow and (-)
+ - fix bug for Hook arrow with ArrowInside option
+ - fix bug with readdata
+ - revert all changes
+ - fix a bug with lines and psgraph
+ v 2.74 2006-01-02 - add \psdice
+ v 2.73 2005-12-21 - renaming the \setLNode and \setLCNode to
+ \psLNode and \psLCNode.
+ new macro \psLDNode
+ - add missing fillstyle for \psStep
+ - add StepType Riemann
+ v 2.72 2005-11-27 - fix introduced bug in psgraph
+ - add new macro \psStep with new option StepType
+ v 2.71 2005-10-24 - use \def instead of \edef for subtickcolor
+ and also using \pst@getcolor
+ - fix bug with Ox and log axes
+ v 2.70 2005-10-20 - use \def instead of \edef for X|YAxisLabel
+ - make psgraph correct use of the origin values
+ - added a new macro \psLNode and \nlput for a
+ node label with absolute position
+ v 2.69 2005-10-12 moving the basic arrows into pstricks )-(,]-[
+ bugfix for hook arrow
+ v 2.68 2005-10-09 fix a bug with trigLabels and showorigin
+ v 2.67 2005-10-08 rewrote \psrotate macro
+ added three predefined hatchstyles for simulating transparent colors
+ TRed, TGreen,TBlue
+ v 2.66 2005-10-06 add more support for Gouraud-shading, emulate the PS subroutines
+ if not present in the PS level
+ v 2.65 2005-10-03 add support for Gouraud-shading
+ v 2.64 2005-09-25 fix a bug in reading ticksize values (\pst@getdimdim}
+ v 2.63 2005-09-18 fix another bug with option names
+ v 2.62 2005-09-08 fix new introduced bug in \psbrace
+ v 2.61 2005-09-08 fix bug in \psbrace
+ v 2.60 2005-08-28 added some more line fill styles
+ v 2.59 2005-08-06 bugfix for option intSeparator
+ add macro \psrotate
+ v 2.58 2005-07-25 ArrowInside=- for \psbrace
+ v 2.57 2005-07-07 some improvements to psgraph
+ v 2.56 2005-06-25 fix bug with \pscustom and poynom
+ fix introduced trailing space in \readdata
+ v 2.55 2005-05-26 some tweeks to the code, updating the documentation
+ v 2.54 2005-05-25 added option ChangeOrder
+ v 2.53 2005-05-23 dito
+ v 2.52 2005-05-22 fix bug in psplotTangent
+ v 2.51 2005-05-21 drop support of option varStep
+ v 2.50 2005-05-20 first try with psplotDiffEqn, plotting differential equation,
+ needs _newest_ pst-eqdf.pro and pstricks.pro
+ v 2.49 2005-05-19 fix bug in psplotTangent and make option showpointa available
+ v 2.48 2005-05-18 fix some new introduced bugs and make psplotTangent for all
+ plot macros working
+ v 2.47 2005-05-17 make psplotTangens also available for the parametric plot
+ together with the algebraic option
+ v 2.46 2005-05-16 make psplotTangens also available for the polarplot and
+ algebraic option
+ v 2.45 2005-05-16 small changes to the code
+ v 2.44 2005-05-15 added macro psplotTangent
+ v 2.43 2005-04-20 some more tweeks to triglabels
+ v 2.42 2005-04-17 small bugfix with the options
+ v 2.41 2005-04-17 new option ignoreLines for \readdata
+ v 2.40 2005-04-13 new option trigLabels
+ v 2.39 2005-03-17 modify the Rhook subroutine (abs)
+ v 2.38 2005-03-03 move the loading of a config file into pstricks-add.sty
+ v 2.37 2005-02-20 drop support of tickstyle (pst-plot),
+ fix several bugs in connection with the ticksize option
+ minor code changes
+ v 2.36 2005-02-20 added missing LabelFactor
+ v 2.35 2005-02-19 small improvements
+ v 2.34 2005-02-10 fix bug with comma
+ v 2.33 2005-01-18 add a config file
+ v 2.32 2005-01-16 added hook arrow (for bond lines)
+ v 2.31 2004-12-11 activate \pslinestyle for the axes
+ v 2.30 2004-12-07 make xyAxes run
+ v 2.29 2004-12-04 spurious blank in ArrowInside
+ v 2.28 2004-11-23 small changes to the code
+ v 2.27 2004-11-19 tickstyle now a pstricks-add key
+ v 2.26 2004-11-17 spurious blank in \psbrace
+ v 2.25 2004-11-13 fixed a new introduced bug
+ v 2.24 2004-11-12 added the psRandom macro for random dots
+ v 2.23 2004-11-11 added the star option for psgraph
+ v 2.22 2004-11-04 fixed bug with \psset
+ v 2.21 2004-10-24 added \psParallelLine for lines parallel to another one
+ added \psIntersectionPoint(#1)(#2)(#3)(#4){nodeName}
+ v 2.20 2004-10-24 added \psRelLine for lines relative to another one
+ v 2.19 2004-10-20 small changes
+ v 2.18 2004-10-20 add \ncbarr
+ v 2.17 2004-10-14 new multiple arrows
+
+
diff --git a/graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.pdf b/graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.pdf
index 5a78533121..5b3b1cf4ea 100644
--- a/graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.pdf
+++ b/graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.tex b/graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.tex
index 3ce19617c0..54e44880d6 100644
--- a/graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.tex
+++ b/graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.tex
@@ -71,7 +71,7 @@
\begin{document}
\title{\texttt{pstricks-add}\\additionals Macros for \texttt{pstricks}\\
\small v.\pstricksaddFV}
-%\docauthor{Herbert Vo\ss}
+\docauthor{Herbert Voß}
\author{Dominique Rodriguez\\Michael Sharpe\\Herbert Voß}
\date{\today}
@@ -1080,6 +1080,8 @@ allows to plot a file of the 3D-data of a mathematical function $z=f(x,y)$ and t
\url{http://tug.org/pstricks/pst-plot/3D/PrepareData.pl} prepares the data file
into the above structure for using it with the example file.
+
+
\begin{LTXexample}[pos=t]
\psset{unit=1.75cm}
\begin{pspicture}[showgrid](-3,-3)(3,3)
@@ -1087,6 +1089,11 @@ into the above structure for using it with the example file.
\end{pspicture}
\end{LTXexample}
+
+
+
+
+
\emph{Important} is the option \verb|-dNOSAFER| for the \texttt{ps2pdf} run, otherwise Ghostscript
didn't allow the run of external data files. Important optional arguments are
\Lkeyword{colored}, \Lkeyword{colorOffset}, and \Lkeyword{colSteps}.
@@ -1951,7 +1958,7 @@ in difference to the other three macros which takes a negative area into account
\begin{pspicture}(-0.5,-2.25)(10,3)
\psaxes[labelFontSize=\scriptstyle]{->}(0,0)(0,-2.25)(10,3)%
\psplot[linewidth=1.5pt,algebraic]{0}{10}{sqrt(x)*sin(x)}%
-\psset{linewidth=0.1pt}%
+\psset{linewidth=0.5pt}%
\psRiemannSum(0,9){18}{sqrt(#1)*sin(#1)}
\psStep[algebraic,linecolor=magenta,StepType=upper,saveSumValue](0,9){18}{sqrt(x)*sin(x)}%
\rput[l](0.2,2.5){\textcolor{magenta}{Uppersum: \psRightSumValue}}%
@@ -1965,7 +1972,7 @@ in difference to the other three macros which takes a negative area into account
\begin{pspicture}(-0.5,-2.25)(10,3)
\psaxes[labelFontSize=\scriptstyle]{->}(0,0)(0,-2.25)(10,3)%
\psplot[linewidth=1.5pt,algebraic]{0}{10}{sqrt(x)*sin(x)}%
-\psset{linewidth=0.1pt}%
+\psset{linewidth=0.5pt}%
\psRiemannSum(0,9){18}
\psStep[algebraic,linecolor=magenta,StepType=upper,saveSumValue](0,9){18}{sqrt(x)*sin(x)}%
\rput[l](0.2,2.5){\textcolor{magenta}{Uppersum: \psRightSumValue}}%
@@ -2423,7 +2430,7 @@ Impossible to draw, but let's try!
\begin{center}
\bgroup
-\psset{xunit=64,algebraic,VarStep,linecolor=red,showpoints=true,linewidth=1pt}
+\psset{xunit=64,algebraic,VarStep,linecolor=red,showpoints=true,linewidth=1pt,dotscale=0.5}
\begin{pspicture}[showgrid=true](0,-1)(.5,1)
\psplot[VarStepEpsilon=.0001]{.01}{.25}{sin(1/x)}
\end{pspicture}\\
@@ -2440,7 +2447,7 @@ Impossible to draw, but let's try!
\end{center}
\begin{lstlisting}
-\psset{xunit=64,algebraic,VarStep,linecolor=red,showpoints=true,linewidth=1pt}
+\psset{xunit=64,algebraic,VarStep,linecolor=red,showpoints=true,linewidth=1pt,dotscale=0.5}
\begin{pspicture}[showgrid=true](0,-1)(.5,1)
\psplot[VarStepEpsilon=.0001]{.01}{.25}{sin(1/x)}
\end{pspicture}\\
@@ -3930,33 +3937,33 @@ is the first plotted line ($y=1$). With the option
\psscalebox{0.6}{%
\begin{pspicture}(-0.5,-0.75)(11,11)
\psaxes{->}(11,11)
- \psMatrixPlot[dotsize=1.1cm,dotstyle=square*,linecolor=magenta]%
+ \psMatrixPlot[dotsize=0.7cm,dotstyle=square*,linecolor=magenta]%
{10}{10}{data/matrix.data}
- \psMatrixPlot[dotsize=.5cm,dotstyle=o,ChangeOrder]{10}{10}{data/matrix.data}
+ \psMatrixPlot[dotsize=.4cm,dotstyle=o,ChangeOrder]{10}{10}{data/matrix.data}
\end{pspicture}}\quad
\psscalebox{0.6}{%
\begin{pspicture}(-0.5,-0.75)(11,11)
\psaxes[ticksize=-5pt 0]{->}(11,11)
- \psMatrixPlot[dotsize=1.1cm,dotstyle=square*,linecolor=magenta,XYoffset=-0.5]%
+ \psMatrixPlot[dotsize=0.7cm,dotstyle=square*,linecolor=magenta,XYoffset=-0.5]%
{10}{10}{data/matrix.data}
- \psMatrixPlot[dotsize=.5cm,dotstyle=o,ChangeOrder,XYoffset=-0.5]{10}{10}{data/matrix.data}
+ \psMatrixPlot[dotsize=.4cm,dotstyle=o,ChangeOrder,XYoffset=-0.5]{10}{10}{data/matrix.data}
\end{pspicture}}
\end{center}
\begin{lstlisting}
\psscalebox{0.6}{%
\begin{pspicture}(-0.5,-0.75)(11,11)
- \psaxes[ticksize=-5pt 0]{->}(11,11)
- \psMatrixPlot[dotsize=1.1cm,dotstyle=square*,linecolor=magenta]%
+ \psaxes{->}(11,11)
+ \psMatrixPlot[dotsize=0.7cm,dotstyle=square*,linecolor=magenta]%
{10}{10}{data/matrix.data}
- \psMatrixPlot[dotsize=.5cm,dotstyle=o,ChangeOrder]{10}{10}{data/matrix.data}
+ \psMatrixPlot[dotsize=.4cm,dotstyle=o,ChangeOrder]{10}{10}{data/matrix.data}
\end{pspicture}}\quad
\psscalebox{0.6}{%
\begin{pspicture}(-0.5,-0.75)(11,11)
- \psaxes{->}(11,11)
- \psMatrixPlot[dotsize=1.1cm,dotstyle=square*,linecolor=magenta,XYoffset=-0.5]%
+ \psaxes[ticksize=-5pt 0]{->}(11,11)
+ \psMatrixPlot[dotsize=0.7cm,dotstyle=square*,linecolor=magenta,XYoffset=-0.5]%
{10}{10}{data/matrix.data}
- \psMatrixPlot[dotsize=.5cm,dotstyle=o,ChangeOrder,XYoffset=-0.5]{10}{10}{data/matrix.data}
+ \psMatrixPlot[dotsize=.4cm,dotstyle=o,ChangeOrder,XYoffset=-0.5]{10}{10}{data/matrix.data}
\end{pspicture}}
\end{lstlisting}
diff --git a/graphics/pstricks/contrib/pstricks-add/tex/pstricks-add.tex b/graphics/pstricks/contrib/pstricks-add/tex/pstricks-add.tex
index 2fa480ae81..0f165e8c72 100644
--- a/graphics/pstricks/contrib/pstricks-add/tex/pstricks-add.tex
+++ b/graphics/pstricks/contrib/pstricks-add/tex/pstricks-add.tex
@@ -31,8 +31,8 @@
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
\ifx\PSTmathLoaded\endinput\else \input pst-math \fi
%
-\def\fileversion{3.90}
-\def\filedate{2021/09/10}
+\def\fileversion{3.91}
+\def\filedate{2021/09/25}
\let\pstricksaddFV\fileversion
\message{`pstricks-add' v\fileversion, \filedate\space (dr,hv)}
%
@@ -2169,10 +2169,10 @@ a add
\addto@pscode{
(#1) run
/zMax 0 def /zMin 0 def % lowest and highest value
- contourdata aload length /N ED % get the no of arrays
- N{ % inside contourdata
+ contourdata aload length /N_data ED % get the no of arrays
+ N_data{ % inside contourdata
/data ED % save first inner array
- data aload length 3 div round cvi { % get the records
+ data aload length 3 div round cvi { % get the records
\psk@colorOffset
dup zMin lt % z<zMin?
{ /zMin ED } % yes, save it
@@ -2183,19 +2183,19 @@ a add
clear % clear stack
/dz zMax zMin sub def % value range
/steps \psk@colSteps\space 0 gt { true }{ false } ifelse def
- 0 1 N 1 sub { % for i=0 to N-1
+ 0 1 N_data 1 sub { % for i=0 to N-1
contourdata exch get /data ED % get first array
- data aload length 3 div round cvi {
+ data aload length 3 div round cvi 1 sub { %0 .. length-1
\psk@colorOffset
- /z ED /y ED /x ED
- z zMin sub dz div % relative z (0..1)
+ /z_data ED /y_data ED /x_data ED
+ z_data zMin sub dz div % relative z (0..1)
\ifPst@colored 400 mul 380 add tx@addDict begin wavelengthToRGB
Red Green Blue end setrgbcolor % set color
\else
steps {\psk@colSteps\space mul round \psk@colSteps\space div} if
setgray
\fi
- x \pst@number\psxunit mul y \pst@number\psyunit mul
+ x_data \pst@number\psxunit mul y_data \pst@number\psyunit mul
\pst@number\pst@dimb 0 360 arc fill
} repeat
} for