Search This Blog

Thursday, July 19, 2012

Myanmar (Burmese) Language with XeTeX and LuaTeX

LaTeX မှာ မြန်မာစာ ကို မှန်မှန်ကန်ကန် ပေါ်ဖို့ အတွက် ဆိုရင် ယူနီကုတ် ကို သုံးလို့ရတဲ့ ဇီးတက်ခ် (XeTeX) နဲ့ လူဝါတက်ခ် (LuaTeX) တို့ကို သုံးဖို့လိုပါတယ်။ မြန်မာစာ ပေါ်ဖို့ TeX Live တို့၊ MiKTeX တို့နဲ့ တစ်ခါတည်း ပါလာတဲ့ XeTeX နဲ့ LaTeX တွေဟာ နောက်ဆုံးပေါ် ဗားရှင်းတွေ ဖြစ်ဖို့ လိုကောင်း လိုပါလိမ့်မယ်။ အယ်ဒီတာ ဆော့ဖ်ဝဲ တွေဖြစ်တဲ့ TeXmaker တို့၊ TeXstudio တို့ မှာ TeX ဖိုင်တွေကို အလွယ်တကူ သုံးရလွယ်အောင် user command တွေ သတ်မှတ် လို့ရပါတယ်။ TeXstudio မှာ ဆိုရင် အဲဒီလို သတ်မှတ်ဖို့ အတွက် Options menu ကို သွားပြီး Configure TeXstudio... ကို နှိပ်ပါ။ နောက် Commands ကို နှိပ်ပြီး PdfLaTeX အတွက် သုံးထားတဲ့ command ကို ကော်ပီ ကူးယူပါ။
အဲဒီနောက် User menu ကိုပြန်သွားပြီး User Commands -> Edit User Commands ကို နှိပ်ပြီး အစိမ်းရောင် အပေါင်း လက္ခဏာ သင်္ကေတ ကို နှိပ်ပါ။ ပြီးရင် ခုနက ကော်ပီကူးထားတဲ့ command ကို Paste လုပ်ပြီး XeTeX ကို သုံးဖို့ pdflatex ဆိုတဲ့ နေရာမှာ xelatex နဲ့ အစားထိုးပါ။ LuaTeX ကိုသုံးဖို့ အတွက်လည်း ခုနက နည်းအတိုင်း ထပ်လုပ်ပြီး lualatex နဲ့ အစားထိုးပါ။
အောက်က နမူနာ (Z1.tex) က xelatex နဲ့ရော lualatex နဲ့ပါ အလုပ်လုပ် ပါတယ်။
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Zawgyi-One}
\begin{document}
ျမန္မာစာ
\end{document}
နောက်ထပ် lua script တွေ သုံးထားတဲ့ lualatex နမူနာ က luaZ1.tex ပါ။ LuaTeX ကို Zawgyi-One ၊ Padauk ၊ Myanmar3 ၊ Myanmar MN အစရှိတဲ့ ဖောင့်တွေနဲ့ စမ်းကြည့်တဲ့ အခါ Zawgyi-One တစ်ခုပဲ လက်ရှိ ဗားရှင်း (LuaTeX, Version beta-0.70.1-2011082320) မှာ လုပ်တာကို တွေ့ပါတယ်။
XeTeX ကတော့ Zawgyi-One နဲ့ Padauk ကို ပလက်ဖောင်း အားလုံးမှာ ပေါ်အောင် လုပ်နိုင်ပြီး၊ Myanmar MN ကိုလည်း Mac OS X မှာ ပေါ်အောင် လုပ်နိုင်ပါတယ်။ ဇော်ဂျီ အတွက် ဘာမှ ပြဿနာ မရှိပေမယ့် Unicode ဖောင့်တွေဖြစ်တဲ့ Padauk အစရှိတဲ့ ဖောင့်တွေမှာတော့ renderer ကို သတ်မှတ် ပေးဖို့လိုပါတယ်။ အောက်က နမူနာမှာတော့ Renderer=Graphite ဆိုပြီး Graphite ကို renderer အနေနဲ့ သတ်မှတ်ပေးလိုက် ပါတယ်။ Myanmar MN ဖောင့် အတွက် ဆိုရင်တော့ Renderer=AAT လို့ သုံးနိုင်ပါတယ်။ နမူနာ အနေနဲ့ အောက်မှာ ပြထားတဲ့ XeFontspec.tex ကို ကြည့်နိုင်ပါတယ်။
\fontspec[Renderer=Graphite]{Padauk} အစား renderer ကို သတ်မှတ်နိုင်တဲ့ တခြားနည်း ကတော့ \font\1="Padauk/GR" \1 ပါ။ အဲဒီမှာ /GR က Graphite font renderer အတွက် ဖြစ်ပြီး၊ /AAT က ATSUI renderer (Mac OS X အတွက်သာ) အတွက် နဲ့၊ /ICU ကို သုံးရင် ICU OpenType renderer အတွက် ဖြစ်ပါတယ်။ ဒါပေမယ့် အဲဒီလို renderer သတ်မှတ်တာ က ကျွန်တော့် Windows XP နဲ့ Ubuntu Linux မှာ ရှိတဲ့ xelatex ဗားရှင်းတွေ အတွက် အလုပ် မလုပ်ဘူး ဖြစ်နေ ပါတယ်။ ကံကောင်းချင်တော့ Calmhill ရဲ့ ဘလော့ဂ် မှာ Padauk ကို ပေါ်အောင် \fontspec[Script=Myanmar]{Padauk} ကို သုံးထားတဲ့ နည်းကို တွေ့ပါတယ်။ နမူနာက XePadauk.tex ပါ။
Myanmar MN အတွက် နမူနာက XeMyanmarMN.tex ပါ။ Myanmar3 ကိုစမ်းကြည့်တာတော့ လောလောဆယ် ပလက်ဖောင်း အားလုံးမှာ မရသေး ပါဘူး။

Updated post: မြန်မာဘာသာ အတွက် LaTeX Report ပုံစံ