ด้วย ฟีเจอร์ฟีเจอร์ฟีเจอร์ช่องแช่แข็ง คุณสามารถ“ แช่แข็ง” ฟีเจอร์ opentype บางอย่างลงในตัวอักษร
ฟีเจอร์เหล่านี้จะเป็น“ โดยค่าเริ่มต้น” ดังนั้นอักขระที่สามารถเข้าถึงได้ก่อนหน้านี้ผ่านคุณสมบัติ Opentype เท่านั้น (เช่น smallcaps, ตัวเลข oldstyle หรือรูปแบบการแปล) ตอนนี้จะสามารถเข้าถึงได้แม้ในแอพที่ไม่รองรับคุณสมบัติ opentype เช่น libreoffice, openoffice หรือในแอพที่ไม่สนับสนุนคุณสมบัติเฉพาะเช่น Microsoft
หมายเหตุ: เครื่องมือนี้จะทำการแมปตาราง cmap ของแบบอักษรโดยใช้คุณสมบัติ GSUB ที่ระบุ มันจะไม่ทำงานเพื่อทดแทนที่ไม่มี Glyph มีรายการ cmap ใด ๆ รองรับการทดแทนเดี่ยวและสำรองเท่านั้น
เครื่องมือนี้มาในสองเวอร์ชัน: OtFeatureFreezer : แอพ GUI แบบง่าย (กราฟิก) สำหรับ MacOS และ Windows ที่คุณสามารถดาวน์โหลดและเรียกใช้โดยไม่ต้องใช้ perparations พิเศษและ pyftfeatfreze : แอพ CLI (บรรทัดคำสั่ง) ที่ต้องใช้ Python 3.6 หรือใหม่กว่าที่จะติดตั้งบนคอมพิวเตอร์ของคุณ
เวอร์ชันปัจจุบัน: 1.32
เครื่องมือนี้ต้องใช้ Python 3.6 หรือสูงกว่าที่จะติดตั้งก่อน รับจาก https://www.python.org หรือผู้จัดการแพ็คเกจของคุณ
เราขอแนะนำให้ใช้ PIPX เพื่อติดตั้งเครื่องมือบรรทัดคำสั่ง Python PIPX ส่งพวกเขาออกไปอย่างเรียบร้อยบนคอมพิวเตอร์ของคุณและให้วิธีง่ายๆในการเพิ่มอัปเดตและลบเครื่องมือ Python ในทุกแพลตฟอร์มโดยไม่ทิ้งความยุ่งเหยิงในการติดตั้ง Python ของคุณ
pipx install opentype-feature-freezer
ติดตั้งด้วย pip เป็นแพ็คเกจ Python อื่น ๆ
# This is best done inside a virtual environment, so you don't pollute
# your Python installation and need no special privileges to install anything.
pip install --upgrade opentype-feature-freezer
หากไม่ได้ผลลอง:
python3 -m pip install --user --upgrade opentype-feature-freezer
pip install --upgrade git+https://github.com/twardoch/fonttools-opentype-feature-freezer
หากสิ่งนี้ไม่ทำงานให้ใช้:
python3 -m pip install --user --upgrade git+https://github.com/twardoch/fonttools-opentype-feature-freezer
pip install --upgrade configparser ก่อนติดตั้ง สมมติว่าคุณมี Font Charissil-r.ttf (ด้วยชื่อเมนู“ Charis Sil”) และตัวอักษรนี้รวมถึง Smallcaps ที่แท้จริงที่สามารถเข้าถึงได้ผ่านการจัดวาง Opentype คุณสมบัติ c2sc (สำหรับตัวพิมพ์ใหญ่) และ smcp (สำหรับตัวพิมพ์เล็ก) สมมติว่าคุณต้องการทำแบบอักษรตัวที่สองซึ่งมี ค่าเงินขนาดเล็กจริง ตามค่าเริ่มต้น แค่วิ่ง:
pyftfeatfreeze -f 'c2sc,smcp' -S -U SC -R 'Charis SIL/Charix,CharisSIL/Charix' CharisSIL-R.ttf CharixSC-R.ttf
คุณจะได้รับ Font Charissil-r.ttf ใหม่ (พร้อมชื่อเมนู“ Charix SC”) ตัวอักษรนี้จะมีตัวเล็กแทนตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ที่มีอยู่ในแอพทั้งหมด
เนื่องจากแบบอักษร“ Charis Sil” ได้รับใบอนุญาตภายใต้ OFL และใช้ชื่อตัวอักษรที่สงวนไว้“ Charis” และ“ SIL” ฉันได้ระบุตัวเลือก -R เพื่อแทนที่สตริงชื่อ Charis SIL และ CharisSIL ด้วย Charix ด้วยวิธีนี้แบบอักษรที่แก้ไขนั้นสอดคล้องกับ OFL และฉันสามารถแจกจ่ายได้
ตัวอย่างต่อไปนี้รีมอนแบบอักษรเพื่อให้ แบบฟอร์มภาษาบัลแกเรีย มีการแปลเป็นค่าเริ่มต้นในแอพทั้งหมด (คำต่อท้าย“ BG” จะถูกเพิ่มลงในชื่อเมนู):
pyftfeatfreeze -f 'locl' -s 'cyrl' -l 'BGR ' -S -U BG SomeFont.ttf SomeFontBG.ttf
หมายเหตุ: หากต้องการทำการแมปคุณสมบัติจากสคริปต์หรือระบบหลายภาษาให้เรียกใช้เครื่องมือหลายครั้ง (ใช้เอาต์พุตของรันก่อนหน้าเป็นอินพุต) ใช้ตัวเลือก -S เฉพาะในการรันสุดท้าย
ต่อไปนี้แทนที่สตริง Lato โดย Otal ในชื่อตัวอักษรภายในทั้งหมด (ใน name และตาราง CFF ) โดยไม่ต้องทำ "การแช่แข็ง" สามารถใช้เพื่อเปลี่ยนชื่อตัวอักษรภายในได้อย่างรวดเร็ว:
pyftfeatfreeze -R 'Lato/Otal' Lato-Regular.ttf Otal-Regular.ttf
usage: pyftfeatfreeze [-h] [-f FEATURES] [-s SCRIPT] [-l LANG] [-z] [-S]
[-U USESUFFIX] [-R REPLACENAMES] [-i] [-r] [-n] [-v]
[-V]
inpath [outpath]
With pyftfeatfreeze you can "freeze" some OpenType features into a font. These
features are then "on by default", even in apps that don't support OpenType
features. Internally, the tool remaps the "cmap" table of the font by applying
the specified GSUB features. Only single and alternate substitutions are
supported.
positional arguments:
inpath input .otf or .ttf font file
outpath output .otf or .ttf font file (optional)
optional arguments:
-h, --help show this help message and exit
options to control feature freezing:
-f FEATURES, --features FEATURES
comma-separated list of OpenType feature tags, e.g.
'smcp,c2sc,onum'
-s SCRIPT, --script SCRIPT
OpenType script tag, e.g. 'cyrl' (default: 'latn')
-l LANG, --lang LANG OpenType language tag, e.g. 'SRB ' (optional)
-z, --zapnames zap glyphnames from the font ('post' table version 3,
.ttf only)
options to control font renaming:
-S, --suffix add a suffix to the font family name (by default, the
suffix will be constructed from the OpenType feature
tags)
-U USESUFFIX, --usesuffix USESUFFIX
use a custom suffix when --suffix is provided
-R REPLACENAMES, --replacenames REPLACENAMES
search for strings in the font naming tables and
replace them, format is
'search1/replace1,search2/replace2,...'
-i, --info update font version string
reporting options:
-r, --report report languages, scripts and features in font
-n, --names output names of remapped glyphs during processing
-v, --verbose print additional information during processing
-V, --version show program's version number and exit
Examples: pyftfeatfreeze -f 'c2sc,smcp' -S -U SC OpenSans.ttf OpenSansSC.ttf
pyftfeatfreeze -R 'Lato/Otal' Lato-Regular.ttf Otal-Regular.ttf
เคล็ดลับ: ตัวเลือก -n จะส่งออกรายการที่คั่นด้วยอวกาศของร่ายมนตร์“ แช่แข็ง” หากคุณเปลี่ยนเส้นทางไปยังไฟล์คุณสามารถใช้รายการนี้เป็นอินพุตสำหรับ pyftsubset เพื่อสร้างแบบอักษรขนาดเล็กที่มีร่ายมนตร์“ แช่แข็ง” เท่านั้น
หากต้องการรายงานปัญหาให้เปิด ปัญหา คุณต้องมีบัญชี GitHub
เครื่องมือนี้ได้รับใบอนุญาต“ ตามสภาพ” ภายใต้ใบอนุญาต Apache เวอร์ชัน 2.0 โดยการใช้เครื่องมือคุณยอมรับเงื่อนไขทั้งหมดของใบอนุญาตรวมถึงข้อจำกัดความรับผิดชอบของการรับประกันและข้อ จำกัด ของความรับผิด หากคุณใช้เครื่องมือนี้โปรดปรึกษาหาก EULA ของตัวอักษรของคุณอนุญาตการแก้ไข หากตัวอักษรได้รับใบอนุญาตภายใต้ OFL และใช้ชื่อตัวอักษรที่สงวนไว้โปรดใช้ตัวเลือก -R เพื่อเปลี่ยนชื่อตัวอักษรที่สงวนไว้เป็นอย่างอื่น
เครื่องมือนี้เขียนขึ้นสำหรับ Python 3.6+ และใช้ FontTools/TTX
-s (สคริปต์) เพื่อที่ว่าหากไม่ได้ให้ไว้การรีมอนจะอยู่ในสคริปต์ทั้งหมด-S (คำต่อท้าย) เพื่อที่ว่าหากไม่ได้ให้ไว้จะไม่มีการเพิ่ม Sufix และเพิ่มแอพ GUIfonttools-utils repo อยู่ที่ Fonttools-Ttxjson และ Mac-OS-X-System-Font-Replacerในการสร้างแพ็คเกจ Python ให้ติดตั้งบทกวี:
pip install poetry
หรือ
python3 -m install --user --upgrade poetry
จากนั้นในโฟลเดอร์หลักของการรันโครงการ:
poetry build
ในการสร้าง DMG & EXE คุณต้องมี macOS ในโฟลเดอร์ย่อยของแอพ Run ./macdeploy all