# tikz-chemlab **版本:** v1.0.0 基于 TikZ 的化学实验室玻璃器皿绘图宏包,是著名 [pst-labo](https://ctan.org/pkg/pst-labo) 宏包的 TikZ 重实现版本。 ## 概述 tikz-chemlab 提供了一组宏命令,用于绘制化学实验中常用的各类仪器设备。由于这些设备具有标准化的设计,tikz-chemlab 免去了手动绘制的麻烦。所有底层形状对象包含在 `tikz-chemlabObj.tex` 文件中,在宏包加载时自动读入。 本宏包是 pst-labo(v2.07, 2025/07/15,作者 Denis Girou、Christophe Jorssen、Manuel Luque、Herbert Voß)的 TikZ 移植版。移植版使用英语命令名加 `tkz` 前缀,替代原始法语 `pst` 前缀,所有选项键名也已翻译为英语。 ## 文件 | 文件 | 作用 | |------|------| | `tikz-chemlab.sty` | LaTeX 宏包封装(加载 TikZ 和主文件) | | `tikz-chemlab.tex` | 主实现(参数系统 + 高级宏命令) | | `tikz-chemlabObj.tex` | 形状库(底层绘图原语) | 将这三个文件放在同一目录或 TeX 搜索路径中。 ## 安装 在导言区加载宏包: ```latex \usepackage{tikz-chemlab} ``` 这将自动加载 TikZ 及所需库(`arrows.meta`、`calc`、`patterns`、`shadings`、`decorations.pathmorphing`、`decorations.pathreplacing`)。 ## 编译 tikz-chemlab 支持所有支持 TikZ 的 LaTeX 引擎: - **pdflatex** — 完全支持(与 pst-labo 不同,无需 PostScript) - **xelatex** — 完全支持 - **lualatex** — 完全支持 - **tectonic** — 完全支持 无 PostScript 依赖,无需 `latex → dvips → ps2pdf` 流程。 ## 快速入门 ```latex \documentclass{standalone} \usepackage{tikz-chemlab} \begin{document} \begin{tikzpicture}[scale=0.5] \tkzTestTube \end{tikzpicture} \end{document} ``` ## 可用宏命令 | 宏命令 | 说明 | |-------|------| | `\tkzTestTube` | 试管/玻璃容器(tube, roundFlask, beaker, erlenmeyer, reagentBottle, volumetricFlask, watchGlass) | | `\tkzHeatTube` | 加热试管(本生灯、加热板、鼓泡) | | `\tkzRoundFlask` | 圆底烧瓶(回流冷凝器、双管) | | `\tkzHeatFlask` | 加热烧瓶(带本生灯) | | `\tkzFunnel` | 漏斗(配试管) | | `\tkzGraduatedCylinder` | 量筒 | | `\tkzPipette` | 移液管 | | `\tkzLargePipette` | 大移液管 | | `\tkzTitration` | 滴定装置(滴定管 + 烧杯 + 可选 pH 计) | | `\tkzDistillation` | 分馏装置 | | `\tkzSeparatoryFunnel` | 分液漏斗(带支架) | | `\tkzStand` | 支架(铁架台,带夹子) | | `\tkzColumn` | 蒸馏柱 | ## 主要选项 | 选项 | 默认值 | 说明 | |------|--------|------| | `glassType` | `tube` | 玻璃容器类型 | | `stopper` | `false` | 插入塞子 | | `clamp` | `false` | 添加试管夹 | | `tiltAngle` | `0` | 倾斜角度(度,−65…+65) | | `liquidLevel1/2/3` | `50/0/0` | 液位(0–100,百分比) | | `liquidStyle1/2/3` | `liquidStyle1/2/3` | 液体样式 | | `substance` | `(空)` | 物质宏命令 | | `solid` | `(空)` | 固体物质宏命令 | | `burette` | `true` | 显示/隐藏滴定管 | | `pHMeter` | `false` | 显示 pH 计 | | `magneticStirrer` | `true` | 显示磁力搅拌器/加热板 | | `bunsenBurner` | `true` | 显示本生灯 | | `bubbling` | `false` | 添加鼓泡试管 | | `gasCollection` | `false` | 添加气体收集容器 | | `label` | `false` | 显示标签 | | `Number` | `(空)` | 标签文本 | | `buretteLevel` | `20` | 滴定管液位 | | `buretteColor` | `VeryPaleOrange` | 滴定管液体颜色 | | `TapOpen` | `false` | 分液漏斗活塞开/关 | ## 线宽样式 通过 `\chemlabset{style=...}` 可使用六种预设样式: | 样式 | 轮廓 | 椭圆 | 管口椭圆 | 刻度 | |------|------|------|----------|------| | `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 | 线宽随 TikZ `scale` 因子自动缩放。 ## 从 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` | 选项键映射:`tubePenche` → `tiltAngle`,`niveauLiquide1` → `liquidLevel1`,`bouchon` → `stopper`,`becBunsen` → `bunsenBurner`,`etiquette` → `label` 等。 完整映射表请参阅使用手册。 ## 文档 - `tikz-chemlab-doc.tex` / `tikz-chemlab-doc.pdf` — 英文使用手册 - `tikz-chemlab-zh-doc.tex` / `tikz-chemlab-zh-doc.pdf` — 中文使用手册 ## 致谢 原 pst-labo 作者: - Denis Girou - Christophe Jorssen - Manuel Luque - Herbert Voß tikz-chemlab 是 pst-labo 的 TikZ 移植版,尽可能保留了原始的视觉外观和默认值。所有形状坐标均源自原始 `pst-laboObj.tex`。 ## 代码仓库与技术支持 - **代码仓库:** https://github.com/aihua/tikz-chemlab - **技术支持:** https://github.com/aihua/tikz-chemlab/issues ## 许可证 本作品依据 LaTeX Project Public License v1.3c 许可证发布。