CTAN Comprehensive TeX Archive Network

New on CTAN: chemidentifier

Date: September 3, 2026 7:27:50 PM CEST
Aliocha Skrzypczak submitted the chemidentifier package. Version: 2.0.0 License: lppl1.3c Summary description: Synthesis-order numbering and hyperlinking of chemical compounds Announcement text:
chemidentifier -- Logical, synthesis-order numbering and hyperlinking of chemical compounds chemidentifier numbers the compounds of a synthesis-chemistry paper in the logical order of the synthesis -- the order in which they are declared -- rather than the order in which they appear in the text. Every printed number is clickable and jumps to the scheme or paragraph that introduces it. Three commands cover the common case: \chemid* declares, \chemid uses, \chemidhere anchors the link target. Declarations and uses accept comma-separated lists, auto-contracted into ranges (1a-c) or groups (1a,b). A single level of parent/child hierarchy is supported, and \chemidfamily declares a templated family (numbering style, child format, placeholder) applied to every child at once. Written in LaTeX3 (expl3); like \ref/\label, everything settles over two compilations. Works with or without hyperref, on pdflatex, lualatex and xelatex. An optional LuaLaTeX-only helper substitutes compound labels directly inside Inkscape-exported .pdf_tex figures, so a scheme's placeholder text can be replaced with the real, numbered, clickable compound name at compile time. Aliocha SKRZYPCZAK
This package is located at https://mirrors.ctan.org/macros/latex/contrib/chemidentifier More information is at https://ctan.org/pkg/chemidentifier
Thanks for the upload. For the CTAN Team Manfred Lotz CTAN is run entirely by volunteers and supported by TeX user groups. Please join a user group or donate to one, see https://ctan.org/lugs .

Chemidentifier – Synthesis-order numbering and hyperlinking of chemical compounds

chemidentifier numbers the compounds of a synthesis-chemistry paper in the logical order of the synthesis – the order in which they are declared – rather than the order in which they first appear in the text. Every printed number is clickable and jumps to the scheme or paragraph that introduces the compound.

Three commands cover the common case: \chemid* declares a compound (optionally with a rich display form and a raw bookmark form), \chemid uses it anywhere in running text, captions or headings, and \chemidhere marks the point a number should link to – typically next to a reaction scheme. Multiple declarations and uses are accepted as comma-separated lists and are automatically contracted into ranges (1a-c) or contiguous groups (1a,b) the way a human author would write them by hand.

Compounds can be organized in a single level of parent/child hierarchy (benz, benz.cl, benz.br...), and \chemidfamily declares a templated family where the numbering style, child format (subscript, superscript, Greek letters...) and a placeholder value are set once for every child.

The package is written in 3 (expl3). Like \ref/\label, numbering and links settle over two compilations. It works with or without hyperref, and with pdf, Lua and ; an optional Lua-only helper substitutes compound labels directly inside Inkscape-exported .pdf_tex figures.

Version 2 (the default) adds templated families, anchors that carry the links themselves, and stricter validation; version 1 is frozen and stays available via the version=1 package option for documents written against it.

PackageChemidentifier
Version2.0.0
Copyright2026 Aliocha SKRZYPCZAK
MaintainerAliocha Skrzypczak

Announcements

more

Guest Book Sitemap Contact Contact Author