จัดแนวคอลัมน์ในตารางโหมดองค์กรด้วยแบบอักษรญี่ปุ่น


12

ฉันจะผสมภาษาญี่ปุ่นและภาษาอังกฤษในตารางโหมดองค์กรเดียวกัน (ที่ใช้แบบอักษรที่มีความกว้างคงที่) ได้อย่างไร สิ่งที่ต้องการ:

| mmmmmm | |
| はどうデシウ | |
| ハ ー フ | ハ ー フ |

จะไม่จัดแนว Emacs นับตัวอักษรญี่ปุ่นเป็นหนึ่งเดียวเมื่อจริง ๆ แล้วพวกมันจะใหญ่กว่า 10%

สามารถตั้งค่าความกว้างของคอลัมน์เป็นพิกเซลได้หรือไม่ ฉันรู้ว่า <10> จะตั้งค่าความกว้าง แต่ไม่ได้ช่วยอะไรเพราะมันนับเป็นตัวอักษรความกว้างคงที่

ปัญหาคือโดยพื้นฐานแล้ว emacs จัดเรียงคอลัมน์ (โดยใช้ความกว้างของแบบอักษร)


คุณได้ลองจัดตารางด้วยC-c C-cขณะที่คุณอยู่ในเซลล์หรือไม่? ฉันเพิ่งวางตัวอย่างของคุณลงในบัฟเฟอร์โหมด org, hit C-c C-cและทุกอย่างเรียงกันอย่างดี
2559

นี่อาจเป็นสิ่งที่ต้องเพิ่มในโหมด org มันอาจจะเป็นไปได้เพื่อให้บรรลุนี้โดยใช้:align-toคุณสมบัติการแสดงผลที่อธิบายไว้ในgnu.org/software/emacs/manual/html_node/elisp/...
legoscia

@elethan: ใช่ตัวอย่างบางส่วนทำงานร่วมกับแบบอักษรตะวันตกขนาดหน้าและข้อความภาษาญี่ปุ่นบางส่วน Emacs พยายามจัดตัวอย่างตามที่กล่าวไว้ข้างต้นและบางครั้งก็ทำให้ถูกต้อง อย่างไรก็ตามนี่เป็นเพียงคำถามของโชค โดยทั่วไปแล้ว emacs จะตาบอดสำหรับสิ่งนี้
Quora Feans

คุณไม่ต้องการแบบอักษรแบบโมโนโพสต์สำหรับสิ่งนี้ใช่ไหม ในกรณีใดstackoverflow.com/q/3758139/4050592จะช่วยให้คุณมีแบบอักษรภาษาญี่ปุ่นแบบโมโนสเกลที่คุณสามารถใช้ได้
Andrew Swann

คำตอบ:


5

ขึ้นอยู่กับแบบอักษรที่คุณใช้ และฉันไม่คิดว่า Elisp มีความสามารถในการจัดระดับพิกเซล

องค์กรการคำนวณความกว้างของสตริงกับแทน string-width ส่งคืน 1 สำหรับ ASCII และครึ่งความกว้าง CJK ตัวอักษรหรือ 2 สำหรับตัวอักษรแบบเต็มความกว้าง ประเมินรหัสต่อไปนี้จะแสดงให้คุณเห็นว่า:lengthstring-width

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

ตอนนี้ถึงแม้ว่าโหมด Org จะได้รับคำตอบที่ถูกต้องจากคุณสมบัติของเหล็กในและเพิ่มแผ่นเสริมรอบ ๆ สตริงมันเป็นงานของ Emacs ที่แสดงเอ็นจิ้นให้วางตำแหน่งที่บิตเหล่านั้นไปที่หน้าจอ

เครื่องมือแสดงผล Emacs รับข้อมูลฟอนต์จากระบบปฏิบัติการพื้นฐาน ในการทำให้ปัญหาซับซ้อนนั้นง่ายสมมติว่าการกำหนดค่าของคุณmมีความกว้าง 5 พิกเซลและ "は" คือ 10 ในกรณีนี้พวกเขาจะได้รับการจัดตำแหน่งอย่างสมบูรณ์แบบเนื่องจากสมมติฐานของโหมดองค์กร ("takes" ใช้เวลาสองเท่าของความกว้าง " m ") จับคู่กับพิกเซลจริงบนหน้าจอของคุณ

หากการกำหนดค่าแบบอักษรของคุณมี 7 พิกเซลสำหรับ "m" และ 10 พิกเซลสำหรับ "は" สิ่งต่างๆจะไม่ตรงกัน และไม่มีโหมด Org หรือเครื่องมือแสดงผลสามารถทำได้ พวกเขาทำสิ่งที่พวกเขาบอกโดยกำหนดค่าของคุณทำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.