Unicode information
===================

This collection of files is intended to create/curate the file
`characters.scm` in this directory, and act as the repository for UCD
data.

The source of authority here is the [Unicode Character Database][ucd],
which is described in [Standard Annex #44][ucddoc],
cross-referenced where necessary with the [Unicode code charts][charts].

The file `characters.scm` is derived from the UCD `NamesList.txt`
file, and edited by hand to add for each entry the LaTeX escape
sequence which produces that character.  It is used in
`../../util-extra.c.in`.

The files `UnicodeData.txt`, `DerivedCoreProperties.txt` and
`PropList.txt` are used in the generation of `../../mycu.c`.  This is
(currently) taken from Unicode 17.0.0.  To update these, simply
download the new versions from the [UCD distribution][ucd], and copy
them unchanged into `ucd/`.  Update the version in
`ucd/ucd_version.h`.  It may be necessary to update the
copyright year in the corresponding `.license` files.

Some of the Unicode code is written to use [ICU][],
which has pretty good [API docs][icudocs].


Reference and support
---------------------

Running

    ../../beastie chars-to-latex.scm >chars.tex

generates `chars.tex`, which can be run through `lualatex` to confirm
all the escape sequences are right.
Similarly,

    ../../beastie character-class-table.scm

will generate a (text) table of the working character classes of the
characters below 0x100.


[ucd]: https://www.unicode.org/Public/UCD/latest/ucd/
[ucddoc]: https://www.unicode.org/reports/tr44/
[charts]: https://www.unicode.org/charts/
[icu]: https://icu.unicode.org
[icudocs]: https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/index.html

----
SPDX-FileCopyrightText: 2023 Norman Gray <https://nxg.me.uk>
SPDX-License-Identifier: BSD-2-Clause

