Beberapa waktu lalu saya tertarik melihat Jetendard(JetBrains Mono Nerd Font + Pretendard) yang sempat diposting di sini. Biasanya font gabungan seperti ini selama ini dipakai dalam bentuk menerima kombinasi yang dipilih oleh pembuatnya. Namun sepertinya ada juga orang yang ingin membuat kombinasi sendiri, misalnya font Latin memakai A dan Hangul memakai B. Karena itu saya membuat alat yang memungkinkan siapa pun membuatnya sendiri lewat GUI.
Menggabungkan dua font lewat CLI sendiri sebenarnya tidak sulit. Jalankan saja dengan fontTools dan selesai dengan cepat. Yang merepotkan adalah setelahnya: ubah opsi, gabungkan lagi, pasang, lalu cek. Satu putaran ini bisa memakan waktu beberapa menit, dan karena harus menetapkan font di IDE, prosesnya cukup merepotkan. font-moeum (Moeum) adalah aplikasi desktop yang berfokus memangkas loop ini menjadi beberapa detik. Aplikasi ini menerima tepat dua font, font Latin dan font Hangul (TTF/OTF), lalu menggabungkannya menjadi satu TTF.
Setelah penggabungan selesai, hasilnya bisa langsung dimuat dan dicoba dengan mengetik sendiri di area pratinjau tanpa perlu instalasi. Ukuran dan tinggi baris dapat disesuaikan secara real-time lewat CSS tanpa perlu menggabungkan ulang. Jika opsi diubah, font akan otomatis digabungkan lagi. Untuk glif yang ada di kedua sisi seperti Latin, angka, dan tanda baca, Anda bisa membalik pilihan sumber font mana yang dipakai lewat swap A/B dengan satu klik untuk membandingkannya.
Ada dua mode.
Mode umum menggabungkan keseluruhan dengan fontTools Merger, dan karena proporsi Hangul tetap seperti aslinya, mode ini cocok untuk dokumen dan UI.
Mode font coding memakai engine khusus yang menjadikan A monospace sebagai basis, lalu menyalin glif Hangul dari B setelah diskalakan dan disejajarkan ke tengah agar masuk ke sel kelipatan bulat dari lebar Latin (default 2:1). Dengan begitu, di terminal dan editor, dua sel Latin dan satu karakter Hangul akan pas presisi. Skala Hangul, kelipatan lebar, offset vertikal, apakah Hanja disertakan, serta komposisi jamo (ccmp) dapat diatur di panel lanjutan. Jika A bukan monospace, penggabungan akan ditolak.
Implementasinya menggunakan Tauri v2 + React. Engine penggabungan menyematkan Python fontTools sebagai sidecar yang dibungkus menjadi executable tunggal dengan PyInstaller. Untuk penggabungan, fontTools dipakai apa adanya. Struktur ini dipilih karena FontFace API pada webview praktis untuk langsung menampilkan hasilnya. OTF(CFF) saat dimuat akan dikonversi ke TTF dengan cu2qu lalu digabungkan. Karena ada aproksimasi kurva dan hilangnya CFF hinting, slot akan ditandai dengan badge "OTF→TTF", dan OTF variabel CFF2 akan ditolak. Output selalu berupa TTF.
Build untuk Windows (installer·zip portabel), macOS (Apple Silicon), dan Linux (AppImage/deb) sudah disediakan. Karena tidak ada code signing, di Windows akan muncul peringatan SmartScreen, dan di macOS karena tidak ada notarization, perlu menjalankan xattr -cr sekali. Aplikasi ini tidak menyertakan font.
Kepatuhan lisensi untuk font yang digabungkan menjadi tanggung jawab pengguna (Reserved Font Name pada OFL tidak boleh dipakai ulang sebagai nama output).
Lisensinya MIT. Sebagai contoh kombinasi, digunakan D2Coding + JetBrains Mono(OFL). Jika Anda menemukan font yang tidak bisa digabungkan atau kombinasi yang terasa janggal, saya akan berterima kasih jika Anda melaporkannya lewat issue.
Belum ada komentar.