Wie kann ich Japanisch und Englisch in derselben Tabelle im Organisationsmodus mischen (die Schriften mit fester Breite verwendet)? Etwas wie:
| mmmmmm | | | は は ど デ シ シ | | | ハ ー フ | ハ ー フ |
wird nicht ausgerichtet. Emacs zählt die japanischen Zeichen einfach als eins, obwohl sie eher 10% größer sind.
Könnte die Breite einer Spalte in Pixel eingestellt werden? Ich weiß, dass <10> die Breite festlegen würde, aber das hilft nicht, da es sich um Buchstaben mit fester Breite handelt.
Das Problem ist im Grunde, wie Emacs Spalten ausrichtet (unter Verwendung der Schriftbreite).
C-c C-c
während Sie sich in einer Zelle befinden? Ich habe gerade Ihr Beispiel in einen Org-Modus-Puffer eingefügt, getroffenC-c C-c
und alles gut ausgerichtet.:align-to
Anzeigeeigenschaft erreichen, die unter gnu.org/software/emacs/manual/html_node/elisp/… beschrieben ist .Antworten:
Dies hängt von den verwendeten Schriftarten ab. Und ich glaube nicht, dass Elisp die Fähigkeit zur Ausrichtung auf Pixelebene besitzt.
Org Stringbreite berechnen mit
string-width
stattlength
.string-width
Gibt 1 für ASCII- und CJK-Zeichen halber Breite oder 2 für Zeichen voller Breite zurück. Bewerten Sie den folgenden Code, um zu zeigen, dass:Obwohl der Org-Modus die richtige Antwort von der Eigenschaft sting erhalten und Zeichenfolgen mit Pads versehen hat, ist es nun die Aufgabe der Emacs-Anzeige-Engine, die Position festzulegen, an der diese Bits auf dem Bildschirm angezeigt werden.
Die Emacs-Anzeige-Engine ruft Schriftinformationen vom zugrunde liegenden Betriebssystem ab. Um das komplexe Problem zu vereinfachen, nehmen wir an, dass bei Ihrer Konfiguration
m
die Breite 5 Pixel und "は" 10 Pixel beträgt. In diesem Fall werden sie perfekt ausgerichtet, da die Annahme des Org-Modus ("は" das Doppelte der Breite von " m ") stimmt mit den tatsächlichen Pixeln auf Ihrem Bildschirm überein.Wenn Ihre Schriftartenkonfiguration stattdessen 7 Pixel für "m" und 10 Pixel für "は" enthält, stimmen die Ergebnisse nicht überein. Und es gibt weder den Org-Modus noch die Display-Engine. Sie haben gemäß Ihrer Konfiguration das getan, was sie gesagt haben.
quelle