4 पॉइंट द्वारा GN⁺ 2025-12-14 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • दुनिया भर के Unicode अक्षरों के लिए glyphs (अक्षर आकृतियाँ) शामिल करने वाला एक मुक्त फ़ॉन्ट, जिसे GNU Project के हिस्से के रूप में बनाए रखा जाता है
  • संस्करण 15.1.01 से, Lee Minseo और Lee Ho-seok के योगदान से नई compositional encoding (6/3/1 method) लागू की गई, जिससे बेहतर Hangul glyph system अपनाया गया
  • नवीनतम 17.0.03 संस्करण में चीनी-जापानी Han characters, अरबी, संगीत चिन्ह आदि के कई glyphs सुधारे और जोड़े गए हैं
  • यह पूरे BMP (Basic Multilingual Plane) के 65,536 code points को support करता है, और SMP (Supplementary Multilingual Plane) तथा CSUR (ConScript Unicode Registry) क्षेत्रों तक भी धीरे-धीरे विस्तार कर रहा है
  • GNU GPLv2+ font embedding exception और SIL Open Font License 1.1 के dual license के तहत वितरित होने के कारण, इसे commercial software में भी स्वतंत्र रूप से इस्तेमाल किया जा सकता है
  • दुनिया की सभी लिपि प्रणालियों की पूर्ण coverage को लक्ष्य बनाने वाला एक प्रमुख open source Unicode font project

GNU Unifont का अवलोकन

  • GNU Unifont ऐसा फ़ॉन्ट है जिसमें सभी printable Unicode code points के लिए glyphs शामिल हैं, और इसे GNU Project के हिस्से के रूप में बनाए रखा जाता है
    • Basic Multilingual Plane (BMP, U+0000~U+FFFF) का पूर्ण support
    • Supplementary Multilingual Plane (SMP, U+010000~U+01FFFF) तथा CSUR/Under-CSUR क्षेत्रों का भी लगातार विस्तार जारी है
  • इसे commercial software में भी इस्तेमाल किया जा सकता है, लेकिन derived fonts को उसी license के तहत जारी करना होगा
    • License हैं: GNU GPLv2+ (font embedding exception सहित) और SIL Open Font License 1.1
    • Derived fonts को सार्वजनिक करने के माध्यम से जनहित सुनिश्चित किया जाता है

कॉपीराइट और लाइसेंस

  • हज़ारों glyphs अलग-अलग contributors की रचनाएँ हैं, और विभिन्न देशों के copyright कानूनों के तहत संरक्षित हैं
    • कुछ मौजूदा अक्षर रूप हैं, जबकि कुछ icon और symbol design हैं, जिन पर अंतरराष्ट्रीय स्तर पर और अधिक मजबूत सुरक्षा लागू हो सकती है
  • जर्मन copyright law से संबंधित एक memorandum भी प्रकाशित है
  • Unifont 13.0.04 के बाद के संस्करण GPL 2+ / SIL OFL 1.1 dual license के तहत वितरित किए जाते हैं
    • दस्तावेज़ों में फ़ॉन्ट को embed करना GPL का उल्लंघन नहीं माना जाता

फ़ॉन्ट डाउनलोड और फ़ॉर्मेट

  • Standard build और CSUR/Under-CSUR PUA glyphs शामिल संस्करण उपलब्ध हैं
    • OpenType (.otf), PCF, BDF, PSF, HEX आदि कई फ़ॉर्मेट का समर्थन
    • Windows और macOS पर install किया जा सकता है; macOS terminal में readability के लिए Antialias option चालू करना चाहिए
  • कुछ rendering engines glyph spacing information को ignore करते हैं, इसलिए monospace-only engines में display errors हो सकते हैं

Unifont की सीमाएँ

  • हर printable code point के लिए सिर्फ एक glyph संग्रहीत किया जाता है
    • Indic scripts (Devanagari, Bengali, Tamil आदि) या स्थिति के अनुसार रूप बदलने वाली लिपियाँ (जैसे Arabic) सही तरह render नहीं हो पातीं
    • Complex scripts के लिए विशेषज्ञ OpenType fonts के उपयोग की सिफारिश की जाती है

