Comment puis-je mélanger le japonais et l'anglais dans la même table en mode org (qui utilise des polices à largeur fixe)? Quelque chose comme:
| mmmmmm | | | は ど う デ シ ウ | | | ハ ー フ | ハ ー フ |
ne s'alignera pas. Emacs compte simplement les caractères japonais comme un, alors qu'en fait ils sont plus gros comme 10%.
La largeur d'une colonne peut-elle être définie en pixels? Je sais que <10> définirait la largeur, mais cela n'aide pas, car cela compte en termes de lettres à largeur fixe.
Le problème est essentiellement comment emacs aligne les colonnes (en utilisant la largeur de police).
C-c C-c
lorsque vous êtes dans une cellule? Je viens de coller votre exemple dans un tampon en mode org, de frapperC-c C-c
et tout est bien aligné.:align-to
propriété display, décrite dans gnu.org/software/emacs/manual/html_node/elisp/… .Réponses:
Cela dépend des polices que vous utilisez. Et je ne pense pas qu'Elisp ait une capacité d'alignement au niveau des pixels.
Org calcule la largeur de la chaîne avec
string-width
au lieu delength
.string-width
renvoie 1 pour les caractères ASCII et CJK demi-largeur ou 2 pour les caractères pleine largeur. Évaluer le code suivant vous montrera que:Maintenant, même si le mode Org a obtenu la bonne réponse de la propriété sting et a ajouté des pads autour des chaînes, c'est le travail du moteur d'affichage Emacs de placer où ces bits vont à l'écran.
Le moteur d'affichage Emacs obtient les informations de police du système d'exploitation sous-jacent. Pour simplifier le problème complexe, disons que, avec votre configuration,
m
la largeur de 5 pixels et "は" est 10. Dans ce cas, ils seront parfaitement alignés car l'hypothèse du mode Org ("は" prend deux fois la largeur de " m ") correspond aux pixels réels de votre écran.Au lieu de cela, si votre configuration de polices a 7 pixels pour "m" et 10 pixels pour "は", les choses ne correspondent pas. Et il n'y a rien en mode Org ni le moteur d'affichage ne peuvent le faire. Ils ont fait ce qu'ils avaient dit, selon votre configuration, de faire.
la source