I'm working in a project (Ubuntu Manual, if you're curious) which requires TeX to create a PDF document. But when we have almost all translated, I've found that there wasn't an hyphenation pattern for my language (Asturian). Actually, there isn't almost anything. :)

So, I started creating a new one, which involved some hard mining in obscure Internet dungeons to get some documentation on how to do that. ;)

My approach is creating a list of hyphenated words (etymological when I'm 100% sure, syllabic else) from our Aspell word list. When I've got a decent list, I'll use a hyphenation generator (I can't remember the actual name of the script) to have the Asturian hyphenation file, then I'll try and install under my TeX Live installation to test it, and then I'll upload it to TeX repositories.

No, OpenOffice.org hyphenation is not an option (it still doesn't exist).

My question is this: Is there anything else I'm missing to have a working hyphenation for my language? Am I fully wrong and that won't work?

Thank you in advance.

  • Hyphenation in English is a pain (and worth a PhD thesis or two) but I remember learning the Castillian hyphenation rules in school as a child, so it would seem to be much simpler (unless I'm missing something, of course). Is hyphenation in Asturian all that different from Castillian? Aug 11, 2010 at 16:32
  • No, it's not that different, except for a couple extra letters and a missing one (J), But my question was more in the TeX side of hyphenation, not the natural language. I'm a TeX beginner :)
    – Xuacu
    Aug 11, 2010 at 18:07
  • 1
    I understand -- I was simply suggesting using the Castillian hyphenation patterns which already exist. Aug 16, 2010 at 13:19
  • 1
    Yes, that should work fine (with some "by hand" hyphenation when needed). Still, I prefer to get the real thing, even if it takes more time, because it will be available for other people to use and improve in the future.
    – Xuacu
    Aug 16, 2010 at 18:53
  • 1
    @José: You must be alluding to [Frank M. Liang's PhD][1]. It specified the hyphenation algorithm of TeX 82, as well as PatGen. [1]: tug.org/docs/liang Aug 19, 2010 at 20:58

3 Answers 3


The standard way to generate hyphenation patterns is to use PatGen.

There is a TUGboat article about custom pattern generation: Hyphenation on Demand and there is a PatGen2 tutorial on CTAN.

  • Thank you for the links, Martin, I'll read it carefully. PatGen2 is what I called «hyphenation generator» above :)
    – Xuacu
    Aug 11, 2010 at 18:13

Once you have the pattern file (the standard way to generate it from a word list is to use PatGen, as has been said), you need to edit your distribution's language.dat file and to regenerate the formats, because hyphenation patterns are only loaded at iniTeX time (except for LuaTeX). Then you can send the file to us in order to be included in TeX Live :-)


Hyphenation patterns can be created in basically two ways.

1. With patgen for morphological, etymological, etc., rules. You will need to feed patgen with a large list of hyphenated words, and set a few arcane parameters. Here is a tutorial. This is a trial and error task, although there are some attempts to make the generation easier, such as pypatgen .

2. By hand for syllabic, orthographic, etc., systematic rules. If your language falls in this category, forget about patgen altogether. Actually, many hyphenation patterns have been created in this way, perhaps with ad hoc tools for repetitive rules.

In this regard, there is in interesting tool written in TeX itself named mkpattern. For example, with

\input mkpatter.tex

&Va={a e o}
&Vp={i u}
&Vi={&Va u}
&C-={b c d f g h k m n p q s t v w x z} 
&C={&C- l r}

a1a e1e o1o zo2o 2&{Va}&{Vp}.
&{Vi}1i&{Va+} 2i&{Va+}.

the following patterns are generated (I’ve removed some empty lines):

1b 1c 1d 1f 1g 1h 1k 1m 1n 1p 1q 1s 1t 1v 1w 1x 1z 1l 1r 
2bb 2bc 2bd 2bf 2bg 2bh 2bk 2bm 2bn 2bp 2bq 2bs 2bt 2bv 2bw 2bx 2bz 
2cb 2cc 2cd 2cf 2cg 2ch 2ck 2cm 2cn 2cp 2cq 2cs 2ct 2cv 2cw 2cx 2cz 
2db 2dc 2dd 2df 2dg 2dh 2dk 2dm 2dn 2dp 2dq 2ds 2dt 2dv 2dw 2dx 2dz 
2fb 2fc 2fd 2ff 2fg 2fh 2fk 2fm 2fn 2fp 2fq 2fs 2ft 2fv 2fw 2fx 2fz 
2gb 2gc 2gd 2gf 2gg 2gh 2gk 2gm 2gn 2gp 2gq 2gs 2gt 2gv 2gw 2gx 2gz 
2hb 2hc 2hd 2hf 2hg 2hh 2hk 2hm 2hn 2hp 2hq 2hs 2ht 2hv 2hw 2hx 2hz 
2kb 2kc 2kd 2kf 2kg 2kh 2kk 2km 2kn 2kp 2kq 2ks 2kt 2kv 2kw 2kx 2kz 
2mb 2mc 2md 2mf 2mg 2mh 2mk 2mm 2mn 2mp 2mq 2ms 2mt 2mv 2mw 2mx 2mz 
2nb 2nc 2nd 2nf 2ng 2nh 2nk 2nm 2nn 2np 2nq 2ns 2nt 2nv 2nw 2nx 2nz 
2pb 2pc 2pd 2pf 2pg 2ph 2pk 2pm 2pn 2pp 2pq 2ps 2pt 2pv 2pw 2px 2pz 
2qb 2qc 2qd 2qf 2qg 2qh 2qk 2qm 2qn 2qp 2qq 2qs 2qt 2qv 2qw 2qx 2qz 
2sb 2sc 2sd 2sf 2sg 2sh 2sk 2sm 2sn 2sp 2sq 2ss 2st 2sv 2sw 2sx 2sz 
2tb 2tc 2td 2tf 2tg 2th 2tk 2tm 2tn 2tp 2tq 2ts 2tt 2tv 2tw 2tx 2tz 
2vb 2vc 2vd 2vf 2vg 2vh 2vk 2vm 2vn 2vp 2vq 2vs 2vt 2vv 2vw 2vx 2vz 
2wb 2wc 2wd 2wf 2wg 2wh 2wk 2wm 2wn 2wp 2wq 2ws 2wt 2wv 2ww 2wx 2wz 
2xb 2xc 2xd 2xf 2xg 2xh 2xk 2xm 2xn 2xp 2xq 2xs 2xt 2xv 2xw 2xx 2xz 
2zb 2zc 2zd 2zf 2zg 2zh 2zk 2zm 2zn 2zp 2zq 2zs 2zt 2zv 2zw 2zx 2zz 
2lb 2lc 2ld 2lf 2lg 2lh 2lk 2lm 2ln 2lp 2lq 2ls 2lt 2lv 2lw 2lx 2lz 
2rb 2rc 2rd 2rf 2rg 2rh 2rk 2rm 2rn 2rp 2rq 2rs 2rt 2rv 2rw 2rx 2rz 
a1a e1e o1o zo2o 
2ai. 2au. 
2ei. 2eu. 
2oi. 2ou. 

You must log in to answer this question.

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