3

フォントロックモードで分音記号やオーバーバーなどの数学的な結合文字を適切にレンダリングするようにemacsを取得しようとしています。目標は、x_dot のような数学的なものを書き、それを "ẋ" または x_bar を "x̄" として表示できるようにすることです。

これは私がこれまでに持っているものであり、ほとんどの場合機能します。

 (font-lock-add-keywords 
  nil 
  `(("\\<\\(\\w\\)\\(_dot\\)\\>" 
     (0 (progn (compose-region (match-beginning 1) (match-end 2) 
                  (concatenate 'string (match-string 1) " ̇" )) nil)))))

BUT: 構成されたキャラクターの直前にビジュアル アーティファクト キャラクターが表示されます。上記を実行した後、*scratch* バッファーに "x_dot" などを書き込んで、これをテストします。

このアーティファクトは幻のように行き来します。次の例のように、"o" や "-" などの通常の文字を構成する場合、この動作は発生しません。

 (font-lock-add-keywords 
  nil 
  `(("\\<\\(\\w\\)\\(_dash\\)\\>" 
     (0 (progn (compose-region (match-beginning 1) (match-end 2) 
                  (concatenate 'string (match-string 1) "-" )) nil)))))

そして、どこかに「x_dash」と入力します。

何が起こっている?

4

1 に答える 1

2

価値のあることとして、最初の例は、OS X上の最先端のEmacsにアーティファクトがなくても正常に機能します。おそらく、プラットフォームのemacsUIやフォントライブラリに固有のレンダリングの癖が見られます。実行しているEmacsに関する詳細情報を投稿すると、私よりも専門家の方が問題を確認できる可能性があります。

于 2011-05-13T18:19:07.007 に答える