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