January 26, 2015

രേഫത്തിന്റെ ചിത്രീകരണം പഴയ ആപ്ലിക്കേഷനുകളില്‍

മലയാളം ഫോണ്ടുകളും ചിത്രീകരണവും - ലേഖന പരമ്പരയിലെ പുതിയ ലേഖനം

കാവ്യ മനോഹര്‍, രജീഷ് നമ്പ്യാര്‍

ഓപ്പണ്‍ ടൈപ്പിന്റെ പുതിയ സ്റ്റാന്‍ഡേഡില്‍ മലയാളം സ്ക്രിപ്റ്റിന്റെ നിയമങ്ങള്‍ mlm2 എന്ന പേരിലാണ് (സ്ക്രിപ്റ്റ് ടാഗ്) നിര്‍വ്വചിച്ചിരിക്കുന്നത്. അതനുസരിച്ച് ഉള്ള രേഫചിഹ്നത്തിന്റെ ചിത്രീകരണത്തിന്റെ കഥയാണു് കഴിഞ്ഞ അദ്ധ്യായത്തില്‍ വിശദമായി ചര്‍ച്ചചെയ്തത്. എന്നാല്‍ പഴയ ആപ്ലിക്കേഷനുകള്‍ പലതും mlm2 അനുസരിയ്ക്കുന്ന റെന്‍ഡറിങ്ങ് എഞ്ചിന്‍ ആയിരിക്കില്ല ഉപയോഗിക്കുന്നതു്, കാരണം ആ കാലഘട്ടത്തിൽ നിലവിലുള്ള പഴയ ഓപ്പൺടൈപ്പ് സ്ക്രിപ്റ്റ് ടാഗ് ആയ mlym മാത്രമേ അറിയാമായിരുന്നുള്ളൂ. പഴയ ഓപ്പണ്‍ടൈപ്പ് സ്റ്റാന്‍ഡേഡ് പിന്തുടരുന്ന അവിടെയും ശരിയായ റേന്‍ഡറിങ് സാധ്യമാക്കുവാന്‍ നമ്മുടെ ഫോണ്ടുകളില്‍ പല തന്ത്രങ്ങളും ഉപയോഗിച്ചിട്ടുണ്ടു്.

്ര എന്ന ചിഹ്നത്തെ പ്രി-ബേസ്-ഫോം ചിഹ്നമായി പഴയ സ്റ്റാന്‍ഡേഡ് പരിഗണിച്ചിരുന്നില്ല, പക്ഷേ പുതിയ സ്റ്റാന്‍ഡേഡ് അനുസരിക്കുന്ന റെൻഡറിങ് എഞ്ചിനുകള്‍ ്ര എന്ന പ്രി-ബേസ്-ഫോം ചിഹ്നത്തെ ഇടത്തുവശത്തേയ്ക്കു മാറ്റിയിട്ടു് ശരിയായ ഭാഷാനിയമം അനുസരിക്കുന്നു എന്നു കഴിഞ്ഞ അദ്ധ്യായത്തില്‍ കണ്ടുവല്ലോ. എന്നാല്‍ പഴയ സ്പെസിഫിക്കേഷന്‍ മാത്രം അനുസരിക്കുന്ന ഒരു റെന്‍ഡറിങ് എഞ്ചിനില്‍ അങ്ങനെ ഇടത്തുവശത്തേയ്ക്ക് ചിഹ്നത്തെ മാറ്റിയിടുവാനായി സംവിധാനം ഒന്നുമില്ല. എന്നു മാത്രമല്ല, വിചിത്രമായ ഒരു നിയമം കൂടി പഴയ ചില റെന്‍ഡറിങ് എഞ്ചിനുകള്‍ പാലിക്കുന്നുണ്ടായിരുന്നു. അതനുസരിച്ചു് ചന്ദ്രക്കല+ര എന്ന അക്ഷരക്കൂട്ടം കാണുമ്പോള്‍ റെന്‍ഡറിങ് എഞ്ചിന്‍ ര+ചന്ദ്രക്കല എന്നതിനെ മാറ്റിയിടണം. ഹലന്ത് ഷിഫ്റ്റിങ് (Halant shifting) എന്നാണീ പ്രൊസസ്സിങിന്റെ പേരു്.

