フォントロックモードで分音記号やオーバーバーなどの数学的な結合文字を適切にレンダリングするように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」と入力します。
何が起こっている?