9

When using Charis SIL, how do I access IPA characters? Are there handy macros, as with tipa.sty? If I have to set up my own encoding using unicode numbers, how is this best done? (Code from those who have done this already?)


Here’s how I’m getting Charis SIL:

\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Charis SIL}
\begin{document}
Blowzy DJ frumps vex a knight QC

\it 
Blowzy DJ frumps vex a knight QC 
\end{document}

And here’s the result:

enter image description here


This question arises from a response to another question of mine.

9

You can use the IPA characters (of course you need that your file is encoded as UTF-8)

% -*- coding: utf-8 -*-
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Charis SIL}
\begin{document}
Blowzy DJ frumps vex a knight QC

ɳ (U+0273), ɲ (U+0272), ʁ (U+0281), ɱ (U+0271), ə (U+0259)

\end{document}

enter image description here

  • Aha, I didn’t think to check my encoding. Thanks, that works perfectly, and, moreover, gives me long-sought-after italics. – Daniel Harbour Jan 6 '13 at 16:52
12

xunicode (loaded by fontspec) contains the definitions of tipa.sty:

\documentclass[12pt]{article}
\usepackage{fontspec}

\setmainfont{Charis SIL}
\begin{document}
Blowzy DJ frumps vex a knight QC

\textturna

\textipa{[\!b] [\:r] [\;B]}
\end{document}
  • To get this to compile, I need to add \usepackage{tipa}—maybe my fontspec is an older version. When it compiles, the IPA characters are Computer Modern rather than Charis SIL, and they don't respond to \it or \emph. (egreg's solution responds to \it by producing italic Charis IPA characters.) Are there ways round this? – Daniel Harbour Jan 6 '13 at 18:23
  • You need xunicode not tipa. Older versions of fontspec didn't load xunicode. Load xunicode always after fontspec!! – Ulrike Fischer Jan 6 '13 at 20:02
  • Thanks. That now works very nicely too. Unfortunately, both this and @egreg ’s solution—maybe XeLaTeX in general—appear to be incompatible with expex, which I’m reluctant to give up, as some of features are unique to that glossing package... Hopefully there’s a way round this. – Daniel Harbour Jan 6 '13 at 20:26
  • 1
    @DanielHarbour ExPex should be compatible with XeLaTeX. See e.g. my answer to Doing an interlinear text. – Alan Munn Jan 6 '13 at 20:35
  • @AlanMunn Sorry, wasn't thinking clearly. The problem's less drastic. If lingset includes glneveryline=\em, (or \it or \itshape), then each foreign word (in the top line of the gloss) appears as it. I could drop italics if there's no work around. – Daniel Harbour Jan 6 '13 at 21:55
5

I always recommend that my students learn to use a Unicode IPA keyboard overlay. I've used the Keyman and MSKLC keyboards for Windows, but there are Linux and Mac options available at that page too.

When the keyboard is turned on, certain keys (=, &, <, >, etc.) are activated to modify the key that's pressed next in fairly consistent ways. For example, in the Windows MSKLC keyboard, all retroflexes use <, ^ is used for superscripts, tonal accents are produced with @ followed by a number, and = gives what seems to be the most frequent derivative from a given letter (ɑ for a, β for b, ç for c, ð for d, ə for e, etc.). This semantic key assignment means that you don't have to memorize every shortcut. These shortcuts also work for useful accents/diacritics that aren't strictly IPA: ç č ñ ö, etc.

As long as your editor allows Unicode input (most do these days) and you're compiling with XeLaTeX or LuaLaTeX, you can just use the IPA keyboard to type directly into the editor just as you can in most other applications. You can also copy and paste your Unicode text from other applications too.

The IPA pickers mentioned in the comments on the original question are fine if you don't have to use diacritics or IPA symbols regularly, and they're certainly the best option if you need to use someone else's machine that doesn't have an IPA keyboard loaded.

0

If no keyboard layout is available, mapping a font in xelatex is possible.

The decision is what alias (string) to give to each glyph. There are a lot of glyphs, and optimally, typing should be minimised.

One method is to use IPA numbers as the alias, similar to how Egyptian hieroglyphs have a numbering scheme:

