Tenho tentado criar um estilo de relatório de coluna dupla para documentos tailandeses, mas tive dificuldade em encontrar documentação. Então, encontramos uma dica para inserir caracteres depois de ler o guia de referência do XeTeX.
\XeTeXlinebreaklocale "th-TH"
\XeTeXlinebreakskip=0.0pt plus 0.1pt
É instrutivo mostrar também a nossa primeira abordagem que falhou totalmente, mas ajudou a ilustrar a natureza do XeTeX ao lidar com caracteres tailandeses. Tentamos dividir as letras tailandesas em 2 classes: aquelas que requerem um espaço antes delas e aquelas que são "diacríticos" e não requerem espaço entre caracteres:
\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}
Embora isso fornecesse espaçamento entre caracteres antes de cada consoante e vogal não sobreposta, também destruiu a hifenização, incentivando quebras antes de cada membro da \charThai
classe. No entanto, as combinações de ligadura entre consoantes e vogais subsequentes sobrepostas foram preservadas. A adição
\nobreak
destruiu todas as quebras antes das sequências de caracteres tailandeses.
A mensagem principal para nós é que a inserção de tokens entre caracteres destruirá o suporte para a hifenização tailandesa; ela deve ser usada com muita moderação (como espaçamento em torno de ๆ e ฯ).