XeTeX Межсимвольный интервал на тайском языке

XeTeX Межсимвольный интервал на тайском языке

Я пытался создать стиль отчета с двумя колонками для тайских документов, но столкнулся с трудностями при поиске документации. Поэтому мы наткнулись на подсказку по вставке межсимвольного символа после прочтения справочного руководства 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уничтожало все разрывы перед строками тайских символов.

Главное для нас то, что вставка межсимвольных токенов уничтожит поддержку тайского переноса, поэтому его следует использовать очень экономно (например, пробелы вокруг ๆ и ฯ).

Связанный контент