I know all about \XeTex, but that is for inputting the actual glyph (i.e. typing the Cree gylph for ¨ma¨).

Rather at :http://www.languagegeek.com/algon/cree one can download truetype fonts, but all we know is that the coding follows Unicode. I want to input usinng latin characters (much more useful if you are not a native speaker of the language or for linguistics). Thus I want to define \ma = \char[number] = glyph for ¨ma¨.

But to do this I have no the \char[number].

All the conversion tools for tex fonts (ttf2xxxx etc) seem to be for Latin encoding. There must be a way of using the knowledge of the Unicode mapping to create the \TeX [I use TeXLive on Mageia Linux]

  • 1
    Welcome to TeX SE! Sounds like you want XeLaTeX/LuaLaTeX with fontspec?
    – cfr
    May 10 '15 at 14:50

This is much easier with xetex or luatex than pdftex. I'm on windows and seem to have a font Euphemia with this script (which I can not read, sorry) so I hope the following looks OK.

I took a couple of lines from the site that you referenced and set them with xetex, firstly just copying the characters directly and secondly using tex macros with ASCCI names. I just made up the names taking the Unicode name minus canadian syllablics and changing prefixes such as west-cree to WC to produce a valid TeX name.

enter image description here






ᐁᐏᐊᒋᒧᐢᑖᑕᑯᐠ ᐁᑭ ᐃᑖᐸᐦᑕᒫᐣ ᐁᐏᑕᒪᑯᐏᔭᕁ ᐁᑐᑫ ᑕᐣᓯ ᓂᑲᐣ ᐁᐏᐊᑕᔨᐢᐸᔨᐠ ᐊᓄᐦᐨ ᑭᒥᔭᐢᑲᒧᐸᔨᑭ ᐅᒪ
ᑲᒥᔪᐢᑲᒥ ᐏᑭᑎᒪᑭᓇᑯᐏᓯᐤ ᐊᔨᓯᔨᓂᐤ ᐊᐦᐳ ᑲᑯᓯᐟ ᑭᑕᒥᔺᔭᐤ᙮





I note that I'm missing a few characters, the first line after the rule should match the first line, but hopefully this shows a basic technique, and it would be easier for someone who can read the script.

  • If you're using XeTeX anyway, what's the use of using character codes, rather than the actual symbol in the macro definitions? It certainly makes them easier to check for errors. Also, for text input using only macros, I hear someone wrote xspace, which might be really helpful...
    – Alan Munn
    May 10 '15 at 15:46
  • 1
    @DavidCarlisle I think Alan means why \def\a{^^^^140a} instead of \def\a{ᐏ}.
    – Manuel
    May 10 '15 at 16:58
  • @Manuel yes (I deleted my comment) simply because it was easier to generate that form from a unicode list May 10 '15 at 16:59

A comment with an image.

To clarify, Xelatex is not just for inputting characters directly.

In Xelatex, you can enter Latin characters and typeset other characters.

One way is with a mapped font, where, for example, I can say the letters "ke" map to "ᑫ" when using a particular font.

mapped font

This is especially useful when there is no keyboard available in the other script, or learning how to use it takes time.

\setmainfont{Noto Serif}
\newfontface\translitc[Mapping=latin-to-cansyll,Colour=blue]{Noto Sans Canadian Aboriginal}
ke {\translitc ke} ki {\translitc ki} ko {\translitc ko} ka {\translitc ka }


A mapping file looks like this:

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

LHSName "latin-to-cansyll" 


; 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+006B U+0065   <> U+146B     ;  ᑫ ke
U+006B U+0069   <> U+146D     ;  ᑭ ki
U+006B U+006F   <> U+146F     ;  ᑯ ko
U+006B U+0061   <> U+1472     ;  ᑲ ka

It is a text file with a .map extension, which is compiled into a binary .tec file with teckit_compile.exe, and the .tec file is called in via the Mapping= option for the font.

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.