Mathematica的linux前端\ [Conjugate]字体错误的解决方法

Sim*_*mon 3 wolfram-mathematica mathematica-frontend

Mathematica的8.0.1版本刚刚发布,它没有修复最烦我的bug.这是一个已知的错误,WRI承诺"在未来的版本中"修复它.在他们做之前,也许我们可以找到一个解决方法.

在Mathematica版本7和8之间打破了\[Conjugate](使用快捷键输入的?conj?)符号.在版本8中它不显示,这在阅读我的旧代码时会导致很多混乱.比较两个版本:

V7

V8


我能想到两个选项:

  1. 找到前端在看到时显示的符号,\[Conjugate]并告诉它显示可见的内容.如果没有在WRI工作并重新编译前端,我不确定是否可以这样做.
  2. 重新定义快捷方式?conj?(如此SO问题中所述)以创建一个不同的后缀运算符,该运算符显示为上标*并立即解释为Conjugate[]- 即它具有与之相同的行为\[Conjugate].显示属性可能会使用InterpretationBox等...

选项2的问题在于它不会修复我的旧笔记本.

有没有人有任何不同的想法或上述的实施?

rag*_*eld 6

您需要UnicodeFontMapping.tr(影响外观)而不是UnicodeCharacters.tr(影响解释).制作UnicodeFontMapping.tr的备份副本并编辑该行:

0xF3C8 N 6 0xad # \[Conjugate]

类似的东西(使用你想要的任何替换字形):

0xF3C8 N 1 0x2a # *

  • 某些文件格式在文件本身的注释中指定.第一个条目是unicode字符.第二个条目定义了使用何种跨度(N>无,H->水平,V->垂直,D->上/下标).第三个条目指定要使用的字体(文件中定义的数字).第四个条目指定该字体中的哪些字形.所以你所做的改变取代了\ [Conjugate]的默认渲染(使用一些因某些原因无效的Mathematica5字体字形)和基本字体中的'*'(例如Courier). (2认同)