Добавление \kern к тайскому языку в Babel прерывает перенос строки

Добавление \kern к тайскому языку в Babel прерывает перенос строки

Если я добавляю \kernв тайский текст, то, по-видимому, разрывается перенос строки. (Отказ от ответственности: я не читаю и не пишу по-тайски.)

Как я могу это исправить?

(Я использую его, \kernчтобы добавить немного неразрывного пространства, поэтому доволен альтернативами, которые дают тот же эффект.)

МВЭ

%! TeX Program = lualatex

\documentclass{article}
\usepackage{babel}
\babelprovide[import, main]{australian}
\babelprovide[import]{thai}
\babelfont[thai]{rm}[Renderer=Harfbuzz]{Noto Sans Thai}
\pagestyle{empty}
\begin{document}
\selectlanguage{thai}

\foreignlanguage{australian}{23}
แต่เราเทศนาเรื่องพระคริสต์ผู้ทรงถูกตรึงตายบนไม้กางเขนซึ่งเป็นหินสะดุดสำหรับพวกยิวและเป็นเรื่องโง่ๆสำหรับพวกต่างชาติ
\foreignlanguage{australian}{24}
แต่สำหรับผู้ที่พระเจ้าทรงเรียกทั้งพวกยิวและพวกกรีกพระคริสต์คือฤทธิ์อำนาจและพระปัญญาของพระเจ้า
\foreignlanguage{australian}{25}
เพราะความเขลาของพระเจ้าก็ยังฉลาดกว่าสติปัญญาของมนุษย์และความอ่อนแอของพระเจ้าก็ยังเข้มแข็งกว่ากำลังของมนุษย์

\bigskip

\foreignlanguage{australian}{23}\kern 2pt
แต่เราเทศนาเรื่องพระคริสต์ผู้ทรงถูกตรึงตายบนไม้กางเขนซึ่งเป็นหินสะดุดสำหรับพวกยิวและเป็นเรื่องโง่ๆสำหรับพวกต่างชาติ
\foreignlanguage{australian}{24}\kern 2pt
แต่สำหรับผู้ที่พระเจ้าทรงเรียกทั้งพวกยิวและพวกกรีกพระคริสต์คือฤทธิ์อำนาจและพระปัญญาของพระเจ้า
\foreignlanguage{australian}{25}\kern 2pt
เพราะความเขลาของพระเจ้าก็ยังฉลาดกว่าสติปัญญาของมนุษย์และความอ่อนแอของพระเจ้าก็ยังเข้มแข็งกว่ากำลังของมนุษย์
\end{document}

[По какой-то причине сейчас невозможно загрузить изображения.]

решение1

Это не связано с тайским. Вы отключаете переносы. С luatex вы можете использовать \wordboundary (с другими движками вы можете использовать что-то вроде \kern30pt\nobreak\hskip0pt)

Смотрите такжеПочему LaTeX не прерывает и не расставляет переносы после «пользовательского керна»?

\documentclass{article}
\usepackage{iftex}
\textwidth 30pt
\begin{document}
23 hyphenation

23\kern30pt hyphenation

\ifluatex
23\kern30pt\wordboundary hyphenation %lualatex
\else
23\kern30pt\nobreak\hskip0pt hyphenation
\fi
\end{document}

введите описание изображения здесь

решение2

Не уверен, что это лучший способ, но размещение \kernвнутри \foreignlanguageработает. Понятия не имею, почему.

\documentclass[australian]{article}
\usepackage{babel}
\babelprovide{thai}
\babelfont[thai]{rm}[Renderer=Harfbuzz]{Noto Sans Thai}
\pagestyle{empty}
\begin{document}
\selectlanguage{thai}

\foreignlanguage{australian}{23}
แต่เราเทศนาเรื่องพระคริสต์ผู้ทรงถูกตรึงตายบนไม้กางเขนซึ่งเป็นหินสะดุดสำหรับพวกยิวและเป็นเรื่องโง่ๆสำหรับพวกต่างชาติ
\foreignlanguage{australian}{24}
แต่สำหรับผู้ที่พระเจ้าทรงเรียกทั้งพวกยิวและพวกกรีกพระคริสต์คือฤทธิ์อำนาจและพระปัญญาของพระเจ้า
\foreignlanguage{australian}{25}
เพราะความเขลาของพระเจ้าก็ยังฉลาดกว่าสติปัญญาของมนุษย์และความอ่อนแอของพระเจ้าก็ยังเข้มแข็งกว่ากำลังของมนุษย์

\bigskip

\foreignlanguage{australian}{23\kern 2pt}
แต่เราเทศนาเรื่องพระคริสต์ผู้ทรงถูกตรึงตายบนไม้กางเขนซึ่งเป็นหินสะดุดสำหรับพวกยิวและเป็นเรื่องโง่ๆสำหรับพวกต่างชาติ

\foreignlanguage{australian}{24\kern 2pt}
แต่สำหรับผู้ที่พระเจ้าทรงเรียกทั้งพวกยิวและพวกกรีกพระคริสต์คือฤทธิ์อำนาจและพระปัญญาของพระเจ้า
\foreignlanguage{australian}{25\kern 2pt}
เพราะความเขลาของพระเจ้าก็ยังฉลาดกว่าสติปัญญาของมนุษย์และความอ่อนแอของพระเจ้าก็ยังเข้มแข็งกว่ากำลังของมนุษย์



\end{document}

решение3

С помощью mbox разрыв восстанавливается.

Обратите внимание, что при использовании Babel onchar=ids fontвам не нужно устанавливать язык.

Собственный пакет Дэвида scriptureтакже, похоже, выдает правильный вывод с обычным пробелом.

\documentclass{article}
\usepackage{scripture}
\usepackage{babel}
\babelprovide[import, main]{australian}
\babelprovide[import, onchar=ids fonts]{thai}
\babelfont[thai]{rm}[Renderer=Harfbuzz]{Noto Sans Thai}
\pagestyle{empty}
\begin{document}
\mbox{23\kern 2pt}%
แต่เราเทศนาเรื่องพระคริสต์ผู้ทรงถูกตรึงตายบนไม้กางเขนซึ่งเป็นหินสะดุดสำหรับพวกยิวและเป็นเรื่องโง่ๆสำหรับพวกต่างชาติ
\mbox{24\kern 2pt}%
แต่สำหรับผู้ที่พระเจ้าทรงเรียกทั้งพวกยิวและพวกกรีกพระคริสต์คือฤทธิ์อำนาจและพระปัญญาของพระเจ้า
\mbox{25\kern 2pt}%
เพราะความเขลาของพระเจ้าก็ยังฉลาดกว่าสติปัญญาของมนุษย์และความอ่อนแอของพระเจ้าก็ยังเข้มแข็งกว่ากำลังของมนุษย์

\begin{scripture}[1 Corinthians 1:23--25]
\vs{23} แต่เราเทศนาเรื่องพระคริสต์ผู้ทรงถูกตรึงตายบนไม้กางเขนซึ่งเป็นหินสะดุดสำหรับพวกยิวและเป็นเรื่องโง่ๆสำหรับพวกต่างชาติ
\vs{24} แต่สำหรับผู้ที่พระเจ้าทรงเรียกทั้งพวกยิวและพวกกรีกพระคริสต์คือฤทธิ์อำนาจและพระปัญญาของพระเจ้า
\vs{25} เพราะความเขลาของพระเจ้าก็ยังฉลาดกว่าสติปัญญาของมนุษย์และความอ่อนแอของพระเจ้าก็ยังเข้มแข็งกว่ากำลังของมนุษย์
\end{scripture}
\end{document}

введите описание изображения здесь

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