在 Babel 中,将 \kern 添加到泰语会导致换行

在 Babel 中,将 \kern 添加到泰语会导致换行

如果我在泰语文本中添加\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您不需要设置语言。

David 自己的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}

在此处输入图片描述

相关内容