नए glyphs में योगदान

  • नया glyph जोड़ने के लिए पहले email से संपर्क करना आवश्यक है
    • Duplicate work से बचने के लिए चर्चा के बाद ही योगदान किया जा सकता है
  • चीनी सरकार के copyright वाले 15×16 pixel Han glyphs (Plane 2, 3) को मुक्त फ़ॉन्ट में शामिल नहीं किया जा सकता

नवीनतम रिलीज़ — Unifont 17.0

  • 1 नवंबर 2025, संस्करण 17.0.03
    • चीनी ‘馬’ (घोड़ा) और ‘鳥’ (पक्षी) radical वाले 100 से अधिक Han characters सुधारे गए
    • 1935~2013 के बीच की चीनी simplified character standard lists परिलक्षित की गईं
    • 2009 में प्रकाशित modern commonly used character radical standard भी शामिल किया गया
  • 18 अक्टूबर 2025, संस्करण 17.0.02
    • Plane 0~3 में Paul Hardy, David Corbett, 晓晓Akatsuki, Boris Zhang सहित कई contributors के बदलाव
    • Arabic, chess symbols, CJK extensions आदि में कई सुधार
  • 9 सितंबर 2025, संस्करण 17.0.01
    • Arabic Extended-B, currency symbols, Telugu और Kannada characters आदि जोड़े गए
    • Plane 1~3 में Arabic Extended-C, Sidetic, Tolong Siki, Beria Erfe, Adlam सहित कई scripts जोड़ी गईं

पिछले प्रमुख संस्करण

  • Unifont 16.0 (2025 की पहली छमाही)
    • Arabic, Greek, Hangul, music symbols आदि में कई सुधार
    • Sitelen Pona, Zbalermorna जैसे CSUR scripts जोड़े गए
  • Unifont 15.1 (2024)
    • Lee Ho-seok (Ho-seok Ee) की compositional Hangul 6/3/1 Johab encoding को अपनाया गया
    • TrueType की जगह OpenType default build पर स्विच किया गया
    • Hangul, CJK extensions, Wen Quan Yi glyphs में बड़े पैमाने पर सुधार

Glyph coverage

  • Plane 0~3, Plane 14, Plane 15 तक व्यापक Unicode plane support
    • Plane 0: Basic Multilingual Plane (सभी प्रमुख लिपियों का पूर्ण coverage)
    • Plane 1: Supplementary Multilingual Plane (music symbols, hieroglyphs, ancient scripts आदि)
    • Plane 2~3: CJK extension Han characters
    • Plane 14: tags और variation selectors
    • Plane 15: CSUR/Under-CSUR private areas

CSUR और UCSUR scripts

  • Tengwar, Cirth, Aurebesh, Klingon, Sitelen Pona, Sadalian आदि
    • इसमें कई constructed language scripts भी शामिल हैं
    • कुछ अभी भी अधूरे के रूप में चिह्नित हैं

जापानी और चीनी variants

  • JIS X 0213 standard का पूर्ण support देने वाला unifont_jp संस्करण उपलब्ध है
    • शुरुआत में Jiskan16, बाद में Izumi16 के public glyphs से प्रतिस्थापित किया गया
  • चीनी संस्करण Tongyong Guifan Hanzibiao का पूर्ण coverage देता है
    • यह Wen Quan Yi (文泉驛) project के public glyphs पर आधारित है

तकनीकी विवरण

  • TrueType conversion , Luis Alejandro González Miranda की scripts पर आधारित है
    • .hex.sfd.ttf conversion automation
  • 16×16 pixel grid को आधार माना गया है, और आगे 32×32 pixel glyphs support की योजना है

आगे की योजना

  • SMP plane के 16×16 pixel glyphs सभी पूरे हो चुके हैं
  • Tangut जैसी complex scripts को भविष्य में 32×32 pixel में तैयार किया जाएगा
  • CSUR scripts जोड़ने का काम लगातार जारी है
  • सभी नए contributions को GPL 2+ / SIL OFL 1.1 शर्तों के तहत जारी करना होगा

प्रोजेक्ट का महत्व

  • GNU Unifont, दुनिया की सभी लिपियों के लिए digital accessibility सुनिश्चित करने का लक्ष्य रखने वाला एक प्रमुख मुक्त फ़ॉन्ट है
  • open source ecosystem, internationalization (i18n), font engineering जैसे क्षेत्रों में यह महत्वपूर्ण infrastructure की भूमिका निभाता है
  • लगातार community contributions के माध्यम से यह Unicode standard की visual completeness को बेहतर बनाने वाला प्रोजेक्ट है

