diff --git a/.gitignore b/.gitignore
index 1e25594542..fbf3fd897e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
# Hidden files
.*
!.github
+!.readthedocs.yaml
# Python byte / compiled / optimized
*.py[cod]
diff --git a/.readthedocs.yaml b/.readthedocs.yaml
new file mode 100644
index 0000000000..fe110f1895
--- /dev/null
+++ b/.readthedocs.yaml
@@ -0,0 +1,12 @@
+version: 2
+
+build:
+ os: ubuntu-22.04
+ tools:
+ python: "3.12"
+ commands:
+ - pip install -r requirements.txt
+ - make prepare
+ - make html
+ - mkdir -p $READTHEDOCS_OUTPUT/html
+ - cp -r build/manual/build/html/* $READTHEDOCS_OUTPUT/html/
diff --git a/contributed_definitions/NXauger_line.nxdl.xml b/contributed_definitions/NXauger_line.nxdl.xml
new file mode 100644
index 0000000000..34328032b8
--- /dev/null
+++ b/contributed_definitions/NXauger_line.nxdl.xml
@@ -0,0 +1,976 @@
+
+
+
+
+
+ An Auger line. It arises from the non-radiative decay of an atom with a
+ core hole: an electron from a higher level fills the hole and another
+ electron, the Auger electron, is ejected, with a kinetic energy
+ characteristic of the atom.
+
+
+
+ The Auger line name using either the notation ``INITIAL-FINAL1FINAL2``
+ for a specific line or ``INITIAL-TOTAL`` (e.g. ``K-TOTAL``) for the
+ sum over all Auger lines originating from a given initial edge.
+
+ The initial edge is one of: K, L1-L3, M1-M5. The two final edges range
+ from L through Q.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Kinetic energy of the emitted Auger electron.
+
+
+
+
+ The element undergoing the Auger transition.
+
+
+
diff --git a/contributed_definitions/NXelement.nxdl.xml b/contributed_definitions/NXelement.nxdl.xml
new file mode 100644
index 0000000000..24400ad292
--- /dev/null
+++ b/contributed_definitions/NXelement.nxdl.xml
@@ -0,0 +1,158 @@
+
+
+
+
+
+ A chemical element of the periodic table. It is identified by its atomic
+ number, as a species and not as a specific isotope.
+
+
+
+ Chemical symbol of the element, following IUPAC notation. For each
+ symbol, the common English name, atomic number, and standard atomic
+ weight are documented.
+
+
+ - name="hydrogen", atomic_number=1, standard_atomic_weight=1.0078
+ - name="helium", atomic_number=2, standard_atomic_weight=4.0026
+ - name="lithium", atomic_number=3, standard_atomic_weight=6.94
+ - name="beryllium", atomic_number=4, standard_atomic_weight=9.0122
+ - name="boron", atomic_number=5, standard_atomic_weight=10.81
+ - name="carbon", atomic_number=6, standard_atomic_weight=12.011
+ - name="nitrogen", atomic_number=7, standard_atomic_weight=14.007
+ - name="oxygen", atomic_number=8, standard_atomic_weight=15.999
+ - name="fluorine", atomic_number=9, standard_atomic_weight=18.9984
+ - name="neon", atomic_number=10, standard_atomic_weight=20.1797
+ - name="sodium", atomic_number=11, standard_atomic_weight=22.9898
+ - name="magnesium", atomic_number=12, standard_atomic_weight=24.305
+ - name="aluminum", atomic_number=13, standard_atomic_weight=26.9815
+ - name="silicon", atomic_number=14, standard_atomic_weight=28.085
+ - name="phosphorus", atomic_number=15, standard_atomic_weight=30.9738
+ - name="sulfur", atomic_number=16, standard_atomic_weight=32.06
+ - name="chlorine", atomic_number=17, standard_atomic_weight=35.453
+ - name="argon", atomic_number=18, standard_atomic_weight=39.948
+ - name="potassium", atomic_number=19, standard_atomic_weight=39.0983
+ - name="calcium", atomic_number=20, standard_atomic_weight=40.078
+ - name="scandium", atomic_number=21, standard_atomic_weight=44.9559
+ - name="titanium", atomic_number=22, standard_atomic_weight=47.867
+ - name="vanadium", atomic_number=23, standard_atomic_weight=50.9415
+ - name="chromium", atomic_number=24, standard_atomic_weight=51.996
+ - name="manganese", atomic_number=25, standard_atomic_weight=54.938
+ - name="iron", atomic_number=26, standard_atomic_weight=55.845
+ - name="cobalt", atomic_number=27, standard_atomic_weight=58.9332
+ - name="nickel", atomic_number=28, standard_atomic_weight=58.6934
+ - name="copper", atomic_number=29, standard_atomic_weight=63.546
+ - name="zinc", atomic_number=30, standard_atomic_weight=65.38
+ - name="gallium", atomic_number=31, standard_atomic_weight=69.72
+ - name="germanium", atomic_number=32, standard_atomic_weight=72.63
+ - name="arsenic", atomic_number=33, standard_atomic_weight=74.9216
+ - name="selenium", atomic_number=34, standard_atomic_weight=78.971
+ - name="bromine", atomic_number=35, standard_atomic_weight=79.904
+ - name="krypton", atomic_number=36, standard_atomic_weight=83.798
+ - name="rubidium", atomic_number=37, standard_atomic_weight=85.4678
+ - name="strontium", atomic_number=38, standard_atomic_weight=87.62
+ - name="yttrium", atomic_number=39, standard_atomic_weight=88.9058
+ - name="zirconium", atomic_number=40, standard_atomic_weight=91.224
+ - name="niobium", atomic_number=41, standard_atomic_weight=92.9064
+ - name="molybdenum", atomic_number=42, standard_atomic_weight=95.95
+ - name="technetium", atomic_number=43, standard_atomic_weight=97.907
+ - name="ruthenium", atomic_number=44, standard_atomic_weight=101.07
+ - name="rhodium", atomic_number=45, standard_atomic_weight=102.906
+ - name="palladium", atomic_number=46, standard_atomic_weight=106.42
+ - name="silver", atomic_number=47, standard_atomic_weight=107.868
+ - name="cadmium", atomic_number=48, standard_atomic_weight=112.414
+ - name="indium", atomic_number=49, standard_atomic_weight=114.818
+ - name="tin", atomic_number=50, standard_atomic_weight=118.71
+ - name="antimony", atomic_number=51, standard_atomic_weight=121.76
+ - name="tellurium", atomic_number=52, standard_atomic_weight=127.6
+ - name="iodine", atomic_number=53, standard_atomic_weight=126.905
+ - name="xenon", atomic_number=54, standard_atomic_weight=131.293
+ - name="cesium", atomic_number=55, standard_atomic_weight=132.905
+ - name="barium", atomic_number=56, standard_atomic_weight=137.327
+ - name="lanthanum", atomic_number=57, standard_atomic_weight=138.905
+ - name="cerium", atomic_number=58, standard_atomic_weight=140.116
+ - name="praseodymium", atomic_number=59, standard_atomic_weight=140.908
+ - name="neodymium", atomic_number=60, standard_atomic_weight=144.242
+ - name="promethium", atomic_number=61, standard_atomic_weight=145.0
+ - name="samarium", atomic_number=62, standard_atomic_weight=150.36
+ - name="europium", atomic_number=63, standard_atomic_weight=151.96
+ - name="gadolinium", atomic_number=64, standard_atomic_weight=157.25
+ - name="terbium", atomic_number=65, standard_atomic_weight=158.925
+ - name="dysprosium", atomic_number=66, standard_atomic_weight=162.5
+ - name="holmium", atomic_number=67, standard_atomic_weight=164.93
+ - name="erbium", atomic_number=68, standard_atomic_weight=167.259
+ - name="thulium", atomic_number=69, standard_atomic_weight=168.934
+ - name="ytterbium", atomic_number=70, standard_atomic_weight=173.045
+ - name="lutetium", atomic_number=71, standard_atomic_weight=174.967
+ - name="hafnium", atomic_number=72, standard_atomic_weight=178.49
+ - name="tantalum", atomic_number=73, standard_atomic_weight=180.948
+ - name="tungsten", atomic_number=74, standard_atomic_weight=183.84
+ - name="rhenium", atomic_number=75, standard_atomic_weight=186.207
+ - name="osmium", atomic_number=76, standard_atomic_weight=190.23
+ - name="iridium", atomic_number=77, standard_atomic_weight=192.217
+ - name="platinum", atomic_number=78, standard_atomic_weight=195.084
+ - name="gold", atomic_number=79, standard_atomic_weight=196.967
+ - name="mercury", atomic_number=80, standard_atomic_weight=200.592
+ - name="thallium", atomic_number=81, standard_atomic_weight=204.383
+ - name="lead", atomic_number=82, standard_atomic_weight=207.2
+ - name="bismuth", atomic_number=83, standard_atomic_weight=208.98
+ - name="polonium", atomic_number=84, standard_atomic_weight=209.0
+ - name="astatine", atomic_number=85, standard_atomic_weight=210.0
+ - name="radon", atomic_number=86, standard_atomic_weight=222.0
+ - name="francium", atomic_number=87, standard_atomic_weight=223.0
+ - name="radium", atomic_number=88, standard_atomic_weight=226.0
+ - name="actinium", atomic_number=89, standard_atomic_weight=227.0
+ - name="thorium", atomic_number=90, standard_atomic_weight=232.038
+ - name="protactinium", atomic_number=91, standard_atomic_weight=231.036
+ - name="uranium", atomic_number=92, standard_atomic_weight=238.029
+ - name="neptunium", atomic_number=93, standard_atomic_weight=237.048
+ - name="plutonium", atomic_number=94, standard_atomic_weight=239.052
+ - name="americium", atomic_number=95, standard_atomic_weight=243.0
+ - name="curium", atomic_number=96, standard_atomic_weight=247.0
+ - name="berkelium", atomic_number=97, standard_atomic_weight=247.0
+ - name="californium", atomic_number=98, standard_atomic_weight=251.0
+ - name="einsteinium", atomic_number=99, standard_atomic_weight=252
+ - name="fermium", atomic_number=100, standard_atomic_weight=257
+ - name="mendelevium", atomic_number=101, standard_atomic_weight=258
+ - name="nobelium", atomic_number=102, standard_atomic_weight=259
+ - name="lawrencium", atomic_number=103, standard_atomic_weight=266
+ - name="rutherfordium", atomic_number=104, standard_atomic_weight=267
+ - name="dubnium", atomic_number=105, standard_atomic_weight=268
+ - name="seaborgium", atomic_number=106, standard_atomic_weight=269
+ - name="bohrium", atomic_number=107, standard_atomic_weight=270
+ - name="hassium", atomic_number=108, standard_atomic_weight=269
+ - name="meitnerium", atomic_number=109, standard_atomic_weight=278
+ - name="darmstadtium", atomic_number=110, standard_atomic_weight=281
+ - name="roentgenium", atomic_number=111, standard_atomic_weight=282
+ - name="copernicium", atomic_number=112, standard_atomic_weight=285
+ - name="nihonium", atomic_number=113, standard_atomic_weight=286
+ - name="flerovium", atomic_number=114, standard_atomic_weight=289
+ - name="moscovium", atomic_number=115, standard_atomic_weight=290
+ - name="livermorium", atomic_number=116, standard_atomic_weight=293
+ - name="tennessine", atomic_number=117, standard_atomic_weight=294
+ - name="oganesson", atomic_number=118, standard_atomic_weight=294
+
+
+
diff --git a/contributed_definitions/NXemission_line.nxdl.xml b/contributed_definitions/NXemission_line.nxdl.xml
new file mode 100644
index 0000000000..4c3d7df898
--- /dev/null
+++ b/contributed_definitions/NXemission_line.nxdl.xml
@@ -0,0 +1,632 @@
+
+
+
+
+
+ An emission line. It arises from the radiative decay of an atom with a
+ core hole: an electron from a higher level fills the hole and a photon is
+ emitted, with an energy characteristic of the atom.
+
+
+
+ The emission line name using either the `IUPAC notation`_, i.e. initial and final
+ edge separated by a hyphen (e.g. ``K-L3``), or the Latinized Siegbahn
+ notation (e.g. ``Ka1``).
+
+ Correspondence between IUPAC and Siegbahn notations:
+
+ .. list-table::
+ :header-rows: 1
+
+ * - IUPAC
+ - Siegbahn
+ - Latinized Siegbahn
+ * - K-L3
+ - :math:`K\alpha_1`
+ - Ka1
+ * - K-L2
+ - :math:`K\alpha_2`
+ - Ka2
+ * - K-L1
+ - :math:`K\alpha_3`
+ - Ka3
+ * - K-M3
+ - :math:`K\beta_1`
+ - Kb1
+ * - K-N3
+ - :math:`K\beta_2'`
+ - Kb2\'
+ * - K-N2
+ - :math:`K\beta_2''`
+ - Kb2\'\'
+ * - K-M2
+ - :math:`K\beta_3`
+ - Kb3
+ * - K-N5
+ - :math:`K\beta_4'`
+ - Kb4\'
+ * - K-N4
+ - :math:`K\beta_4''`
+ - Kb4\'\'
+ * - K-N4
+ - :math:`K\beta_{4x}`
+ - Kb4x
+ * - K-M5
+ - :math:`K\beta_5'`
+ - Kb5\'
+ * - K-M4
+ - :math:`K\beta_5''`
+ - Kb5\'\'
+ * - L3-M5
+ - :math:`L\alpha_1`
+ - La1
+ * - L3-M4
+ - :math:`L\alpha_2`
+ - La2
+ * - L2-M4
+ - :math:`L\beta_1`
+ - Lb1
+ * - L3-N5
+ - :math:`L\beta_2`
+ - Lb2
+ * - L1-M3
+ - :math:`L\beta_3`
+ - Lb3
+ * - L1-M2
+ - :math:`L\beta_4`
+ - Lb4
+ * - L3-O4,5
+ - :math:`L\beta_5`
+ - Lb5
+ * - L3-N1
+ - :math:`L\beta_6`
+ - Lb6
+ * - L3-O1
+ - :math:`L\beta_7`
+ - Lb7
+ * - L3-N6,7
+ - :math:`L\beta_7'`
+ - Lb7\'
+ * - L1-M5
+ - :math:`L\beta_9`
+ - Lb9
+ * - L1-M4
+ - :math:`L\beta_{10}`
+ - Lb10
+ * - L3-N4
+ - :math:`L\beta_{15}`
+ - Lb15
+ * - L2-M3
+ - :math:`L\beta_{17}`
+ - Lb17
+ * - L2-N4
+ - :math:`L\gamma_1`
+ - Lg1
+ * - L1-N2
+ - :math:`L\gamma_2`
+ - Lg2
+ * - L1-N3
+ - :math:`L\gamma_3`
+ - Lg3
+ * - L1-O3
+ - :math:`L\gamma_4`
+ - Lg4
+ * - L1-O2
+ - :math:`L\gamma_4'`
+ - Lg4\'
+ * - L2-N1
+ - :math:`L\gamma_5`
+ - Lg5
+ * - L2-O4
+ - :math:`L\gamma_6`
+ - Lg6
+ * - L2-O1
+ - :math:`L\gamma_8`
+ - Lg8
+ * - L2-N6,7
+ - :math:`L\gamma_8'`
+ - Lg8\'
+ * - L2-M1
+ - :math:`L\eta`
+ - Ln
+ * - L3-M1
+ - :math:`Ll`
+ - Ll
+ * - L3-M3
+ - :math:`Ls`
+ - Ls
+ * - L3-M2
+ - :math:`Lt`
+ - Lt
+ * - L3-N6,7
+ - :math:`Lu`
+ - Lu
+ * - L2-N6,7
+ - :math:`Lv`
+ - Lv
+ * - M5-N7
+ - :math:`M\alpha_1`
+ - Ma1
+ * - M5-N6
+ - :math:`M\alpha_2`
+ - Ma2
+ * - M4-N6
+ - :math:`M\beta`
+ - Mb
+ * - M3-N5
+ - :math:`M\gamma`
+ - Mg
+ * - M4,5-N2,3
+ - :math:`M\zeta`
+ - Mz
+
+ .. _IUPAC notation: https://doi.org/10.1002/xrs.1300200308
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Energy of the emission line.
+
+
+
+
+ The element that emits this line.
+
+
+