[Tex/LaTex] Create the own mapping for XeTeX fonts

fontsplain-texsymbolsxetex

I'm trying to create mapping files, to make use of Cambria Math italic calligraphic and double stroke letters in Plain XeTeX. However, I'm unable to do so. This is what I tried to create for the italic mapping based on tex-text.map:

; Math italic conversion for Cambria Math (and the like)

LHSName "Math-Italic"
RHSName "UNICODE"

[...]    

pass(Unicode)

; Latin big and SMALL letters
U+0041   <> U+1D434 ; A
U+0042   <> U+1D435 ; B
U+0043   <> U+1D436 ; C
U+0044   <> U+1D437 ; D
U+0045   <> U+1D438 ; E
U+0046   <> U+1D434 ; F
U+0047   <> U+1D439 ; G
U+0048   <> U+1D43A ; H
U+0049   <> U+1D43B ; I
U+004A   <> U+1D43C ; J
U+004B   <> U+1D43D ; K
U+004C   <> U+1D43E ; L
U+004D   <> U+1D43F ; M
U+004E   <> U+1D440 ; N
U+004F   <> U+1D441 ; O
U+0050   <> U+1D442 ; P
U+0051   <> U+1D443 ; Q
U+0052   <> U+1D444 ; R
U+0053   <> U+1D445 ; S
U+0054   <> U+1D446 ; T
U+0055   <> U+1D447 ; U
U+0056   <> U+1D448 ; V
U+0057   <> U+1D44A ; W
U+0058   <> U+1D44B ; X
U+0059   <> U+1D44C ; Y
U+005A   <> U+1D44D ; Z

U+0061   <> U+1D44E ; a
U+0062   <> U+1D44F ; b
U+0063   <> U+1D450 ; c
U+0064   <> U+1D451 ; d
U+0065   <> U+1D452 ; e
U+0066   <> U+1D453 ; f
U+0067   <> U+1D454 ; g
U+0068   <> U+210E  ; h
U+0069   <> U+1D456 ; i
U+006A   <> U+1D457 ; j
U+006B   <> U+1D458 ; k
U+006C   <> U+1D459 ; l
U+006D   <> U+1D45A ; m
U+006E   <> U+1D45B ; n
U+006F   <> U+1D45C ; o
U+0070   <> U+1D45D ; p
U+0071   <> U+1D45E ; q
U+0072   <> U+1D45F ; r
U+0073   <> U+1D460 ; s
U+0074   <> U+1D461 ; t
U+0075   <> U+1D462 ; u
U+0076   <> U+1D463 ; v
U+0077   <> U+1D464 ; w
U+0078   <> U+1D465 ; x
U+0079   <> U+1D466 ; y
U+007A   <> U+1D467 ; z

; Greek big and SMALL letters

;𝛳
U+0391   <> U+1D6E2 ; Alpha
U+0392   <> U+1D6E3 ; Betha
U+0393   <> U+1D6E4 ; Gamma
U+0394   <> U+1D6E5 ; Delta
U+0395   <> U+1D6E6 ; Epsilon
U+0396   <> U+1D6E7 ; Zeta
U+0397   <> U+1D6E8 ; Eta
U+0398   <> U+1D6E9 ; Theta
U+0399   <> U+1D6EA ; Iota
U+039A   <> U+1D6EB ; Kappa
U+039B   <> U+1D6EC ; Lambda
U+039C   <> U+1D6ED ; Mu
U+039D   <> U+1D6EE ; Nu
U+039E   <> U+1D6EF ; Xi
U+039F   <> U+1D6F0 ; Omicron
U+03A0   <> U+1D6F1 ; Pi
U+03A1   <> U+1D6F2 ; Ro
U+03A3   <> U+1D6F4 ; Sigma
U+03A4   <> U+1D6F5 ; Tau
U+03A5   <> U+1D6F6 ; Upsilon
U+03A6   <> U+1D6F7 ; Phi
U+03A7   <> U+1D6F8 ; Chi
U+03A8   <> U+1D6F9 ; Psi
U+03A9   <> U+1D6FA ; Omega

U+03B1   <> U+1D6FC ; alpha
U+03B2   <> U+1D6FD ; betha
U+03B3   <> U+1D6FE ; gamma
U+03B4   <> U+1D6FF ; delta
U+03B5   <> U+1D600 ; varepsilon
U+03B6   <> U+1D701 ; zeta
U+03B7   <> U+1D702 ; eta
U+03B8   <> U+1D703 ; theta
U+03B9   <> U+1D704 ; iota
U+03BA   <> U+1D705 ; kappa
U+03BB   <> U+1D706 ; lambda
U+03BC   <> U+1D707 ; mu
U+03BD   <> U+1D708 ; nu
U+03BE   <> U+1D709 ; xi
U+03BF   <> U+1D70A ; omicron
U+03C0   <> U+1D70B ; pi
U+03C1   <> U+1D70C ; ro
U+03C3   <> U+1D70D ; varsigma
U+03C3   <> U+1D70E ; sigma
U+03C4   <> U+1D70F ; tau
U+03C5   <> U+1D710 ; upsilon
U+03C6   <> U+1D711 ; phi
U+03C7   <> U+1D712 ; chi
U+03C8   <> U+1D713 ; psi
U+03C9   <> U+1D714 ; omega
U+03F5   <> U+1D715 ; epsilon
U+03D1   <> U+1D717 ; vartheta
U+03F0   <> U+1D718 ; varkappa
U+03D5   <> U+1D719 ; varphi
U+03F1   <> U+1D71A ; varrho
U+03D6   <> U+1D71B ; varpi

What did I do wrong?

Best Answer

I figured what I did wrong. First, I don't needed the part that is currently marked with [...], and I only need the > conversion instead of <>.

But most important, that map files does not used directly, I need to convert it to a *.tec˙ file. But that itself is not enough, it is need to be placed under texmf/fonts/misc/xetex/fontmapping. You may need to copy the map file as well, I didn't tried it without that yet. Conversion is done with TECkit.

However, the TECkit converter is not shipped with MiKTeX (or maybe not even with TeX Live), so you need to download that from TECkit Download page.

The command that you need to use:

teckit_compile <file>.map -o <file>.tec

If this does not work (since this isn't what I used as my last attempt) or it is not satisfying for you, you may alternatively use the SILConverters, that you can download from SILConverters page Download section, that is also can show you what characters will be translated to what characters, but that is only available for Windows. (I needed to copy the DLL files from the first downloaded file to the programs folder, so it is possible that is the same because of this.)

Don't forget to refresh the File Name database. You can do that with texhash.