当我使用babel
和 LuaLaTeX 设置中文时,我经常发现在 之后插入了一个换行符:“
。这对我来说看起来很奇怪,我更希望换行符位于 之后:
和 之前“
。
我可以调整一些babel
选项或 TeX 设置来阻止这种行为吗?
下面是一个 MWE,演示了第一段中的奇怪的断点,以及我希望它如何在第二段中自动显示(无需手动插入\break
)。
%! TeX Program = lualatex
\documentclass{article}
\usepackage{babel}
\babelprovide[import,main]{chinese-simplified}
\babelfont{rm}{Noto Serif CJK SC}
\begin{document}
\hsize 1.85in
魔鬼又带他上了一座最高的山,将世上的万国与万国的荣华都指给他看,对他说:“你若俯伏拜我,我就把这一切都赐给你。”
魔鬼又带他上了一座最高的山,将世上的万国与万国的荣华都指给他看,对他说:\break “你若俯伏拜我,我就把这一切都赐给你。”
\end{document}
答案1
我修改了原始答案,因为有更好的选择:
\documentclass{article}
\usepackage{babel}
\babelprovide[import,main,intraspace=0 .15 0]{chinese-simplified}
\babelfont{rm}{NotoSerifCJKsc-Regular.otf}
\babelcharproperty{`“}{linebreak}{op}
这将linebreak
“的属性设置为‘opening’,禁止在此字符后换行。
原始答案
也许最简单的方法是使用变换。它需要较新的版本,并且您可能需要稍微增加intraspace
(默认值为0 .1 0
,以 em 为单位)。以下前言对我有用:
\documentclass{article}
\usepackage{babel}
\babelprovide[import,main,intraspace=0 .15 0]{chinese-simplified}
\babelfont{rm}{NotoSerifCJKsc-Regular.otf}
\babelprehyphenation{chinese-simplified}{:“}{
{}, % Keep :
{insert, penalty=-100},
{} % Keep “
}