Unicode transliteration packages for several Indo-European philology workflows.
This repository currently provides four LaTeX packages:
| Package | Command | Scope |
|---|---|---|
translit-sanskrit.sty |
\translitSanskrit{...} |
Sanskrit transliteration |
translit-proto-indo-european.sty |
\translitProtoIndoEuropean{...} |
Proto-Indo-European transliteration |
translit-proto-indo-iranian.sty |
\translitProtoIndoIranian{...} |
Proto-Indo-Iranian transliteration |
translit-avestan.sty |
\translitAvestan{...} |
Avestan transliteration |
The packages convert ASCII-oriented input conventions into Unicode output. The exact replacement rules are package-specific and are regression-tested in testfiles/.
- A modern LaTeX distribution with
expl3andxparse - A Unicode-capable engine is recommended for document output
lualatexis the engine used by the automated regression testsxelatexhas also been smoke-tested successfully in this repository
- A font with broad Unicode coverage is strongly recommended when typesetting the output
- Good options include
FreeSerifand theNotofamily
- Good options include
\documentclass{article}
\usepackage{fontspec}
\setmainfont{FreeSerif}
\usepackage{translit-sanskrit}
\usepackage{translit-proto-indo-european}
\begin{document}
\translitSanskrit{;aa .t .s .m}
\translitProtoIndoEuropean{g'h gwh h1}
\end{document}If you only need one language, load just that package.
The input syntax is intentionally compact and rule-driven. A few examples:
- Sanskrit:
;aa,:aa,.t,.d,;s,.s,.m - Proto-Indo-European:
g'h,gwh,h1,h2,h3 - Proto-Indo-Iranian:
;ch,;jh,:jh,sh,zh - Avestan:
;kh,xw,xv,.n,;sh
For the authoritative behavior, see the package sources and the regression expectations in testfiles/*.tlg.
This project uses l3build.
Run the full regression suite:
l3build checkUpdate a saved expectation after an intentional change:
l3build save translit-sanskritThe smoke test testfiles/smoke-all-packages.lvt verifies that all four public packages load together in one document.
translit-core.sty: shared ordered-replacement enginetranslit-*.sty: public language packagestestfiles/: regression inputs and expected logsbuild.lua:l3buildconfiguration
This refactor removed the old legacy/ package names and commands. The current public API is the translit-* package set listed above.