I write a dictionary of artificial language. Where is any tutorial how creating new language. I have 12 unicode characters and 2 characters in two different representations and normal romna and greek characters. (join 2 glyphs for example o+' = ó) Some characters have dots on top (similar i or 2 dot) and ogonek (similar cedila?).

  • 3
    Your question is somewhat vague. Would the tools described in the babel docs under “Creating a language” help? What “new unicode characters” means? Aug 6, 2017 at 14:06
  • new unicode char = character outside normal roman table, nothing more. I ask about documentation , please give me link. This is only alphabet not language. I dont know what is better, style, babel etc. Alphabet for me is charmap, hyphenation, some joining character (in polish a+,=ą) . Question is how change unicode character to letter or joining 2-3 glyph. Aug 6, 2017 at 18:04
  • You can find the babel docu at texdoc.net/pkg/babel Aug 6, 2017 at 19:15
  • @JavierBezos In the version (Version 3.12 2017/06/29) currently included in texlive, the table of contents seems to be missing in the documentation. Aug 6, 2017 at 19:18
  • @samcarter Thank you. I realized after submitting it to CTAN. Not being a severe problem, I'll fix it in the next release (sep-oct, I think). Aug 7, 2017 at 8:16

1 Answer 1


From TeX's viewpoint, a "language" is only a set of hyphenation patterns to allow the processor's paragraph breaking algorithm to do its typesetting job: hyphenating a paragraph. So, once you have figured out the phonotactics of your conlang, you only need to define a set of hyphenation patterns as the argument of a \patterns command (and an optional list of \hyphenation exceptions), and define it as the next \language for the iniTeX's/LuaTeX processor. So, for instance, for lilipu, the following lilihyph.tex file may be made:

\lefthyphenmin=2 \righthyphenmin=2
\catcode`\'=11 % the glottal stop ' is a consonant!
\patterns{1k 1l 1m 1p 1v 1'}

The details of this operation are explained in Appendix H of the TeXbook.

Now, how do you activate the "language" depends on your format and engine: LaTeX and eTeX (the now fashionable formats), on pdf[enc]TeX, XeTeX or LuaTeX (the Unicode aware engines) have slightly different approaches; so your mileage may vary. To add your language hyphenation file For LaTeX and bplain you need to edit the language.dat file and add the line

lilipu lilihyph.tex

for eTeX based formats you need to edit the language.def file


Then you may use babel's or etex's interface to activate your language settings.

In terms of experimenting, I strongly recommend you to use the Plain format with the LuaTeX engine: LuaTeX is fully Unicode aware, and loads hyphenation patterns directly, without going to reassemble the formats.

  • hyphenation is not == language. Where is new characters, where are specyfic signs. Look at greek language or spanisch 180 rotate ? or ,. in greek Aug 12, 2017 at 8:13
  • I know that a language is not a set of hyphenation patterns: language is history, community, and what not... I'm only pointing out to you that for the job of this particular computer program (typeset books) a "language" is reduced to a set of hyphenation patterns, if any, between its glyphs, if the script is phonetic, and if it allows for syllabification.
    – jarnosz
    Aug 12, 2017 at 19:20
  • The symbols/glyphs for your conlang are defined in the fonts, so you need another program to design and manage the glyphs for your script. Metafont was designed to do it, but it is slightly less useful these days of outline fonts; so perhaps you need something like fontforge. And maybe a good Unicode engine (XeTeX, LuaTeX) may come in handy to let you handle a large set of glyphs for your conlang in print, since TeX/metafont can only handle 256 glyphs at a time.
    – jarnosz
    Aug 12, 2017 at 19:22
  • not exactly, language is whole, typography too <<>> number, ?! etc Aug 14, 2017 at 12:40
  • again: you get all the glyphs from the fonts; setting up the fonts is another issue.
    – jarnosz
    May 19, 2018 at 17:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .