Căn chỉnh các cột trong bảng chế độ Org với phông chữ tiếng Nhật


12

Làm cách nào tôi có thể kết hợp tiếng Nhật và tiếng Anh trong cùng một bảng chế độ org (sử dụng phông chữ có chiều rộng cố định)? Cái gì đó như:

| mmmmmm | |
| ど う シ | |
| ハ ー | ハ ー |

sẽ không phù hợp. Emacs chỉ đơn giản tính các ký tự Nhật Bản là một, khi thực sự chúng lớn hơn 10%.

Chiều rộng của cột có thể được đặt bằng pixel không? Tôi biết rằng <10> sẽ đặt chiều rộng, nhưng điều đó không có ích, vì nó tính theo các chữ cái có chiều rộng cố định.

Vấn đề cơ bản là làm thế nào emacs sắp xếp các cột (sử dụng chiều rộng phông chữ).


Bạn đã thử căn chỉnh các bảng C-c C-ctrong khi bạn đang ở trong một tế bào chưa? Tôi vừa dán ví dụ của bạn vào bộ đệm chế độ org, nhấn C-c C-cvà mọi thứ đều được sắp xếp độc đáo.
elethan

Đây có lẽ là thứ cần được thêm vào chế độ org. Có thể đạt được điều này bằng cách sử dụng thuộc tính :align-tohiển thị, được mô tả trong gnu.org/software/emacs/manual/html_node/elisp/ .
Legoscia

@elethan: có, một số ví dụ hoạt động với sự kết hợp nhất định của phông chữ phương Tây, kích thước khuôn mặt và một số văn bản tiếng Nhật. Emacs cố gắng sắp xếp các ví dụ như trên và đôi khi nó làm cho đúng. Tuy nhiên, đây chỉ là một câu hỏi về may mắn. Nói chung, emacs là mù quáng cho điều này.
Quora Feans

Bạn không cần một phông chữ đơn cách cho việc này? Trong trường hợp stackoverflow.com/q/3758139/4050592 sẽ giúp với điều kiện bạn có một phông chữ tiếng Nhật đơn cách bạn có thể sử dụng.
Andrew Swann

Câu trả lời:


5

Điều này phụ thuộc vào phông chữ bạn đang sử dụng. Và tôi không nghĩ Elisp có khả năng căn chỉnh mức pixel.

Org tính chiều rộng của chuỗi với string-widththay vì length. string-widthtrả về 1 cho các ký tự ASCK và một nửa chiều rộng CJK hoặc 2 cho các ký tự Toàn chiều rộng. Đánh giá mã sau đây sẽ cho bạn thấy rằng:

(string-width "m")
1
(string-width "ハ")
1
(string-width "は")
2

Bây giờ, mặc dù chế độ Org đã có câu trả lời đúng từ thuộc tính sting và thêm các miếng đệm xung quanh chuỗi, công việc của công cụ hiển thị Emacs là đặt các bit đó xuất hiện trên màn hình.

Công cụ hiển thị Emacs lấy thông tin phông chữ từ HĐH cơ bản. Để làm cho vấn đề phức tạp trở nên đơn giản, giả sử rằng, với cấu hình của bạn, mchiều rộng của nó là 5 pixel và "" là 10. Trong trường hợp này, chúng sẽ được căn chỉnh hoàn hảo vì giả định của chế độ Org ("" chiếm gấp đôi chiều rộng của " m ") khớp với các pixel thực trên màn hình của bạn.

Thay vào đó, nếu cấu hình phông chữ của bạn có 7 pixel cho "m" và 10 pixel cho "", mọi thứ sẽ không khớp. Và không có chế độ Org cũng như công cụ Display có thể làm được. Họ đã làm những gì họ nói, bằng cấu hình của bạn, để làm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.