2011-03-08 51 views
3

Mathematica 8.0.1版剛剛發佈,它並沒有解決令我最煩惱的bug。這是一個已知的錯誤,WRI承諾將在「未來版本」中進行修復。 直到他們做到了,也許我們可以找到解決方法。Mathematica linux前端中的 [Conjugate]字體錯誤的解決方法

\[Conjugate](使用快捷鍵⋮conj⋮輸入)的符號在Mathematica版本7和8之間被打破。在版本8中,它不顯示,在閱讀我的舊代碼時會導致很多混淆。比較兩個版本:

V7

V8


有跡象表明,我能想到的兩個選項:

  1. 找到符號,當它看到前臺顯示\[Conjugate]和告訴它顯示可見的東西。我不確定沒有在WRI工作並重新編譯前端,這是否可行。
  2. 重新定義快捷⋮conj⋮(如在this SO question描述)以創建顯示作爲上標*並立即解釋爲Conjugate[]不同的後綴運算 - 即它具有相同的行爲\[Conjugate]。顯示屬性可能可以照顧使用InterpretationBox

選項2的問題是,它不會修復我的舊筆記本電腦。

有沒有人有任何不同的想法或以上的實施?

+1

其實,張望了一下後打,選項1似乎是可行的。只需要改變'SystemFiles/FrontEnd/TextResources/UnicodeCharacters.tr'文件並選擇你想要的字符。我不確定'UnicodeFontMapping.tr'文件是否有所不同。到目前爲止,沒有副作用。查看這些文件的想法來自[此SO問題](http://stackoverflow.com/q/4209405/421225)。 – Simon 2011-03-08 05:27:04

回答

6

你想要UnicodeFontMapping.tr(影響外觀)而不是UnicodeCharacters.tr(影響解釋)。讓UnicodeFontMapping.tr的備份副本,並編輯該行:

0xF3C8 N 6 0xad # \[Conjugate]

喜歡的東西(使用任何你想要的替代字形):

0xF3C8 N 1 0x2a # *

+0

謝謝拉格菲爾德 - 看起來很完美。你介意解釋你的修復中的所有列實際上是什麼意思? (爲什麼WRI技術支持人員不能提出這樣的建議?) – Simon 2011-03-09 09:26:49

+2

某些文件格式是在文件本身的註釋中指定的。第一個條目是unicode字符。第二項定義了使用什麼樣的span(N-> none,H-> horizo​​ntal,V-> vertical,D-> over/underscript)。第三項指定使用哪種字體(在文件中定義的數字)。第四項指定該字體中的哪些字形。因此,您所做的更改將使用基本字體(例如Courier)的'*'替換\ [Conjugate]的默認渲染(使用一些Mathematica5字體字形,因爲某些原因不起作用)。 – ragfield 2011-03-10 17:19:04