XeTeX タイ語の文字間隔

XeTeX タイ語の文字間隔

私はタイ語の文書に 2 列のレポート スタイルを作成しようとしましたが、ドキュメントを見つけるのに苦労しました。そこで、XeTeX リファレンス ガイドを読んだ後、文字間挿入のヒントを偶然見つけました。

\XeTeXlinebreaklocale "th-TH"
\XeTeXlinebreakskip=0.0pt plus 0.1pt

完全に失敗したものの、タイ語文字を扱う際の XeTeX の性質を説明するのに役立つ最初のアプローチも示すことは有益です。タイ語の文字を、文字の前にスペースを必要とする文字と、文字間のスペースを必要としない「発音区別符号」の 2 つのクラスに分けようとしました。

\XeTeXinterchartokenstate=1
\chardef\CharNormal=0
\newXeTeXintercharclass\CharThai
\XeTeXcharclass`ก=\CharThai  \XeTeXcharclass`ข=\CharThai
\XeTeXcharclass`ฃ=\CharThai  \XeTeXcharclass`ค=\CharThai
\XeTeXcharclass`ฅ=\CharThai  \XeTeXcharclass`ฆ=\CharThai
\XeTeXcharclass`ง=\CharThai  \XeTeXcharclass`จ=\CharThai
\XeTeXcharclass`ช=\CharThai  \XeTeXcharclass`ฌ=\CharThai
\XeTeXcharclass`ญ=\CharThai  \XeTeXcharclass`ฎ=\CharThai
\XeTeXcharclass`ฏ=\CharThai  \XeTeXcharclass`ฐ=\CharThai
\XeTeXcharclass`ฑ=\CharThai  \XeTeXcharclass`ฒ=\CharThai
\XeTeXcharclass`ณ=\CharThai  \XeTeXcharclass`ด=\CharThai
\XeTeXcharclass`ต=\CharThai  \XeTeXcharclass`ถ=\CharThai
\XeTeXcharclass`ท=\CharThai  \XeTeXcharclass`ธ=\CharThai
\XeTeXcharclass`น=\CharThai  \XeTeXcharclass`บ=\CharThai
\XeTeXcharclass`ป=\CharThai  \XeTeXcharclass`ผ=\CharThai
\XeTeXcharclass`ฝ=\CharThai  \XeTeXcharclass`พ=\CharThai
\XeTeXcharclass`ฟ=\CharThai  \XeTeXcharclass`ภ=\CharThai
\XeTeXcharclass`ม=\CharThai  \XeTeXcharclass`ย=\CharThai
\XeTeXcharclass`ร=\CharThai  \XeTeXcharclass`ล=\CharThai
\XeTeXcharclass`ว=\CharThai  \XeTeXcharclass`ศ=\CharThai
\XeTeXcharclass`ษ=\CharThai  \XeTeXcharclass`ส=\CharThai
\XeTeXcharclass`ห=\CharThai  \XeTeXcharclass`ฬ=\CharThai
\XeTeXcharclass`อ=\CharThai  \XeTeXcharclass`ะ=\CharThai
\XeTeXcharclass`า=\CharThai  \XeTeXcharclass`โ=\CharThai
\XeTeXcharclass`ไ=\CharThai  \XeTeXcharclass`ใ=\CharThai
\XeTeXinterchartoks\CharNormal\CharThai={\hskip 0pt plus 0.2pt\relax}
\XeTeXinterchartoks\CharThai\CharThai={\hskip 0pt plus 0.2pt\relax}

これにより、すべての子音と重複しない母音の前に文字間のスペースが確保されましたが、\charThaiクラスのすべてのメンバーの前で改行が促されたため、ハイフネーションが廃止されました。ただし、子音とそれに続く重複する母音間の合字の組み合わせは保持されました。 を追加すると、 \nobreakタイ文字の文字列の前でのすべての改行が廃止されました。

私たちにとっての重要な教訓は、文字間トークンを挿入するとタイ語のハイフネーションのサポートが破壊されるため、非常に控えめに使用する必要があるということです (ๆ と ฯ の周囲のスペースなど)。

関連情報