Halfkern เป็นเครื่องมือที่ใช้ตัวอักษรอัตโนมัติที่สวมหน้ากากเป็นเครื่องมือตรวจสอบ kerning
วิธีการทำงานของเครื่องมือคือสำหรับตัวอักษรทุกคู่ที่ได้รับการพิจารณามันจะเบลอการเรนเดอร์และพื้นที่ของพวกเขาทั้งสองเพื่อให้ภาพเบลอซ้อนทับจำนวนหนึ่ง จำนวนหนึ่งนี้พบได้โดยการสอบเทียบครั้งแรกโดยใช้คู่ "ll", "NN" และ "OO"
เครื่องมือในปัจจุบัน ไม่ได้ จัดเก็บผลลัพธ์ที่ได้รับการตรวจสอบเข้าไปในแบบอักษร
$ python3 kern_pair.py FontFile.ttf --dict dictionary.txt
$ python3 kern_pair.py FontFile.ttf PairString
$ python3 kern_pair.py Roboto-Regular.ttf --dict /usr/share/dict/words -l
fi 0 -4
yt 4 0
Te -9 -5
To -9 -5
TA -8 -4
DT -5 -1
ค่าแรกคือคู่ของจดหมายถึงเคอร์น ค่าที่สองคือในหน่วย EM ค่า kerning ที่แนะนำและค่าสุดท้ายคือ kerning ในปัจจุบันในตัวอักษร เฉพาะคู่ที่มีค่า kerning สองค่าแตกต่างกันไปตามจำนวนความอดทน ความอดทนนี้สามารถตั้งค่าได้โดยใช้ -t หรือ --tolerance ความอดทนเริ่มต้นคือ 3.3%
-l หรือ --letters-only ทำให้เครื่องมือพิจารณา kerning ระหว่างตัวอักษรสองตัวเท่านั้น (เช่นไม่มีเครื่องหมายวรรคตอน) เครื่องมือนี้ยังไม่สนใจตัวเลขเนื่องจากโดยทั่วไปแล้วจะมีความกว้างคงที่และไม่มีการออกแบบโดยการออกแบบ
ไฟล์ kerned.pdf ถูกสร้างขึ้นเสมอโดยแต่ละหน้าจะแสดงหนึ่งคู่เครื่องมือคิดว่าจะต้องมีการปรับ: kerned.pdf
ในการตรวจสอบคู่ที่รายงานคุณสามารถใช้เครื่องมือ kern_pair.py อีกครั้ง:
$ python3 kern_pair.py Roboto-Regular.ttf To
To autokern: -9 (-184 units) existing kern: -5 (-99 units)
Saving kern.png
ในกรณีนี้เครื่องมือคิดว่าทั้งคู่ "ถึง" ไม่ได้เป็น kerned เพียงพอในหุ่นยนต์ เห็นได้ชัดว่าขึ้นอยู่กับการลิ้มรส แต่นี่คือสองไฟล์ kern.png และ kerned.pdf ที่สร้างโดยเครื่องมือ:

ในภาพ kern.png บรรทัดแรกคือไม่มี kerning บรรทัดที่สองคือคำแนะนำของเครื่องมือและบรรทัดที่สามคือตัวอักษรที่มีอยู่ kerned.pdf , ทั้งคู่ถูกจัดแสดงระหว่างตัวอักษรล่างและบนตัวอักษร สามแถวในทำนองเดียวกันแสดงไม่มีการเล่นคำแนะนำของเครื่องมือและเคอร์นที่มีอยู่
เครื่องมือมีสองวิธีที่แตกต่างกันในการสร้างซองจดหมายรอบ ๆ ร่ายมนตร์แต่ละอัน สิ่งนี้สามารถตั้งค่าได้โดยใช้ --envelope sdf (ค่าเริ่มต้น) หรือ --envelope gaussian
นอกจากนี้ยังมีสองวิธีที่แตกต่างกันในการสรุปการทับซ้อนของสองซองสัญลักษณ์ สิ่งนี้สามารถตั้งค่าได้โดยใช้ --reduce sum (ค่าเริ่มต้น) หรือ --reduce max
สิ่งนี้ให้สี่ชุดที่แตกต่างกันของโหมดเพื่อเรียกใช้เครื่องมือ สิ่งใดที่ทำงานได้ดีที่สุดสำหรับโครงการที่เป็นอัตนัยและควรทดลองใช้ ค่าเริ่มต้นในความคิดของฉันสร้างผลลัพธ์ที่ดีที่สุด
ในการผลิตพจนานุกรมต่อภาษาที่จะใช้กับเครื่องมือนี้คุณสามารถใช้ที่เก็บข้อความ AOSP-test-texts หรือพจนานุกรม LibreOffice Spellecteck หรือการทดสอบ Harfbuzz-Wikipedia
TODO: ขยายวิธีการใช้สิ่งเหล่านี้
สำหรับ WordList ภาษาอังกฤษอย่างง่ายบนแพลตฟอร์ม Linux และ Mac คุณสามารถใช้ /usr/share/dict/words
หากต้องการดูซองจดหมายสำหรับตัวละครตัวหนึ่งให้ใช้:
$ python3 kern_pair.py fontfile.ttf X
สิ่งนี้จะสร้างภาพซองจดหมายสำหรับ X และบันทึกลงใน envelope.png