ipa numbers

(Source of IPA numbers: Wikipedia)

but the list is arbitrary, and it is tedious to type the alias text.

Slightly less tedious, but more conceptually powerful, is a coordinate method, down-and-across Cartesian-like, where the alias shortcut is named for the articulation position:

ipa coordinates

This could be filled in with the composite characters easily (and the accents and diacritic marks).

And it becomes almost a music-like notation, allowing later visualisation through time of the utterance. It also focuses the minds of the students on the sound source like an actual map, rather than embedding an arbitrary visual sign as an extra layer of cognitive load.

.map file

; TECkit mapping for TeX input conventions <-> Unicode characters

LHSName "ipacoord-to-ipa" 
RHSName "UNICODE"

pass(Unicode)

; ligatures from Knuth's original CMR fonts
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

U+0021 U+0060   <>  U+00A1  ; !` -> inverted exclam
U+003F U+0060   <>  U+00BF  ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C   <>  U+201E  ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C   <>  U+00AB  ; << -> LEFT POINTING GUILLEMET
U+003E U+003E   <>  U+00BB  ; >> -> RIGHT POINTING GUILLEMET


;=====================================

 U+0076 U+0031 U+0031 U+0075 <>  U+0069; v11u i
 U+0076 U+0031 U+0031 U+0072 <>  U+0079; v11r y
 U+0076 U+0031 U+0032 U+0075 <>  U+0268; v12u ɨ
 U+0076 U+0031 U+0032 U+0072 <>  U+0289; v12r ʉ
 U+0076 U+0031 U+0033 U+0075 <>  U+026F; v13u ɯ
 U+0076 U+0031 U+0033 U+0072 <>  U+0075; v13r u
 U+0076 U+0032 U+0031 U+0075 <>  U+026A; v21u ɪ
 U+0076 U+0032 U+0031 U+0072 <>  U+028F; v21r ʏ
 U+0076 U+0032 U+0033 U+0072 <>  U+028A; v23r ʊ
 U+0076 U+0033 U+0031 U+0075 <>  U+0065; v31u e
 U+0076 U+0033 U+0031 U+0072 <>  U+00F8; v31r ø
 U+0076 U+0033 U+0032 U+0075 <>  U+0258; v32u ɘ
 U+0076 U+0033 U+0032 U+0072 <>  U+0275; v32r ɵ
 U+0076 U+0033 U+0033 U+0075 <>  U+0264; v33u ɤ
 U+0076 U+0033 U+0033 U+0072 <>  U+006F; v33r o
 U+0076 U+0034 U+0032 U+0072 <>  U+0259; v42r ə
 U+0076 U+0035 U+0031 U+0075 <>  U+025B; v51u ɛ
 U+0076 U+0035 U+0031 U+0072 <>  U+0153; v51r œ
 U+0076 U+0035 U+0032 U+0075 <>  U+025C; v52u ɜ
 U+0076 U+0035 U+0032 U+0072 <>  U+025E; v52r ɞ
 U+0076 U+0035 U+0033 U+0075 <>  U+028C; v53u ʌ
 U+0076 U+0035 U+0033 U+0072 <>  U+0254; v53r ɔ
 U+0076 U+0036 U+0031 U+0072 <>  U+00E6; v61r æ
 U+0076 U+0036 U+0032 U+0072 <>  U+0250; v62r ɐ
 U+0076 U+0037 U+0031 U+0075 <>  U+0061; v71u a
 U+0076 U+0037 U+0031 U+0072 <>  U+0276; v71r ɶ
 U+0076 U+0037 U+0033 U+0075 <>  U+0251; v73u ɑ
 U+0076 U+0037 U+0033 U+0072 <>  U+0252; v73r ɒ
 U+006B U+0031 U+0031 <>  U+0062; k11 b
 U+006B U+0031 U+0034 <>  U+0064; k14 d
 U+006B U+0031 U+0036 <>  U+0256; k16 ɖ
 U+006B U+0031 U+0037 <>  U+025F; k17 ɟ
 U+006B U+0031 U+0038 <>  U+0261; k18 ɡ
 U+006B U+0031 U+0039 <>  U+0262; k19 ɢ
 U+006B U+0031 U+0042 <>  U+00A0; k1B  
 U+006B U+0032 U+0031 <>  U+006D; k21 m
 U+006B U+0032 U+0032 <>  U+0271; k22 ɱ
 U+006B U+0032 U+0034 <>  U+006E; k24 n
 U+006B U+0032 U+0036 <>  U+0273; k26 ɳ
 U+006B U+0032 U+0037 <>  U+0272; k27 ɲ
 U+006B U+0032 U+0038 <>  U+014B; k28 ŋ
 U+006B U+0032 U+0039 <>  U+0274; k29 ɴ
 U+006B U+0033 U+0031 <>  U+0299; k31 ʙ
 U+006B U+0033 U+0034 <>  U+0072; k34 r
 U+006B U+0033 U+0039 <>  U+0280; k39 ʀ
 U+006B U+0034 U+0032 <>  U+2C71; k42 ⱱ
 U+006B U+0034 U+0034 <>  U+027E; k44 ɾ
 U+006B U+0034 U+0036 <>  U+027D; k46 ɽ
 U+006B U+0035 U+0031 <>  U+03B2; k51 β
 U+006B U+0035 U+0032 <>  U+0076; k52 v
 U+006B U+0035 U+0033 <>  U+00F0; k53 ð
 U+006B U+0035 U+0034 <>  U+007A; k54 z
 U+006B U+0035 U+0035 <>  U+0292; k55 ʒ
 U+006B U+0035 U+0036 <>  U+0290; k56 ʐ
 U+006B U+0035 U+0037 <>  U+029D; k57 ʝ
 U+006B U+0035 U+0038 <>  U+0263; k58 ɣ
 U+006B U+0035 U+0039 <>  U+0281; k59 ʁ
 U+006B U+0035 U+0041 <>  U+0295; k5A ʕ
 U+006B U+0035 U+0042 <>  U+0266; k5B ɦ
 U+006B U+0036 U+0034 <>  U+026E; k64 ɮ
 U+006B U+0037 U+0032 <>  U+028B; k72 ʋ
 U+006B U+0037 U+0034 <>  U+0279; k74 ɹ
 U+006B U+0037 U+0036 <>  U+027B; k76 ɻ
 U+006B U+0037 U+0037 <>  U+006A; k77 j
 U+006B U+0037 U+0038 <>  U+0270; k78 ɰ
 U+006B U+0038 U+0034 <>  U+006C; k84 l
 U+006B U+0038 U+0036 <>  U+026D; k86 ɭ
 U+006B U+0038 U+0037 <>  U+028E; k87 ʎ
 U+006B U+0038 U+0038 <>  U+029F; k88 ʟ
 U+006B U+0031 U+0031 U+0075 <>  U+0070; k11u p
 U+006B U+0031 U+0034 U+0075 <>  U+0074; k14u t
 U+006B U+0031 U+0036 U+0075 <>  U+0288; k16u ʈ
 U+006B U+0031 U+0037 U+0075 <>  U+0063; k17u c
 U+006B U+0031 U+0038 U+0075 <>  U+006B; k18u k
 U+006B U+0031 U+0039 U+0075 <>  U+0071; k19u q
 U+006B U+0031 U+0042 U+0075 <>  U+0294; k1Bu ʔ
 U+006B U+0035 U+0031 U+0075 <>  U+0278; k51u ɸ
 U+006B U+0035 U+0032 U+0075 <>  U+0066; k52u f
 U+006B U+0035 U+0033 U+0075 <>  U+03B8; k53u θ
 U+006B U+0035 U+0034 U+0075 <>  U+0073; k54u s
 U+006B U+0035 U+0035 U+0075 <>  U+0283; k55u ʃ
 U+006B U+0035 U+0036 U+0075 <>  U+0282; k56u ʂ
 U+006B U+0035 U+0037 U+0075 <>  U+00E7; k57u ç
 U+006B U+0035 U+0038 U+0075 <>  U+0078; k58u x
 U+006B U+0035 U+0039 U+0075 <>  U+03C7; k59u χ
 U+006B U+0035 U+0041 U+0075 <>  U+0127; k5Au ħ
 U+006B U+0035 U+0042 U+0075 <>  U+0068; k5Bu h
 U+006B U+0036 U+0034 U+0075 <>  U+026C; k64u ɬ

MWE code

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{fontspec}
\setmainfont{Noto Serif}
\newcommand\ipafontname{DejaVu Serif}
\newfontface\ipac[Mapping=ipacoord-to-ipa,Scale=1.1,Colour=red]{\ipafontname}

\begin{document}
Using IPA font = \ipafontname .
\medskip

Vowels

\noindent
v11u {\ipac v11u} 
v11r {\ipac v11r} 
v12u {\ipac v12u} 
v12r {\ipac v12r} 
v13u {\ipac v13u} 
v13r {\ipac v13r} \\
v21u {\ipac v21u} 
v21r {\ipac v21r} 
v23r {\ipac v23r} \\
v31u {\ipac v31u} 
v31r {\ipac v31r} 
v32u {\ipac v32u} 
v32r {\ipac v32r} 
v33u {\ipac v33u} 
v33r {\ipac v33r} \\
v42r {\ipac v42r} \\
v51u {\ipac v51u} 
v51r {\ipac v51r} 
v52u {\ipac v52u} 
v52r {\ipac v52r} 
v53u {\ipac v53u} 
v53r {\ipac v53r} \\
v61r {\ipac v61r} 
v62r {\ipac v62r} \\
v71u {\ipac v71u} 
v71r {\ipac v71r} 
v73u {\ipac v73u} 
v73r {\ipac v73r} 
\medskip

Consonants -- voiced

\noindent
k11 {\ipac k11} 
k14 {\ipac k14} 
k16 {\ipac k16} 
k17 {\ipac k17} 
k18 {\ipac k18} 
k19 {\ipac k19} \\
k21 {\ipac k21} 
k22 {\ipac k22} 
k24 {\ipac k24} 
k26 {\ipac k26} 
k27 {\ipac k27} 
k28 {\ipac k28} 
k29 {\ipac k29} \\
k31 {\ipac k31} 
k34 {\ipac k34} 
k39 {\ipac k39} \\
k42 {\ipac k42} 
k44 {\ipac k44} 
k46 {\ipac k46} \\
k51 {\ipac k51} 
k52 {\ipac k52} 
k53 {\ipac k53} 
k54 {\ipac k54} 
k55 {\ipac k55} 
k56 {\ipac k56} 
k57 {\ipac k57} 
k58 {\ipac k58} 
k59 {\ipac k59} 
k5A {\ipac k5A} 
k5B {\ipac k5B} \\
k64 {\ipac k64} \\
k72 {\ipac k72} 
k74 {\ipac k74} 
k76 {\ipac k76} 
k77 {\ipac k77} 
k78 {\ipac k78} \\
k84 {\ipac k84} 
k86 {\ipac k86} 
k87 {\ipac k87} 
k88 {\ipac k88} 
\medskip

Consonants -- unvoiced

\noindent
k11u {\ipac k11u} 
k14u {\ipac k14u} 
k16u {\ipac k16u} 
k17u {\ipac k17u} 
k18u {\ipac k18u} 
k19u {\ipac k19u} 
k1Bu {\ipac k1Bu} \\ 
k51u {\ipac k51u} 
k52u {\ipac k52u} 
k53u {\ipac k53u} 
k54u {\ipac k54u} 
k55u {\ipac k55u} 
k56u {\ipac k56u} 
k57u {\ipac k57u} 
k58u {\ipac k58u} 
k59u {\ipac k59u} 
k5Au~{\ipac k5Au} 
k5Bu~{\ipac k5Bu} \\
k64u {\ipac k64u} 




\end{document}

Setting the IPA font to an italic one does the expected:

IPA in italics

I haven't thought of a way (yet) to compress the alias string to one, two or three characters, so as to save typing, but some of the more frequent usages logically could be 'shrunk', at the expense of squeezing out information.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.