എന്താണ് ഓപ്പൺടൈപ്പ് എഞ്ചിനീയറിങ്ങ് ?
ഗായത്രി അക്ഷരരൂപത്തിന്റെ ഓപ്പൺടൈപ്പ് എഞ്ചിനീയറിങ്ങിനെ കുറിച്ച് കാവ്യ മനോഹര് എഴുതുന്നു. കാവ്യയുടെ ബ്ലോഗില് പ്രസിദ്ധീകരിച്ച ലേഖനത്തിന്റെ പുനഃപ്രസിദ്ധീകരണം
ഗായത്രിയുടെ റിലീസ് കാർഡ് പുറത്തിറങ്ങിയപ്പോൾ മുതൽ പലരും അന്വേഷിക്കുന്നുണ്ട് എന്താണീ ഓപ്പൺടൈപ്പ് എഞ്ചിനീയറിങ്ങ് എന്ന്? ലളിതമായി പരിചയപ്പെടുത്താം. വിശദമായി ഒരു ലേഖനപരമ്പര തന്നെ മുമ്പ് സ്വതന്ത്രമലയാളം കമ്പ്യൂട്ടിങ്ങ് ബ്ലോഗിൽ സന്തോഷിനും രജീഷിനുമൊപ്പം എഴുതിയിട്ടും ഉണ്ട്.
ഫോണ്ട് എന്ന സോഫ്റ്റ്വെയർ ഒരേസമയം കലയുടേയും സാങ്കേതികവിദ്യയുടേയും സമന്വയമാണ്. കലയുടെ അംശം അതിലെ അക്ഷരരൂപങ്ങളുടെ ഡിസൈനിലാണുള്ളത്. ആയിരത്തിഒരുന്നൂറിൽപ്പരം അക്ഷരരൂപങ്ങൾ മലയാളത്തിലെ ഒരു സമഗ്രലിപിസഞ്ചയ ഫോണ്ടിലുണ്ടാവും. ഡിസൈൻ പ്ലാനിനനുസരിച്ച് ഇത് വ്യത്യാസപ്പെടാം, കുറഞ്ഞത് എഴുന്നൂറൊക്കെ ഉണ്ടാകും.
യൂണിക്കോഡ്
മലയാളത്തിലെ അടിസ്ഥാന അക്ഷരങ്ങൾ നമ്മൾ അക്ഷരമാലയായി സ്കൂളിൽ പഠിക്കുന്ന സ്വരങ്ങളും വ്യഞ്ജനങ്ങളും മാത്രമല്ല. മലയാള അക്കങ്ങൾ, ചിഹ്നരൂപങ്ങൾ ഒപ്പം ഇന്നുപയോഗത്തിലില്ലാത്ത പല പുരാതനലിപി രൂപങ്ങളും ഒക്കെചേരുന്നതാണ്. ഈ അടിസ്ഥാന അക്ഷരങ്ങളുടെ അന്തർദേശീയമാനകമാണ് യൂണിക്കോഡ്. ലോകത്തിലെ ലിപിരൂപങ്ങളുള്ള എല്ലാ ഭാഷകൾക്കും യൂണിക്കോഡ് ചാർട്ടിൽ സ്ഥാനമുണ്ട്. പുതിയവ കൂട്ടിച്ചേർത്തുകൊണ്ട് ഇത് ഓരോ വർഷവും വിപുലീകരിക്കുകയും ചെയ്യുന്നു.
യൂണിക്കോഡിൽ നിർവ്വചിച്ചിരിക്കുന്ന ഓരോ അക്ഷരത്തേയും കൃത്യമായ ഒരു കോഡ്നമ്പർ ഉപയോഗിച്ചാണ് ലോകത്താകമാനമുള്ള കമ്പ്യൂട്ടറുകളും മൊബൈൽഫോണുകളും അടക്കമുള്ള എല്ലാ കമ്പ്യൂട്ടിങ്ങ് ഉപകരണങ്ങളും അതിലെ സോഫ്റ്റ്വെയർ ആപ്ലിക്കേഷനുകളും തിരിച്ചറിയുന്നത്. മേലെക്കാണിച്ച ചാർട്ടിൽ മലയാളത്തിലെ ഓരോ അക്ഷരത്തിന്റേയും കോഡുകൾ വ്യക്തമായി കാണാം. മഞ്ഞനിറത്തിൽ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന മൂന്നക്ഷരങ്ങൾ യൂണിക്കോഡിന്റെ പത്താം പതിപ്പിലാണ് നിർവ്വചിക്കപ്പെട്ടത്.
ഓപ്പൺടൈപ്പ്
അക്ഷരങ്ങൾ നിരത്തിയെഴുതിയാൽ ലിപിരൂപ സവിശേഷതകളുടെ ശരിയായ ചിത്രം ലഭിക്കില്ല. മലയാളത്തിലെ തന്നെ സ്വരചിഹ്നങ്ങളുടെ സ്ഥാനം നോക്കൂ,
ക + ി -> കി
ക + െ -> കെ
ക + ോ -> കോ
പല ഇന്ത്യൻ ഭാഷകളുടേയും സവിശേഷതയാണ് സ്വരചിഹ്നങ്ങൾ ഇങ്ങനെ വ്യഞ്ജനങ്ങളുടെ ഇടത്തേയ്ക്ക് മാറുന്നതും, ഇടതും വലതുമായി പിരിയുന്നതുമെല്ലാം. അക്ഷരങ്ങൾ കോഡ്പോയിന്റുകളുടെ അതേ ശ്രേണിയിൽ അച്ചു(Type) നിരത്തുന്നതുപോലെ നിരത്തിയാൽ ഭാഷയോടും ലിപിയോടും നീതി പുലർത്തുന്ന ചിത്രീകരണം കിട്ടുകയില്ലല്ലോ. ഇതുപോലെ ലോകത്താകമാനമുള്ള ലിപികൾക്കെല്ലാം അവയുടേതായ സവിശേഷ ചിത്രീകരണനിയമങ്ങളുണ്ട്. അവ പാലിച്ചുകൊണ്ട് അക്ഷരങ്ങളെ അടുക്കി വിന്യസിക്കുന്നതെങ്ങനെയെന്ന് (Typographic behaviour) നിർവ്വചിക്കുന്ന മാനകമാണ് ഓപ്പൺടൈപ്പ് സ്റ്റാൻഡാർഡ്. ഫോണ്ടുകളിൽ ഈ നിയമങ്ങളൊക്കെ കൃത്യമായി കോഡുചെയ്താൽ മാത്രമേ ചിത്രീകരണം തെറ്റുകൂടാതെ നടക്കുകയുള്ളൂ.
ഡിസൈനർ വരച്ച അക്ഷരച്ചിത്രങ്ങളെ ശരിയായ കോഡ് പോയിന്റിലേയ്ക്ക് ചേർത്തുവയ്ക്കലാണ് ഫോണ്ടിലെ സാങ്കേതികവിദ്യയിൽ ചെയ്യുന്ന ഒരു കാര്യം. യൂണിക്കോഡിൽ നിർവ്വചിച്ചിട്ടുള്ള അക്ഷരങ്ങളിൽ മലയാളത്തിലെ കൂട്ടക്ഷരങ്ങളൊന്നുമില്ല. മലയാളത്തിലെ കൂട്ടക്ഷരങ്ങൾ രൂപം കൊള്ളുന്നത് അടിസ്ഥാന അക്ഷരങ്ങളുടെ കൂടിച്ചേരലിലൂടെയാണ്.
ക + ് + ക -> ക്ക
ക്ക + ് + ര -> ക്ക്ര
ഡിസൈനർ വരയ്ക്കുന്ന ‘ക്ക’ എന്ന രൂപം ഇങ്ങനെയാണ് രൂപം കൊള്ളുന്നതെന്ന പ്രോഗ്രാമിങ്ങ് നിയമാവലികളാണ് ലളിതമായിപ്പറഞ്ഞാൽ ഓപ്പൺടൈപ്പ് എഞ്ചിനീയറിങ്ങ് എന്ന സാങ്കേതികപ്രക്രിയ.
സ്വന്തന്ത്രലൈസൻസിൽ ലഭ്യമാക്കിയിരിക്കുന്നതുകൊണ്ട് SMC യുടെ ഫോണ്ടുകളിലെ ഈ റെൻഡറിങ്ങ് നിയമാവലികൾ പുതിയ ഫോണ്ടുകളുണ്ടാക്കുമ്പോൾ ആർക്കും പുനരുപയോഗിക്കാം. ഓരോ ഫോണ്ടിലും ഏതൊക്കെ കൂട്ടക്ഷരങ്ങൾ ഉൾക്കൊള്ളിക്കണം എന്നത് ഡിസൈനറുടെ തീരുമാനമാണ്. അതിനനുസരിച്ച് ഓപ്പൺടൈപ്പ് നിയമങ്ങളിൽ മാറ്റം വരുത്തേണ്ടിവരും എന്നു മാത്രം.
ഒരു ലളിതമായ ഉദാഹരണം മാത്രമേ ഇവിടെ പറഞ്ഞിട്ടുള്ളൂ. എന്നാൽ സൂക്ഷ്മാർത്ഥത്തിൽ മലയാളത്തിന്റെ ഈ നിയമങ്ങൾ വളരെ സങ്കീർണ്ണമാണ്. ഈ പ്രത്യേകത കൊണ്ട് ഒരു Complex script language ആയിട്ടാണ് മലയാളം കരുതപ്പെടുന്നത്. മലയാളലിപിയുടെ ഓപ്പൺടൈപ്പ് നിയമങ്ങൾ മാത്രമല്ല അവയുടെ പരിണാമചരിത്രം പോലും അല്പം കുഴക്കുന്നതാണ്.
ലിപികളെ കൃത്യമായി വിന്യസിക്കുനതിനെ Open type rendering rules എന്നു വിളിക്കുന്നു. ഈ മാനകനിയമങ്ങളിലെ പ്രശ്നങ്ങൾ കൊണ്ടും അല്ലെങ്കിൽ അവ കൃത്യമായി പാലിക്കാത്ത ആപ്ലിക്കേഷനുകൾ കൊണ്ടും ഒക്കെ പല അക്ഷരങ്ങളുടെയും ചിത്രീകരണം വിചിത്രമായും തെറ്റായുമൊക്കെ മാറാറുണ്ടായിരുന്നു. ചില്ലക്ഷരങ്ങൾ യൂണിക്കോഡിൽ എൻകോഡ് ചെയ്തതിന്റെ കാരണം പോലും ഇതുമായി ബന്ധപ്പെട്ടൊക്കെ കിടക്കുന്നതാണ്. ഭാഷാകമ്പ്യൂട്ടിങ്ങ് രംഗത്തെ സ്വതന്ത്രസോഫ്റ്റ്വെയർ പ്രവർത്തകരുടെ ഇടപെടൽകൊണ്ടൊക്കെയാണ് ഈ പ്രശ്നങ്ങളൊക്കെ പരിഹരിച്ച് മലയാളം തൃപ്തികരമായി ഇന്നു കാണുന്ന വിധത്തിൽ എത്തിയത്. ഇനിയും പരിഹരിച്ചിട്ടില്ലാത്ത സൂക്ഷ്മമായ പ്രശ്നങ്ങൾ പലതും ബാക്കിയുണ്ട് താനും. ഇതിനെപ്പറ്റിയൊക്കെ സ്വന്തന്ത്രമലയാളം കമ്പ്യൂട്ടിങ്ങിന്റെ ബ്ലോഗിൽ ഞങ്ങൾ മുമ്പെഴുതിയത് വിശദവായനയ്ക്ക് ഇവിടെ: