summaryrefslogtreecommitdiff
path: root/support/bib2gls/examples
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/bib2gls/examples
Initial commit
Diffstat (limited to 'support/bib2gls/examples')
-rw-r--r--support/bib2gls/examples/animals.bib82
-rw-r--r--support/bib2gls/examples/bacteria.bib66
-rw-r--r--support/bib2gls/examples/baseunits.bib56
-rw-r--r--support/bib2gls/examples/bigmathsymbols.bib145
-rw-r--r--support/bib2gls/examples/binaryoperators.bib34
-rw-r--r--support/bib2gls/examples/books.bib150
-rw-r--r--support/bib2gls/examples/chemicalformula.bib152
-rw-r--r--support/bib2gls/examples/citations.bib65
-rw-r--r--support/bib2gls/examples/constants.bib95
-rw-r--r--support/bib2gls/examples/derivedunits.bib70
-rw-r--r--support/bib2gls/examples/films.bib192
-rw-r--r--support/bib2gls/examples/interpret-preamble.bib10
-rw-r--r--support/bib2gls/examples/interpret-preamble2.bib10
-rw-r--r--support/bib2gls/examples/markuplanguages.bib67
-rw-r--r--support/bib2gls/examples/mathgreek.bib195
-rw-r--r--support/bib2gls/examples/mathsobjects.bib154
-rw-r--r--support/bib2gls/examples/mathsrelations.bib83
-rw-r--r--support/bib2gls/examples/minerals.bib126
-rw-r--r--support/bib2gls/examples/miscsymbols.bib140
-rw-r--r--support/bib2gls/examples/no-interpret-preamble.bib10
-rw-r--r--support/bib2gls/examples/people.bib192
-rw-r--r--support/bib2gls/examples/sample-authors.pdfbin0 -> 49017 bytes
-rw-r--r--support/bib2gls/examples/sample-authors.tex50
-rw-r--r--support/bib2gls/examples/sample-bacteria.pdfbin0 -> 50468 bytes
-rw-r--r--support/bib2gls/examples/sample-bacteria.tex51
-rw-r--r--support/bib2gls/examples/sample-chemical.pdfbin0 -> 50256 bytes
-rw-r--r--support/bib2gls/examples/sample-chemical.tex38
-rw-r--r--support/bib2gls/examples/sample-citations.pdfbin0 -> 47338 bytes
-rw-r--r--support/bib2gls/examples/sample-citations.tex70
-rw-r--r--support/bib2gls/examples/sample-constants.pdfbin0 -> 89416 bytes
-rw-r--r--support/bib2gls/examples/sample-constants.tex57
-rw-r--r--support/bib2gls/examples/sample-markuplanguages.pdfbin0 -> 56334 bytes
-rw-r--r--support/bib2gls/examples/sample-markuplanguages.tex55
-rw-r--r--support/bib2gls/examples/sample-maths.pdfbin0 -> 110958 bytes
-rw-r--r--support/bib2gls/examples/sample-maths.tex97
-rw-r--r--support/bib2gls/examples/sample-media.pdfbin0 -> 160811 bytes
-rw-r--r--support/bib2gls/examples/sample-media.tex66
-rw-r--r--support/bib2gls/examples/sample-msymbols.pdfbin0 -> 103819 bytes
-rw-r--r--support/bib2gls/examples/sample-msymbols.tex30
-rw-r--r--support/bib2gls/examples/sample-multi1.pdfbin0 -> 243192 bytes
-rw-r--r--support/bib2gls/examples/sample-multi1.tex179
-rw-r--r--support/bib2gls/examples/sample-multi2.pdfbin0 -> 317978 bytes
-rw-r--r--support/bib2gls/examples/sample-multi2.tex462
-rw-r--r--support/bib2gls/examples/sample-people.pdfbin0 -> 47760 bytes
-rw-r--r--support/bib2gls/examples/sample-people.tex102
-rw-r--r--support/bib2gls/examples/sample-textsymbols.pdfbin0 -> 69804 bytes
-rw-r--r--support/bib2gls/examples/sample-textsymbols.tex49
-rw-r--r--support/bib2gls/examples/sample-textsymbols2.pdfbin0 -> 67012 bytes
-rw-r--r--support/bib2gls/examples/sample-textsymbols2.tex41
-rw-r--r--support/bib2gls/examples/sample-units1.pdfbin0 -> 53015 bytes
-rw-r--r--support/bib2gls/examples/sample-units1.tex48
-rw-r--r--support/bib2gls/examples/sample-units2.pdfbin0 -> 54758 bytes
-rw-r--r--support/bib2gls/examples/sample-units2.tex51
-rw-r--r--support/bib2gls/examples/sample-units3.pdfbin0 -> 41133 bytes
-rw-r--r--support/bib2gls/examples/sample-units3.tex65
-rw-r--r--support/bib2gls/examples/sample-usergroups.pdfbin0 -> 23882 bytes
-rw-r--r--support/bib2gls/examples/sample-usergroups.tex128
-rw-r--r--support/bib2gls/examples/terms.bib41
-rw-r--r--support/bib2gls/examples/topics.bib9
-rw-r--r--support/bib2gls/examples/unaryoperators.bib30
-rw-r--r--support/bib2gls/examples/usergroups.bib210
-rw-r--r--support/bib2gls/examples/vegetables.bib53
62 files changed, 4076 insertions, 0 deletions
diff --git a/support/bib2gls/examples/animals.bib b/support/bib2gls/examples/animals.bib
new file mode 100644
index 0000000000..129f4e8781
--- /dev/null
+++ b/support/bib2gls/examples/animals.bib
@@ -0,0 +1,82 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@entry{duck,
+ name={duck},
+ description={a waterbird with webbed feet},
+ identifier={animal}
+}
+
+@entry{parrot,
+ name={parrot},
+ description={mainly tropical bird with bright plumage},
+ identifier={animal}
+}
+
+@entry{goose,
+ name={goose},
+ plural={geese},
+ description={a large waterbird with a long neck, short legs,
+ webbed feet and a short broad bill},
+ identifier={animal}
+}
+
+@entry{swan,
+ name={swan},
+ description={a large waterbird with a long flexible neck,
+ short legs, webbed feet and a broad bill},
+ identifier={animal}
+}
+
+@entry{chicken,
+ name={chicken},
+ description={a domestic fowl},
+ identifier={animal}
+}
+
+@entry{aardvark,
+ name={aardvark},
+ description={nocturnal African burrowing mammal},
+ identifier={animal}
+}
+
+@entry{zebra,
+ name={zebra},
+ description={wild African horse with black-and-white stripes},
+ identifier={animal}
+}
+
+@entry{armadillo,
+ name={armadillo},
+ description={nocturnal insectivore with large claws},
+ identifier={animal}
+}
+
+@entry{zander,
+ name={zander},
+ description={large freshwater perch},
+ identifier={animal}
+}
+
+@entry{hedgehog,
+ name={hedgehog},
+ description={small nocturnal mammal with a spiny coat and
+ short legs},
+ identifier={animal}
+}
+
+@entry{seal,
+ name={seal},
+ description={sea-dwelling fish-eating mammal with flippers},
+ identifier={animal}
+}
+
+@entry{sealion,
+ name={sea lion},
+ description={a large type of \gls{seal}},
+ identifier={animal}
+}
+
diff --git a/support/bib2gls/examples/bacteria.bib b/support/bib2gls/examples/bacteria.bib
new file mode 100644
index 0000000000..d1f967f7c6
--- /dev/null
+++ b/support/bib2gls/examples/bacteria.bib
@@ -0,0 +1,66 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@abbreviation{cbotulinum,
+ short={C.~botulinum},
+ long={Clostridium botulinum},
+ identifier={bacteria}
+}
+
+@abbreviation{pputida,
+ short={P.~putida},
+ long={Pseudomonas putida},
+ identifier={bacteria}
+}
+
+@abbreviation{cperfringens,
+ short={C.~perfringens},
+ long={Clostridium perfringens},
+ identifier={bacteria}
+}
+
+@abbreviation{bsubtilis,
+ short={B.~subtilis},
+ long={Bacillus subtilis},
+ identifier={bacteria}
+}
+
+@abbreviation{ctetani,
+ short={C.~tetani},
+ long={Clostridium tetani},
+ identifier={bacteria}
+}
+
+@abbreviation{pcomposti,
+ short={P.~composti},
+ long={Planifilum composti},
+ identifier={bacteria}
+}
+
+@abbreviation{pfimeticola,
+ short={P.~fimeticola},
+ long={Planifilum fimeticola},
+ identifier={bacteria}
+}
+
+@abbreviation{cburnetii,
+ short={C.~burnetii},
+ long={Coxiella burnetii},
+ identifier={bacteria}
+}
+
+@abbreviation{raustralis,
+ short={R.~australis},
+ long={Rickettsia australis},
+ identifier={bacteria}
+}
+
+@abbreviation{rrickettsii,
+ short={R.~rickettsii},
+ long={Rickettsia rickettsii},
+ identifier={bacteria}
+}
+
diff --git a/support/bib2gls/examples/baseunits.bib b/support/bib2gls/examples/baseunits.bib
new file mode 100644
index 0000000000..d42e17727a
--- /dev/null
+++ b/support/bib2gls/examples/baseunits.bib
@@ -0,0 +1,56 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+% requires siunix.sty
+
+@unit{ampere,
+ unitname={ampere},
+ unitsymbol={\si{\ampere}},
+ measurement={electric current},
+ identifier={baseunit}
+}
+
+@unit{kilogram,
+ unitname={kilogram},
+ unitsymbol={\si{\kilogram}},
+ measurement={mass},
+ identifier={baseunit}
+}
+
+@unit{metre,
+ unitname={metre},
+ unitsymbol={\si{\metre}},
+ measurement={length},
+ identifier={baseunit}
+}
+
+@unit{second,
+ unitname={second},
+ unitsymbol={\si{\second}},
+ measurement={time},
+ identifier={baseunit}
+}
+
+@unit{kelvin,
+ unitname={kelvin},
+ unitsymbol={\si{\kelvin}},
+ measurement={thermodynamic temperature},
+ identifier={baseunit}
+}
+
+@unit{mole,
+ unitname={mole},
+ unitsymbol={\si{\mole}},
+ measurement={amount of substance},
+ identifier={baseunit}
+}
+
+@unit{candela,
+ unitname={candela},
+ unitsymbol={\si{\candela}},
+ measurement={luminous intensity},
+ identifier={baseunit}
+}
diff --git a/support/bib2gls/examples/bigmathsymbols.bib b/support/bib2gls/examples/bigmathsymbols.bib
new file mode 100644
index 0000000000..eebb2f5be1
--- /dev/null
+++ b/support/bib2gls/examples/bigmathsymbols.bib
@@ -0,0 +1,145 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+% requires stix.sty
+
+@preamble{"\providecommand{\bigoperatornamefmt}[1]{%
+ $\displaystyle#1\textstyle#1$}
+\providecommand{\nary}[1]{$#1$-ary}"}
+
+@symbol{bigsqcap,
+ name={\bigoperatornamefmt{\bigsqcap}},
+ text={\bigsqcap},
+ description={\nary{n} square intersection operator},
+ identifier={naryoperator}
+}
+
+@symbol{bigsqcup,
+ name={\bigoperatornamefmt{\bigsqcup}},
+ text={\bigsqcup},
+ description={\nary{n} square union operator},
+ identifier={naryoperator}
+}
+
+@symbol{sum,
+ name={\bigoperatornamefmt{\sum}},
+ text={\sum},
+ description={\nary{n} summation},
+ identifier={naryoperator}
+}
+
+@symbol{prod,
+ name={\bigoperatornamefmt{\prod}},
+ text={\prod},
+ description={\nary{n} product},
+ identifier={naryoperator}
+}
+
+@symbol{coprod,
+ name={\bigoperatornamefmt{\coprod}},
+ text={\coprod},
+ description={\nary{n} coproduct},
+ identifier={naryoperator}
+}
+
+@symbol{bigcap,
+ name={\bigoperatornamefmt{\bigcap}},
+ text={\bigcap},
+ description={\nary{n} intersection},
+ identifier={naryoperator}
+}
+
+@symbol{bigcup,
+ name={\bigoperatornamefmt{\bigcup}},
+ text={\bigcup},
+ description={\nary{n} union},
+ identifier={naryoperator}
+}
+
+@symbol{bigodot,
+ name={\bigoperatornamefmt{\bigodot}},
+ text={\bigodot},
+ description={\nary{n} circled dot operator},
+ identifier={naryoperator}
+}
+
+@symbol{bigoplus,
+ name={\bigoperatornamefmt{\bigoplus}},
+ text={\bigoplus},
+ description={\nary{n} circled plus operator},
+ identifier={naryoperator}
+}
+
+@symbol{bigotimes,
+ name={\bigoperatornamefmt{\bigotimes}},
+ text={\bigotimes},
+ description={\nary{n} circled times operator},
+ identifier={naryoperator}
+}
+
+@symbol{biguplus,
+ name={\bigoperatornamefmt{\biguplus}},
+ text={\biguplus},
+ description={\nary{n} union operator with plus},
+ identifier={naryoperator}
+}
+
+@symbol{bigvee,
+ name={\bigoperatornamefmt{\bigvee}},
+ text={\bigvee},
+ description={\nary{n} logical or},
+ identifier={naryoperator}
+}
+
+@symbol{bigwedge,
+ name={\bigoperatornamefmt{\bigwedge}},
+ text={\bigwedge},
+ description={\nary{n} logical and},
+ identifier={naryoperator}
+}
+
+@symbol{int,
+ name={\bigoperatornamefmt{\int}},
+ text={\int},
+ description={integral},
+ identifier={integral}
+}
+
+@symbol{iint,
+ name={\bigoperatornamefmt{\iint}},
+ text={\iint},
+ description={double integral},
+ identifier={integral}
+}
+
+@symbol{iiint,
+ name={\bigoperatornamefmt{\iiint}},
+ text={\iiint},
+ description={triple integral},
+ identifier={integral}
+}
+
+@symbol{oint,
+ name={\bigoperatornamefmt{\oint}},
+ text={\oint},
+ description={contour integral},
+ identifier={integral}
+}
+
+@symbol{oiint,
+ name={\bigoperatornamefmt{\oiint}},
+ text={\oiint},
+ description={surface integral},
+ identifier={integral}
+}
+
+@symbol{oiiint,
+ name={\bigoperatornamefmt{\oiiint}},
+ text={\oiiint},
+ description={volume integral},
+ identifier={integral}
+}
+
diff --git a/support/bib2gls/examples/binaryoperators.bib b/support/bib2gls/examples/binaryoperators.bib
new file mode 100644
index 0000000000..5cc2ec9ab3
--- /dev/null
+++ b/support/bib2gls/examples/binaryoperators.bib
@@ -0,0 +1,34 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@symbol{plus,
+ name={$+$},
+ text={+},
+ description={addition},
+ identifier={binaryoperator}
+}
+
+@symbol{minus,
+ name={$-$},
+ text={-},
+ description={subtraction},
+ identifier={binaryoperator}
+}
+
+@symbol{times,
+ name={$\times$},
+ text={\times},
+ description={multiplication},
+ identifier={binaryoperator}
+}
+
+@symbol{div,
+ name={$\div$},
+ text={\div},
+ description={division},
+ identifier={binaryoperator}
+}
+
diff --git a/support/bib2gls/examples/books.bib b/support/bib2gls/examples/books.bib
new file mode 100644
index 0000000000..18a1893cf5
--- /dev/null
+++ b/support/bib2gls/examples/books.bib
@@ -0,0 +1,150 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@entry{ataleoftwocities,
+ name={\sortart{A}{Tale of Two Cities}},
+ description={novel by Charles Dickens},
+ identifier={book},
+ author={\sortmediacreator{Charles}{Dickens}},
+ year={1859}
+}
+
+@entry{bleakhouse,
+ name={Bleak House},
+ description={novel by Charles Dickens},
+ identifier={book},
+ author={\sortmediacreator{Charles}{Dickens}},
+ year={1852}
+}
+
+@entry{thebigsleep,
+ name={\sortart{The}{Big Sleep}},
+ description={novel by Raymond Chandler},
+ identifier={book},
+ author={\sortmediacreator{Raymond}{Chandler}},
+ year={1939}
+}
+
+@entry{thelonggoodbye,
+ name={\sortart{The}{Long Goodbye}},
+ description={novel by Raymond Chandler},
+ identifier={book},
+ author={\sortmediacreator{Raymond}{Chandler}},
+ year={1953}
+}
+
+@entry{redharvest,
+ name={Red Harvest},
+ description={novel by Dashiell Hammett},
+ identifier={book},
+ author={\sortmediacreator{Dashiell}{Hammett}},
+ year={1929}
+}
+
+@entry{murderontheorientexpress,
+ name={Murder on the Orient Express},
+ description={novel by Agatha Christie},
+ identifier={book},
+ author={\sortmediacreator{Agatha}{Christie}},
+ year={1934}
+}
+
+@entry{whydidnttheyaskevans,
+ name={Why Didn't They Ask Evans?},
+ description={novel by Agatha Christie},
+ identifier={book},
+ author={\sortmediacreator{Agatha}{Christie}},
+ year={1934}
+}
+
+@entry{icecoldinalex,
+ name={Ice Cold in Alex},
+ description={novel by Christopher Landon},
+ identifier={book},
+ author={\sortmediacreator{Christopher}{Landon}},
+ year={1957}
+}
+
+@entry{thehobbit,
+ name={\sortart{The}{Hobbit}},
+ description={novel by J.R.R. Tolkien},
+ identifier={book},
+ author={\sortmediacreator{J.R.R.}{Tolkien}},
+ year={1937}
+}
+
+@entry{thelordoftherings,
+ name={\sortart{The}{Lord of the Rings}},
+ description={novel by J.R.R. Tolkien},
+ identifier={book},
+ author={\sortmediacreator{J.R.R.}{Tolkien}},
+ year={1954}
+}
+
+@entry{thewonderfulwizardofoz,
+ name={\sortart{The}{Wonderful Wizard of Oz}},
+ description={novel by L. Frank Baum},
+ identifier={book},
+ author={\sortmediacreator{L. Frank}{Baum}},
+ year={1900}
+}
+
+@entry{whiskygalore,
+ name={Whisky Galore},
+ description={novel by Compton Mackenzie},
+ identifier={book},
+ author={\sortmediacreator{Compton}{Mackenzie}},
+ year={1947}
+}
+
+@entry{whereeaglesdare,
+ name={Where Eagles Dare},
+ description={novel by Alistair MacLean},
+ identifier={book},
+ author={\sortmediacreator{Alistair}{MacLean}},
+ year={1967}
+}
+
+@entry{icestationzebra,
+ name={Ice Station Zebra},
+ description={novel by Alistair MacLean},
+ identifier={book},
+ author={\sortmediacreator{Alistair}{MacLean}},
+ year={1963}
+}
+
+@entry{ubik,
+ name={Ubik},
+ description={novel by Philip K. Dick},
+ identifier={book},
+ author={\sortmediacreator{Philip K.}{Dick}},
+ year={1969}
+}
+
+@entry{doandroidsdreamofelectricsheep,
+ name={Do Androids Dream of Electric Sheep?},
+ description={novel by Philip K. Dick},
+ identifier={book},
+ author={\sortmediacreator{Philip K.}{Dick}},
+ year={1968}
+}
+
+@entry{thetroublewithharry,
+ name={\sortart{The}{Trouble with Harry}},
+ description={novel by Jack Trevor Story},
+ identifier={book},
+ author={\sortmediacreator{Jack Trevor}{Story}},
+ year={1950}
+}
+
+@entry{brightonrock,
+ name={Brighton Rock},
+ description={novel by Graham Greene},
+ identifier={book},
+ author={\sortmediacreator{Graham}{Greene}},
+ year={1938}
+}
+
diff --git a/support/bib2gls/examples/chemicalformula.bib b/support/bib2gls/examples/chemicalformula.bib
new file mode 100644
index 0000000000..9a3f67884c
--- /dev/null
+++ b/support/bib2gls/examples/chemicalformula.bib
@@ -0,0 +1,152 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+% requires mhchem.sty
+
+@chemical{H2O,
+ formula={\ce{H2O}},
+ chemicalname={water},
+ identifier={chemical}
+}
+
+@chemical{Al2SO43,
+ formula={\ce{Al2(SO4)3}},
+ chemicalname={aluminium sulfate},
+ identifier={chemical}
+}
+
+@chemical{CH3CH2OH,
+ formula={\ce{CH3CH2OH}},
+ chemicalname={ethanol},
+ identifier={chemical}
+}
+
+@chemical{C6H12O6,
+ formula={\ce{C6H12O6}},
+ chemicalname={glucose},
+ identifier={chemical}
+}
+
+@chemical{CH2O,
+ formula={\ce{CH2O}},
+ chemicalname={formaldehyde},
+ identifier={chemical}
+}
+
+@chemical{H3O+,
+ formula={\ce{H3O+}},
+ chemicalname={hydronium},
+ identifier={chemical}
+}
+
+@chemical{SO42-,
+ formula={\ce{SO4^{2-}}},
+ chemicalname={sulfate},
+ identifier={chemical}
+}
+
+@chemical{O2,
+ formula={\ce{O2}},
+ chemicalname={dioxygen},
+ identifier={chemical}
+}
+
+@chemical{O,
+ formula={\ce{O}},
+ chemicalname={oxygen},
+ identifier={chemical}
+}
+
+@chemical{OF2,
+ formula={\ce{OF2}},
+ chemicalname={oxygen difluoride},
+ identifier={chemical}
+}
+
+@chemical{O2F2,
+ formula={\ce{O2F2}},
+ chemicalname={dioxygen difluoride},
+ identifier={chemical}
+}
+
+@chemical{OH-,
+ formula={\ce{OH-}},
+ chemicalname={hydroxide ion},
+ identifier={chemical}
+}
+
+@chemical{AlF3,
+ formula={\ce{AlF3}},
+ chemicalname={aluminium trifluoride},
+ identifier={chemical}
+}
+
+@chemical{Al2CoO4,
+ formula={\ce{Al2CoO4}},
+ chemicalname={cobalt blue},
+ identifier={chemical}
+}
+
+@chemical{As4S4,
+ formula={\ce{As4S4}},
+ chemicalname={tetraarsenic tetrasulfide},
+ identifier={chemical}
+}
+
+@chemical{C5H4NCOOH,
+ formula={\ce{C5H4NCOOH}},
+ chemicalname={niacin},
+ identifier={chemical}
+}
+
+@chemical{C10H10O4,
+ formula={\ce{C10H10O4}},
+ chemicalname={ferulic acid},
+ identifier={chemical}
+}
+
+@chemical{C8H10N4O2,
+ formula={\ce{C8H10N4O2}},
+ chemicalname={caffeine},
+ identifier={chemical}
+}
+
+@chemical{SO2,
+ formula={\ce{SO2}},
+ chemicalname={sulfur dioxide},
+ identifier={chemical}
+}
+
+@chemical{S2O72-,
+ formula={\ce{S2O7^{2-}}},
+ chemicalname={disulfate ion},
+ identifier={chemical}
+}
+
+@chemical{SbBr3,
+ formula={\ce{SbBr3}},
+ chemicalname={antimony(III) bromide},
+ identifier={chemical}
+}
+
+@chemical{Sc2O3,
+ formula={\ce{Sc2O3}},
+ chemicalname={scandium oxide},
+ identifier={chemical}
+}
+
+@chemical{Zr3PO44,
+ formula={\ce{Zr3(PO4)4}},
+ chemicalname={zirconium phosphate},
+ identifier={chemical}
+}
+
+@chemical{ZnF2,
+ formula={\ce{ZnF2}},
+ chemicalname={zinc fluoride},
+ identifier={chemical}
+}
+
diff --git a/support/bib2gls/examples/citations.bib b/support/bib2gls/examples/citations.bib
new file mode 100644
index 0000000000..389cb7bdea
--- /dev/null
+++ b/support/bib2gls/examples/citations.bib
@@ -0,0 +1,65 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@preamble{"\providecommand{\titlefmt}[1]{`#1'}"}
+
+@article{duck2018,
+ author = {Dickie Duck and Jos\'{e} Arara and Polly Parrot},
+ title = {Avian friendship},
+ journal = {Fowl Times},
+ year = 2018,
+ volume = 7,
+ number = 5,
+ pages = "1032--5"
+}
+
+@book{duck2016,
+ author = {Dickie Duck},
+ title = {Feathered stunt doubles: \titlefmt{The Birds} and
+other films},
+ publisher = {Duck Duck Goose},
+ year = 2016
+}
+
+@book{macaw,
+ author = {Prof Macaw},
+ title = {Annotated notes on the \titlefmt{Duck and Goose}
+chronicles},
+ publisher = {Duck Duck Goose},
+ year = 2012
+}
+
+@book{ing,
+ author = {Bor Ing},
+ title = {\titlefmt{Duck and Goose}: an allegory for modern
+times?},
+ publisher = {Duck Duck Goose},
+ year = 2010
+}
+
+@article{parrot,
+ author = {Polly Parrot and Dickie Duck},
+ title = {\titlefmt{Duck and Goose} Cheat Sheet for Students},
+ journal = {Fowl Times},
+ year = 2013,
+ volume = 2,
+ number = 10,
+ pages = "15--23"
+}
+
+@book{parrot2012,
+ author = {A Parrot},
+ title = {My Friend is a Duck},
+ publisher = {Duck Duck Goose},
+ year = 2012
+}
+
+@book{quackalot,
+ author = {Sir Quackalot},
+ title = {The Adventures of Duck and Goose},
+ publisher = {Duck Duck Goose},
+ year = 2011
+}
diff --git a/support/bib2gls/examples/constants.bib b/support/bib2gls/examples/constants.bib
new file mode 100644
index 0000000000..92d9957c7c
--- /dev/null
+++ b/support/bib2gls/examples/constants.bib
@@ -0,0 +1,95 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+% Requires upgreek.sty
+
+@preamble{"\providecommand{\constanti}{\mathrm{i}}
+\providecommand{\constantj}{\mathrm{j}}
+\providecommand{\constante}{\mathrm{e}}
+\providecommand{\constantpi}{\uppi}
+\providecommand{\constantgamma}{\upgamma}
+\providecommand{\constantphi}{\upphi}
+\providecommand{\constantlambda}{\uplambda}"}
+
+@constant{pi,
+ constantname={pi},
+ constantsymbol={\ensuremath{\constantpi}},
+ definition={the ratio of the length of the circumference
+ of a circle to its diameter},
+ value={3.14159},
+ identifier={constant}
+}
+
+@constant{eulercons,
+ constantname={Euler's constant},
+ constantsymbol={\ensuremath{\constantgamma}},
+ definition={the limit of \[\sum_{r=1}^n\frac{1}{r}-\ln n\]
+ as $n\to\infty$},
+ value={0.57721},
+ identifier={constant}
+}
+
+@constant{e,
+ constantname={Euler's number},
+ constantsymbol={\ensuremath{\constante}},
+ definition={base of natural logarithms},
+ value={2.71828},
+ identifier={constant}
+}
+
+@constant{root2,
+ constantname={Pythagoras' constant},
+ constantsymbol={\ensuremath{\surd2}},
+ definition={the square root of 2},
+ value={1.41421},
+ identifier={constant}
+}
+
+@constant{goldenratio,
+ constantname={golden ratio},
+ constantsymbol={\ensuremath{\constantphi}},
+ definition={the ratio $\frac{1+\surd5}{2}$},
+ value={1.61803},
+ identifier={constant}
+}
+
+@constant{aperysconstant,
+ constantname={Ap\'ery's constant},
+ constantsymbol={\ensuremath{\zeta(3)}},
+ definition={a special value of the Riemann zeta function},
+ value={1.2020569},
+ identifier={constant}
+}
+
+@constant{conwaysconstant,
+ constantname={Conway's constant},
+ constantsymbol={\ensuremath{\constantlambda}},
+ definition={the invariant growth rate of all derived strings},
+ value={1.30357},
+ identifier={constant}
+}
+
+@constant{zero,
+ constantname={zero},
+ constantsymbol={\ensuremath{0}},
+ definition={nothing or nil},
+ identifier={constant}
+}
+
+@constant{one,
+ constantname={one},
+ constantsymbol={\ensuremath{1}},
+ definition={single entity, unity},
+ identifier={constant}
+}
+
+@constant{imaginary,
+ constantname={imaginary unit},
+ constantsymbol={\ensuremath{\constanti}},
+ definition={defined as $\constanti^2 = -1$},
+ identifier={constant},
+ alternative={\ensuremath{\constantj}}
+}
diff --git a/support/bib2gls/examples/derivedunits.bib b/support/bib2gls/examples/derivedunits.bib
new file mode 100644
index 0000000000..130254b079
--- /dev/null
+++ b/support/bib2gls/examples/derivedunits.bib
@@ -0,0 +1,70 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+% requires siunitx.sty
+
+@measurement{area,
+ unitname={square metre},
+ unitsymbol={\si{\metre\squared}},
+ measurement={area},
+ identifier={derivedunit}
+}
+
+@measurement{volume,
+ unitname={cubic metre},
+ unitsymbol={\si{\metre\cubed}},
+ measurement={volume},
+ identifier={derivedunit}
+}
+
+@measurement{velocity,
+ unitname={metre per second},
+ unitsymbol={\si{\metre\per\second}},
+ measurement={velocity},
+ identifier={derivedunit}
+}
+
+@measurement{acceleration,
+ unitname={metre per second squared},
+ unitsymbol={\si{\metre\per\square\second}},
+ measurement={acceleration},
+ identifier={derivedunit}
+}
+
+@measurement{density,
+ unitname={ampere per square metre},
+ unitsymbol={\si{\ampere\per\square\metre}},
+ measurement={density},
+ identifier={derivedunit}
+}
+
+@measurement{luminance,
+ unitname={candela per square metre},
+ unitsymbol={\si{\candela\per\square\metre}},
+ measurement={luminance},
+ identifier={derivedunit}
+}
+
+@measurement{specificvolume,
+ unitname={cubic metre per kilogram},
+ unitsymbol={\si{\cubic\metre\per\kilogram}},
+ measurement={specific volume},
+ identifier={derivedunit}
+}
+
+@measurement{concentration,
+ unitname={mole per cubic metre},
+ unitsymbol={\si{\mole\per\cubic\metre}},
+ measurement={concentration},
+ identifier={derivedunit}
+}
+
+@measurement{wavenumber,
+ unitname={per metre},
+ unitsymbol={\si{\per\metre}},
+ measurement={wave number},
+ identifier={derivedunit}
+}
diff --git a/support/bib2gls/examples/films.bib b/support/bib2gls/examples/films.bib
new file mode 100644
index 0000000000..985463fec4
--- /dev/null
+++ b/support/bib2gls/examples/films.bib
@@ -0,0 +1,192 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@entry{film.thebigsleep,
+ name={\sortart{The}{Big Sleep}},
+ description={a film based on the novel
+ \gls{ext1.thebigsleep}},
+ cast={Humphrey Bogart and Lauren Bacall},
+ identifier={film},
+ year={1946},
+ director={\sortmediacreator{Howard}{Hawks}}
+}
+
+@entry{film.thelonggoodbye,
+ name={\sortart{The}{Long Goodbye}},
+ description={a film based on the novel
+ \gls{ext1.thelonggoodbye}},
+ cast={Elliott Gould and Nina van Pallandt},
+ identifier={film},
+ year={1973},
+ director={\sortmediacreator{Robert}{Altman}}
+}
+
+@entry{film.murderontheorientexpress,
+ name={Murder on the Orient Express},
+ description={a film based on the novel
+ \gls{ext1.murderontheorientexpress}},
+ cast={Albert Finney and Lauren Bacall and Ingrid Bergman},
+ identifier={film},
+ director={\sortmediacreator{Sidney}{Lumet}},
+ year={1974}
+}
+
+@entry{film.whydidnttheyaskevans,
+ name={Why Didn't They Ask Evans?},
+ description={a film based on the novel
+ \gls{ext1.whydidnttheyaskevans}\glsxtrnopostpunc},
+ cast={Francesca Annis and John Gielgud and Bernard Miles},
+ identifier={film},
+ director={\sortmediacreator{John}{Davies}},
+ year={1980}
+}
+
+@entry{film.icecoldinalex,
+ name={Ice Cold in Alex},
+ description={a film based on the novel
+ \gls{ext1.icecoldinalex}},
+ cast={John Mills and Anthony Quayle and Sylvia Sims},
+ identifier={film},
+ year={1958},
+ director={\sortmediacreator{J. Lee}{Thompson}}
+}
+
+@entry{film.anunexpectedjourney,
+ name={\sortart{The}{Hobbit}:
+ \sortart{An}{Unexpected Journey}},
+ description={a film based on the novel \gls{ext1.thehobbit}},
+ cast={Martin Freeman and Ian McKellen and Richard Armitage},
+ identifier={film},
+ year={2012},
+ director={\sortmediacreator{Peter}{Jackson}}
+}
+
+@entry{film.desolationofsmaug,
+ name={\sortart{The}{Hobbit}:
+ \sortart{The}{Desolation of Smaug}},
+ description={a film based on the novel
+ \gls{ext1.thehobbit}},
+ cast={Ian McKellen and Martin Freeman and Richard Armitage},
+ identifier={film},
+ year={2013},
+ director={\sortmediacreator{Peter}{Jackson}}
+}
+
+@entry{film.thebattleoffivearmies,
+ name={\sortart{The}{Hobbit}:
+ \sortart{The}{Battle of Five Armies}},
+ description={a film based on the novel
+ \gls{ext1.thehobbit}},
+ cast={Ian McKellen and Martin Freeman and Richard Armitage},
+ identifier={film},
+ year={2014},
+ director={\sortmediacreator{Peter}{Jackson}}
+}
+
+@entry{film.thefellowshipofthering,
+ name={\sortart{The}{Lord of the Rings}:
+ \sortart{The}{Fellowship of the Ring}},
+ description={a film based on the novel
+ \gls{ext1.thelordoftherings}},
+ cast={Elijah Wood and Ian McKellen and Orlando Bloom},
+ identifier={film},
+ year={2001},
+ director={\sortmediacreator{Peter}{Jackson}}
+}
+
+@entry{film.thetwotowers,
+ name={\sortart{The}{Lord of the Rings}:
+ \sortart{The}{Two Towers}},
+ description={a film based on the novel
+ \gls{ext1.thelordoftherings}},
+ cast={Elijah Wood and Ian McKellen and Viggo Mortensen},
+ identifier={film},
+ year={2002},
+ director={\sortmediacreator{Peter}{Jackson}}
+}
+
+@entry{film.thereturnoftheking,
+ name={\sortart{The}{Lord of the Rings}:
+ \sortart{The}{Return of the King}},
+ description={a film based on the novel
+ \gls{ext1.thelordoftherings}},
+ cast={Elijah Wood and Viggo Mortensen and Ian McKellen},
+ identifier={film},
+ year={2003},
+ director={\sortmediacreator{Peter}{Jackson}}
+}
+
+@entry{film.thewizardofoz,
+ name={\sortart{The}{Wizard of Oz}},
+ description={a film based on the novel
+ \gls{ext1.thewonderfulwizardofoz}},
+ cast={Judy Garland},
+ identifier={film},
+ year={1939},
+ director={\sortmediacreator{Victor}{Fleming}}
+}
+
+@entry{film.whiskygalore,
+ name={Whisky Galore!},
+ description={a film based on the novel
+ \gls{ext1.whiskygalore}},
+ cast={Basil Radford and Joan Greenwood},
+ identifier={film},
+ year={1949},
+ director={\sortmediacreator{Alexander}{Mackendrick}}
+}
+
+@entry{film.whereeaglesdare,
+ name={Where Eagles Dare},
+ description={a film based on the novel
+ \gls{ext1.whereeaglesdare}},
+ cast={Richard Burton and Clint Eastwood and Mary Ure},
+ identifier={film},
+ year={1968},
+ director={\sortmediacreator{Brian G.}{Hutton}}
+}
+
+@entry{film.icestationzebra,
+ name={Ice Station Zebra},
+ description={a film based on the novel
+ \gls{ext1.icestationzebra}},
+ cast={Rock Hudson and Ernest Borgnine},
+ identifier={film},
+ year={1968},
+ director={\sortmediacreator{John}{Sturges}}
+}
+
+@entry{film.bladerunner,
+ name={Blade Runner},
+ description={a film loosely based on the novel
+ \gls{ext1.doandroidsdreamofelectricsheep}\glsxtrnopostpunc},
+ cast={Harrison Ford and Rutger Hauer and Sean Young},
+ identifier={film},
+ year={1982},
+ director={\sortmediacreator{Ridley}{Scott}}
+}
+
+@entry{film.thetroublewithharry,
+ name={\sortart{The}{Trouble with Harry}},
+ description={a film based on the novel
+ \gls{ext1.thetroublewithharry}},
+ cast={John Forsythe and Shirley MacLaine},
+ identifier={film},
+ year={1955},
+ director={\sortmediacreator{Alfred}{Hitchcock}}
+}
+
+@entry{film.brightonrock,
+ name={Brighton Rock},
+ description={a film based on the novel
+ \gls{ext1.brightonrock}},
+ cast={Richard Attenborough and Hermione Baddeley
+ and William Hartnell},
+ identifier={film},
+ year={1947},
+ director={\sortmediacreator{John}{Boutling}}
+}
+
diff --git a/support/bib2gls/examples/interpret-preamble.bib b/support/bib2gls/examples/interpret-preamble.bib
new file mode 100644
index 0000000000..dc95599bf3
--- /dev/null
+++ b/support/bib2gls/examples/interpret-preamble.bib
@@ -0,0 +1,10 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@preamble{"\providecommand{\sortname}[2]{#2, #1}
+\providecommand{\sortvonname}[3]{#2 #3, #1}
+\providecommand{\sortart}[2]{#2}
+\providecommand{\sortmediacreator}[2]{#2, #1}"}
diff --git a/support/bib2gls/examples/interpret-preamble2.bib b/support/bib2gls/examples/interpret-preamble2.bib
new file mode 100644
index 0000000000..ec5ab28368
--- /dev/null
+++ b/support/bib2gls/examples/interpret-preamble2.bib
@@ -0,0 +1,10 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@preamble{"\providecommand{\sortname}[2]{#2, #1}
+\providecommand{\sortvonname}[3]{#2 #3, #1}
+\providecommand{\sortart}[2]{#2}
+\renewcommand{\sortmediacreator}[2]{\MakeLowercase{#2}}"}
diff --git a/support/bib2gls/examples/markuplanguages.bib b/support/bib2gls/examples/markuplanguages.bib
new file mode 100644
index 0000000000..8c46af7fa9
--- /dev/null
+++ b/support/bib2gls/examples/markuplanguages.bib
@@ -0,0 +1,67 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@preamble{"\providecommand{\abbrvtag}[1]{#1}"}
+@string{markuplang="\abbrvtag{m}arkup \abbrvtag{l}anguage"}
+
+@entry{TeX,
+ name={{}\TeX},
+ description={a format for describing complex type and page layout
+ often used for mathematics, technical, and academic publications},
+ identifier={markuplanguage}
+}
+
+@entry{LaTeX,
+ name={{}\LaTeX},
+ description={a format of \glstext{TeX} designed to separate
+ content from style},
+ identifier={markuplanguage}
+}
+
+@entry{markdown,
+ name={markdown},
+ description={a lightweight markup language with plain text
+ formatting syntax},
+ identifier={markuplanguage}
+}
+
+@abbreviation{xml,
+ short={XML},
+ long={e\abbrvtag{x}tensible }#markuplang,
+ description={a markup language that defines a set of rules for
+ encoding documents},
+ identifier={markuplanguage}
+}
+
+@abbreviation{html,
+ short={HTML},
+ long={\abbrvtag{h}yper\abbrvtag{t}ext }#markuplang,
+ description={the standard markup language for creating web pages},
+ identifier={markuplanguage}
+}
+
+@abbreviation{mathml,
+ short={MathML},
+ long={\abbrvtag{m\NoCaseChange{ath}}ematical }#markuplang,
+ description={markup language for describing mathematical notation},
+ identifier={markuplanguage}
+}
+
+@abbreviation{xhtml,
+ short={XHTML},
+ long={e\abbrvtag{x}tensible \abbrvtag{h}yper\abbrvtag{t}ext }
+ # markuplang,
+ description={{}\glstext{xml} version of \glstext{html}},
+ identifier={markuplanguage}
+}
+
+@abbreviation{svg,
+ short={SVG},
+ long={\abbrvtag{s}calable \abbrvtag{v}ector \abbrvtag{g}raphics},
+ description={{}\glstext{xml}-based vector image format},
+ identifier={markuplanguage}
+}
+
diff --git a/support/bib2gls/examples/mathgreek.bib b/support/bib2gls/examples/mathgreek.bib
new file mode 100644
index 0000000000..6154362ca7
--- /dev/null
+++ b/support/bib2gls/examples/mathgreek.bib
@@ -0,0 +1,195 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@preamble{"\providecommand{\omicron}{o}"}
+
+@symbol{alpha,
+ name={\ensuremath{\alpha}},
+ description={alpha},
+ identifier={mathgreek}
+}
+
+@symbol{beta,
+ name={\ensuremath{\beta}},
+ description={beta},
+ identifier={mathgreek}
+}
+
+@symbol{gamma,
+ name={\ensuremath{\gamma}},
+ description={gamma},
+ identifier={mathgreek}
+}
+
+@symbol{delta,
+ name={\ensuremath{\delta}},
+ description={delta},
+ identifier={mathgreek}
+}
+
+@symbol{varepsilon,
+ name={\ensuremath{\varepsilon}},
+ description={epsilon (variant)},
+ identifier={mathgreek}
+}
+
+@symbol{zeta,
+ name={\ensuremath{\zeta}},
+ description={zeta},
+ identifier={mathgreek}
+}
+
+@symbol{eta,
+ name={\ensuremath{\eta}},
+ description={eta},
+ identifier={mathgreek}
+}
+
+@symbol{theta,
+ name={\ensuremath{\theta}},
+ description={theta},
+ identifier={mathgreek}
+}
+
+
+@symbol{iota,
+ name={\ensuremath{\iota}},
+ description={iota},
+ identifier={mathgreek}
+}
+
+@symbol{kappa,
+ name={\ensuremath{\kappa}},
+ description={kappa},
+ identifier={mathgreek}
+}
+
+@symbol{lambda,
+ name={\ensuremath{\lambda}},
+ description={lambda},
+ identifier={mathgreek}
+}
+
+@symbol{mu,
+ name={\ensuremath{\mu}},
+ description={mu},
+ identifier={mathgreek}
+}
+
+@symbol{nu,
+ name={\ensuremath{\nu}},
+ description={nu},
+ identifier={mathgreek}
+}
+
+@symbol{xi,
+ name={\ensuremath{\xi}},
+ description={xi},
+ identifier={mathgreek}
+}
+
+@symbol{omicron,
+ name={\ensuremath{\omicron}},
+ description={omicron},
+ identifier={mathgreek}
+}
+
+@symbol{pi,
+ name={\ensuremath{\pi}},
+ description={pi},
+ identifier={mathgreek}
+}
+
+@symbol{rho,
+ name={\ensuremath{\rho}},
+ description={rho},
+ identifier={mathgreek}
+}
+
+@symbol{varsigma,
+ name={\ensuremath{\varsigma}},
+ description={sigma (variant)},
+ identifier={mathgreek}
+}
+
+@symbol{sigma,
+ name={\ensuremath{\sigma}},
+ description={sigma},
+ identifier={mathgreek}
+}
+
+@symbol{tau,
+ name={\ensuremath{\tau}},
+ description={tau},
+ identifier={mathgreek}
+}
+
+@symbol{upsilon,
+ name={\ensuremath{\upsilon}},
+ description={upsilon},
+ identifier={mathgreek}
+}
+
+@symbol{varphi,
+ name={\ensuremath{\varphi}},
+ description={phi (variant)},
+ identifier={mathgreek}
+}
+
+@symbol{chi,
+ name={\ensuremath{\chi}},
+ description={chi},
+ identifier={mathgreek}
+}
+
+@symbol{psi,
+ name={\ensuremath{\psi}},
+ description={psi},
+ identifier={mathgreek}
+}
+
+@symbol{omega,
+ name={\ensuremath{\omega}},
+ description={omega},
+ identifier={mathgreek}
+}
+
+@symbol{epsilon,
+ name={\ensuremath{\epsilon}},
+ description={epsilon},
+ identifier={mathgreek}
+}
+
+@symbol{vartheta,
+ name={\ensuremath{\vartheta}},
+ description={theta (variant)},
+ identifier={mathgreek}
+}
+
+@symbol{varkappa,
+ name={\ensuremath{\varkappa}},
+ description={kappa (variant)},
+ identifier={mathgreek}
+}
+
+@symbol{phi,
+ name={\ensuremath{\phi}},
+ description={phi},
+ identifier={mathgreek}
+}
+
+@symbol{varrho,
+ name={\ensuremath{\varrho}},
+ description={rho (variant)},
+ identifier={mathgreek}
+}
+
+@symbol{varpi,
+ name={\ensuremath{\varpi}},
+ description={pi (variant)},
+ identifier={mathgreek}
+}
+
diff --git a/support/bib2gls/examples/mathsobjects.bib b/support/bib2gls/examples/mathsobjects.bib
new file mode 100644
index 0000000000..5aa84e70cb
--- /dev/null
+++ b/support/bib2gls/examples/mathsobjects.bib
@@ -0,0 +1,154 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+% requires amssymb.sty
+
+@preamble{"\providecommand{\setfmt}[1]{\mathcal{#1}}
+\providecommand{\setcontentsfmt}[1]{\{#1\}}
+\providecommand{\setmembershipfmt}[2]{\setcontentsfmt{#1: #2}}
+\providecommand{\setmembershiponeargfmt}[1]{\setmembershipfmt#1}
+\providecommand{\setcardfmt}[1]{\lvert#1\rvert}
+\providecommand{\numspacefmt}[1]{\mathbb{#1}}
+\providecommand{\transposefmt}[1]{#1^T}
+\providecommand{\invfmt}[1]{#1^{-1}}
+\providecommand{\vecfmt}[1]{\boldsymbol{#1}}
+\providecommand{\mtxfmt}[1]{\boldsymbol{#1}}"}
+
+@symbol{set,
+ name={\ensuremath{\setfmt{S}}},
+ description={\sortart{a}{set}},
+ format={setfmt},
+ identifier={set}
+}
+
+@symbol{setcontents,
+ name={\ensuremath{\setcontentsfmt{\ldots}}},
+ description={set contents},
+ format={setcontentsfmt},
+ identifier={set}
+}
+
+@symbol{setmembership,
+ name={\ensuremath{\setmembershipfmt{\vecfmt{x}}{\ldots}}},
+ description={set membership},
+ format={setmembershiponeargfmt},
+ identifier={set}
+}
+
+@symbol{setcard,
+ name={\ensuremath{\setcardfmt{\setfmt{S}}}},
+ description={\sortart{the}{cardinality of $\setfmt{S}$}},
+ format={setcardfmt},
+ identifier={set}
+}
+
+@symbol{numberspace,
+ name={\ensuremath{\numspacefmt{S}}},
+ description={\sortart{a}{number space}},
+ format={numspacefmt},
+ identifier={numberspace}
+}
+
+@symbol{naturalnumbers,
+ name={\ensuremath{\numspacefmt{N}}},
+ description={\sortart{the}{set of natural numbers}},
+ identifier={numberspace}
+}
+
+@symbol{integernumbers,
+ name={\ensuremath{\numspacefmt{Z}}},
+ description={\sortart{the}{set of integers}},
+ identifier={numberspace}
+}
+
+@symbol{rationalnumbers,
+ name={\ensuremath{\numspacefmt{Q}}},
+ description={\sortart{the}{set of rational numbers}},
+ identifier={numberspace}
+}
+
+@symbol{algebraicnumbers,
+ name={\ensuremath{\numspacefmt{A}}},
+ description={\sortart{the}{set of algebraic numbers}},
+ identifier={numberspace}
+}
+
+@symbol{realnumbers,
+ name={\ensuremath{\numspacefmt{R}}},
+ description={\sortart{the}{set of real numbers}},
+ identifier={numberspace}
+}
+
+@symbol{imaginarynumbers,
+ name={\ensuremath{\numspacefmt{I}}},
+ description={\sortart{the}{set of imaginary numbers}},
+ identifier={numberspace}
+}
+
+@symbol{complexnumbers,
+ name={\ensuremath{\numspacefmt{C}}},
+ description={\sortart{the}{set of complex numbers}},
+ identifier={numberspace}
+}
+
+@symbol{emptyset,
+ name={\ensuremath{\emptyset}},
+ description={\sortart{the}{empty set}},
+ identifier={set}
+}
+
+@symbol{universalset,
+ name={\ensuremath{\setfmt{U}}},
+ description={\sortart{the}{universal set}},
+ identifier={set}
+}
+
+@symbol{transpose,
+ name={\ensuremath{\transposefmt{\vecfmt{x}}}},
+ description={\sortart{the}{transpose of $\vecfmt{x}$}},
+ format={transposefmt},
+ identifier={matrix}
+}
+
+@symbol{inverse,
+ name={\ensuremath{\invfmt{\mtxfmt{M}}}},
+ description={\sortart{the}{inverse of $\mtxfmt{M}$}},
+ format={invfmt},
+ identifier={matrix}
+}
+
+@symbol{vector,
+ name={\ensuremath{\vecfmt{v}}},
+ description={\sortart{a}{vector}},
+ format={vecfmt},
+ identifier={matrix}
+}
+
+@symbol{matrix,
+ name={\ensuremath{\mtxfmt{M}}},
+ description={\sortart{a}{matrix}},
+ format={mtxfmt},
+ identifier={matrix}
+}
+
+@symbol{0vec,
+ name={\ensuremath{\vecfmt{0}}},
+ description={\sortart{the}{vector of 0s}},
+ identifier={matrix}
+}
+
+@symbol{1vec,
+ name={\ensuremath{\vecfmt{1}}},
+ description={\sortart{the}{vector of 1s}},
+ identifier={matrix}
+}
+
+@symbol{identitymatrix,
+ name={\ensuremath{\mtxfmt{I}}},
+ description={\sortart{the}{identity matrix}},
+ identifier={matrix}
+}
+
diff --git a/support/bib2gls/examples/mathsrelations.bib b/support/bib2gls/examples/mathsrelations.bib
new file mode 100644
index 0000000000..a9d68d99b4
--- /dev/null
+++ b/support/bib2gls/examples/mathsrelations.bib
@@ -0,0 +1,83 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@symbol{leq,
+ name={$\leq$},
+ text={\leq},
+ description={less than or equal to},
+ identifier={relation}
+}
+
+@symbol{less,
+ name={$<$},
+ text={<},
+ description={less than},
+ identifier={relation}
+}
+
+@symbol{ll,
+ name={$\ll$},
+ text={\ll},
+ description={much less than},
+ identifier={relation}
+}
+
+@symbol{geq,
+ name={$\geq$},
+ text={\geq},
+ description={greater than or equal to},
+ identifier={relation}
+}
+
+@symbol{greater,
+ name={$>$},
+ text={>},
+ description={greater than},
+ identifier={relation}
+}
+
+@symbol{gg,
+ name={$\gg$},
+ text={\gg},
+ description={much greater than},
+ identifier={relation}
+}
+
+@symbol{equals,
+ name={$=$},
+ text={=},
+ description={equals},
+ identifier={relation}
+}
+
+@symbol{neq,
+ name={$\neq$},
+ text={\neq},
+ description={not equals},
+ identifier={relation}
+}
+
+@symbol{approx,
+ name={$\approx$},
+ text={\approx},
+ description={approximately},
+ identifier={relation}
+}
+
+@symbol{in,
+ name={$\in$},
+ text={\in},
+ description={in},
+ identifier={relation}
+}
+
+@symbol{ni,
+ name={$\ni$},
+ text={\ni},
+ description={not in},
+ identifier={relation}
+}
+
diff --git a/support/bib2gls/examples/minerals.bib b/support/bib2gls/examples/minerals.bib
new file mode 100644
index 0000000000..373f78332e
--- /dev/null
+++ b/support/bib2gls/examples/minerals.bib
@@ -0,0 +1,126 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@entry{quartz,
+ name={quartz},
+ description={hard mineral consisting of silica},
+ identifier={mineral}
+}
+
+@entry{corundum,
+ name={corundum},
+ description={crystalline form of aluminium oxide},
+ identifier={mineral}
+}
+
+@entry{beryl,
+ name={beryl},
+ description={composed of beryllium aluminium cyclosilicate},
+ identifier={mineral}
+}
+
+@entry{amethyst,
+ name={amethyst},
+ description={purple variety of \gls{quartz}},
+ identifier={mineral}
+}
+
+@entry{chalcedony,
+ name={chalcedony},
+ description={cryptocrystalline variety of \gls{quartz}},
+ identifier={mineral}
+}
+
+@entry{citrine,
+ name={citrine},
+ description={yellow variety of \gls{quartz}},
+ identifier={mineral}
+}
+
+@entry{aquamarine,
+ name={aquamarine},
+ description={light blue variety of \gls{beryl}},
+ identifier={mineral}
+}
+
+@entry{aragonite,
+ name={aragonite},
+ description={a crystal form of calcium carbonate},
+ identifier={mineral}
+}
+
+@entry{calcite,
+ name={calcite},
+ description={a crystal form of calcium carbonate},
+ identifier={mineral}
+}
+
+@entry{vaterite,
+ name={vaterite},
+ description={a crystal form of calcium carbonate},
+ identifier={mineral}
+}
+
+@entry{bakerite,
+ name={bakerite},
+ description={a borosilicate mineral},
+ identifier={mineral}
+}
+
+@entry{bilinite,
+ name={bílinite},
+ description={an iron sulfate mineral},
+ identifier={mineral}
+}
+
+@entry{biotite,
+ name={biotite},
+ description={a common phyllosilicate mineral},
+ identifier={mineral}
+}
+
+@entry{cobaltite,
+ name={cobaltite},
+ description={a sulfide mineral composed of cobalt, arsenic and
+ sulfur},
+ identifier={mineral}
+}
+
+@entry{cyanotrichite,
+ name={cyanotrichite},
+ description={a hydrous copper aluminium sulfate mineral},
+ identifier={mineral}
+}
+
+@index{lettsomite,
+ alias={cyanotrichite},
+ identifier={mineral}
+}
+
+@entry{diamond,
+ name={diamond},
+ description={a metastable allotrope of carbon},
+ identifier={mineral}
+}
+
+@entry{dolomite,
+ name={dolomite},
+ description={an anhydrous carbonate mineral},
+ identifier={mineral}
+}
+
+@entry{quetzalcoatlite,
+ name={quetzalcoatlite},
+ description={a rare tellurium oxysalt mineral},
+ identifier={mineral}
+}
+
+@entry{vulcanite,
+ name={vulcanite},
+ description={a rare copper telluride mineral},
+ identifier={mineral}
+}
+
diff --git a/support/bib2gls/examples/miscsymbols.bib b/support/bib2gls/examples/miscsymbols.bib
new file mode 100644
index 0000000000..09410b7232
--- /dev/null
+++ b/support/bib2gls/examples/miscsymbols.bib
@@ -0,0 +1,140 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+% requires marvosym.sty and ifsym.sty
+
+@icon{forward,
+ icon={\Forward},
+ icondescription={play},
+ identifier={mediacontrol}
+}
+
+@icon{forwardtoindex,
+ icon={\ForwardToIndex},
+ icondescription={next track},
+ identifier={mediacontrol}
+}
+
+@icon{rewindtoindex,
+ icon={\RewindToIndex},
+ icondescription={back to start of track},
+ identifier={mediacontrol}
+}
+
+@icon{rewind,
+ icon={\Rewind},
+ icondescription={rewind},
+ identifier={mediacontrol}
+}
+
+@icon{bicycle,
+ icon={\Bicycle},
+ icondescription={bicycle route},
+ identifier={information}
+}
+
+@icon{coffeecup,
+ icon={\Coffeecup},
+ icondescription={caf\'e},
+ identifier={information}
+}
+
+@icon{info,
+ icon={\Info},
+ icondescription={information centre},
+ identifier={information}
+}
+
+@icon{gentsroom,
+ icon={\Gentsroom},
+ icondescription={Gents},
+ identifier={information}
+}
+
+@icon{ladiesroom,
+ icon={\Ladiesroom},
+ icondescription={Ladies},
+ identifier={information}
+}
+
+@icon{wheelchair,
+ icon={\Wheelchair},
+ icondescription={wheelchair access provided},
+ identifier={information}
+}
+
+@icon{football,
+ icon={\Football},
+ icondescription={football stadium},
+ identifier={information}
+}
+
+@icon{recycling,
+ icon={\Recycling},
+ icondescription={recycling centre},
+ identifier={information}
+}
+
+@icon{cloud,
+ icon={\Cloud},
+ icondescription={cloudy},
+ identifier={weather}
+}
+
+@icon{fog,
+ icon={\Fog},
+ icondescription={foggy},
+ identifier={weather}
+}
+
+@icon{thinfog,
+ icon={\ThinFog},
+ icondescription={misty},
+ identifier={weather}
+}
+
+@icon{hail,
+ icon={\Hail},
+ icondescription={hail},
+ identifier={weather}
+}
+
+@icon{sun,
+ icon={\Sun},
+ icondescription={sunny},
+ identifier={weather}
+}
+
+@icon{lightning,
+ icon={\Lightning},
+ icondescription={thunderstorm},
+ identifier={weather}
+}
+
+@icon{suncloud,
+ icon={\SunCloud},
+ icondescription={overcast},
+ identifier={weather}
+}
+
+@icon{raincloud,
+ icon={\RainCloud},
+ icondescription={rain},
+ identifier={weather}
+}
+
+@icon{weakraincloud,
+ icon={\WeakRainCloud},
+ icondescription={drizzle},
+ identifier={weather}
+}
+
+@icon{snowcloud,
+ icon={\SnowCloud},
+ icondescription={snow},
+ identifier={weather}
+}
+
diff --git a/support/bib2gls/examples/no-interpret-preamble.bib b/support/bib2gls/examples/no-interpret-preamble.bib
new file mode 100644
index 0000000000..570f890da6
--- /dev/null
+++ b/support/bib2gls/examples/no-interpret-preamble.bib
@@ -0,0 +1,10 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@preamble{"\providecommand{\sortname}[2]{#1 #2}
+\providecommand{\sortvonname}[3]{#1 #2 #3}
+\providecommand{\sortart}[2]{#1 #2}
+\providecommand{\sortmediacreator}[2]{#1 #2}"}
diff --git a/support/bib2gls/examples/people.bib b/support/bib2gls/examples/people.bib
new file mode 100644
index 0000000000..86fb9b7427
--- /dev/null
+++ b/support/bib2gls/examples/people.bib
@@ -0,0 +1,192 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@entry{caesar,
+ name={\sortname{Gaius Julius}{Caesar}},
+ first={\sortname{Julius}{Caesar}},
+ text={Caesar},
+ description={Roman politician and general},
+ born={13~July 100 BC},
+ died={15~March 44 BC},
+ identifier={person}
+}
+
+@entry{wellesley,
+ name={\sortname{Arthur}{Wellesley}},
+ text={Wellington},
+ description={Anglo-Irish soldier and statesman},
+ born={1~May 1769 AD},
+ died={14~September 1852 AD},
+ othername={1st Duke of Wellington},
+ identifier={person}
+}
+
+@index{wellington,
+ name={Wellington},
+ alias={wellesley},
+ identifier={person}
+}
+
+@entry{bonaparte,
+ name={\sortname{Napoleon}{Bonaparte}},
+ text={Bonaparte},
+ description={French military and political leader},
+ born={15~July 1769 AD},
+ died={5~May 1821 AD},
+ identifier={person}
+}
+
+@entry{alexander,
+ name={Alexander III of Macedon},
+ text={Alexander},
+ description={Ancient Greek king of Macedon},
+ born={20~July 356 BC},
+ died={10~June 323 BC},
+ othername={Alexander the Great},
+ identifier={person}
+}
+
+@index{alexanderthegreat,
+ name={Alexander the Great},
+ alias={alexander},
+ identifier={person}
+}
+
+@entry{vonrichthofen,
+ name={\sortvonname{Manfred}{von}{Richthofen}},
+ text={von Richthofen},
+ description={Prussian ace fighter pilot in the German Air Force
+ during World War~I},
+ born={2~May 1892 AD},
+ died={21~April 1918 AD},
+ othername={The Red Baron},
+ identifier={person}
+}
+
+@index{redbaron,
+ name={\sortart{The}{Red Baron}},
+ alias={vonrichthofen},
+ identifier={person}
+}
+
+@entry{dickens,
+ name={\sortname{Charles}{Dickens}},
+ text={Dickens},
+ description={English writer and social critic},
+ born={7~February 1812 AD},
+ died={9~June 1870 AD},
+ identifier={person}
+}
+
+@entry{chandler,
+ name={\sortname{Raymond}{Chandler}},
+ text={Chandler},
+ description={American-British novelist and screenwriter},
+ born={23~July 1888 AD},
+ died={26~March 1959 AD},
+ identifier={person}
+}
+
+@entry{hammett,
+ name={\sortname{Samuel Dashiell}{Hammett}},
+ first={\sortname{Dashiell}{Hammett}},
+ text={Hammett},
+ description={American author, screenwriter and political
+ activist},
+ born={27~May 1894 AD},
+ died={10~January 1961 AD},
+ identifier={person}
+}
+
+@entry{christie,
+ name={\sortname{Dame Agatha Mary Clarissa}{Christie}},
+ first={\sortname{Agatha}{Christie}},
+ text={Christie},
+ othername={Lady Mallowan},
+ description={English crime novelist and playwright},
+ born={15~September 1890 AD},
+ died={12~January 1976 AD},
+ identifier={person}
+}
+
+@entry{landon,
+ name={\sortname{Christopher Guy}{Landon}},
+ first={\sortname{Christopher}{Landon}},
+ text={Landon},
+ description={British novelist and screenwriter},
+ born={29~March 1911 AD},
+ died={26~April 1961 AD},
+ identifier={person}
+}
+
+@entry{tolkien,
+ name={\sortname{John Ronald Reuel}{Tolkien}},
+ first={\sortname{J.R.R.}{Tolkien}},
+ text={Tolkien},
+ description={English writer, poet, philologist, and
+ university professor},
+ born={3~January 1892 AD},
+ died={2~September 1973 AD},
+ identifier={person}
+}
+
+@entry{baum,
+ name={\sortname{Lyman Frank}{Baum}},
+ first={\sortname{L.~Frank}{Baum}},
+ text={Baum},
+ description={American author},
+ born={15~May 1856 AD},
+ died={6~May 1919 AD},
+ identifier={person}
+}
+
+@entry{mackenzie,
+ name={\sortname{Compton}{Mackenzie}},
+ text={Mackenzie},
+ description={English-born Scottish writer, cultural
+ commentator, raconteur and Scottish nationalist},
+ born={17~January 1883 AD},
+ died={30~November 1972 AD},
+ identifier={person}
+}
+
+@entry{maclean,
+ name={\sortname{Alistair}{MacLean}},
+ text={MacLean},
+ description={Scottish novelist},
+ born={21~April 1922 AD},
+ died={2~February 1987 AD},
+ identifier={person}
+}
+
+@entry{dick,
+ name={\sortname{Philip K.}{Dick}},
+ text={Dick},
+ description={American science fiction writer},
+ born={16~December 1928 AD},
+ died={2~March 1982 AD},
+ identifier={person}
+}
+
+@entry{story,
+ name={\sortname{Jack Trevor}{Story}},
+ text={Story},
+ description={British novelist},
+ born={30~March 1917 AD},
+ died={5~December 1991 AD},
+ identifier={person}
+}
+
+@entry{greene,
+ name={\sortname{Henry Graham}{Green}},
+ first={\sortname{Graham}{Greene}},
+ text={Green},
+ description={English novelist},
+ born={2~October 1904 AD},
+ died={3~April 1991 AD},
+ identifier={person}
+}
+
diff --git a/support/bib2gls/examples/sample-authors.pdf b/support/bib2gls/examples/sample-authors.pdf
new file mode 100644
index 0000000000..391edd5c4c
--- /dev/null
+++ b/support/bib2gls/examples/sample-authors.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-authors.tex b/support/bib2gls/examples/sample-authors.tex
new file mode 100644
index 0000000000..ee53973f03
--- /dev/null
+++ b/support/bib2gls/examples/sample-authors.tex
@@ -0,0 +1,50 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[12pt,a4paper]{article}
+
+\usepackage[colorlinks]{hyperref}
+\usepackage[record,% using bib2gls
+nostyles,% don't load default styles
+stylemods={bookindex},% load glossary-bookindex and patch styles
+style=bookindex]{glossaries-extra}
+
+\GlsXtrLoadResources[
+ src=no-interpret-preamble,
+ interpret-preamble=false
+]
+
+\GlsXtrLoadResources[
+ src={interpret-preamble2,people,books},
+ write-preamble=false,
+ interpret-label-fields,
+ field-aliases={identifier=category,author=parent},
+ check-end-punctuation={name},
+ replicate-fields={name={first}}
+]
+
+\newcommand*{\bookfont}[1]{\emph{#1}}
+\glssetcategoryattribute{book}{textformat}{bookfont}
+\glssetcategoryattribute{book}{glossnamefont}{bookfont}
+
+% requires glossaries-extra v1.23
+\renewcommand*{\glsxtrifcustomdiscardperiod}[2]{%
+ \GlsXtrIfFieldUndef{nameendpunc}{\glslabel}{#2}{#1}%
+}
+
+\begin{document}
+\section{Sample}
+
+\gls{ataleoftwocities}. \gls{bleakhouse}. \gls{thebigsleep}.
+\gls{thelonggoodbye}. \gls{redharvest}.
+\gls{murderontheorientexpress}. \gls{whydidnttheyaskevans}.
+\gls{icecoldinalex}. \gls{thehobbit}. \gls{thelordoftherings}.
+\gls{thewonderfulwizardofoz}. \gls{whiskygalore}.
+\gls{whereeaglesdare}. \gls{icestationzebra}. \gls{ubik}.
+\gls{doandroidsdreamofelectricsheep}. \gls{thetroublewithharry}.
+\gls{brightonrock}.
+
+\printunsrtglossary[title={Author and Book List}]
+
+\end{document}
diff --git a/support/bib2gls/examples/sample-bacteria.pdf b/support/bib2gls/examples/sample-bacteria.pdf
new file mode 100644
index 0000000000..b42fe0ce03
--- /dev/null
+++ b/support/bib2gls/examples/sample-bacteria.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-bacteria.tex b/support/bib2gls/examples/sample-bacteria.tex
new file mode 100644
index 0000000000..7acd01f4ec
--- /dev/null
+++ b/support/bib2gls/examples/sample-bacteria.tex
@@ -0,0 +1,51 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[12pt,a4paper]{article}
+
+\usepackage[T1]{fontenc}
+
+\usepackage[record,% use bib2gls
+ nostyles,% don't load default styles
+% load glossary-bookindex.sty and patch styles:
+ stylemods={bookindex},
+ style=bookindex]{glossaries-extra}
+
+% abbreviation style must be set before \GlsXtrLoadResources
+\setabbreviationstyle[bacteria]{long-only-short-only}
+
+\GlsXtrLoadResources[
+ src=bacteria,% data in bacteria.bib
+ category=bacteria,
+ abbreviation-sort-fallback=long
+]
+
+\newcommand{\bacteriafont}[1]{\emph{#1}}
+
+\glssetcategoryattribute{bacteria}{textformat}{bacteriafont}
+\glssetcategoryattribute{bacteria}{glossnamefont}{bacteriafont}
+
+\renewcommand*{\glsxtrbookindexname}[1]{%
+ \glsifcategory{#1}{bacteria}
+ {\glossentrynameother{#1}{long}}%
+ {\glossentryname{#1}}%
+}
+
+\begin{document}
+\section{First Use}
+
+\gls{cbotulinum}, \gls{pputida}, \gls{cperfringens},
+\gls{bsubtilis}, \gls{ctetani}, \gls{pcomposti},
+\gls{pfimeticola}, \gls{cburnetii}, \gls{raustralis},
+\gls{rrickettsii}.
+
+\section{Next Use}
+
+\gls{cbotulinum}, \gls{pputida}, \gls{cperfringens},
+\gls{bsubtilis}, \gls{ctetani}, \gls{pcomposti},
+\gls{pfimeticola}, \gls{cburnetii}, \gls{raustralis},
+\gls{rrickettsii}.
+
+\printunsrtglossary[title={Bacteria Index}]
+\end{document}
diff --git a/support/bib2gls/examples/sample-chemical.pdf b/support/bib2gls/examples/sample-chemical.pdf
new file mode 100644
index 0000000000..415f4aa092
--- /dev/null
+++ b/support/bib2gls/examples/sample-chemical.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-chemical.tex b/support/bib2gls/examples/sample-chemical.tex
new file mode 100644
index 0000000000..9533049146
--- /dev/null
+++ b/support/bib2gls/examples/sample-chemical.tex
@@ -0,0 +1,38 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[a4paper]{article}
+
+\usepackage[T1]{fontenc}
+\usepackage[version=4]{mhchem}
+\usepackage[record,% use bib2gls
+ nostyles,% don't load default styles
+ stylemods={tree},% load glossary-tree and patch styles
+ style=alttreegroup]{glossaries-extra}
+
+\GlsXtrLoadResources[
+ src={chemicalformula},% definitions in chemicalformula.bib
+ entry-type-aliases={chemical=symbol},
+ field-aliases={formula=name,chemicalname=description},
+ symbol-sort-fallback=name,% use name field as fallback for sort
+ sort=letternumber-case,% case-sensitive letter-number sort
+ set-widest,% needed for alttree styles
+ save-locations=false% don't create location lists
+]
+
+\renewcommand*{\glstreenamefmt}[1]{#1}
+\renewcommand*{\glstreegroupheaderfmt}[1]{\textbf{#1}}
+
+\begin{document}
+\section{Sample}
+
+Reference Entries: \gls{Al2SO43}, \gls{H2O}, \gls{C6H12O6},
+\gls{CH3CH2OH}, \gls{CH2O}, \gls{OF2}, \gls{O2F2}, \gls{SO42-},
+\gls{H3O+}, \gls{OH-}, \gls{O2}, \gls{AlF3}, \gls{O},
+\gls{Al2CoO4}, \gls{As4S4}, \gls{C10H10O4}, \gls{C5H4NCOOH},
+\gls{C8H10N4O2}, \gls{SO2}, \gls{S2O72-}, \gls{SbBr3},
+\gls{Sc2O3}, \gls{Zr3PO44}, \gls{ZnF2}.
+
+\printunsrtglossary
+\end{document}
diff --git a/support/bib2gls/examples/sample-citations.pdf b/support/bib2gls/examples/sample-citations.pdf
new file mode 100644
index 0000000000..26d9b7bb3d
--- /dev/null
+++ b/support/bib2gls/examples/sample-citations.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-citations.tex b/support/bib2gls/examples/sample-citations.tex
new file mode 100644
index 0000000000..3cf9fd14a0
--- /dev/null
+++ b/support/bib2gls/examples/sample-citations.tex
@@ -0,0 +1,70 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% bib2gls must be run with the --cite-as-record switch
+
+\documentclass[12pt,a4paper]{article}
+
+\usepackage[record,% using bib2gls
+nomain,% don't define main glossary
+postdot,% full stop after descriptions
+nostyles,% don't load default styles
+% load glossary-tree and glossary-list and patch styles:
+stylemods={tree,list}
+]{glossaries-extra}
+
+\newglossary*{contributors}{Authors}
+\newglossary*{titles}{Titles}
+
+\newcommand{\bibglsnewbibtexentry}[4]{%
+ \longnewglossaryentry*{#1}{name={#3},#2,type={titles}}{#4}%
+}
+
+\GlsXtrLoadResources[
+ src={citations},% data in citations.bib
+ entry-type-aliases={\GlsXtrBibTeXEntryAliases},
+ field-aliases={
+ title=name
+ },
+ type={contributors},
+ category={same as original entry},
+ sort-field={category},
+ sort-suffix={name}
+]
+
+\glsxtrsetgrouptitle{article}{Articles}
+\glsxtrsetgrouptitle{book}{Books}
+
+\newcommand{\contributorhandler}[1]{\par\glsentryname{#1} \cite{#1}}
+
+\newcommand{\glsxtrpostdesccontributor}{%
+ \glsxtrifhasfield{bibtexentry}{\glscurrententrylabel}%
+ {%
+ \glsxtrfieldforlistloop
+ {\glscurrententrylabel}{bibtexentry}%
+ {\contributorhandler}%
+ }%
+ {\par No titles.}%
+}
+
+\newcommand{\glsxtrpostdescarticle}{\cite{\glscurrententrylabel}}
+\newcommand{\glsxtrpostdescbook}{\cite{\glscurrententrylabel}}
+
+\begin{document}
+This is a sample document with some citations~\cite{macaw,parrot}
+and some more citations~\cite{duck2018,duck2016} and don't
+forget~\cite{ing,parrot2012} and lastly~\cite{quackalot}.
+
+\printunsrtglossary[type=contributors,style=altlist]
+\printunsrtglossary*[type=titles,style=indexgroup]
+{%
+ \renewcommand{\glsxtrgroupfield}{category}%
+ \renewcommand{\glstreenamefmt}[1]{\emph{#1}}%
+ \renewcommand{\glstreegroupheaderfmt}[1]{\textbf{#1}}%
+}
+
+\bibliographystyle{unsrt}
+\bibliography{citations}
+
+\end{document}
diff --git a/support/bib2gls/examples/sample-constants.pdf b/support/bib2gls/examples/sample-constants.pdf
new file mode 100644
index 0000000000..d650ceed9b
--- /dev/null
+++ b/support/bib2gls/examples/sample-constants.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-constants.tex b/support/bib2gls/examples/sample-constants.tex
new file mode 100644
index 0000000000..7758b419d3
--- /dev/null
+++ b/support/bib2gls/examples/sample-constants.tex
@@ -0,0 +1,57 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[12pt,a4paper]{article}
+
+\usepackage[T1]{fontenc}
+\usepackage{upgreek}
+
+\usepackage[record,% use bib2gls
+ nostyles,% don't load default styles
+ postdot,% add dot after descriptions
+% load glossary-tree.sty and patch styles:
+ stylemods={tree},
+ style=alttree]{glossaries-extra}
+
+\GlsXtrLoadResources[
+ src={constants},% data in constants.bib
+ % make @constant behave like @number
+ entry-type-aliases={constant=number},
+ field-aliases={
+ identifier=category,
+ constantsymbol=name,
+ constantname=description,
+ value=user1,
+ definition=user2,
+ alternative=user3
+ },
+ type=main,
+ set-widest,
+ sort-field=user1,
+ missing-sort-fallback=name,
+ sort=double,
+ selection=all
+]
+
+\newcommand{\glsxtrpostdescconstant}{%
+ \glsxtrifhasfield{useriii}{\glscurrententrylabel}%
+ { (also denoted \glscurrentfieldvalue
+ \glsxtrifhasfield{useri}{\glscurrententrylabel}%
+ {, approximately \glscurrentfieldvalue}%
+ {}%
+ )%
+ }%
+ {%
+ \glsxtrifhasfield{useri}{\glscurrententrylabel}%
+ { (approximately \glscurrentfieldvalue)}%
+ {}%
+ }%
+ \glsxtrifhasfield{userii}{\glscurrententrylabel}%
+ {: \glscurrentfieldvalue}%
+ {}%
+}
+
+\begin{document}
+\printunsrtglossary[title={Constants}]
+\end{document}
diff --git a/support/bib2gls/examples/sample-markuplanguages.pdf b/support/bib2gls/examples/sample-markuplanguages.pdf
new file mode 100644
index 0000000000..f06a07262a
--- /dev/null
+++ b/support/bib2gls/examples/sample-markuplanguages.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-markuplanguages.tex b/support/bib2gls/examples/sample-markuplanguages.tex
new file mode 100644
index 0000000000..aba4cbf219
--- /dev/null
+++ b/support/bib2gls/examples/sample-markuplanguages.tex
@@ -0,0 +1,55 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[fontsize=12pt]{scrartcl}
+
+\usepackage[T1]{fontenc}
+
+\usepackage[colorlinks]{hyperref}
+\usepackage[record,% use bib2gls
+ nostyles,% don't load default styles
+% load glossary-tree.sty and patch styles:
+ stylemods={tree},
+ style=treegroup]{glossaries-extra}
+
+% abbreviation style must be set before \GlsXtrLoadResources
+\setabbreviationstyle[markuplanguage]{long-short-desc}
+
+\GlsXtrEnableInitialTagging{markuplanguage}{\abbrvtag}
+
+\renewcommand*{\glsxtrlongshortdescname}{%
+ \protect\protect\glsabbrvfont{\the\glsshorttok}\space
+ \glsxtrparen{\glslongfont{\the\glslongtok}}%
+}
+
+\GlsXtrLoadResources[
+ src=markuplanguages,% data in markuplanguages.bib
+ loc-suffix,
+ category=markuplanguage,
+ description-case-change=firstuc
+]
+
+\newcommand{\glsxtrpostdescmarkuplanguage}{%
+ \glsxtrifhasfield{location}{\glscurrententrylabel}%
+ {,}%
+ {.}%
+}
+
+\glssetcategoryattribute{markuplanguage}{glossname}{firstuc}
+
+\renewcommand*{\glsxtrtagfont}[1]{\underline{\MakeTextUppercase{#1}}}
+
+\begin{document}
+
+\section{First Use}
+
+\gls{LaTeX}, \gls{markdown}, \gls{xhtml}, \gls{mathml}, \gls{svg}.
+
+\section{Next Use}
+
+\gls{LaTeX}, \gls{markdown}, \gls{xhtml}, \gls{mathml}, \gls{svg}.
+
+\GlsXtrSetDefaultNumberFormat{glsignore}
+\printunsrtglossary
+\end{document}
diff --git a/support/bib2gls/examples/sample-maths.pdf b/support/bib2gls/examples/sample-maths.pdf
new file mode 100644
index 0000000000..8a6db9d368
--- /dev/null
+++ b/support/bib2gls/examples/sample-maths.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-maths.tex b/support/bib2gls/examples/sample-maths.tex
new file mode 100644
index 0000000000..677c3bea12
--- /dev/null
+++ b/support/bib2gls/examples/sample-maths.tex
@@ -0,0 +1,97 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[a4paper]{article}
+
+\usepackage[T1]{fontenc}
+\usepackage{amssymb}
+
+\usepackage[colorlinks]{hyperref}
+\usepackage[record,% using bib2gls
+ nostyles,% don't load default styles
+ postdot,% append a dot after descriptions
+ stylemods={mcols},% load glossary-mcols.sty and patch
+ style=mcolalttree]{glossaries-extra}
+
+\GlsXtrLoadResources[
+ src={no-interpret-preamble},
+ interpret-preamble=false
+]
+
+\GlsXtrLoadResources[
+ src={interpret-preamble,bigmathsymbols,mathsobjects},
+ sort-field={category},
+ identical-sort-action={description},
+ field-aliases={identifier=category,format=user1},
+ replicate-fields={category=group},
+ set-widest,
+ save-locations=false
+]
+
+\renewcommand{\GlsXtrFmtDefaultOptions}{}
+
+% requires glossaries-extra.sty v1.23+
+\newcommand{\set}[2][]{\glsxtrfmt*[#1]{set}{#2}}
+\newcommand{\nlset}[1]{\glsxtrentryfmt{set}{#1}}
+\newcommand*{\setcontents}[2][]{\glsxtrfmt*[#1]{setcontents}{#2}}
+\newcommand*{\setmembership}[2]{\glsxtrfmt*{setmembership}{{#1}{#2}}}
+\newcommand*{\setcard}[2][]{\glsxtrfmt*[#1]{setcard}{#2}}
+\newcommand*{\nlsetcard}[1]{\glsxtrentryfmt{setcard}{#1}}
+\newcommand*{\transpose}[2][]{\glsxtrfmt*[#1]{transpose}{#2}}
+\newcommand*{\nltranspose}[1]{\glsxtrentryfmt{transpose}{#1}}
+\newcommand*{\inv}[2][]{\glsxtrfmt*[#1]{inverse}{#2}}
+\newcommand*{\nlinv}[1]{\glsxtrentryfmt{inverse}{#1}}
+\newcommand*{\Vtr}[2][]{\glsxtrfmt[#1]{vector}{#2}}
+\newcommand*{\nlVtr}[1]{\glsxtrentryfmt{vector}{#1}}
+\newcommand*{\Mtx}[2][]{\glsxtrfmt[#1]{matrix}{#2}}
+\newcommand*{\nlMtx}[1]{\glsxtrentryfmt{matrix}{#1}}
+
+\begin{document}
+\section{Sets}
+The universal set ($\gls{universalset}$) contains everything.
+The empty set ($\gls{emptyset}$) contains nothing.
+Some assignments:
+\[
+ \set{B}[_1] = \setcontents{1, 3, 5, 7},\quad
+ \set{B}[_2] = \setcontents{2, 4, 6, 8},\quad
+ \set{B}[_3] = \setcontents{9, 10}
+\]
+Define:
+\[\set{A} = \gls{bigcup}[_{i=1}^3] \set{B}[_i]
+= \setcontents{1, \ldots, 10} \]
+The cardinality of a set \gls{set} is denoted \gls{setcard}
+and is the number of elements in the set.
+\[
+ \setcard{\nlset{B}_1} = 4,\quad
+ \setcard{\nlset{B}_2} = 4,\quad
+ \setcard{\nlset{B}_3} = 2,\quad
+ \setcard{\nlset{B}_1\cup\nlset{B}_2} = 8,\quad
+ \nlsetcard{\gls{emptyset}} = 0
+\]
+
+\section{Spaces}
+A number space (denoted $\gls{numberspace}$) is characterised
+by a set of entities with a set of axioms. For example:
+\begin{align*}
+\gls{naturalnumbers}
+ &= \setmembership{x}{x\text{ is positive integer}}\\
+\gls{integernumbers}
+ &= \setmembership{x}{x\text{ is an integer}}\\
+\gls{realnumbers}
+ &= \setmembership{x}{x\text{ is a real number}}
+\end{align*}
+
+\section{Vectors and Matrices}
+
+A matrix (denoted \gls{matrix}) is a rectangular array of values.
+A vector (denoted \gls{vector}) is a column or row of values (that
+is a one-dimensional matrix).
+\[
+ \gls{identitymatrix}\Vtr{x} = \Vtr{x},\quad
+ \Mtx{A}\inv{\nlMtx{A}} = \gls{identitymatrix},\quad
+ \inv{\nlVtr{x}}\gls{1vec} = \gls{sum}[_i] x_i
+\]
+
+\printunsrtglossaries
+\end{document}
diff --git a/support/bib2gls/examples/sample-media.pdf b/support/bib2gls/examples/sample-media.pdf
new file mode 100644
index 0000000000..57b1cd6c75
--- /dev/null
+++ b/support/bib2gls/examples/sample-media.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-media.tex b/support/bib2gls/examples/sample-media.tex
new file mode 100644
index 0000000000..b04b93241b
--- /dev/null
+++ b/support/bib2gls/examples/sample-media.tex
@@ -0,0 +1,66 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[11pt,a4paper]{report}
+
+\usepackage[T1]{fontenc}
+\usepackage[colorlinks]{hyperref}
+\usepackage[record,% using bib2gls
+ nostyles,% don't load default styles
+ postdot,% append a dot after descriptions
+ stylemods={list},% load glossary-list.sty and fix styles
+ style=altlistgroup]{glossaries-extra}
+
+\GlsXtrLoadResources[
+ src=no-interpret-preamble,
+ interpret-preamble=false
+]
+
+\GlsXtrLoadResources[
+ src={interpret-preamble,books,films},
+ field-aliases={identifier=category,year=user1,cast=user2},
+ bibtex-contributor-fields={user2},
+ contributor-order={forenames},
+ identical-sort-action={category},
+ save-locations=false,
+ selection=all
+]
+
+% requires datatool-base.sty v2.28+:
+\renewcommand*{\DTLlistformatoxford}{,}
+\renewcommand*{\DTLandname}{and}
+
+\newcommand*{\bookfont}[1]{\emph{#1}}
+\newcommand*{\filmfont}[1]{\textsf{\em #1}}
+
+\glssetcategoryattribute{book}{textformat}{bookfont}
+\glssetcategoryattribute{book}{glossnamefont}{bookfont}
+
+\glssetcategoryattribute{film}{textformat}{filmfont}
+\glssetcategoryattribute{film}{glossnamefont}{filmfont}
+
+\newcommand*{\glsxtrpostnamebook}{%
+ \ifglshasfield{user1}{\glscurrententrylabel}%
+ {\space(published \glscurrentfieldvalue)}%
+ {}%
+}
+
+\newcommand*{\glsxtrpostnamefilm}{%
+ \ifglshasfield{user1}{\glscurrententrylabel}%
+ {\space (released \glscurrentfieldvalue)}%
+ {}%
+}
+
+\newcommand*{\glsxtrpostdescfilm}{%
+ \ifglshasfield{user2}{\glscurrententrylabel}%
+ {%
+ \glsxtrrestorepostpunc % requires glossaries-extra v1.23+
+ \ featuring \glscurrentfieldvalue
+ }%
+ {}%
+}
+
+\begin{document}
+\printunsrtglossaries
+\end{document}
diff --git a/support/bib2gls/examples/sample-msymbols.pdf b/support/bib2gls/examples/sample-msymbols.pdf
new file mode 100644
index 0000000000..9ed3e0ce93
--- /dev/null
+++ b/support/bib2gls/examples/sample-msymbols.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-msymbols.tex b/support/bib2gls/examples/sample-msymbols.tex
new file mode 100644
index 0000000000..f2b9e0df54
--- /dev/null
+++ b/support/bib2gls/examples/sample-msymbols.tex
@@ -0,0 +1,30 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[a4paper]{article}
+
+\usepackage[T1]{fontenc}
+\usepackage{stix}
+
+\usepackage[record,% using bib2gls
+ nostyles,% don't load default styles
+ postdot,% append a dot after descriptions
+ stylemods={mcols},% load glossary-mcols.sty and patch
+ style=mcolalttree]{glossaries-extra}
+
+\GlsXtrLoadResources[
+ src={bigmathsymbols,mathgreek,
+ mathsrelations,binaryoperators,unaryoperators},
+ sort-field={category},
+ identical-sort-action={description},
+ field-aliases={identifier=category},
+ replicate-fields={category=group},
+ set-widest,
+ save-locations=false,
+ selection=all
+]
+
+\begin{document}
+\printunsrtglossaries
+\end{document}
diff --git a/support/bib2gls/examples/sample-multi1.pdf b/support/bib2gls/examples/sample-multi1.pdf
new file mode 100644
index 0000000000..0928aae45a
--- /dev/null
+++ b/support/bib2gls/examples/sample-multi1.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-multi1.tex b/support/bib2gls/examples/sample-multi1.tex
new file mode 100644
index 0000000000..e3151ced73
--- /dev/null
+++ b/support/bib2gls/examples/sample-multi1.tex
@@ -0,0 +1,179 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass{scrreprt}
+
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[version=4]{mhchem}
+\usepackage{siunitx}
+\usepackage[colorlinks]{hyperref}
+
+\usepackage[record,% use bib2gls
+ section,% use \section* for glossary headings
+ postdot,% insert dot after descriptions in glossaries
+ nomain,% don't create 'main' glossary
+ index,% create 'index' glossary
+ nostyles,% don't load default styles
+% load and patch required style packages:
+ stylemods={list,mcols,tree,bookindex}
+]{glossaries-extra}
+
+\newglossary*{bacteria}{Bacteria}
+\newglossary*{markuplanguage}{Markup Languages}
+\newglossary*{vegetable}{Vegetables}
+\newglossary*{mineral}{Minerals}
+\newglossary*{animal}{Animals}
+\newglossary*{chemical}{Chemical Formula}
+\newglossary*{baseunit}{SI Units}
+\newglossary*{derivedunit}{Derived Units}
+
+% abbreviation styles must be set before \GlsXtrLoadResources:
+\setabbreviationstyle[bacteria]{long-only-short-only}
+\setabbreviationstyle[markuplanguage]{long-short-desc}
+
+% style-dependent name format must be set
+% before \GlsXtrLoadResources:
+\renewcommand*{\glsxtrlongshortdescname}{%
+ \protect\glsabbrvfont{\the\glsshorttok}\space
+ \glsxtrparen{\glslongfont{\the\glslongtok}}%
+}
+
+\GlsXtrLoadResources[
+ src={bacteria,markuplanguages,vegetables,minerals,
+ animals,chemicalformula,baseunits,derivedunits},
+ selection={recorded and deps and see},
+ set-widest,
+ type=index,
+ label-prefix={idx.},
+ dual-prefix={},
+ cs-label-prefix={},
+ combine-dual-locations={primary},
+ dual-field,
+ sort={en},
+ sort-field={name},
+ dual-type={same as category},
+ dual-sort={en},
+ dual-sort-number-pad={2},
+ dual-sort-pad-plus={1},
+ dual-sort-pad-minus={0},
+ dual-break-at=upper-upper-word,
+ entry-type-aliases={
+ abbreviation=dualindexabbreviation,
+ entry=dualindexentry,
+ symbol=dualindexsymbol,
+ unit=dualindexsymbol,
+ measurement=dualindexsymbol,
+ chemical=dualindexsymbol
+ },
+ abbreviation-name-fallback={long},
+ symbol-sort-fallback={name},
+ field-aliases={
+ identifier=category,
+ formula=symbol,
+ chemicalname=name,
+ unitname=name,
+ unitsymbol=symbol,
+ measurement=description
+ },
+]
+
+\newcommand{\bacteriafont}[1]{\emph{#1}}
+\glssetcategoryattribute{bacteria}{textformat}{bacteriafont}
+\glssetcategoryattribute{bacteria}{glossnamefont}{bacteriafont}
+\glssetcategoryattribute{bacteria}{glossdescfont}{bacteriafont}
+
+\glssetcategoryattribute{markuplanguage}{glossdesc}{firstuc}
+
+\renewcommand*{\glsxtrbookindexname}[1]{%
+ \glossentryname{#1}%
+ \ifglshassymbol{#1}%
+ {%
+ \glsifcategory{#1}{chemical}%
+ {, \glossentrysymbol{#1}}%
+ {\space(\glossentrynameother{#1}{symbol})}%
+ }%
+ {%
+ \glsifcategory{#1}{markuplanguage}%
+ {%
+ \glsxtrifhasfield{short}{\glsxtrusefield{#1}{dual}}%
+ {\space(\glscurrentfieldvalue)}%
+ {}%
+ }%
+ {}%
+ }%
+}
+
+\begin{document}
+\chapter{Sample}
+\section{Bacteria}
+\subsection{First Use}
+\gls{cbotulinum}, \gls{pputida}, \gls{cperfringens},
+\gls{bsubtilis}, \gls{ctetani}, \gls{pcomposti},
+\gls{pfimeticola}, \gls{cburnetii}, \gls{raustralis},
+\gls{rrickettsii}.
+
+\subsection{Next Use}
+\gls{cbotulinum}, \gls{pputida}, \gls{cperfringens},
+\gls{bsubtilis}, \gls{ctetani}, \gls{pcomposti},
+\gls{pfimeticola}, \gls{cburnetii}, \gls{raustralis},
+\gls{rrickettsii}.
+
+\section{Markup Languages}
+\subsection{First Use}
+\gls{LaTeX}, \gls{markdown}, \gls{xhtml}, \gls{mathml}, \gls{svg}.
+
+\subsection{Next Use}
+\gls{LaTeX}, \gls{markdown}, \gls{xhtml}, \gls{mathml}, \gls{svg}.
+
+\section{Vegetables}
+\gls{cabbage}, \gls{brussels-sprout}, \gls{artichoke},
+\gls{cauliflower}, \gls{courgette}, \gls{spinach}.
+
+\section{Minerals}
+\Gls{beryl}, \gls{amethyst}, \gls{chalcedony}, \gls{aquamarine},
+\gls{aragonite}, \gls{calcite}, \gls{bilinite},
+\gls{cyanotrichite}, \gls{biotite}, \gls{dolomite},
+\gls{quetzalcoatlite}, \gls{vulcanite}.
+
+\section{Animals}
+\Gls{duck}, \gls{parrot}, \gls{hedgehog}, \gls{sealion}.
+
+\section{Chemicals}
+\gls{Al2SO43}, \gls{H2O}, \gls{C6H12O6},
+\gls{CH3CH2OH}, \gls{CH2O}, \gls{OF2}, \gls{O2F2}, \gls{SO42-},
+\gls{H3O+}, \gls{OH-}, \gls{O2}, \gls{AlF3}, \gls{O},
+\gls{Al2CoO4}, \gls{As4S4}, \gls{C10H10O4}, \gls{C5H4NCOOH},
+\gls{C8H10N4O2}, \gls{SO2}, \gls{S2O72-}, \gls{SbBr3},
+\gls{Sc2O3}, \gls{Zr3PO44}, \gls{ZnF2}.
+
+\section{SI Units}
+Base: \gls{ampere}, \gls{kilogram}, \gls{metre}, \gls{second},
+\gls{kelvin}, \gls{mole}, \gls{candela}.
+Derived: \gls{area}, \gls{volume}, \gls{velocity},
+\gls{acceleration}, \gls{density}, \gls{luminance},
+\gls{specificvolume}, \gls{concentration}, \gls{wavenumber}.
+
+\chapter*{Glossaries}
+\renewcommand{\glsextrapostnamehook}[1]{\glsadd[format=hyperbf]{#1}}
+\printunsrtglossary[type=bacteria,style=mcoltree]
+\printunsrtglossary[type=markuplanguage,style=altlist]
+\printunsrtglossary[type=vegetable,style=tree,nogroupskip]
+\printunsrtglossary[type=mineral,style=treegroup]
+\printunsrtglossary[type=animal,style=tree]
+\printunsrtglossary*[type=chemical,style=mcolalttreegroup]
+{%
+ \renewcommand\glsxtralttreeSymbolDescLocation[2]{%
+ \glossentrysymbol{#1}\glspostdescription\glsxtrAltTreePar
+ }%
+ \renewcommand*{\glstreenamefmt}[1]{#1}%
+ \renewcommand*{\glstreegroupheaderfmt}[1]{\textbf{#1}}%
+}
+\printunsrtglossary[type=baseunit,style=alttree]
+\printunsrtglossary[type=derivedunit,style=alttree]
+
+\renewcommand{\glsextrapostnamehook}[1]{}
+\setupglossaries{section=chapter}
+\printunsrtglossary[type=index,style=bookindex]
+\end{document}}
diff --git a/support/bib2gls/examples/sample-multi2.pdf b/support/bib2gls/examples/sample-multi2.pdf
new file mode 100644
index 0000000000..a033fb98a1
--- /dev/null
+++ b/support/bib2gls/examples/sample-multi2.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-multi2.tex b/support/bib2gls/examples/sample-multi2.tex
new file mode 100644
index 0000000000..bec2301f0c
--- /dev/null
+++ b/support/bib2gls/examples/sample-multi2.tex
@@ -0,0 +1,462 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass{scrreprt}
+
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[version=4]{mhchem}
+\usepackage{siunitx}
+\usepackage{etoolbox}
+\usepackage{marvosym}
+% package conflict, need to undefine conflicting commands
+\undef\Sun
+\undef\Lightning
+\usepackage[weather]{ifsym}
+
+\usepackage[en-GB]{datetime2}
+\usepackage[colorlinks]{hyperref}
+
+\usepackage[record,% use bib2gls
+ section,% use \section* for glossary headings
+ postdot,% insert dot after descriptions in glossaries
+ nomain,% don't create 'main' glossary
+ index,% create 'index' glossary
+ nostyles,% don't load default styles
+% load and patch required style packages:
+ stylemods={list,mcols,tree,bookindex}
+]{glossaries-extra}
+
+\newglossary*{bacteria}{Bacteria}
+\newglossary*{markuplanguage}{Markup Languages}
+\newglossary*{vegetable}{Vegetables}
+\newglossary*{mineral}{Minerals}
+\newglossary*{animal}{Animals}
+\newglossary*{chemical}{Chemical Formula}
+\newglossary*{baseunit}{SI Units}
+\newglossary*{measurement}{Measurements}
+\newglossary*{film}{Films}
+\newglossary*{book}{Books}
+\newglossary*{person}{People}
+\newglossary*{mediacontrol}{Media Control Symbols}
+\newglossary*{information}{Information Symbols}
+\newglossary*{weather}{Weather Symbols}
+
+\newcommand*{\bibglsdate}[7]{\DTMdisplaydate{#1}{#2}{#3}{#4}}
+
+\GlsXtrLoadResources[
+ src={no-interpret-preamble},
+ interpret-preamble=false
+]
+
+\GlsXtrLoadResources[
+ src={interpret-preamble,people},
+ field-aliases={
+ identifier=category,
+ born=user1,
+ died=user2,
+ othername=user3
+ },
+ replicate-fields={name={first}},
+ type=person,
+ save-locations=false,
+ date-fields={user1,user2},
+ date-field-format={d MMM y G}
+]
+
+% Abbreviation styles must be set before the resource set
+% that defines the abbreviations:
+\setabbreviationstyle[bacteria]{long-only-short-only}
+\setabbreviationstyle[markuplanguage]{long-short-desc}
+
+% And also the style-dependent name format:
+\renewcommand*{\glsxtrlongshortdescname}{%
+ \protect\glsabbrvfont{\the\glsshorttok}\space
+ \glsxtrparen{\glslongfont{\the\glslongtok}}%
+}
+
+\GlsXtrLoadResources[
+ src={bacteria,markuplanguages,vegetables,
+ minerals,animals,books,films},
+ field-aliases={
+ identifier=category,
+ year=user1,
+ cast=user2
+ },
+ type={same as category},
+ bibtex-contributor-fields={user2},
+ contributor-order={forenames},
+ save-locations=false
+]
+
+\GlsXtrLoadResources[
+ src={chemicalformula},
+ entry-type-aliases={chemical=symbol},
+ field-aliases={
+ identifier=category,
+ formula=name,
+ chemicalname=description,
+ },
+ type={chemical},
+ set-widest,
+ sort={letternumber-case},
+ symbol-sort-fallback={name},
+ save-locations=false
+]
+
+\GlsXtrLoadResources[
+ src={baseunits,derivedunits},
+ entry-type-aliases={measurement=symbol,unit=symbol},
+ field-aliases={
+ unitname=description,
+ unitsymbol=symbol,
+ measurement=name
+ },
+ category={measurement},
+ type={measurement},
+ set-widest,
+ symbol-sort-fallback={name},
+ save-locations=false
+]
+
+\GlsXtrLoadResources[
+ src={baseunits},
+ entry-type-aliases={unit=symbol},
+ field-aliases={
+ unitname=description,
+ unitsymbol=name
+ },
+ category={measurement},
+ type={baseunit},
+ duplicate-label-suffix={.copy},
+ symbol-sort-fallback={name},
+ save-locations=false
+]
+
+\GlsXtrLoadResources[
+ src={miscsymbols},
+ field-aliases={
+ identifier=category,
+ icon=name,
+ icondescription=description
+ },
+ entry-type-aliases={icon=symbol},
+ type={same as category},
+ sort-field={description},
+ save-locations=false,
+ set-widest
+]
+
+\renewcommand*{\glsxtrlongshortdescname}{%
+ \protect\protect\glslongfont{\the\glslongtok}\space
+ \glsxtrparen{\glsabbrvfont{\the\glsshorttok}}%
+}
+
+% requires glossaries-extra v1.25:
+\renewcommand*{\glsxtronlyname}{%
+ \protect\glsabbrvonlyfont{\the\glslongtok}%
+}
+
+\GlsXtrLoadResources[
+ src={miscsymbols},
+ selection={recorded no deps},
+ duplicate-label-suffix={.copy},
+ entry-type-aliases={icon=index},
+ field-aliases={
+ identifier=category,
+ icondescription=symbol,
+ icon=name
+ },
+ type=index,
+ sort-field={symbol},
+ group={glssymbols}
+]
+
+\GlsXtrLoadResources[
+ src={terms,bacteria,markuplanguages,vegetables,minerals,
+ animals,chemicalformula,baseunits,derivedunits,people,
+ films,books,miscsymbols},
+ selection={recorded and deps and see},
+ field-aliases={
+ identifier=category,
+ formula=symbol,
+ chemicalname=name,
+ unitname=description,
+ unitsymbol=symbol,
+ measurement=name,
+ icon=symbol,
+ icondescription=name
+ },
+ entry-type-aliases={
+ chemical=index,
+ measurement=entry,
+ unit=dualentry,
+ icon=index
+ },
+ label-prefix={idx.},
+ record-label-prefix={idx.},
+ type=index,
+ dual-type=index,
+ combine-dual-locations=both,
+ abbreviation-sort-fallback={long},
+ replicate-override,
+ replicate-fields={first=name},
+ identical-sort-action={category}
+]
+
+\newcommand*{\swaptwo}[2]{#2, #1}
+\newcommand*{\swapthree}[3]{#2 #3, #1}
+
+\newcommand{\bacteriafont}[1]{\emph{#1}}
+\glssetcategoryattribute{bacteria}{textformat}{bacteriafont}
+\glssetcategoryattribute{bacteria}{glossnamefont}{bacteriafont}
+\glssetcategoryattribute{bacteria}{glossdescfont}{bacteriafont}
+
+\newcommand{\bookfont}[1]{\emph{#1}}
+\glssetcategoryattribute{book}{textformat}{bookfont}
+\glssetcategoryattribute{book}{glossnamefont}{bookfont}
+
+\newcommand{\filmfont}[1]{\emph{#1}}
+\glssetcategoryattribute{film}{textformat}{filmfont}
+\glssetcategoryattribute{film}{glossnamefont}{filmfont}
+\glssetcategoryattribute{film}{glossdesc}{firstuc}
+
+\glssetcategoryattribute{markuplanguage}{glossdesc}{firstuc}
+
+\newcommand*{\glsxtrpostlinkmediacontrol}{%
+ \glsxtrpostlinkAddDescOnFirstUse
+}
+
+\newcommand*{\glsxtrpostlinkinformation}{%
+ \glsxtrpostlinkAddDescOnFirstUse
+}
+
+\newcommand*{\glsxtrpostlinkweather}{%
+ \glsxtrpostlinkAddDescOnFirstUse
+}
+
+\newcommand*{\glsxtrpostlinkperson}{%
+ \glsxtrifwasfirstuse
+ {%
+ \ifglshasfield{user3}{\glslabel}%
+ {\space(\glscurrentfieldvalue)}%
+ {}%
+ }%
+ {}%
+}
+
+\newcommand*{\glsxtrpostnameperson}{%
+ \ifglshasfield{user3}{\glscurrententrylabel}%
+ {\space(\glscurrentfieldvalue)}%
+ {}%
+}
+
+\newcommand*{\glsxtrpostdescperson}{%
+ \ifglshasfield{user1}{\glscurrententrylabel}
+ {% born
+ \space(\glscurrentfieldvalue\,--\,%
+ \ifglshasfield{user2}{\glscurrententrylabel}
+ {% died
+ \glscurrentfieldvalue
+ }%
+ {}%
+ )%
+ }%
+ {}%
+}
+
+\newcommand*{\glsxtrpostdescfilm}{%
+ \ifglshasfield{user1}{\glscurrententrylabel}%
+ {%
+ \glsxtrrestorepostpunc % requires glossaries-extra v1.23+
+ \ (released \glscurrentfieldvalue)}%
+ {}%
+ \ifglshasfield{user2}{\glscurrententrylabel}%
+ {%
+ \glsxtrrestorepostpunc
+ \ featuring \glscurrentfieldvalue
+ }%
+ {}%
+}
+
+\renewcommand*{\glsxtrbookindexname}[1]{%
+ \glossentryname{#1}%
+ \ifglshassymbol{#1}%
+ {%
+ \glsifcategory{#1}{chemical}%
+ {, \glossentrysymbol{#1}}%
+ {\space(\glossentrynameother{#1}{symbol})}%
+ }%
+ {%
+ \glsifcategory{#1}{film}%
+ {\ (film)}%
+ {}%
+ }%
+}
+
+% requires glossaries-extra v1.25+:
+\renewcommand*{\glsextrapostnamehook}[1]{%
+ \glsadd[format=hyperbf]{#1}%
+}
+
+\newcommand{\unit}{\glssymbol}
+\newcommand{\measurement}{\gls}
+\glsxtrnewgls{film.}{\film}
+\glsxtrnewglslike{idx.}{\idx}{\idxpl}{\Idx}{\Idxpl}
+
+\begin{document}
+\chapter{Sample}
+\section{Bacteria}
+This section is about \idxpl{bacteria}.
+\subsection{First Use}
+\gls{cbotulinum}, \gls{pputida}, \gls{cperfringens},
+\gls{bsubtilis}, \gls{ctetani}, \gls{pcomposti},
+\gls{pfimeticola}, \gls{cburnetii}, \gls{raustralis},
+\gls{rrickettsii}.
+
+\subsection{Next Use}
+\gls{cbotulinum}, \gls{pputida}, \gls{cperfringens},
+\gls{bsubtilis}, \gls{ctetani}, \gls{pcomposti},
+\gls{pfimeticola}, \gls{cburnetii}, \gls{raustralis},
+\gls{rrickettsii}.
+
+\section{Markup Languages}
+This section is about \idxpl{markuplanguage}.
+\subsection{First Use}
+\gls{LaTeX}, \gls{markdown}, \gls{xhtml}, \gls{mathml}, \gls{svg}.
+
+\subsection{Next Use}
+\gls{LaTeX}, \gls{markdown}, \gls{xhtml}, \gls{mathml}, \gls{svg}.
+
+\section{Vegetables}
+This section is about \idxpl{vegetable}.
+\Gls{cabbage}, \gls{brussels-sprout}, \gls{artichoke},
+\gls{cauliflower}, \gls{courgette}, \gls{spinach}.
+
+\section{Minerals}
+This section is about \idxpl{mineral}.
+\Gls{beryl}, \gls{amethyst}, \gls{chalcedony}, \gls{aquamarine},
+\gls{aragonite}, \gls{calcite}, \gls{bilinite},
+\gls{cyanotrichite}, \gls{biotite}, \gls{dolomite},
+\gls{quetzalcoatlite}, \gls{vulcanite}.
+
+\section{Animals}
+This section is about \idxpl{animal}.
+\Gls{duck}, \gls{parrot}, \gls{hedgehog}, \gls{sealion},
+\gls{zander}, \gls{aardvark}, \gls{zebra}, \gls{swan},
+\gls{armadillo}.
+
+\section{Chemicals}
+This section is about \idxpl{chemical}.
+\gls{Al2SO43} (\glsdesc{Al2SO43}), \gls{H2O} (\glsdesc{H2O}),
+\gls{C6H12O6} (\glsdesc{C6H12O6}), \gls{CH3CH2OH}
+(\glsdesc{CH3CH2OH}), \gls{CH2O} (\glsdesc{CH2O}), \gls{OF2}
+(\glsdesc{OF2}), \gls{O2F2} (\glsdesc{O2F2}), \gls{SO42-}
+(\glsdesc{SO42-}), \gls{H3O+} (\glsdesc{H3O+}), \gls{OH-}
+(\glsdesc{OH-}), \gls{O2} (\glsdesc{O2}), \gls{AlF3}
+(\glsdesc{AlF3}), \gls{O} (\glsdesc{O}), \gls{Al2CoO4}
+(\glsdesc{Al2CoO4}), \gls{As4S4} (\glsdesc{As4S4}),
+\gls{C10H10O4} (\glsdesc{C10H10O4}), \gls{C5H4NCOOH}
+(\glsdesc{C5H4NCOOH}), \gls{C8H10N4O2} (\gls{C8H10N4O2}),
+\gls{SO2} (\glsdesc{SO2}), \gls{S2O72-} (\gls{S2O72-}),
+\gls{SbBr3} (\glsdesc{SbBr3}), \gls{Sc2O3} (\glsdesc{Sc2O3}),
+\gls{Zr3PO44} (\glsdesc{Zr3PO44}), \gls{ZnF2} (\glsdesc{ZnF2}).
+
+\section{SI Units}
+\Idxpl{baseunit}: \unit{ampere} (measures \measurement{ampere}),
+\unit{kilogram} (measures \measurement{kilogram}), \unit{metre},
+\unit{second}, \unit{kelvin}, \unit{mole}, \unit{candela}.
+
+\Idxpl{derivedunit}: \unit{area}, \unit{volume},
+\unit{velocity},
+\unit{acceleration}, \unit{density}, \unit{luminance},
+\unit{specificvolume}, \unit{concentration}, \unit{wavenumber}.
+
+\section{Books and Films}
+\Idxpl{book}: \gls{ataleoftwocities} (by \gls{dickens}),
+\gls{thebigsleep} (by \gls{chandler}, \idx{film} adaptation:
+\film{thebigsleep}), \gls{icecoldinalex} (by
+\gls{landon}, \idx{film} adaptation: \film{icecoldinalex}),
+\gls{whydidnttheyaskevans} (by \gls{christie},
+\idx{film} adaptation: \film{whydidnttheyaskevans}),
+\gls{doandroidsdreamofelectricsheep} (by \gls{dick},
+inspired the \idx{film} \film{bladerunner}).
+
+\Idxpl{film}: \film{anunexpectedjourney}, \film{desolationofsmaug}
+and \film{thebattleoffivearmies} (adapted from the
+\idx{book} \gls{thehobbit} by \gls{tolkien}),
+\film{thefellowshipofthering}, \film{thetwotowers}
+and \film{thereturnoftheking} (adapted from the
+\idx{book} \gls{thelordoftherings} also by \gls{tolkien}).
+
+\section{Miscellaneous Symbols}
+
+\subsection{First Use}
+
+\Idxpl{mediacontrol}: \gls{forward}, \gls{forwardtoindex},
+\gls{rewindtoindex}, \gls{rewind}.
+
+\Idx{information}: \gls{bicycle}, \gls{coffeecup}, \gls{info},
+\gls{gentsroom}, \gls{ladiesroom}, \gls{wheelchair}, \gls{football},
+\gls{recycling}.
+
+\Idx{weather}: \gls{cloud}, \gls{fog}, \gls{hail}, \gls{sun},
+\gls{lightning}.
+
+\subsection{Next Use}
+
+\Idxpl{mediacontrol}: \gls{forward}, \gls{forwardtoindex},
+\gls{rewindtoindex}, \gls{rewind}.
+
+\Idx{information}: \gls{bicycle}, \gls{coffeecup}, \gls{info},
+\gls{gentsroom}, \gls{ladiesroom}, \gls{wheelchair}, \gls{football}.
+
+\Idx{weather}: \gls{cloud}, \gls{fog}, \gls{hail}, \gls{sun},
+\gls{lightning}.
+
+\section{Measurements}
+
+\Idxpl{measurement}:
+\measurement{ampere}, \measurement{area}, \measurement{metre}.
+
+\chapter{Glossaries}
+\printunsrtglossary[type=bacteria,style=mcoltree]
+\printunsrtglossary[type=markuplanguage,style=altlist]
+\printunsrtglossary[type=vegetable,style=tree,nogroupskip]
+\printunsrtglossary[type=mineral,style=treegroup]
+\printunsrtglossary[type=animal,style=tree]
+\printunsrtglossary[type=person,style=tree,nogroupskip]
+\printunsrtglossary[type=book,style=tree,nogroupskip]
+\printunsrtglossary[type=film,style=tree,nogroupskip]
+\printunsrtglossary*[type=chemical,style=mcolalttreegroup]
+{%
+ \renewcommand*{\glstreenamefmt}[1]{#1}%
+ \renewcommand*{\glstreegroupheaderfmt}[1]{\textbf{#1}}%
+}
+\printunsrtglossary*[type=measurement,style=alttree,nogroupskip]
+{%
+ \renewcommand{\glsxtralttreeSymbolDescLocation}[2]{%
+ \glossentrydesc{#1}%
+ \ifglshassymbol{#1}{\space(\glossentrysymbol{#1})}{}%
+ \glspostdescription
+ \glsxtrAltTreePar
+ }%
+}
+
+\printunsrtglossary*[type=baseunit,style=alttree,nogroupskip]
+{%
+ \glsFindWidestTopLevelName[baseunit]%
+}
+\printunsrtglossary[type=information,style=alttree,nogroupskip]
+\printunsrtglossary[type=mediacontrol,style=alttree,nogroupskip]
+\printunsrtglossary[type=weather,style=alttree,nogroupskip]
+
+\printunsrtglossary*[type=index,style=bookindex]
+{%
+ \setupglossaries{section=chapter}%
+ \let\sortname\swaptwo
+ \let\sortvonname\swapthree
+ \renewcommand*{\glsextrapostnamehook}[1]{}%
+}
+\end{document}}
diff --git a/support/bib2gls/examples/sample-people.pdf b/support/bib2gls/examples/sample-people.pdf
new file mode 100644
index 0000000000..0c3e8bdfd8
--- /dev/null
+++ b/support/bib2gls/examples/sample-people.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-people.tex b/support/bib2gls/examples/sample-people.tex
new file mode 100644
index 0000000000..289e7a2d20
--- /dev/null
+++ b/support/bib2gls/examples/sample-people.tex
@@ -0,0 +1,102 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[12pt,a4paper]{report}
+
+\usepackage[colorlinks]{hyperref}
+\usepackage[record,% using bib2gls
+ index,% create index glossary
+ postdot,% dot after descriptions
+% load glossary-list.sty and glossary-bookindex.sty and patch:
+ stylemods={list,bookindex},
+ style=altlistgroup]{glossaries-extra}
+
+\newglossary*{bybirth}{People (Ordered by Birth)}
+
+\newcommand{\bibglsdategroup}[7]{#1#4#7}
+\newcommand{\bibglsdategrouptitle}[7]{\number#1\ #4}
+
+\newcommand*{\swaptwo}[2]{#2, #1}
+\newcommand*{\swapthree}[3]{#2 #3, #1}
+
+\GlsXtrLoadResources[
+ src=no-interpret-preamble,
+ interpret-preamble=false
+]
+
+\GlsXtrLoadResources[
+ src={interpret-preamble,people},
+ match={entrytype=entry},
+ category={people},
+ replicate-fields={name={first}},
+ field-aliases={born=user1,died=user2,othername=user3},
+ secondary={date:user1:bybirth},
+ secondary-date-sort-format={d MMM YYYY G}
+]
+
+\GlsXtrLoadResources[
+ src={people},
+ type=index,
+ category=people,
+ action={define or copy},
+ copy-action-group-field={indexgroup},
+ selection={recorded and deps and see}
+]
+
+\newcommand*{\glsxtrpostlinkpeople}{%
+ \glsxtrifwasfirstuse
+ {%
+ \ifglshasfield{user3}{\glslabel}%
+ {\space(\glscurrentfieldvalue)}%
+ {}%
+ }%
+ {}%
+}
+
+\newcommand*{\glsxtrpostnamepeople}{%
+ \ifglshasfield{user3}{\glscurrententrylabel}%
+ {\space(\glscurrentfieldvalue)}%
+ {}%
+}
+
+\newcommand*{\glsxtrpostdescpeople}{%
+ \ifglshasfield{user1}{\glscurrententrylabel}
+ {% born
+ \space(\glscurrentfieldvalue\,--\,%
+ \ifglshasfield{user2}{\glscurrententrylabel}
+ {% died
+ \glscurrentfieldvalue
+ }%
+ {}%
+ )%
+ }%
+ {}%
+}
+
+\begin{document}
+\chapter{Sample}
+\section{First Use}
+
+\gls{caesar}, \gls{wellesley}, \gls{bonaparte},
+\gls{vonrichthofen} and \gls{alexander}.
+
+\section{Next Use}
+
+\gls{caesar}, \gls{wellesley}, \gls{bonaparte},
+\gls{vonrichthofen} and \gls{alexander}.
+
+\printunsrtglossary[title={People (Alphabetical)},nonumberlist]
+
+\printunsrtglossary[type=bybirth,target=false,nonumberlist]
+
+\printunsrtglossary*
+ [type=index,style=bookindex]
+ {%
+ \let\sortname\swaptwo
+ \let\sortart\swaptwo
+ \let\sortvonname\swapthree
+ \renewcommand{\glsxtrgroupfield}{indexgroup}%
+ \renewcommand*{\glolinkprefix}{idx:}%
+ }
+\end{document}
diff --git a/support/bib2gls/examples/sample-textsymbols.pdf b/support/bib2gls/examples/sample-textsymbols.pdf
new file mode 100644
index 0000000000..15b504fc05
--- /dev/null
+++ b/support/bib2gls/examples/sample-textsymbols.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-textsymbols.tex b/support/bib2gls/examples/sample-textsymbols.tex
new file mode 100644
index 0000000000..3855765b8b
--- /dev/null
+++ b/support/bib2gls/examples/sample-textsymbols.tex
@@ -0,0 +1,49 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+% Compare this file with sample-textsymbols2.tex which uses
+% a hierarchical approach.
+\documentclass[a4paper]{article}
+
+\usepackage[T1]{fontenc}
+
+\usepackage{etoolbox}
+\usepackage{marvosym}
+
+% package conflict, need to undefine conflicting commands
+\undef\Sun
+\undef\Lightning
+
+\usepackage[weather]{ifsym}
+
+\usepackage[record,% using bib2gls
+ nostyles,% don't load default styles
+ postdot,% append a dot after descriptions
+ stylemods={tree},% load glossary-tree.sty and patch
+ style=alttreegroup]{glossaries-extra}
+
+\GlsXtrLoadResources[
+ src={miscsymbols},
+% make @icon behave like @symbol:
+ entry-type-aliases={icon=symbol},
+ field-aliases={
+ identifier=category,
+ icon=name,
+ icondescription=description
+ },
+ replicate-fields={category=group},
+ sort-field={category},
+ sort-suffix={description},
+ sort-suffix-marker={|},
+ set-widest,
+ selection=all
+]
+
+\glsxtrsetgrouptitle{information}{Information}
+\glsxtrsetgrouptitle{mediacontrol}{Media Controls}
+\glsxtrsetgrouptitle{weather}{Weather Symbols}
+
+\begin{document}
+\printunsrtglossaries
+\end{document}
+
diff --git a/support/bib2gls/examples/sample-textsymbols2.pdf b/support/bib2gls/examples/sample-textsymbols2.pdf
new file mode 100644
index 0000000000..98022c2dac
--- /dev/null
+++ b/support/bib2gls/examples/sample-textsymbols2.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-textsymbols2.tex b/support/bib2gls/examples/sample-textsymbols2.tex
new file mode 100644
index 0000000000..9a670f91f1
--- /dev/null
+++ b/support/bib2gls/examples/sample-textsymbols2.tex
@@ -0,0 +1,41 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[a4paper]{article}
+
+\usepackage[T1]{fontenc}
+
+\usepackage{etoolbox}
+\usepackage{marvosym}
+
+% package conflict, need to undefine conflicting commands
+\undef\Sun
+\undef\Lightning
+
+\usepackage[weather]{ifsym}
+
+\usepackage[record,% using bib2gls
+ nostyles,% don't load default styles
+ postdot,% append a dot after descriptions
+ stylemods={tree,topic},% load glossary-tree.sty and glossary-topic.sty
+ style=topic]{glossaries-extra}
+
+\GlsXtrLoadResources[
+ src={topics,miscsymbols},
+% make @icon behave like @symbol:
+ entry-type-aliases={icon=symbol},
+ field-aliases={
+ identifier=parent,
+ icon=name,
+ icondescription=description
+ },
+ symbol-sort-fallback={description},
+ set-widest,
+ selection=all
+]
+
+\begin{document}
+\printunsrtglossaries
+\end{document}
+
diff --git a/support/bib2gls/examples/sample-units1.pdf b/support/bib2gls/examples/sample-units1.pdf
new file mode 100644
index 0000000000..3d08fa6a9d
--- /dev/null
+++ b/support/bib2gls/examples/sample-units1.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-units1.tex b/support/bib2gls/examples/sample-units1.tex
new file mode 100644
index 0000000000..7e32d06a47
--- /dev/null
+++ b/support/bib2gls/examples/sample-units1.tex
@@ -0,0 +1,48 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[a4paper]{report}
+
+\usepackage{siunitx}
+\usepackage[record,% use bib2gls
+ nostyles,% don't load default styles
+ stylemods={mcols},% load glossary-mcols.sty and patch
+ style=mcolindexgroup]{glossaries-extra}
+
+\GlsXtrLoadResources[
+ src={baseunits},
+ % make @unit act like @symbol:
+ entry-type-aliases={unit=symbol},
+ field-aliases={
+ unitname=name,
+ unitsymbol=symbol,
+ measurement=description
+ },
+ symbol-sort-fallback=name,
+ selection={all},
+ group={baseunits}
+]
+
+\GlsXtrLoadResources[
+ src={derivedunits},
+ % make @measurement act like @symbol:
+ entry-type-aliases={measurement=symbol},
+ field-aliases={
+ unitname=name,
+ unitsymbol=symbol,
+ measurement=description
+ },
+ symbol-sort-fallback=name,
+ selection={all},
+ group={derivedunits}
+]
+
+\glsxtrsetgrouptitle{baseunits}{Base Units}
+\glsxtrsetgrouptitle{derivedunits}{Derived Units}
+
+\begin{document}
+
+\printunsrtglossaries
+
+\end{document}
diff --git a/support/bib2gls/examples/sample-units2.pdf b/support/bib2gls/examples/sample-units2.pdf
new file mode 100644
index 0000000000..e80be3024c
--- /dev/null
+++ b/support/bib2gls/examples/sample-units2.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-units2.tex b/support/bib2gls/examples/sample-units2.tex
new file mode 100644
index 0000000000..d4bba821f1
--- /dev/null
+++ b/support/bib2gls/examples/sample-units2.tex
@@ -0,0 +1,51 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[a4paper]{report}
+
+\usepackage{siunitx}
+\usepackage[record,% use bib2gls
+ nomain,% don't define 'main' glossary
+ section,% use \section* for glossary headings
+ nostyles,% don't load default styles
+ stylemods={mcols},% load glossary-mcols.sty and patch
+ style=mcolindex]{glossaries-extra}
+
+\newglossary*{baseunits}{Base Units}
+\newglossary*{derivedunits}{Derived Units}
+
+\GlsXtrLoadResources[
+ src={baseunits},
+ type=baseunits,
+ % make @unit act like @symbol:
+ entry-type-aliases={unit=symbol},
+ field-aliases={
+ unitname=name,
+ unitsymbol=symbol,
+ measurement=description
+ },
+ symbol-sort-fallback=name,
+ selection={all}
+]
+
+\GlsXtrLoadResources[
+ src={derivedunits},
+ type=derivedunits,
+ % make @measurement act like @symbol:
+ entry-type-aliases={measurement=symbol},
+ field-aliases={
+ unitname=name,
+ unitsymbol=symbol,
+ measurement=description
+ },
+ symbol-sort-fallback=name,
+ selection={all}
+]
+
+\begin{document}
+\chapter*{Glossaries}
+
+\printunsrtglossary[type=baseunits,nogroupskip]
+\printunsrtglossary[type=derivedunits,style=indexgroup]
+\end{document}
diff --git a/support/bib2gls/examples/sample-units3.pdf b/support/bib2gls/examples/sample-units3.pdf
new file mode 100644
index 0000000000..c7d170c578
--- /dev/null
+++ b/support/bib2gls/examples/sample-units3.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-units3.tex b/support/bib2gls/examples/sample-units3.tex
new file mode 100644
index 0000000000..997a1ff47c
--- /dev/null
+++ b/support/bib2gls/examples/sample-units3.tex
@@ -0,0 +1,65 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass[12pt,a4paper]{report}
+
+\usepackage{siunitx}
+\usepackage[record,% use bib2gls
+ nostyles,% don't load default styles
+% load glossary-tree.sty and glossary-longbooktabs.sty and patch:
+ stylemods={tree,longbooktabs},
+ style=alttree]{glossaries-extra}
+
+\newglossary*{units}{Units of Measurement (by SI unit)}
+
+\GlsXtrLoadResources[
+ % data in baseunits.bib and derivedunits.bib:
+ src={baseunits,derivedunits},
+ field-aliases={
+ unitname=name,
+ unitsymbol=symbol,
+ measurement=description
+ },
+ symbol-sort-fallback={name},
+ selection=all,% select all entries
+ % make @measurement and @unit act like @dualsymbol:
+ entry-type-aliases={
+ measurement=dualsymbol,
+ unit=dualsymbol,
+ },
+ set-widest,% needed for alttree style
+ dual-sort={letternumber-upperlower},
+ type=main,% put primary entries in 'main' glossary
+ dual-type={units}% put dual entries in 'units' glossary
+]
+
+\setlength{\glsdescwidth}{.4\hsize}
+
+% define custom glossary style
+\newglossarystyle{units}% style name
+{% base it on long3col-booktabs
+ \setglossarystyle{long3col-booktabs}%
+ \renewcommand*{\glossaryheader}{%
+ \toprule
+ \bfseries Name &
+ \bfseries Measurement &
+ \bfseries Symbol
+ \tabularnewline\midrule\endhead
+ \bottomrule\endfoot}%
+% main entries:
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription &
+ \glossentrysymbol{##1}\tabularnewline
+ }%
+}
+
+\begin{document}
+
+\printunsrtglossary[title={SI Units of Measurement},
+ style={units}]
+
+\printunsrtglossary[type=units]
+
+\end{document}
diff --git a/support/bib2gls/examples/sample-usergroups.pdf b/support/bib2gls/examples/sample-usergroups.pdf
new file mode 100644
index 0000000000..042f277b42
--- /dev/null
+++ b/support/bib2gls/examples/sample-usergroups.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-usergroups.tex b/support/bib2gls/examples/sample-usergroups.tex
new file mode 100644
index 0000000000..e4037bec51
--- /dev/null
+++ b/support/bib2gls/examples/sample-usergroups.tex
@@ -0,0 +1,128 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+\documentclass{scrreprt}
+
+\usepackage{fontspec}
+\setmainfont{Linux Libertine O}
+
+\usepackage{polyglossia}
+\setmainlanguage[variant=uk]{english}
+\usepackage{tracklang}
+\usepackage{etoolbox}
+
+\usepackage[record,% use bib2gls
+ nostyles,% don't load default styles
+ stylemods={bookindex},
+ style={bookindex}
+]{glossaries-extra}
+
+\glsaddstoragekey{language}{}{\glsentrylanguage}
+\glsaddstoragekey{translation}{}{\glsentrytranslation}
+
+\setabbreviationstyle[tug]{long-short-user}
+
+\GlsXtrLoadResources[
+ src={usergroups}, % data in usergroups.bib
+ check-end-punctuation={name,short},
+ category=tug
+]
+
+\renewcommand*{\glsxtrifcustomdiscardperiod}[2]{%
+ \ifglshasshort{\glslabel}%
+ {%
+ \glsxtrifwasfirstuse{}%
+ {%
+ \GlsXtrIfFieldUndef{shortendpunc}{\glslabel}{#2}{#1}%
+ }%
+ }%
+ {%
+ \GlsXtrIfFieldUndef{nameendpunc}{\glslabel}{#2}{#1}%
+ }%
+}
+
+\newcommand{\langlist}{}%
+
+\newcommand*{\addfirstlang}[1]{%
+ \TrackLocale{#1}%
+ \edef\thislanguage{%
+ \TrackedLanguageFromDialect\TrackLangLastTrackedDialect}%
+ \IfFileExists{gloss-\thislanguage.ldf}%
+ {%
+ \xifinlist{\thislanguage}{\langlist}{}%
+ {\listxadd{\langlist}{\thislanguage}}%
+ \xGlsXtrSetField{\thislabel}{useri}{text\thislanguage}%
+ \glsxtrendfor
+ }%
+ {}%
+}
+
+\forglsentries{\thislabel}{%
+ \glsxtrifhasfield{translation}{\thislabel}%
+ {%
+ % requires glossaries-extra v1.24
+ \glsxtrforcsvfield{\thislabel}{language}{\addfirstlang}%
+ }%
+ {}%
+}
+
+\forlistloop{\setotherlanguage}{\langlist}
+
+\renewcommand*{\glsxtruserfield}{translation}
+
+\renewcommand*{\glsxtruserparen}[2]{%
+ \
+ \glsxtrparen{#1%
+ \ifglshasfield{\glsxtruserfield}{#2}{,
+ \textenglish{\glscurrentfieldvalue}}{}}%
+}
+
+\newcommand*{\tugtextformat}[1]{%
+ \glsxtrentryfmt{\glslabel}{#1}%
+}
+
+\newcommand*{\tugnameformat}[1]{%
+ \glsxtrentryfmt{\glscurrententrylabel}{#1}%
+}
+
+\glssetcategoryattribute{tug}{textformat}{tugtextformat}
+\glssetcategoryattribute{tug}{glossnamefont}{tugnameformat}
+
+\newcommand{\glsxtrpostnametug}{%
+ \ifglshasdesc{\glscurrententrylabel}%
+ {\ (\glossentrydesc{\glscurrententrylabel}%
+ \glsxtrifhasfield{translation}{\glscurrententrylabel}%
+ {, \textenglish{\glscurrentfieldvalue}}%
+ {}%
+ )}%
+ {%
+ \glsxtrifhasfield{translation}{\glscurrententrylabel}%
+ {\ (\textenglish{\glscurrentfieldvalue})}%
+ {}%
+ }%
+}
+
+\begin{document}
+\chapter{Sample}
+\section{First Use}
+\gls{TUG}. \gls{bgTeX}. \gls{latex-br}. \gls{CTeX}.
+\gls{CSTUG}. \gls{DANTE}. \gls{DKTUG}. \gls{EUG}.
+\gls{CervanTeX}. \gls{TirantloTeX}. \gls{GUTenberg}.
+\gls{UKTUG}. \gls{ɛϕτ}. \gls{MaTeX}. \gls{ITALIC}.
+\gls{ÍsTeX}. \gls{GuIT}. \gls{KTS}. \gls{LTVG}.
+\gls{mxTeX}. \gls{NTG}. \gls{NTUG}. \gls{GUST}. \gls{GUTpt}.
+\gls{VietTUG}. \gls{LUGSA}.
+
+\section{Next Use}
+
+\gls{TUG}. \gls{bgTeX}. \gls{latex-br}. \gls{CTeX}.
+\gls{CSTUG}. \gls{DANTE}. \gls{DKTUG}. \gls{EUG}.
+\gls{CervanTeX}. \gls{TirantloTeX}. \gls{GUTenberg}.
+\gls{UKTUG}. \gls{ɛϕτ}. \gls{MaTeX}. \gls{ITALIC}.
+\gls{ÍsTeX}. \gls{GuIT}. \gls{KTS}. \gls{LTVG}.
+\gls{mxTeX}. \gls{NTG}. \gls{NTUG}. \gls{GUST}. \gls{GUTpt}.
+\gls{VietTUG}. \gls{LUGSA}.
+
+\printunsrtglossaries
+\end{document}
diff --git a/support/bib2gls/examples/terms.bib b/support/bib2gls/examples/terms.bib
new file mode 100644
index 0000000000..60bbbb571b
--- /dev/null
+++ b/support/bib2gls/examples/terms.bib
@@ -0,0 +1,41 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@index{mineral}
+@index{vegetable}
+@index{animal}
+@index{film}
+@index{book}
+@index{bacteria,
+ text={bacterium},
+ plural={bacteria}
+}
+@index{chemical,
+ name={chemical formula},
+ plural={chemical formulae}
+}
+@index{baseunit,
+ name={base SI unit}
+}
+@index{derivedunit,
+ name={derived SI unit}
+}
+@index{person,
+ plural={people}
+}
+@index{markuplanguage,
+ name={markup language}
+}
+
+@index{mediacontrol,
+ name={media control}
+}
+
+@index{information}
+
+@index{weather}
+
+@index{measurement}
diff --git a/support/bib2gls/examples/topics.bib b/support/bib2gls/examples/topics.bib
new file mode 100644
index 0000000000..f38577f6ca
--- /dev/null
+++ b/support/bib2gls/examples/topics.bib
@@ -0,0 +1,9 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@index{information}
+@indexplural{mediacontrol,text={media control}}
+@indexplural{weather,text={weather symbol}}
diff --git a/support/bib2gls/examples/unaryoperators.bib b/support/bib2gls/examples/unaryoperators.bib
new file mode 100644
index 0000000000..adf8d67292
--- /dev/null
+++ b/support/bib2gls/examples/unaryoperators.bib
@@ -0,0 +1,30 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@symbol{factorial,
+ name={\ensuremath{\mathord{!}}},
+ description={factorial},
+ identifier={unary}
+}
+
+@symbol{unaryplus,
+ name={\ensuremath{\mathord{+}}},
+ description={plus},
+ identifier={unary}
+}
+
+@symbol{unaryminus,
+ name={\ensuremath{\mathord{-}}},
+ description={minus},
+ identifier={unary}
+}
+
+@symbol{forall,
+ name={\ensuremath{\forall}},
+ description={for all},
+ identifier={unary}
+}
+
diff --git a/support/bib2gls/examples/usergroups.bib b/support/bib2gls/examples/usergroups.bib
new file mode 100644
index 0000000000..2f3b654c28
--- /dev/null
+++ b/support/bib2gls/examples/usergroups.bib
@@ -0,0 +1,210 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+% Requires XeLaTeX/LuaLaTeX for non-ASCII labels
+
+@string{tug={\TeX\ Users Group}}
+
+@preamble{"\providecommand{\dash}{\,---\,}"}
+
+@abbreviation{TUG,
+ short={TUG},
+ long=tug,
+ language={en},
+ identifier={texusergroup}
+}
+
+@abbreviation{bgTeX,
+ short={bgTeX},
+ long={Bulgarian \LaTeX\ Users Group},
+ language={bg},
+ identifier={texusergroup}
+}
+
+@abbreviation{latex-br,
+ short={latex-br},
+ long={Grupo de Usuários},
+ language={pt-BR},
+ identifier={texusergroup},
+ translation={Brazilian }#tug
+}
+
+@abbreviation{CTeX,
+ short={CTeX},
+ long={Chinese \TeX\ Society},
+ identifier={texusergroup},
+ language={zh}
+}
+
+@abbreviation{CSTUG,
+ short={CSTUG},
+ long={Československé sdružení uživatelů TeXu, z.~s.},
+ language={cs},
+ identifier={texusergroup},
+ translation={Czech Republic }#tug
+}
+
+@abbreviation{DANTE,
+ short={DANTE e.V.},
+ long={Deutschsprachige Anwendervereinigung \TeX\ e.V.},
+ language={de},
+ identifier={texusergroup},
+ translation={German Speaking }#tug
+}
+
+@abbreviation{DKTUG,
+ short={DK-TUG},
+ long={Danish }#tug,
+ language={da},
+ identifier={texusergroup}
+}
+
+@index{EUG,
+ name={Estonian User Group},
+ language={et},
+ identifier={texusergroup}
+}
+
+@abbreviation{CervanTeX,
+ short={CervanTeX},
+ long={Grupo de Usuarios de \TeX\ Hispanohablantes},
+ language={es},
+ identifier={texusergroup},
+ translation={Spanish Speaking }#tug
+}
+
+@abbreviation{TirantloTeX,
+ short={Tirant lo \TeX},
+ long={Catalan }#tug,
+ language={ca},
+ identifier={texusergroup}
+}
+
+@abbreviation{GUTenberg,
+ short={GUTenberg},
+ long={Groupe francophone des utilisateurs de \TeX},
+ language={fr},
+ identifier={texusergroup},
+ translation={French Speaking }#tug
+}
+
+@abbreviation{UKTUG,
+ short={UK-TUG},
+ long={UK }#tug,
+ language={en-GB},
+ identifier={texusergroup}
+}
+
+@abbreviation{ɛϕτ,
+ short={ɛϕτ},
+ long={Σύλλογος Ελλήνων Φίλων του \TeX},
+ language={el},
+ identifier={texusergroup},
+ translation={Greek \TeX\ Friends}
+}
+
+@abbreviation{MaTeX,
+ short={MaTeX},
+ long={Magyar \TeX\ Egyesület},
+ language={hu},
+ identifier={texusergroup},
+ translation={Hungarian }#tug
+}
+
+@abbreviation{ITALIC,
+ short={ITALIC},
+ long={Irish \TeX\ and \LaTeX\ In-print Community},
+ language={en-IE,en-GB},
+ identifier={texusergroup}
+}
+
+@abbreviation{ÍsTeX,
+ short={ÍsTeX},
+ long={Vefur íslenskra \TeX\ notenda},
+ language={is},
+ identifier={texusergroup},
+ translation={Icelandic }#tug
+}
+
+@abbreviation{GuIT,
+ short={GuIT},
+ long={Gruppo Utilizzatori Italiani di \TeX},
+ language={it},
+ identifier={texusergroup},
+ translation={Italian }#tug
+}
+
+@abbreviation{KTS,
+ short={KTS},
+ identifier={texusergroup},
+ long={Korean \TeX\ Society},
+ language={ko}
+}
+
+@index{KTUG,
+ alias={KTS},
+ identifier={texusergroup}
+}
+
+@index{LTVG,
+ name={Lietuvos \TeX'o Vartotojų Grupė},
+ language={lt},
+ identifier={texusergroup},
+ translation={Lithuanian }#tug
+}
+
+@index{mxTeX,
+ name={\TeX\ México},
+ language={es-MX},
+ identifier={texusergroup},
+ translation={Mexican }#tug
+}
+
+@abbreviation{NTG,
+ short={NTG},
+ long={Nederlandstalige \TeX\ Gebruikersgroep},
+ language={nl},
+ identifier={texusergroup},
+ translation={Netherlands }#tug
+}
+
+@index{NTUG,
+ name={Nordic \TeX\ Users Group},
+ language={da,et,fi,fo,is,nb,nn,sv},
+ identifier={texusergroup}
+}
+
+@abbreviation{GUST,
+ short={GUST},
+ long={Polska Grupa Użytkowników Systemu \TeX},
+ language={pl},
+ identifier={texusergroup},
+ translation={Polish }#tug
+}
+
+@abbreviation{GUTpt,
+ short={GUTpt},
+ long={Grupo de Utilizadores de \TeX},
+ language={pt},
+ identifier={texusergroup},
+ translation={Portuguese }#tug
+}
+
+@abbreviation{VietTUG,
+ short={VietTUG},
+ long={Vietnamese }#tug,
+ language={vi},
+ identifier={texusergroup}
+}
+
+@abbreviation{LUGSA,
+ short={LUGSA},
+ long={\LaTeX\ User Group\dash South Africa},
+ language={en-ZA},
+ identifier={texusergroup}
+}
+
+
diff --git a/support/bib2gls/examples/vegetables.bib b/support/bib2gls/examples/vegetables.bib
new file mode 100644
index 0000000000..555a243118
--- /dev/null
+++ b/support/bib2gls/examples/vegetables.bib
@@ -0,0 +1,53 @@
+% This file is public domain. See the "Examples" chapter
+% in the bib2gls user manual for a more detailed description
+% of this file.
+
+% Encoding: UTF-8
+
+@entry{cabbage,
+ name={cabbage},
+ description={vegetable with thick green or purple leaves},
+ identifier={vegetable}
+}
+
+@entry{brussels-sprout,
+ name={Brussels sprout},
+ description={small leafy green vegetable buds},
+ identifier={vegetable}
+}
+
+@entry{artichoke,
+ name={artichoke},
+ description={a variety of thistle cultivated as food},
+ identifier={vegetable}
+}
+
+@entry{cauliflower,
+ name={cauliflower},
+ description={type of cabbage with edible white flower head},
+ identifier={vegetable}
+}
+
+@entry{spinach,
+ name={spinach},
+ description={green, leafy vegetable},
+ identifier={vegetable}
+}
+
+@entry{marrow,
+ name={marrow},
+ description={long white-fleshed gourd with green skin},
+ identifier={vegetable}
+}
+
+@entry{courgette,
+ name={courgette},
+ description={immature fruit of a vegetable \gls{marrow}},
+ identifier={vegetable}
+}
+
+@index{zucchini,
+ name={zucchini},
+ alias={courgette},
+ identifier={vegetable}
+}