![在 Babel 中,将 \kern 添加到泰语会导致换行](https://linux22.com/image/476253/%E5%9C%A8%20Babel%20%E4%B8%AD%EF%BC%8C%E5%B0%86%20%5Ckern%20%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%B3%B0%E8%AF%AD%E4%BC%9A%E5%AF%BC%E8%87%B4%E6%8D%A2%E8%A1%8C.png)
如果我在泰语文本中添加\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}