2 puan yazan jamiekim 16 시간 전 | Henüz yorum yok. | WhatsApp'ta paylaş

Kısa süre önce burada paylaşılan Jetendard'ı (JetBrains Mono Nerd Font + Pretendard) ilgiyle inceledim. Genelde bu tür birleşik fontlarda, şimdiye kadar hazırlayan kişinin seçtiği kombinasyonu alıp kullanıyorduk. Ama İngilizce için A fontu, Korece için B fontu şeklinde kendi kombinasyonunu yapmak isteyenler de olabilir. Bu yüzden herkesin GUI üzerinden doğrudan oluşturabileceği bir araç yaptım.

İki fontu CLI ile birleştirmek aslında zor değil. fontTools ile çalıştırınca hemen oluyor. Zahmetli kısım ondan sonrası. Seçenekleri değiştir, yeniden birleştir, kurup kontrol et. Bu döngünün her turu birkaç dakika sürüyor; bir de IDE'de fontu belirtmek gerektiği için oldukça uğraştırıcı. font-moeum, bu döngüyü birkaç saniyeye indirmeye odaklanan bir masaüstü uygulaması. İngilizce font ve Korece font olmak üzere tam iki dosyayı (TTF/OTF) alıp tek bir TTF olarak birleştiriyor.

Birleştirme tamamlanınca sonucu hemen yükleyip kurulum gerektirmeden önizleme alanında doğrudan yazarak deneyebilirsiniz. Boyut ve satır yüksekliği, yeniden birleştirme olmadan CSS ile gerçek zamanlı ayarlanır. Seçenekleri değiştirdiğinizde otomatik olarak yeniden birleştirir. Latin harfleri, rakamlar ve noktalama işaretleri gibi iki tarafta da bulunan gliflerde hangi fonttan alınacağını A/B swap ile tek tıkla tersine çevirip karşılaştırabilirsiniz.

İki mod var.

Normal mod, fontTools Merger ile tam birleştirme yapar; Korece özgün oranını koruduğu için belge ve UI kullanımına uygundur.

Kodlama fontu modu, özel bir motorla sabit genişlikli A'yı temel alır ve B'nin Korece gliflerini Latin genişliğinin tam sayı katı hücrelere (varsayılan 2:1) sığacak şekilde ölçekleyip ortalayarak kopyalar. Böylece terminal ve editörde iki Latin hücresi ile bir Korece karakter tam olarak hizalanır. Korece ölçeği, genişlik çarpanı, dikey ofset, Hanja dahil etme durumu, jamo birleştirme (ccmp) gibi ayarlar gelişmiş panelden düzenlenebilir. A sabit genişlikli değilse birleştirmeyi reddeder.

Uygulama Tauri v2 + React ile geliştirildi. Birleştirme motorunu Python fontTools'u PyInstaller ile tek bir çalıştırılabilir dosyada paketleyip sidecar olarak gömdüm. Birleştirmede fontTools'u aynen kullanıyor. Sonucu anında göstermek için webview'in FontFace API'si pratik olduğundan bu yapı tercih edildi. OTF (CFF) dosyaları yüklenirken cu2qu ile TTF'ye dönüştürülüp sonra birleştirilir. Eğri yaklaştırma ve CFF hinting kaybı olduğu için slota "OTF→TTF" rozetiyle gösterilir ve CFF2 değişken OTF reddedilir. Çıktı her zaman TTF'dir.

Windows (kurulumlu sürüm ve kurulumsuz zip), macOS (Apple Silicon) ve Linux (AppImage/deb) derlemelerini yükledim. Kod imzası olmadığı için Windows'ta SmartScreen uyarısı çıkar; macOS'ta noter onayı olmadığı için bir kez xattr -cr komutunu çalıştırmak gerekir. Uygulamanın içinde font bulunmaz.

Birleştirilecek fontların lisanslarına uyma sorumluluğu kullanıcıya aittir (OFL'deki Reserved Font Name çıktı adında yeniden kullanılamaz).

MIT lisanslıdır. Örnek kombinasyon olarak D2Coding + JetBrains Mono (OFL) kullanıyorum. Birleşmeyen fontlar ya da tuhaf görünen kombinasyonlarla karşılaşırsanız issue olarak bildirirseniz sevinirim.

Henüz yorum yok.

Henüz yorum yok.