വിൻഡോസ് എക്സ്പി, പാംഗോയുടെ 2010നു മുമ്പുള്ള വേർഷൻ, ക്യൂട്ട് 3, ക്യൂട്ട് 4 എന്നിവയെല്ലാം ഇങ്ങനെ പഴയ സ്റ്റാന്‍ഡേഡ് പ്രകാരമുള്ള mlym അനുസരിച്ചു്ഹലന്ത് ഷിഫ്റ്റിങ് ചെയ്യുന്ന ഷേപിങ് എഞ്ചിനുകളാണ്. മാത്രമല്ല അവിടെ ്ര എന്ന ചിഹ്നം (ര+്) എന്ന സീക്വൻസ് പോസ്റ്റ് ബേസ് ഗ്ലിഫ് ഫോമേഷന്‍ (pstf) നിയമമനുസരിച്ചാണ് ഉണ്ടാകുന്നത്. എന്നാല്‍ mlm2 സ്റ്റാന്‍ഡേഡ് പ്രകാരം ഹലന്ത് ഷിഫ്റ്റിങ്ങ് എന്നൊരു രീതി ഇല്ല. അവിടെ ്ര ചിഹ്നം (്+ര) എന്ന സീക്വൻസ് പ്രിബേസ് ഗ്ലിഫ് ഫോമേഷന്‍ (pref) നിയമം അനുസരിച്ചാണ് രൂപമെടുക്കുന്നത്.

ഹലന്ത് ഷിഫ്റ്റിങ്ങ് പ്രശ്നം പരിഹരിയ്ക്കാനായി നമ്മുടെ ഫോണ്ടുകളില്‍ ഉപയോഗിക്കുന്ന സൂത്രമാണ് അര്‍ദ്ധരൂപങ്ങള്‍ അഥവാ ഹാഫ് ഫോമുകള്‍. അതു നമുക്കു പരിചയപ്പെടാം

ഓപ്പണ്‍ടൈപ്പിലെ ലിഗേച്ചര്‍ ഫോർമേഷന്‍ (അക്ഷരരൂപീകരണ) നിയമങ്ങള്‍ പലതുണ്ടു്. നേരത്തേ പറഞ്ഞ പ്രി ബേസ് ഗ്ലിഫ് ഫോർമേഷന്‍ നിയമം അതിലൊന്നാണു്. ഇവ കൂടാതെ പ്രി ബേസ് സബ്‌സ്റ്റിറ്റ്യൂഷന്‍, പോസ്റ്റ് ബേസ് സബ്സ്റ്റിറ്റ്യൂഷന്‍, ഹാഫ് ഫോം തുടങ്ങി ഒട്ടനവധി നിയമങ്ങളുണ്ടെന്നു കണ്ടല്ലോ. അങ്കഗണിതത്തില്‍ (arithmetic) പല ഗണിതക്രിയകള്‍ ഒരുമിച്ചു വരുമ്പോള്‍ ഹരണഗുണന ക്രിയകള്‍ (division and multiplication) ആദ്യവും അതിന്റെ ഫലത്തിനുമേലെ സങ്കലനവ്യവകലനങ്ങളും (addition and substraction) ചെയ്യുന്ന പോലെ, ഈ അക്ഷര രൂപീകരണ നിയമങ്ങളില്‍ ഏതാദ്യം പ്രയോഗിക്കണമെന്നതിനു വ്യക്തമായ ഒരു ക്രമമുണ്ടു്.ഈ നിയമങ്ങളുടെ ക്രമം ഇവിടെ വിശദീകരിച്ചിട്ടുണ്ട്.