Unifont का Hangul फ़ॉन्ट पेज - Hangul(Hangeul) Font

Hangul की उत्पत्ति और संरचना

  • Hangul को King Sejong ने 1443~1446 के बीच बनाया और 1446 में Hunminjeongeum Haerye के रूप में घोषित किया
    • इसका उद्देश्य स्पष्ट रूप से यह था कि “जनता इसे आसानी से सीखे और रोज़मर्रा में सुविधाजनक रूप से इस्तेमाल करे”
    • Haerye पाठ अक्षर-निर्माण सिद्धांत समझाने वाला व्याख्यात्मक ग्रंथ है, और द्वितीय विश्व युद्ध के दौरान मिला इसका एकमात्र ज्ञात संस्करण संरक्षित है
  • Hangul initial consonant, medial vowel, final consonant के तीन तत्वों से बने syllable block structure का उपयोग करता है
    • उदाहरण: “Hangul” ‘h + a + n’ और ‘g + eu + l’ के संयोजन से बनता है
    • Vowels और semivowels (y, w) को initial consonant के दाईं ओर या नीचे रखा जाता है

व्यंजनों की रचना का सिद्धांत

  • व्यंजन उच्चारण अंगों के आकार पर आधारित पाँच मूल व्यंजनों (g/k, n, m, s, ng) से शुरू होते हैं
    • इनमें स्ट्रोक जोड़कर 17 मूल व्यंजन बनाए गए
    • कुछ व्यंजन double consonant form के जरिए बलाघात दिखाते हैं
  • Compatibility Jamo भी Unicode में शामिल हैं, और कुछ पुराने jamo अब उपयोग में नहीं हैं

स्वरों की रचना का सिद्धांत

  • स्वर आकाश (yang), मनुष्य (neutral), पृथ्वी (yin) की त्रयी अवधारणा से निकले हैं
    • मूल तत्व: बिंदु (arae-a), क्षैतिज रेखा (eu), ऊर्ध्वाधर रेखा (i)
  • मूल रूप से 11 स्वर थे; arae-a आधुनिक मानक Korean में समाप्त हो चुका है, लेकिन Jeju dialect में बचा हुआ है
  • स्वरों के संयोजन से diphthongs बनते हैं, जिनमें से कुछ आधुनिक Hangul में उपयोग नहीं होते
  • Unifont Hangul jamo set प्राचीन और आधुनिक सभी vowels और diphthongs का support करता है

Unicode में Hangul क्षेत्र

  • Hangul निम्न Unicode ranges में शामिल है
    • U+1100–U+11FF: Hangul Jamo
    • U+3130–U+318F: Hangul Compatibility Jamo
    • U+A960–U+A97F: Hangul Jamo Extended–A
    • U+AC00–U+D7A3: Hangul Syllables
    • U+D7B0–U+D7FF: Hangul Jamo Extended–B
    • U+FFA0–U+FFDF: Half-width Compatibility Jamo
  • initial, medial, final positions के संयोजन का समायोजन फ़ॉन्ट डिज़ाइन का मुख्य भाग है, और bitmap fonts में भी compositional syllables दिखाए जा सकते हैं

X11 compositional (Johab) fonts और Unifont

  • Johab encoding font initial consonant, medial vowel और final consonant को मिलाकर syllable glyph बनाता है
    • Unix X11 environment के Hanterm terminal में इसका उपयोग हुआ
  • Hanterm के लिए उपलब्ध मुक्त फ़ॉन्ट GPL-compatible नहीं थे, इसलिए Unifont ने नए Hangul syllable glyphs सीधे खुद बनाए
    • Conversion process: Perl script johab2ucs2.pl → .hex → .bdf
    • पुराने fonts (iyagi16, johabg16 आदि) Hanterm-only license से सीमित थे
  • बाद में नया Hangul Syllables set कई वर्षों में बनाकर Unifont में शामिल किया गया

