Typesetting Gaelic in Gaelic type
However, I thought it’d be nice to be able to typeset Gaelic in Gaelic type using TeX/LaTeX/XeLaTeX.
After a big of googling, I found a very nice font called Gadelica.
This is a beautiful OpenType font (and it supports the grave accents used in Scottish Gaelic, not just the acute ones used in Irish), but there is a slight problem: It assumes that the dotted letters (e.g., ‘?’ instead of ‘ch’) have been coded in Unicode rather than using the normal digraphs.
To solve this, I created a TECkit mapping (see below for the complete mapping file). Once you’ve compiled it, you can now easily create a XeLaTeX document and select font and mapping with \setromanfont[Mapping=gadelica]{Gadelica}, and you can now input the normal ligatures. For instance, the second line in the illustration above is simply given as Dh’fheuch am faic mi fear a’ bhàta in the source file.
Here’s the complete mapping file, gadelica.map (compile with teckit_compile gadelica.map):
LHSName "Gadelica"
RHSName "UNICODE"
pass(Unicode)
U+0062 U+0068 <> U+1E03 ;bh
U+0063 U+0068 <> U+010B ;ch
U+0064 U+0068 <> U+1E0B ;dh
U+0066 U+0068 <> U+1E1F ;fh
U+0067 U+0068 <> U+0121 ;gh
U+006D U+0068 <> U+1E41 ;mh
U+0070 U+0068 <> U+1E57 ;ph
U+0073 U+0068 <> U+1E61 ;sh
U+0074 U+0068 <> U+1E6B ;th
U+0042 U+0048 <> U+1E02 ;BH
U+0043 U+0048 <> U+010A ;CH
U+0044 U+0048 <> U+1E0A ;DH
U+0046 U+0048 <> U+1E1E ;FH
U+0047 U+0048 <> U+0120 ;GH
U+004D U+0048 <> U+1E40 ;MH
U+0050 U+0048 <> U+1E56 ;PH
U+0053 U+0048 <> U+1E60 ;SH
U+0054 U+0048 <> U+1E6A ;TH
U+0053 U+0048 <> U+1E60 ;SH
U+0054 U+0048 <> U+1E6A ;TH
U+0042 U+0068 <> U+1E02 ;Bh
U+0043 U+0068 <> U+010A ;Ch
U+0044 U+0068 <> U+1E0A ;Dh
U+0046 U+0068 <> U+1E1E ;Fh
U+0047 U+0068 <> U+0120 ;Gh
U+004D U+0068 <> U+1E40 ;Mh
U+0050 U+0068 <> U+1E56 ;Ph
U+0053 U+0068 <> U+1E60 ;Sh
U+0054 U+0068 <> U+1E6A ;Th
; Some stuff from tex-text.map:
U+002D U+002D <> U+2013 ; -- -> en dash
U+002D U+002D U+002D <> U+2014 ; --- -> em dash
U+0027 <> U+2019 ; ' -> right single quote
U+0027 U+0027 <> U+201D ; '' -> right double quote
U+0022 > U+201D ; " -> right double quote
U+0060 <> U+2018 ; ` -> left single quote
U+0060 U+0060 <> U+201C ; `` -> left double quote