CTAN Comprehensive TeX Archive Network

Verzeichnis fonts/openglyph

README.md

OpenGlyph

Version 0.2.1 (2026-10-28), CTAN submission candidate. Maintainer: Zejia FAN.

OpenGlyph provides named, font-backed historical Chinese glyphs for . Use an ASCII identifier instead of pasting a missing-character image into a paper. An optional offline compiler constructs new forms by editing named component occurrences and produces OpenType fonts for ordinary typesetting.

The distribution includes 22,583 GlyphWiki ebag_s forms and 38,462 source and dependency programs. It does not identify characters, establish readings, or replace human comparison with the source document. Example new forms are synthetic editing demonstrations, not claims about historical attestations.

Repository and issue tracker: https://github.com/Open-Glyph/OpenGlyph-

Requirements and quick start

Typesetting requires or Lua, dated 2020-10-01 or newer, and fontspec, iftex and xparse. The Chinese example additionally needs ctex and Fandol (and Lua-ja when using Lua). pdf is not supported. Ordinary typesetting is offline: no account, model, Python, Node.js or shell escape is used.

After installing the package:

\documentclass{article}
\usepackage{openglyph}
\OpenGlyphLoad{ebag}
\begin{document}
An existing form: \ebag{s030-067}.
\end{document}

Built-in IDs are source identifiers, not scholarly identifications or standard Unicode assignments. PUA addresses are font-local. A PDF embeds its font; sharing editable source requires sharing the matching font bundle as well.

Installation

This ZIP is a browsing-friendly source distribution, not a TDS ZIP. Map files to a personal TEXMF tree as follows (replace TEXMFHOME with the output of kpsewhich -var-value=TEXMFHOME):

This archive Personal TEXMF destination
tex/openglyph.sty tex/latex/openglyph/openglyph.sty
tex/openglyph-ebag.def tex/latex/openglyph/openglyph-ebag.def
fonts/OpenGlyphEbag.otf fonts/opentype/public/openglyph/OpenGlyphEbag.otf
doc/ doc/latex/openglyph/ (preserve structure)
source/ source/latex/openglyph/ (preserve structure)
root README, LICENSE, notices, disclosure, changelog doc/latex/openglyph/

Refresh your distribution's filename database if it uses one. Do not copy the example catalog.tex files to the global runtime path. Only the two files under tex/ are runtime files. The offline builder remains optional source tooling, with no PATH wrapper or shell-escape whitelist requested. Live does not install its Python/Node dependencies for you.

For a project-local or Overleaf installation, put the two files from tex/ and fonts/OpenGlyphEbag.otf beside your main .tex file. Select or Lua. The original layout with ebag/catalog.tex and its adjacent font is also supported; a local ebag/ bundle takes precedence over the installed one. Do not combine different built-in bundle versions within one document. Custom bundles require an explicit relative or absolute directory path; finding only their catalogue through an unrelated TEXINPUTS search path is not supported. The font must remain in the same bundle directory.

See doc/openglyph-doc.pdf and its editable source for the full interface. doc/openglyph-example.tex is a Chinese worked example. Open doc/openglyph-index.html for the offline glyph index in the unpacked archive. If you relocate this index, keep its OTF reference consistent; it uses ../fonts/OpenGlyphEbag.otf in this archive.

Constructing new forms (optional)

In the source/ directory, prepare Python 3.10+ and Node.js, and install requirements-build.txt in your own virtual environment:

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-build.txt
python scripts/openglyph.py inspect ebag:s030-067 --node r4 -o preview
python scripts/openglyph.py build examples/newforms.json -o myglyphs
python scripts/openglyph.py build examples/modules.json -o moduleglyphs

On Windows, activate with .venv\Scripts\Activate.ps1 instead. Output folders must be new; existing folders are never overwritten. Copy the resulting myglyphs/ beside the paper, load \OpenGlyphLoad{myglyphs}, and typeset \gwglyph{my:n2}. Pass --allocation old-bundle/allocation.json on revision to preserve prior PUA slots; retired slots are not reused.

High-level JSON supports replace, insert, drop, place, move, group, reusable modules, and source-record select. Nodes are occurrence paths obtained from inspect, not guessed stroke numbers. See the manual and JSON examples. Optional remote image retrieval is a separate toolchain; the package does not itself run image recognition or contact OpenGlyph services.

Licenses and source

  • OpenGlyph's own code and documentation: MIT, see LICENSE.
  • GlyphWiki source data, derived fonts and illustrative derivatives: the retained permissive GlyphWiki grant in source/licenses/GlyphWiki.txt. These files are not relicensed as MIT or OFL.
  • Vendored KAGE JavaScript: GPL v3, see source/vendor/kage-engine/COPYING; the original source is included.

See THIRD-PARTY-NOTICES.md for the exact file groups and provenance. source/data/provenance.json and ebag-manifest.json record source hashes, per-glyph information and font addresses. No SEAL font, private paper, scan, local unverified IDS annotation table, credential or user upload is included.

Development and this candidate's documentation are substantially AI-assisted; see AI-ASSISTANCE.md. Human review is not certified by a successful build. This candidate has not been submitted to or accepted by CTAN, Live or MiK. Their review and distribution decisions are separate.

Herunterladen des vollständigen Inhalts dieses Pakets in einem Zip-Archiv (29.5M).

Openglyph – Font-backed typesetting and component-based construction of historic Chinese

The package provides named, font-backed historical Chinese glyphs for and Lua. Authors enter ASCII identifiers instead of inserting separate missing-character images. The distribution includes 22,583 GlyphWiki ebag_s forms, their source-program dependency subset, and an optional offline Python/Node component-edit compiler. New forms are built into OpenType fonts with stable project-local private-use addresses and reproducible source records. Ordinary typesetting requires neither shell escape nor a network service. This package is not an OCR system and does not establish scholarly readings or the correctness of a generated glyph.

PaketOpenglyph
Fehlermeldungen
Repository
Version0.2.1
LizenzenFree license not otherwise listed
MIT License
GNU General Public License, version 3
BetreuerZejia Fan
ThemenOTF-Schriften
-Verwendung
CJK-Schriften
Schriften
Chinesisch
Lua-Verwendung
...
Gästebuch Seiten-Struktur Impressum Autor kontaktieren