हाल की contributions और encoding सुधार

  • Lee Minseo (Minseo Lee) : 2023 में, Hanterm order आधारित modern glyphs और ancient glyph corrections प्रदान किए
    • Perl scripts में सुधार और Unicode range के भीतर jamo consistency fixes
  • Lee Ho-Seok (Ho-Seok Ee) : Johab 6/3/1 encoding का प्रस्ताव
    • initial consonant 6, medial vowel 3, final consonant 1 की संयोजन संरचना से glyph generation पहले से अधिक सरल हुआ
    • code points को Private Use Area (U+E000–U+E8FF) में स्थानांतरित करने का प्रस्ताव
    • Unifont 15.1.01 से यह encoding method अपनाया गया

Unicode Hangul syllable block (U+AC00–U+D7A3)

  • इसमें कुल 11,172 syllable glyphs हैं
    • 19 initial consonants (या 1 filler), 21 medial vowels, 27 final consonants (या none)
    • संयोजन सूत्र: (19×21)×28 = 11,172
  • स्वर से शुरू होने वाले शब्दों में initial consonant ‘ng’ (ieung) filler की तरह इस्तेमाल होता है
  • Unifont 5.1 के बाद के संस्करणों में नए syllable block generation process को अलग दस्तावेज़ Generating Hangul Syllables में विस्तार से समझाया गया है

2 टिप्पणियां

 
joyfui 2025-12-14

