7

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?

Charles Stewart
  • 21,014
  • 5
  • 65
  • 121
Adam L. S.
  • 1,083

2 Answers2

11

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.

Adam L. S.
  • 1,083
  • Good summary of the necessary steps. Sorry I couldn't help here, I did write such files for myself once, but I lost them through poor data management :-( (and I've long since forgotten the exact process) – Will Robertson Oct 05 '10 at 13:23
  • That's okay. Where would be the fun if I get the answer in the first place, and could not figure it out by my self? ;-) (I know, that I also will forget this, but I know then where to look for it.) – Adam L. S. Oct 10 '10 at 10:43
2

Not exactly an answer to your question, but I think you are doing it the wrong way. You should use \XeTeXmathchardef and the likes instead, something like:

\XeTeXmathchardef\alpha = "1 "1 "1D6FC

Check XeTeX Reference for syntax.