在 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您不需要設定語言。

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

在此輸入影像描述

相關內容