Jak mieszać japoński i angielski w tej samej tabeli w trybie organizacji (która używa czcionek o stałej szerokości)? Coś jak:
| mmmmmm | | | は ど う デ シ ウ | | | ハ ー フ | ハ ー フ |
nie wyrówna się. Emacs liczy po prostu japońskie postacie jako jedne, a tak naprawdę są one o około 10% większe.
Czy szerokość kolumny może być ustawiona w pikselach? Wiem, że <10> ustawiłoby szerokość, ale to nie pomaga, ponieważ liczy się to jako litery o stałej szerokości.
Problem polega w zasadzie na tym, jak emacs wyrównuje kolumny (używając szerokości czcionki).
C-c C-c
gdy jesteś w komórce? Właśnie wkleiłem twój przykład do bufora trybu org, uderzyłemC-c C-c
i wszystko ładnie się dopasowało.:align-to
właściwości display opisanej w gnu.org/software/emacs/manual/html_node/elisp/… .Odpowiedzi:
Zależy to od używanych czcionek. I nie sądzę, że Elisp ma możliwość wyrównywania poziomu pikseli.
Org obliczy szerokość łańcucha za pomocą
string-width
zamiastlength
.string-width
zwraca 1 dla znaków ASCII i znaków CJK o połowie szerokości lub 2 dla znaków o pełnej szerokości. Oceń następujący kod pokaże Ci, że:Teraz, mimo że tryb Org uzyskał prawidłową odpowiedź z właściwości żądła i dodał pady wokół ciągów, zadaniem silnika wyświetlającego Emacsa jest miejsce, w którym te fragmenty trafiają na ekran.
Silnik wyświetlania Emacsa pobiera informacje o czcionkach z podstawowego systemu operacyjnego. Aby uprościć złożony problem, powiedzmy, że przy konfiguracji
m
szerokość wynosi 5 pikseli, a „は” wynosi 10. W tym przypadku zostaną one idealnie wyrównane, ponieważ założenie trybu Org („は” zajmuje dwa razy więcej niż „ m ”) odpowiada rzeczywistym pikselom na ekranie.Zamiast tego, jeśli konfiguracja czcionek ma 7 pikseli dla „m” i 10 pikseli dla „は”, rzeczy się nie zgadzają. I nie ma nic w trybie Org ani silnika wyświetlania. Zrobili to, co według twojej konfiguracji zrobili.
źródło