എന്ന അക്ഷരത്തിന്റെ അർദ്ധരൂപം ആണ് ക്. ക് എന്നതിന് പ്രത്യേകമായി ഗ്ലിഫ് വരയ്ക്കേണ്ട കാര്യമൊന്നും സാധാരണഗതിയില്‍ ഇല്ലാത്തതാണ്. കാരണം എന്നീ അക്ഷരങ്ങള്‍ അടുത്തു വരുമ്പോള്‍ തന്നെ അവ കൃത്യമായി റെന്‍ഡര്‍ ചെയ്യപ്പെടേണ്ടതാണ്. പക്ഷേ ഹലന്ത് ഷിഫ്റ്റിങ് നടക്കാതിരിയ്കാന്‍ ഇതു ചേര്‍ക്കുകയാണ് ഒരു പോംവഴി. അര്‍ദ്ധരൂപം ചേര്‍ക്കുക വഴി എങ്ങനെയാണ് ക്ര പഴയ റെന്‍ഡറിങ്ങ് എഞ്ചിനുകളില്‍ ശരിയായി കാണിക്കുക?

യ, ര, ല, വ എന്നിവ ചന്ദ്രക്കലയോടു ചേർന്നു വരുമ്പോൾ ചന്ദ്രക്കലയെ വ്യഞ്ജനത്തിനു ശേഷം മാറ്റിയിടുന്നതാണല്ലോ ഹലന്ത് ഷിഫ്റ്റിങ് (ഉദാ: ്+യ എന്നത് ഷേപിങ് എൻജിൻയ+്എന്നാക്കി മാറ്റും. കാരണം mlym സ്റ്റാൻഡേഡ് പ്രകാരം ്യ എന്ന ചിഹ്നം ഉണ്ടാക്കുന്നത് യ+് എന്ന സീക്വൻസ് വരുമ്പൊഴാണ്. അപ്പോൾ ശരിക്കും ഒരു വാക്കിൽ യ+് എന്ന സീക്വൻസ് വന്നാൽ ഷേപിങ് എൻജിൻ എന്തു ചെയ്യും? അതും ്യ എന്ന ചിഹ്നമാക്കിയാൽ പിശകാണല്ലോ - ഉദാഹരണം അയ്മനം - ഇവിടെ ഹലന്ത് ഷിഫ്റ്റിങ് നടത്തിയാൽ അ്യമനം എന്നാവും ചിത്രീകരിക്കുക, അത് ശരിയല്ല താനും.

പഴയ പാംഗോ (വേർഷൻ 1.30 വരെയുള്ളവ) ടെസ്റ്റ് ചെയ്തതിൽ നിന്നും മനസ്സിലായത് ലുക്കപ്പ് നിയമങ്ങൾ അപ്ലൈ ചെയ്യുന്നതിനും മുന്നേ ഹലന്ത് ഷിഫ്റ്റിങ് നടക്കുന്നു എന്നാണ്. തുടർന്ന് ഹലന്ത് ഷിഫ്റ്റിങ് ചെയ്യപ്പെട്ട സീക്വൻസിൽ (ഉദാ: യ+്) ഹാഫ് ഫോം അപ്ലൈ ചെയ്യപ്പെടുന്നില്ല. എന്നാൽ ‘അയ്മനം’ എന്ന സീക്വൻസിൽ ഹലന്ത് ഷിഫ്റ്റിങ് നടക്കുന്നില്ല, ഇവിടെ ലുക്കപ്പ് അപ്ലൈ ചെയ്യുമ്പോൾ half ഫോം അപ്ലൈ ചെയ്യപ്പെടുന്നു. ശ്രദ്ധിക്കുക - half ഫോമിനേക്കാൾ പ്രയോരിറ്റി കൂടിയതിനാൽ അതിനു മുന്നേ അപ്ലൈ ചെയ്യപ്പെടുന്നത് akhn ഫോം ആണ്, അതുകൊണ്ടു തന്നെ യ+്+x, ര+്+x, ല+്+x, വ+്+x എന്നിവ ചേരുന്ന akhn നിയമങ്ങൾ ചേർക്കാൻ സാധിക്കില്ല. അതായത് ‘യ്മ’ എന്ന ഗ്ലിഫിന് akhn നിയമമുപയോഗിക്കാൻ സാധിക്കില്ല. പകരം തുടർന്നു വരുന്ന ഹാഫ് ഫോം അപ്ലൈ ചെയ്യപ്പെടുകയും യ് (y1xx) എന്ന ഗ്ലിഫ് രൂപീകരിക്കുകയും അതിനും ശേഷം വരുന്ന പ്രസന്റേഷൻ ഫോമായ pres ലുക്കപ്പ് അപ്ലൈ ചെയ്യപ്പെടുമ്പോൾ y1xx+m1 (യ്+മ) എന്ന നിയമമുപയോഗിച്ച് യ്മ എന്ന ഗ്ലിഫ് രൂപീകരിക്കുകയും ചെയ്യുന്നു. മലയാളം റെന്‍ഡറിങ്ങ് ചരിത്രത്തില്‍ കുപ്രസിദ്ധമായ മുഖ്യമന്ത്രി ബഗ് ഇതിനുദാഹരണമാണ്. പണ്ട് ആ വാക്ക് മുഖയ്മന്ത്രി എന്നു തെറ്റായി ചിത്രീകരിക്കപ്പെട്ടിരുന്നു.

ഈ പ്രശ്നം 2006 ല്‍ സുരേഷ് പി പാംഗോയ്ക്കുള്ള ഒരു പാച്ചു തയ്യാറാക്കി പരിഹരിയ്ക്കുകയുണ്ടായി. അതനുസരിച്ചുള്ള സുറുമ ഫോണ്ടും അദ്ദേഹം പുറത്തിറക്കി. ആ പാച്ചിനെ സുറുമ പാച്ച് എന്നാണു് വിളിച്ചിരുന്നതു്. സുറുമയിട്ട പാംഗോ എന്ന പേരിലും ഞങ്ങള്‍ അക്കാലത്തെ പാംഗോയെ വിളിച്ചിരുന്നു. ആ പാച്ച് പ്രകാരം,്യഎന്നത്്+യഎന്ന് തന്നെ അക്ഷരരൂപത്തില്‍ വയ്ക്കുകയും ചന്ദ്രക്കല നീക്കുന്ന സര്‍ക്കസ് ഒഴിവാക്കുകയും ചെയ്തു. ഇതിനെപ്പറ്റി വര്‍ഷങ്ങള്‍ക്കു മുമ്പെഴുതിയ ഒരു കുറിപ്പ് കാണുക.

half ലുക്കപ്പിൽ പക്ഷേ എല്ലാ വ്യഞ്ജനാക്ഷരങ്ങൾക്കും ഗ്ലിഫുകൾ ചേർത്തിട്ടുള്ളതിനാൽ (ഉദാ: k1xx ക് <= ക+്) തുടർന്നു വരുന്ന പ്രോഗ്രാമിങ്ങ് നിര്‍ദ്ദേശങ്ങളെല്ലാം ഇങ്ങനെ ഹാഫ് ഫോമിനെ അടിസ്ഥാനമാക്കി എഴുതേണ്ടി വരും.

അത് ചക്രം എന്നതിന്റെ റെന്‍ഡറിങ്ങ് നടപടി പരിശോധിച്ചു മനസ്സിലാക്കാം. ച + ക + ് + ര + ം എന്നതാണല്ലോ ഡേറ്റാ സീക്വന്‍സ്. ആദ്യമായി ക + ് എന്ന അക്ഷരങ്ങള്‍ ചേര്‍ത്ത് ഹാഫ് ഫോം നിയമം അനുസരിച്ച് ക് എന്ന ഗ്ലിഫ് ആദ്യം ഉണ്ടാക്കുന്നു. ഇതിനായി ക് എന്ന ഗ്ലിഫ് ഫോണ്ടില്‍ വരച്ചു ചേര്‍ത്തിട്ടുണ്ടാകണം. മീരയിലെ ഹാഫ് ഫോം ഗ്ലിഫ് ആണ് ചിത്രം 1ല്‍. വിഘടിത ലിപി ഫോണ്ടുകളായ രഘുമലയാളത്തിലും, ഗൂഗിളിന്റെ നോട്ടോ സാന്‍സിലും ഇങ്ങനെ തന്നെ ഹാഫ് ഫോം ഗ്ലിഫുകള്‍ ചേര്‍ത്തിട്ടുണ്ട്.

ചിത്രം-1 മീരയിലെ  ഗ്ലിഫ്. ഹാഫ് ഫോം നിര്‍ദ്ദേശവും കാണാം.

ഹാഫ് ഫോം ഗ്ലിഫ് ഉണ്ടായിക്കഴിഞ്ഞാല്‍ പിന്നെ അക്ഷരങ്ങളുടെ ക്രമം ച+ക്+ര+ം എന്നിങ്ങനെയാണ്. ഇനി ‘ക്+ര’ എന്ന കൂട്ടത്തെ രേഫചിഹ്നം ആക്കിമാറ്റണം. ഇതിനായി പഴയ സ്റ്റാന്‍ഡേഡില്‍ ക്+ര എന്നതിനെ ക്ര എന്ന ഗ്ലിഫിലേയ്ക്ക് മാപ്പു ചെയ്തിരിക്കുന്നു. ചിത്രം 3 കാണുക. k1xx എന്നത് ക് ഗ്ലിഫിന് നല്‍കിയിരിക്കുന്ന പേരാണ്. അതിലെ ഒന്നാമത്തെ ലിഗേച്ചര്‍ പ്രോഗ്രാമിങ്ങ് നിര്‍ദ്ദേശമായി ചേര്‍ത്തിരിക്കുന്നത് ഇതാണ്. രഘുമലയാളത്തിലും ക്ര എന്നത് പ്രത്യേക ഗ്ലിഫായി വരച്ച് ഇതേ പ്രോഗ്രാമിങ്ങ് നിര്‍ദ്ദേശം തന്നെ പ്രയോഗിച്ചിരിക്കുന്നു. ചിത്രം-2 കാണുക.

ചിത്രം-2: രഘുവിലെ ‘ക്ര’ ഗ്ലിഫ്. ലിഗേച്ചര്‍ പ്രോഗ്രാമിങ്ങ് നിര്‍ദ്ദേശങ്ങളും കാണാം.

ചിത്രം-3 മീരയിലെ ക്ര ഗ്ലിഫും ലിഗേച്ചര്‍ പ്രോഗ്രാമിങ്ങ് നിര്‍ദ്ദേശങ്ങളും

മേല്‍ക്കാണിച്ച സ്ക്രീന്‍ഷോട്ടുകളില്‍ ഗ്ലിഫ് എങ്ങനെ രൂപമെടുക്കുന്നുവെന്നുള്ള ലുക്കപ് ടേബിളിലെ പ്രോഗ്രാമിങ്ങ് നിര്‍ദ്ദേശങ്ങള്‍ കണ്ടുകാണുമല്ലോ. ഒരു ഗ്ലിഫിനു തന്നെ പല പ്രോഗ്രാമിങ്ങ് നിര്‍ദ്ദേശങ്ങള്‍ എഴുതിയിട്ടുള്ളതു് ശ്രദ്ധിച്ചിട്ടുണ്ടാകും. ഒന്ന് mlym എന്ന സ്റ്റാന്‍ഡേഡിനും mlm2 പുതിയ സ്റ്റാന്‍ഡേഡിനും വേണ്ടിയാണെന്നും ഇതിനകം നടന്ന ചര്‍ച്ചകളില്‍ നിന്നും വ്യക്തമായിട്ടുണ്ടാകും. mlym പ്രോഗ്രാമിങ്ങ് തന്നെ ഒന്നിലധികം ഉണ്ടെന്ന് ചിത്രം 2,3 ഇവയില്‍ നിന്നും കാണാം.

ഇതിലെ ഒന്നാമത്തെ പ്രോഗ്രാമിങ്ങ് നിര്‍ദ്ദേശം എങ്ങനെ പ്രയോഗിയ്ക്കപ്പെടുന്നു എന്നാണ് നമ്മള്‍ ഇവിടെ ചര്‍ച്ച ചെയ്തത്. രണ്ടാമത് കൊടുത്ത നിര്‍ദ്ദേശം യുടെ വലതു വശത്ത് ്ര ഗ്ലിഫ് വരുമ്പോള്‍ ക്ര എന്ന ഒറ്റ ഗ്ലിഫിലേയ്ക്ക് മാപ്പു ചെയ്യാനുള്ളതാണ്. അര്‍ദ്ധരൂപമായ ക് ചേര്‍ത്ത് mlym പ്രകാരം ക്ര ശരിയായി ചിത്രീകരിയ്ക്കുന്ന രീതി കൊണ്ടുവരുന്നതിനു മുമ്പ് ചേര്‍ത്ത നിര്‍ദ്ദേശമാണു് അത്. ഇതില്ലാതെ തന്നെ പഴയ റെന്‍ഡറിങ്ങ് എഞ്ചിനുകള്‍ ഉപയോഗിക്കുന്ന ആപ്പ്ലിക്കേഷനുകളില്‍ എല്ലാം ക്ര ശരിയായി ചിത്രീകരിക്കുവാന്‍ പറ്റുന്നുണ്ടോ എന്നു പരിശോധിച്ച് ഈ നിര്‍ദ്ദേശം വെണമെങ്കില്‍ ഒഴിവാക്കാവുന്നതേ ഉള്ളൂ.

ഫോണ്ടുകളുടെ നിര്‍മ്മാണം പോലെ തന്നെ പ്രധാനപ്പെട്ടതാണു് അവയുടെ പരിപാലനമെന്നും കൂടി വ്യക്തമാക്കുന്നതാണു് മേല്‍പ്പറഞ്ഞ ഉദാഹരണം. കെഡിഇ ആപ്ലിക്കേഷനുകള്‍ ഉപയോഗിക്കുന്ന റെന്‍ഡറിങ് എഞ്ചിനാണ് ക്യൂട്ട് (Qt). ക്യൂട്ട് പുതിയ വേർഷൻ 5.3 മുതൽ ഹാർഫ്ബസ് ഉപയോഗിച്ചു ഷേപ് ചെയ്യാൻ സാധ്യമാണു്. അതുകൊണ്ടു് ഹാര്‍ഫ്ബസ്സിലും പാംഗോയിലുമൊക്കെ പ്രവര്‍ത്തിക്കുന്ന നിയമം ക്യൂട്ടിന്റെ പുതിയ വേര്‍ഷനില്‍ പ്രവര്‍ത്തിക്കുമെങ്കിലും ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങള്‍ ബണ്ടില്‍ ചെയ്യുന്ന ആപ്പ്ലിക്കേഷനുകള്‍ പഴയ ക്യൂട്ടായിരിക്കും ഉപയോഗിക്കുന്നതു്. പഴയ ക്യൂട്ട് - Qt 4.x, 3.x എന്നിവയിൽ ക്യൂട്ടിന്റെ തന്നെ ഷേപിങ് എഞ്ചിനാണു് ഉപയോഗിക്കുന്നതു്. പഴയ ഹാർഫ്ബസ്, പാംഗോ, ക്യൂട്ട് എന്നിവയെല്ലാം വെവ്വേറെ ഷേപിങ് എഞ്ചിനുകളായിരുന്നു. ഇത്തരം അവസരങ്ങളില്‍ ക്യൂട്ടിൽ ശരിയായ റെന്‍ഡറിങ്ങിനായി ചില കസ്റ്റം പാച്ചുകള്‍ നല്‍കി ക്യൂട്ടിനെ മെച്ചപ്പെടുത്തിയിട്ടുണ്ടു്. രജീഷിന്റെ ഒരു പാച്ച് ഇവിടെ.

അര്‍ദ്ധരൂപങ്ങള്‍ ചേര്‍ത്തില്ലെങ്കില്‍ എന്തു സംഭവിക്കും?

പലപ്പോഴും റിപ്പോര്‍ട്ട് ചെയ്തു കണ്ടിട്ടുള്ള ഒരു ബഗ്ഗാണ് ്ര ചിഹ്നം ബേസ് ഗ്ലിഫിന്റെ വലത്തുവശത്തു പോയി കിടക്കുക എന്നതു്. പഴയ സ്റ്റാന്‍ഡേഡ് മാത്രം അനുസരിക്കുന്ന ആപ്പ്ലിക്കേഷനുകളിലാണു് ഈ പ്രശ്നം കാണുക. ഇതെങ്ങനെ സംഭവിക്കുന്നു എന്നു നോക്കാം.

അര്‍ദ്ധരൂപങ്ങള്‍ ചേര്‍ക്കാത്ത ചില ഫോണ്ടുകളുണ്ടു്. അവയില്‍ ഹലന്ത് ഷിഫ്റ്റിങ് നടക്കും. ഹലന്ത് ഷിഫ്റ്റിങ് നടന്നാല്‍ ്ര ചിഹ്നം രൂപമെടുക്കണമെങ്കില്‍ ഭാഷാനിയമപ്രകാരം തെറ്റായ ഗ്ലിഫ് ഫോമേഷന്‍ നിയമം ചേര്‍ക്കേണ്ടി വരും. അതായത് ‘ര+്’ എന്ന സീക്വന്‍സിനെ വേണം ്ര എന്നതിലേയ്ക്ക് മാപ്പ് ചെയ്യാന്‍. ചിത്രം-4 കാണുക. Malayalam പ്രകാരമുള്ള നിയമമല്ല Malayalam2 പ്രകാരമെന്നു കാണാം.

ചിത്രം-4 രഘുമലയാളത്തിലെ  ഗ്ലിഫും ലിഗേച്ചര്‍ നിയമങ്ങളും

അര്‍ദ്ധരൂപങ്ങള്‍ ചേര്‍ത്താല്‍ തന്നെ എല്ലാ അക്ഷരങ്ങള്‍ക്കും ചേര്‍ക്കുക ബുദ്ധിമുട്ടുള്ള കാര്യമാണു്. ഉദാഹരണത്തിനു് ഖ്ര എന്നത് മലയാളത്തില്‍ അത്യപൂര്‍വ്വമായ ഒരു യൂസ്‌കേസാണു്. അതിന്റെ ഹാഫ് ഫോമോ, അല്ലെങ്കില്‍ ഖ്ര എന്ന ഒറ്റഗ്ലിഫോ ഫോണ്ടില്‍ ചേര്‍ത്തിട്ടുണ്ടാവില്ല. അപ്പോള്‍ ഖ+്+ര എന്ന ഡേറ്റ സീക്വന്‍സ് കാണുന്ന ഷേപിങ് എഞ്ചിന്‍ എന്തു ചെയ്യും?

ആദ്യം ഹലന്ത് ഷിഫ്റ്റിങ് നടത്തി ചന്ദ്രക്കലയുടേയും രയുടേയും സ്ഥാനം മാറ്റും. ഇനി അക്ഷരങ്ങളുടെ ക്രമം ഇങ്ങനെയാണു്: ഖ +ര +്. mlym അനുസരിച്ച് പോസ്റ്റ് ബേസ് നിയമപ്രകാരം ബോള്‍ഡായ ഗ്ലിഫുകള്‍ ചേര്‍ന്ന് ്ര ചിഹ്നമുണ്ടാകുന്നു. ഖ +്ര എന്നതാണു് ഇനി ഗ്ലിഫ് ക്രമം. പോസ്റ്റ് ബേസ് ചിഹ്നത്തെ ഗ്ലിഫിനെ ഇടത്തുവശത്തേയ്ക്കു സ്വയം മാറ്റിയിടാന്‍ ഷേപിങ് എഞ്ചിനു് അറിയില്ലല്ലോ. അങ്ങനെ യുടെ വലത്തുവശത്തു രേഫചിഹ്നം നിലനിര്‍ത്തി ചിത്രീകരണം പൂര്‍ത്തിയാക്കുന്നു, അതിന്റെ ഭാഷാപരമായ ന്യൂനതയോടെ. ഉദാഹരണത്തിനു് ഈ ബഗ് റിപ്പോർട്ട് കാണുക.

പഴയ അപ്പ്ലിക്കേഷനുകള്‍ ഒരു പരിധിവരെയെങ്കിലും ആളുകള്‍ ഉപയോഗിക്കുന്നതു് നിര്‍ത്തുമ്പോള്‍ മാത്രമേ ഓപ്പണ്‍ ടൈപ്പിന്റെ പുതിയ സ്റ്റാന്‍ഡേഡ് മാത്രം ഉപയോഗിക്കുന്ന ഫോണ്ടുകള്‍ ചെയ്യാനാകൂ. അതുവരെ മേല്‍പ്പറഞ്ഞ രീതിയില്‍ രണ്ടും സപ്പോര്‍ട്ട് ചെയ്യേണ്ടതുണ്ടു്. ഒട്ടും എളുപ്പമല്ലാത്ത ഒരു കാര്യമാണെന്നു ഇതില്‍ നിന്നും മനസ്സിലായിട്ടുണ്ടാവുമല്ലോ. വിശദീകരിച്ച ഓരോ സൂത്രങ്ങളും പല കാലഘട്ടങ്ങളില്‍ പലതവണയുള്ള പരിശ്രമങ്ങളുടെയും പരീക്ഷണങ്ങളുടെയും ഫലമാണു്. ഇന്നിപ്പോള്‍ 2015 ല്‍ ഇവ ലൈസന്‍സ് അനുസരിച്ച് ഇവ പകര്‍ത്തി പുതിയൊരു ഫോണ്ടില്‍ ഉപയോഗിക്കാം. സ്വതന്ത്ര ലൈസന്‍സില്‍ ഈ ഫോണ്ടുകളും ഫീച്ചറിങ്ങും ലഭ്യമാക്കിയതുകൊണ്ടാണു് ഇതു സാധ്യമാകുന്നതു്. ഫോണ്ട് ഡിസൈനര്‍മാര്‍, ഓപ്പണ്‍ടൈപ്പ് പ്രോഗ്രാമര്‍മാര്‍, റെന്‍ഡറിങ്ങ് എന്‍ജിന്‍ ഡെവലപ്പര്‍മാര്‍ തുടങ്ങിയവരുടെ ഒത്തൊരുമിച്ചുള്ള പ്രയത്നത്തിന്റെ വിജയമാണു് നമ്മളിന്നു തെറ്റില്ലാത്തെ കാണുന്ന മലയാളം ചിത്രീകരണം.

രേഫത്തിന്റെ കഥകള്‍ തീരുന്നില്ല. അടുത്ത അദ്ധ്യായത്തില്‍ കുത്തക്ഷരം അല്ലെങ്കില്‍ ഗോപിരേഫം എന്നു വിളിക്കുന്ന എന്ന ചിഹ്നത്തിന്റെ ചിത്രീകരണം പരിചയപ്പെടാം.

ഈ പരമ്പരയിലെ മറ്റുലേഖനങ്ങള്‍