यही Minecraft के बदसूरत Korean फ़ॉन्ट की असली पहचान है...

 
GN⁺ 2025-12-14
Hacker News की राय
  • हम Solvespace की टेक्स्ट विंडो और properties browser में GNU Unifont का उपयोग करते हैं
    इसे executable में सीधे embed किया गया है, इसलिए यह बहुत उपयोगी रहा। कुछ उपयोगकर्ता अपने डिज़ाइन में CJK characters शामिल करते हैं, और यह सभी platforms पर बस ठीक से काम करता है
    CAD में hole annotations देखते समय, यह देखकर हैरानी हुई कि counter-bore और counter-sink symbols पहले से ही Unifont में शामिल हैं
    एक experimental web version यहाँ देखा जा सकता है
    • web version की सादगी वाकई शानदार है। Solvespace मेरा पसंदीदा MCAD program है, और PCB test jig जल्दी बनाने के लिए मैं हमेशा पहले इसी टूल की ओर जाता हूँ
      जब geometry सरल हो, तो इसका उपयोग अनुभव बहुत सुखद होता है
    • सिर्फ font selection से ऐसा शानदार असर निकल आना दिलचस्प है। बेशक Unifont और पूरे Unicode में अनगिनत मानव-घंटे लगे होंगे, लेकिन यह विचार अच्छा लगता है कि कोई Bronze Age CAD engineer अपना नाम Linear A में लिखे तो भी कोई दिक्कत न हो
    • web version सचमुच बहुत साफ-सुथरा है। Solvespace की functionality सीमित है, लेकिन constraints को व्यक्त करने की इसकी flexibility और मज़ा जबरदस्त है
      कभी न कभी मैं code में जाकर “constraint बनाए नहीं जा सकते” modal dialog को बदलकर देखना चाहूँगा
  • दूसरों के लिए स्पष्ट कर दूँ, GNU Unifont एक bitmap font है
    यह BMP के सभी code points के लिए fixed glyphs देता है, और कुछ अन्य planes के code points भी शामिल करता है
    यह उन editors के लिए उपयोगी है जो language-specific rendering knowledge के बिना भी Unicode text edit कर सकते हैं
    लेकिन देवनागरी जैसी complex scripts लिखते समय shaping न होने के कारण यह असली text जैसा नहीं दिखता
    • यहाँ BMP का मतलब BitMap नहीं, बल्कि Unicode Basic Multilingual Plane है। यानी पहले 65,536 code points का क्षेत्र
    • तो क्या हर point size के लिए अलग file होती है? इससे फिर एहसास हुआ कि fonts के बारे में मुझे लगभग कुछ भी पता नहीं है
  • उस website का पहला वाक्य शायद पहले यह समझाना चाहिए कि GNU Unifont है क्या। शायद यह लगभग सभी Unicode code points को शामिल करने वाला एक copyleft font है
    • दरअसल दूसरा और तीसरा वाक्य पहले ही इसे ठीक से समझा देते हैं। इसमें BMP के सभी printable code points के glyphs हैं, और यह last resort font के रूप में उपयुक्त है
      जब दूसरे fonts में glyph न मिले, तब यह character दिखाने का काम करता है
    • “लगभग सभी” का मतलब “सभी” नहीं है। मेरे पास एक project है जिसमें rare CJK characters render करने पड़ते हैं, और Unifont में वे ठीक से नहीं दिखते
      मैंने उसकी जगह Jigmo font इस्तेमाल किया, जिसमें CJK glyphs सबसे ज़्यादा पूर्ण थे
    • मैं भी पहले उलझ गया था, लेकिन “Home” दबाने पर समझ आया कि लिंक landing page नहीं है
    • बहुत सारे open source projects में पहले वाक्य में इसी तरह पर्याप्त explanation नहीं होती
    • मुझे लगता है, “GNU Unifont GNU project का हिस्सा है और BMP के सभी printable code points के glyphs शामिल करता है” — यह वाक्य पहले से ही काफी स्पष्ट है
  • print करने पर भी यह सचमुच बहुत सुंदर लगता है। मैंने इसे spiral poster बनाकर दीवार पर टाँग रखा है
    The Mostly Complete Unicode Spiral
    • बढ़िया! यह जानने की जिज्ञासा है कि आपने इसे किस size में print किया। मुख्य spiral के आसपास जो छिटपुट Han characters हैं, क्या वे Unicode की स्वाभाविक arrangement हैं, या जानबूझकर ऐसा किया गया है?
      पूरा डिज़ाइन किसी galaxy जैसा लगता है, और emoji का बाहरी किनारे पर align होना प्रभावशाली था। Earth emoji ढूँढना भी मज़ेदार लगा
  • Unifont हर code point के लिए सिर्फ एक glyph store करता है
    इसलिए complex scripts (Indic, Arabic आदि) ठीक से render नहीं होतीं
    ऐसे मामलों में OpenType fonts का उपयोग करना चाहिए, और Unifont मूलतः fallback font के रूप में ही उपयुक्त है
  • font websites पर अक्सर “Hello World” जैसे type specimen preview images होते हैं। अच्छा होगा अगर Unifont page पर भी ऐसा कुछ जोड़ा जाए
  • GNU नाम देखते ही लगता है कि भले ही वह हर मामले में सबसे श्रेष्ठ न हो, लेकिन users के सम्मान के मामले में वह लगभग सबसे ऊपर है
  • मैं Unifont को पूरे system पर लागू करता हूँ, और Firefox में इसे एकमात्र font के रूप में force करता हूँ
    web font downloads भी disable कर दिए हैं, और CSUR(ConScript Unicode Registry) में मेरे बनाए हुए characters भी हैं
    Qt में DPI setting थोड़ी मुश्किल है, लेकिन QT_FONT_DPI=128 से यह हल हो जाता है। RimWorld जैसे games में भी मैं केवल Unifont ही इस्तेमाल करवाना चाहता हूँ
    • ऐसा क्यों करते हैं, यह जानने की जिज्ञासा है
    • मैंने भी इसे install करके देखा, लेकिन HN पढ़ने के लिए 200% zoom करना पड़ा। XFCE में यह किसी तरह ठीक-ठाक था
  • Firefox में अच्छे CJK fonts इस्तेमाल करने के लिए मुझे Unifont हटाना पड़ा
    क्योंकि font fallback अजीब तरह से पहले Unifont चुन लेता था
    • इसे ठीक करने के लिए Firefox settings में Language and Appearance → Fonts → Advanced में जाकर हर script के लिए font अलग से सेट करना होगा
      नहीं तो कौन-सा font चुना जाएगा, इसका अंदाज़ा लगाना मुश्किल है
    • Firefox और Chrome दोनों में मैंने Unifont glyphs के दिखाई न देने की समस्या भी झेली है। nixpkgs issue tracker में भी इसकी reports हैं
      Noto Color Emoji में भी ऐसा ही कुछ हुआ था। fonts की दुनिया वाकई बहुत सूक्ष्म है
  • मैंने Unifont के आधार पर Playdate के लिए एक font बनाया है
    https://github.com/remysucre/cuniform