จะทราบได้อย่างไรว่ามีการกำหนดยูนิโคด codepoints ไว้ในไฟล์ TTF อย่างไร


11

ฉันต้องทำให้กระบวนการตรวจสอบว่าอักขระ Unicode มีร่ายมนตร์ที่กำหนดไว้โดยอัตโนมัติสำหรับพวกเขาในไฟล์ True Type Font ฉันจะทำเช่นนั้นได้อย่างไร ฉันไม่สามารถหาข้อมูลเกี่ยวกับวิธีทำให้ตัวเลขที่ฉันดูเหมือนจะได้รับเมื่อฉันเปิดไฟล์. ttf ในโปรแกรมแก้ไขข้อความ

คำตอบ:


7

ฉันพบห้องสมุดหลาม, fonttools ( pypi ) ที่สามารถใช้ในการทำมันด้วยการเขียนสคริปต์หลามเล็กน้อย

นี่เป็นสคริปต์ง่าย ๆ ที่แสดงรายการแบบอักษรทั้งหมดที่มีสัญลักษณ์ที่ระบุ:

#!/usr/bin/env python3

from fontTools.ttLib import TTFont
import sys

char = int(sys.argv[1], base=0)

print("Looking for U+%X (%c)" % (char, chr(char)))

for arg in sys.argv[2:]:
    try:
        font = TTFont(arg)

        for cmap in font['cmap'].tables:
            if cmap.isUnicode():
                if char in cmap.cmap:
                    print("Found in", arg)
                    break
    except Exception as e:
        print("Failed to read", arg)
        print(e)

อาร์กิวเมนต์แรกคือ codepoint (ฐานสิบหรือฐานสิบหกที่มี 0x) และส่วนที่เหลือเป็นไฟล์แบบอักษรที่ต้องการดู

ฉันไม่ได้พยายามที่จะทำให้มันใช้งานได้กับ.ttcไฟล์ (มันต้องใช้พารามิเตอร์พิเศษบางแห่ง)

หมายเหตุ: ฉันลองใช้เครื่องมือ otfinfo เป็นครั้งแรก แต่ฉันได้รับอักขระระนาบหลายภาษาพื้นฐานเท่านั้น (<= U + FFFF) สคริปต์หลามค้นหาอักขระระนาบเพิ่มเติมตกลง


6

otfinfoดูมีแนวโน้ม:

-u, --unicode
  Print each Unicode code point supported by the font, followed by
  the glyph number representing that code point (and, if present,
  the name of the corresponding glyph).

ตัวอย่างเช่น DejaVuSans-Bold รู้เกี่ยวกับ fl ligature (fl):

$ otfinfo -u /usr/share/fonts/TTF/DejaVuSans-Bold.ttf |grep ^uniFB02
uniFB02 4899 fl

เครื่องมือนี้เป็นสิ่งที่ฉันต้องการอย่างแท้จริง แต่มันก็ไม่ได้ทำงานกับแบบอักษร TrueType แต่มีเพียง OpenType เท่านั้น
Sanuuu

มันใช้งานได้กับ ttf ด้วย ดูตัวอย่างของฉันด้านบน (ตามที่วิกิพีเดีย TTF เป็นชนิดพิเศษของตัวอักษร OpenType.)
Michas

อืม ... รุ่น otfinfo ของฉัน (2.92) ดูเหมือนจะไม่มีตัวเลือก -u เลย คุณใช้เวอร์ชั่นไหน
Sanuuu

ผมใช้ "otfinfo (typetools LCDF) 2.104" จากฉันแพคเกจ texlive
มิชา

@Sanuuu -uตัวเลือกไม่ปรากฏ--helpแต่ดูเหมือนว่ายังมีอยู่ อย่างไรก็ตาม (อย่างน้อยใน Debian 2.105 build) ดูเหมือนว่าจะแสดงรายการระนาบพื้นฐานเท่านั้น (มากถึง U + FFFF) -gตัวเลือกรู้เกี่ยวกับเครื่องบินนาน แต่ไม่ได้ทำงานแบบอักษรทั้งหมด
Jan Hudec
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.