Phonokit
Phonological Analysis in Typst
A phonology toolkit for Typst, providing IPA transcription with
tipa-style input, prosodic structure visualization, and IPA charts for vowels and consonants.
In what follows, I assume you know about Typst, but in a nutshell it is a programming language designed for typesetting. To migrate from
This vignette tells you everything you need to know about the package. You can also find it in the packages repository:
Features
IPA ModulA
Unlike tipa in tipa as much as possible: it would be familiar, practical and quick. This is what the function #ipa() does. There are only minor differences between \textipa{} and #ipa().
tipa-style input: use familiartipanotation instead of hunting for Unicode symbols- Comprehensive symbol support: most IPA consonants, vowels, and other symbols from the
tipachart - Combining diacritics: Nasalized (
\\~), devoiced (\\r), syllabic (\\v); the tie (\\t) is also available - Suprasegmentals: primary stress (
'), secondary stress (,), length (:) - Automatic character splitting: Type
SEinstead ofS Efor efficiency (spacing is necessary around characters using backslashes) - Charis SIL font needed for all transcriptions. If you don’t already have this font installed, visit https://software.sil.org/charis/download/
IPA Charts Module
I have used the great vowel package in #vowel() function in phonokit is simpler: it takes a string of vowels and plot them onto a vowel trapezoid.
A similar function also exists for consonants: #consonants(). It returns an IPA table of pulmonic consonants given an input (string). For both #vowels() and #consonants(), you also have the option of using a language as an input (see list of available languages below).
- Vowel charts: plot vowels on the IPA vowel trapezoid with accurate positioning
- Consonant tables: display consonants in the pulmonic IPA consonant table
- Language inventories: pre-defined inventories for some languages (English, Spanish, French, German, Italian, Portuguese, Japanese, Russian, Arabic, Mandarin)
- Custom symbol sets: plot any combination of IPA symbols
- Automatic positioning: symbols positioned according to phonetic properties (place, manner, voicing, frontness, height, roundedness)
- Proper IPA formatting: voiceless/voiced pairs, grayed-out impossible articulations, minimal pair bullets for vowels
- Scalable charts: adjust size to fit your document layout (scaling includes text as expected)
Prosody Module
The functions #syllable(), #foot() and #word() help you create prosodic representations from strings. They adjust sizing automatically, but you can also use the scale argument.
- Prosodic structure visualization: draw syllable structures with onset, nucleus, and coda
- Flexible foot structure: use parentheses to mark explicit foot boundaries and stress mark to identify headedness (iambs, trochees)
- Stress marking: mark stressed syllables with apostrophe
' - Flexible alignment: left or right alignment for prosodic word heads
Package Repository
You can download/fork the most up-to-date version of the package in the repository below.
http://github.com/guilhermegarcia/phonokit
Copyright © 2025 Guilherme Duarte Garcia