Directory graphics/pgf/contrib/tikz-chemlab
tikz-chemlab
Version: v1.0.0
A TikZ-based reimplementation of the well-known pst-labo package for drawing chemical laboratory glassware.
Overview
tikz-chemlab provides macros for a variety of devices used mainly for chemical applications. Since most of these devices have a standardised design, tikz-chemlab spares you the trouble of having to create them manually. All basic objects are included in the file tikz-chemlabObj.tex and are loaded during the start of tikz-chemlab.
This is a TikZ port of pst-labo (v2.07, 2025/07/15) by Denis Girou, Christophe Jorssen, Manuel Luque, and Herbert Voß. The port uses English command names with the tkz prefix instead of the original French pst names, and all option keys have been translated to English.
Files
| File | Role |
|---|---|
tikz-chemlab.sty |
LaTeX package wrapper (loads TikZ + main file) |
tikz-chemlab.tex |
Main implementation (parameter system + high-level macros) |
tikz-chemlabObj.tex |
Shape library (low-level drawing primitives) |
Place these three files in the same directory or in the TeX search path.
Installation
Load the package in the preamble:
\usepackage{tikz-chemlab}
This automatically loads TikZ and the required libraries (arrows.meta, calc, patterns, shadings, decorations.pathmorphing, decorations.pathreplacing).
Compilation
tikz-chemlab works with any LaTeX engine that supports TikZ:
- pdflatex — fully supported (unlike pst-labo, which requires PostScript)
- xelatex — fully supported
- lualatex — fully supported
- tectonic — fully supported
No PostScript dependency. No latex → dvips → ps2pdf pipeline needed.
Quick Start
\documentclass{standalone} \usepackage{tikz-chemlab} \begin{document} \begin{tikzpicture}[scale=0.5] \tkzTestTube \end{tikzpicture} \end{document}
Available Macros
| Macro | Description |
|---|---|
\tkzTestTube |
Test tube / glass container (tube, roundFlask, beaker, erlenmeyer, reagentBottle, volumetricFlask, watchGlass) |
\tkzHeatTube |
Test tube with heating (Bunsen burner, hotplate, bubbling) |
\tkzRoundFlask |
Round-bottom flask (with reflux condenser, double tube) |
\tkzHeatFlask |
Round-bottom flask with Bunsen burner |
\tkzFunnel |
Funnel with test tube |
\tkzGraduatedCylinder |
Graduated cylinder (measuring cylinder) |
\tkzPipette |
Pipette |
\tkzLargePipette |
Large pipette |
\tkzTitration |
Titration setup (burette + beaker + optional pH-meter) |
\tkzDistillation |
Fractional distillation apparatus |
\tkzSeparatoryFunnel |
Separating funnel on support stand |
\tkzStand |
Support stand (retort stand) with clamp |
\tkzColumn |
Distillation column |
Key Options
| Option | Default | Description |
|---|---|---|
glassType |
tube |
Type of glass container |
stopper |
false |
Insert a stopper |
clamp |
false |
Attach a test-tube clamp |
tiltAngle |
0 |
Tilt angle in degrees (−65…+65) |
liquidLevel1/2/3 |
50/0/0 |
Liquid levels (0–100, percentage) |
liquidStyle1/2/3 |
liquidStyle1/2/3 |
Liquid styles |
substance |
(empty) |
Substance macro |
solid |
(empty) |
Solid substance macro |
burette |
true |
Show/hide burette |
pHMeter |
false |
Show pH-meter |
magneticStirrer |
true |
Show magnetic stirrer / hotplate |
bunsenBurner |
true |
Show Bunsen burner |
bubbling |
false |
Add bubbling test tube |
gasCollection |
false |
Add gas-collection vessel |
label |
false |
Display label |
Number |
(empty) |
Label text |
buretteLevel |
20 |
Burette liquid level |
buretteColor |
VeryPaleOrange |
Burette liquid colour |
TapOpen |
false |
Separating funnel tap open/closed |
Line Width Styles
Six predefined styles available via \chemlabset{style=...}:
| Style | Outline | Ellipse | Tube ellipse | Graduation |
|---|---|---|---|---|
default |
0.053 cm | 0.07 cm | 0.08 cm | 0.02 cm |
publication |
0.4 pt | 0.6 pt | 0.8 pt | 0.4 pt |
presentation |
0.8 pt | 1.2 pt | 1.6 pt | 0.6 pt |
schematic |
0.6 pt | 0.8 pt | 1.2 pt | 0.4 pt |
draft |
0.4 pt | 0.4 pt | 0.4 pt | 0.4 pt |
bold |
1.2 pt | 1.6 pt | 1.6 pt | 0.8 pt |
Line widths automatically scale with the TikZ scale factor.
Migration from pst-labo
| pst-labo | tikz-chemlab |
|---|---|
\pstTubeEssais |
\tkzTestTube |
\pstDosage |
\tkzTitration |
\pstEprouvette |
\tkzGraduatedCylinder |
\pstBallon |
\tkzRoundFlask |
\pstEntonnoir |
\tkzFunnel |
\pstSeparateFunnel |
\tkzSeparatoryFunnel |
\pstChauffageTube |
\tkzHeatTube |
\pstChauffageBallon |
\tkzHeatFlask |
\pstDistillation |
\tkzDistillation |
\pstpipette |
\tkzPipette |
\pstSupport |
\tkzStand |
\pscolon |
\tkzColumn |
Key mappings: tubePenche → tiltAngle, niveauLiquide1 → liquidLevel1, bouchon → stopper, becBunsen → bunsenBurner, etiquette → label, etc.
See the full documentation for complete mapping tables.
Documentation
tikz-chemlab-doc.tex/tikz-chemlab-doc.pdf— English documentationtikz-chemlab-zh-doc.tex/tikz-chemlab-zh-doc.pdf— Chinese documentation (中文使用手册)
Credits
Original pst-labo authors:
- Denis Girou
- Christophe Jorssen
- Manuel Luque
- Herbert Voß
tikz-chemlab is a TikZ port that preserves the original visual appearance and default values as closely as possible. All shape coordinates were derived from the original pst-laboObj.tex.
License
This work is distributed under the LaTeX Project Public License v1.3c.
Download the contents of this package in one zip archive (648.3k).
tikz-chemlab – A TikZ-based reimplementation for drawing chemical laboratory glassware
This package provides macros for drawing a variety of devices used mainly for chemical applications. Since most of these devices have a standardised design, tikz-chemlab spares you the trouble of having to create them manually. All basic objects are included in the file tikz-chemlabObj.tex and are loaded during the start of the package.
tikz-chemlab works with any LaTeX engine that
supports TikZ.
No PostScript dependency.
No
latex → dvips → ps2pdf
pipeline needed.
This is a TikZ port of pst-labo (v2.07, 2025/07/15) by Denis Girou, Christophe Jorssen, Manuel Luque, and Herbert Voß. The port uses English command names with the tkz prefix instead of the original French pst names, and all option keys have been translated to English.
| Package | tikz-chemlab |
| Bug tracker | |
| Repository | |
| Developers | |
| Version | 1.0.0 2026-08-03 |
| Licenses | The LaTeX Project Public License 1.3c |
| Maintainer | Aihua Wang |
| Contained in | TeX Live as tikz-chemlab |
| Topics | PGF TikZ Chemistry |