
Beim Einfügen ungewöhnlicher mathematischer Unicode-Symbole (normalerweise über Font-Lock-Add-Keywords) tritt das Problem auf, dass, wenn meine Standardschriftart ein bestimmtes Zeichen nicht enthält, stattdessen eine andere Schriftart verwendet wird, die dieses Zeichen enthält.
Aus irgendeinem Grund weicht die Höhe des Symbols in der zweiten Schriftart manchmal von der Höhe aller regulären Zeichen in der ersten Schriftart ab, und zwar um vielleicht ein Pixel. Dadurch ändert sich die Höhe der aktuellen Zeile und viel Bildschirmtext wird um ein Pixel nach oben/unten „verschoben“, wenn ich ein Symbol eingebe, was ziemlich ärgerlich ist. (Die standardmäßige Ersatzschriftart, die dieses Problem verursacht, ist Arial.)
Ich löse dies derzeit, indem ich so etwas verwende, wenn „Source Code Pro“ die Standardschriftart ist:
(set-default-fontset "fontset-default" '(#x???? . #x????) "DejaVu Serif")
Der Bereich ist etwa 2100..23ff, 27c0..27ff, 2900..2bff. Manchmal funktioniert das nicht, wenn ich feststelle, dass DejaVu Serif das Zeichen auch nicht hat und ich eine andere Schriftart mit derselben Höhe finden muss, die es hat. Dies ist in Emacs 24.3 unter OS X 10.9.3.
Ein damit verbundenes Problem besteht darin, dass für einige Zeichen eine andere Schriftart (andere Höhe) verwendet wird, je nachdem, ob das Zeichen innerhalb des ausgewählten Bereichs hervorgehoben ist.
Warum passiert das und was kann ich dagegen tun? Mir ist es egal, welche Schriftart verwendet wird, solange die Zeilenhöhen nicht springen. Irgendwelche Vorschläge? Gibt es eine Möglichkeit, die Höhe der zweiten alternativen Schriftart so anzupassen, dass sie genau gleich ist?