我正在尝试创建映射文件,以便在 Plain XeTeX 中使用 Cambria Math 斜体书法和双击字母。但是,我无法这样做。这是我尝试基于 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
我做错了什么?
答案1
我意识到我做错了什么。首先,我不需要当前标记为 [...] 的部分,我只需要转换>
而不是<>
。
但最重要的是,该地图文件不能直接使用,我需要将其转换为文件*.tec˙
。但这本身还不够,需要将其放在 下texmf/fonts/misc/xetex/fontmapping
。您可能还需要复制地图文件,我还没有尝试过没有它。转换是使用 TECkit 完成的。
但是,TECkit 转换器不随 MiKTeX 提供(或者甚至可能不随 TeX Live 提供),因此你需要从TECkit 下载页面。
需要使用的命令:
teckit_compile <file>.map -o <file>.tec
如果这不起作用(因为这不是我上次尝试的)或者它不能让你满意,你可以选择使用 SILConverters,你可以从SILConverters 页面下载部分,也就是可以显示哪些字符将被翻译成哪些字符,但这仅适用于 Windows。(我需要将 DLL 文件从第一个下载的文件复制到程序文件夹,因此可能因为这个原因而相同。)
不要忘记刷新文件名数据库。您可以使用 来执行此操作texhash
。
答案2
这不是对你问题的确切回答,但我认为你做错了。你应该使用\XeTeXmathchardef
和类似的,例如:
\XeTeXmathchardef\alpha = "1 "1 "1D6FC
查看XeTeX 参考语法。