# How to add named characters to Mathematica 10 or later?

Any news regarding this for Mathematica 12?

It appears that native support for the Klingon alphabet has been removed from version 10:

\[KlingonA]


Syntax::tsntxi: "\"!(\[ KlingonA])\" is incomplete; more input is needed.!(\"\")"

(Curiously "Klingon" remains in the \$CharacterEncodings list.)

As an exercise I wish to restore support of this character set but the underlying character system has been modified; specifically I cannot find the UnicodeFontMapping.tr file and I assume it no longer exists. Quoting TechnicalNotes.nb found in the Prerelease folder:

On all systems, the Mathematica family of fonts (Mathematica*1-7) has been replaced with a single Mathematica font.

On Windows, the single Mathematica font is no longer installed under "c:\windows\fonts". Instead, the user interface loads the font from the installation directory.

For prerelease testing, we are interested in learning about any issues related to this change.

UnicodeCharacters.tr does remain (path given by SystemDumpunicodeCharactersTR) and the format appears unchanged so I should be able to restore recognition of \[KlingonA] etc., but without being able to map these characters to font glyphs that is largely pointless. (Though it would correct unrecognized syntax in legacy code.)

How can one create named characters and bind them to specific glyphs in v10 or v11?

• I wrote to Wolfram Support. When/If I get anything back , I'll post it here. – stathisk Aug 20 '14 at 8:48
• There's a FontMap.Tr file under FrontEnd/TextResources directory, which contains compressed data. If I import it I get ... {"MathematicaFont" -> {33, 35, 37, 40, 41, 42, 43, ... Did it exist in 9 ? – stathisk Aug 20 '14 at 10:01
• @Zet Thanks for writing Support; I'll be interested in what they say. Good observation about FontMap.tr; I believe I found that myself before writing this Question but was put off by the compression. Since no one else has answered I'll see if I can hack this myself. Thanks for the reminder. :-) – Mr.Wizard Aug 20 '14 at 18:49
• @Zet I remember now what stopped me with FontMap.tr. I did Uncompress that data but the different sections don't appear to point to actual font files but rather internal classifications. There is no "MathematicaFont" or "Diacritical" font file that I can see. Experimenting today by adding a section with the name of an installed font does not seem to work. – Mr.Wizard Aug 20 '14 at 19:43
• I got a first response: "This is indeed an issue of our font system. Unfortunately we don't have a workaround at this moment. I've already forwarded your message to the development team and an incidence report has been opened on this issue.". I will keep this post updated. – stathisk Aug 25 '14 at 21:15

This is not a complete answer. However, since no other reply is forthcoming here are the lines that may be appended to UnicodeCharacters.tr as mentioned in the question. This at least allows these characters to be recognized by the Front End rather than producing a syntax error. The glyphs remain broken.

0xF8D0      \[KlingonA]     ()      Letter
0xF8D1      \[KlingonB]     ()      Letter
0xF8D2      \[KlingonCH]        ()      Letter
0xF8D3      \[KlingonD]     ()      Letter
0xF8D4      \[KlingonE]     ()      Letter
0xF8D5      \[KlingonGH]        ()      Letter
0xF8D6      \[KlingonH]     ()      Letter
0xF8D7      \[KlingonI]     ()      Letter
0xF8D8      \[KlingonJ]     ()      Letter
0xF8D9      \[KlingonL]     ()      Letter
0xF8DA      \[KlingonM]     ()      Letter
0xF8DB      \[KlingonN]     ()      Letter
0xF8DC      \[KlingonNG]        ()      Letter
0xF8DD      \[KlingonO]     ()      Letter
0xF8DE      \[KlingonP]     ()      Letter
0xF8DF      \[KlingonQ]     ()      Letter
0xF8E0      \[KlingonQH]        ()      Letter
0xF8E1      \[KlingonR]     ()      Letter
0xF8E2      \[KlingonS]     ()      Letter
0xF8E3      \[KlingonT]     ()      Letter
0xF8E4      \[KlingonTLH]       ()      Letter
0xF8E5      \[KlingonU]     ()      Letter
0xF8E6      \[KlingonV]     ()      Letter
0xF8E7      \[KlingonW]     ()      Letter
0xF8E8      \[KlingonY]     ()      Letter
0xF8E9      \[KlingonGlottalStop]       ()      Letter
0xF8F0      \[Klingon0]     ()      Letter
0xF8F1      \[Klingon1]     ()      Letter
0xF8F2      \[Klingon2]     ()      Letter
0xF8F3      \[Klingon3]     ()      Letter
0xF8F4      \[Klingon4]     ()      Letter
0xF8F5      \[Klingon5]     ()      Letter
0xF8F6      \[Klingon6]     ()      Letter
0xF8F7      \[Klingon7]     ()      Letter
0xF8F8      \[Klingon8]     ()      Letter
0xF8F9      \[Klingon9]     ()      Letter
0xF8FF      \[KlingonEmpire]        ()      Letter

• Not sure how useful is that, but I have found a Mathematica file pertaining to Klingon in "/usr/local/Wolfram/Mathematica/10.0/SystemFiles CharacterEncodings" folder from under Ubuntu. – Alexey Bobrick Sep 30 '14 at 18:15
• @Alexey I actually hadn't thought about that file. I don't know if it will be of help or not yet, but thanks for reminding me of it! – Mr.Wizard Sep 30 '14 at 20:20