วิธีป้องกันแบบอักษรหนาแบบ“ อัตโนมัติ” ให้กว้างกว่าปกติที่มีขนาด pt เท่ากัน?


10

ฉันมีแบบอักษร monospaced ( PT Mono) ที่ฉันต้องการใช้ในการเขียนโปรแกรม IDE ตัวอักษรที่มีเพียงRegular, อื่น ๆ ทั้งหมดBoldและItalicจะได้มาโดยการเอียงและ "boldification" Regularของ ปัญหาคือว่าตัวอักษร "ตัวหนา" จะกว้างกว่าตัวอักษรปกติดังนั้นในตอนนี้สตริงซอร์สโค้ดในหน้าต่าง IDE จะประกอบด้วยตัวอักษรที่ไม่ได้ทำการ monospaced

ฉันจะควบคุม "การทำให้เป็นตัวหนา" ของแบบอักษรได้อย่างไรจึงจะไม่กว้างกว่าปกติ

ปัญหาจะแสดงในภาพหน้าจอด้านล่าง ( PT Monoไม่มีตัวหนาโดยเฉพาะ) ดูว่าคำว่า "ถ่านที่ไม่ได้ลงนาม" และ "ขนาดของ" ย้ายออกจากตำแหน่งที่เหมาะสมอย่างไร

ตัวหนาอัตโนมัติเปลี่ยนความกว้าง

นี่เป็นอีกตัวอย่างหนึ่งDroid Sans Mono(ไม่มีตัวหนาเฉพาะ) ป้อนคำอธิบายรูปภาพที่นี่

และนี่คือตัวอย่างเมื่อแบบอักษรมีเฉพาะรุ่นตัวหนา ( Liberation Mono) ตัวหนาและปกติจัดเรียงอย่างสมบูรณ์แบบ ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นปัญหาคือการแสดงการทำให้เป็นตัวหนาอย่างไม่แน่นอนในสถานการณ์ที่ไม่มีตัวหนา เอ็นจินแบบอักษรคือการตำหนิ

UPD: มีไฟล์/etc/fonts/conf.avail/90-synthetic.confซึ่งหากถูกอ้างอิงจากการ/etc/fonts/conf.d/ปรับแต่งฟอนต์เอ็นจิ้นเพื่อทำการฟอนต์สังเคราะห์แบบอักษรที่ไม่มีตัวหนาแบบสังเคราะห์ หากการเชื่อมโยงสัญลักษณ์ไปยังไฟล์นี้ถูกลบออกจาก the /etc/fonts/conf.d/, emboldening จะหายไป นี่ไม่ใช่สิ่งที่ต้องการอย่างแท้จริง แต่อย่างน้อยก็รักษากรณีของแบบอักษร monospace ที่ไม่ใช่แบบ monospace (ดูด้านล่างPT Mono) การปรับจูนแบบละเอียดยังคงเป็นที่ต้องการ (ไม่ว่าจะโดยไฟล์กำหนดค่าหรือโดยfreetype2แพทช์

ป้อนคำอธิบายรูปภาพที่นี่


คุณไม่สามารถควบคุมมันได้ การออกแบบตัวอักษรจะถูกทำลาย แม้ว่าคุณจะลดขนาดได้อย่างแม่นยำ (ซึ่งคุณไม่สามารถทำได้) เพื่อให้ตรงกับการเว้นวรรคแบบอักษรปกติ แต่แบบอักษรตัวหนาก็จะดูเล็กลง หากคุณต้องการแบบอักษรเว้นระยะสม่ำเสมออย่าใช้ตัวอักษรหนา ... หรือลองใช้เทอร์มินัล
zetah

ที่ไม่เป็นความจริง. แบบอักษรที่มีทั้งแบบปกติและแบบตัวหนาที่ระบุในไฟล์แยกมีความกว้างอักขระเหมือนกันทั้งแบบปกติและแบบหนา ตัวอย่างเช่น LetterGothic
mbaitoff

ฉันยืนแก้ไขแล้ว ฉันสังเกตเห็นเหมือนกันโดยใช้ SciTE (และบางทีคุณอาจใช้โปรแกรมแก้ไขพื้นฐาน Scintilla - บางทีอาจเป็น Geany?) ในขณะที่แบบอักษรของฉันคือ Droid Sans Mono แต่ฉันใช้มันตามที่ได้รับและฉันไม่ได้มีความคิดว่า แม้สำหรับแบบอักษรแบบโมโนโพสต์ในขณะที่ตัวอักษรหนาใช้ระยะห่างเหมือนปกติ ยิ่งไปกว่านั้นดูเหมือนว่าฟอนต์ที่มีสัดส่วนก็มี "ฟีเจอร์" ที่คุณสังเกตเห็นไม่ใช่ทั้งหมด ขออภัยสำหรับคำตอบแรกที่กล้าหาญของฉันฉันควรจะตรวจสอบก่อน
zetah

@zetah: ฉันมองผ่านไฟล์ตัวอักษรที่แตกต่างกันและดูเหมือนว่าการเปลี่ยนแปลงความกว้างนั้นจะเกิดขึ้นก็ต่อเมื่อไม่มีแบบอักษรเฉพาะที่เป็นตัวหนาเท่านั้น ฉันจะอัปเดตคำถามด้วยภาพหน้าจอเพิ่มเติม
mbaitoff

1
ยังกล่าวถึงที่นี่: bugs.launchpad.net/ubuntu/+source/ttf-droid/+bug/565393
zetah

คำตอบ:


9

mbaitoffฉันโพสต์สิ่งนี้นอกเหนือจากการอัปเดตของคุณไม่ใช่คำตอบ

หากผู้ใช้สร้างไฟล์ชื่อ~/.fonts.conf:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="font">
        <test name="spacing" compare="eq">
            <const>mono</const>
        </test>
        <edit name="embolden" mode="assign">
            <bool>false</bool>
        </edit>
    </match>
</fontconfig>

จากนั้นแอปพลิเคชันสามารถใช้แบบอักษรตัวหนาแบบตัวหนาหากมีและปิดการใช้งาน "ตัวหนาแบบสังเคราะห์" หากแบบอักษรที่ใช้ไม่มีตัวอักษรแบบตัวหนา

มันเป็นทางเลือกและวิธีการที่แตกต่างกันเล็กน้อยกับผลลัพธ์ที่แตกต่าง


หาก/etc/conf.d/50-user.confมีการเปลี่ยนชื่อsymlink ให้ดำเนินการหลังจาก90-synthetic.confนั้นคุณไม่จำเป็นต้องลบความกล้าทั้งหมด 99-user.confทำงานได้ดี มิฉะนั้น90-synthetic.confเปิดใช้งานอีกครั้ง
musiKk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.