我在嵌套列表中使用孟加拉字母作为标签时遇到问题,发布了问题经过几个小时的自我研究,我终于想出了一个解决方案回答该问题。
新问题是,我看到一些字母之间有间隙,如下图所示(突出显示)。这些间隙是意料之外的。如何解决?
这是我的工作示例:
\documentclass[10pt,a4paper,showtrims]{memoir}
\usepackage{babel}
\babelprovide[main,onchar = fonts ids]{bengali}
\babelfont[bengali]{rm}[
Renderer=Harfbuzz,
AutoFakeBold,
AutoFakeSlant=0.3,
NFSSFamily=kalpurush,
]{fontkalpurush.ttf}
\babelcharproperty{`।}{locale}{bengali}
\babelprovide[maparabic,alph=alphabetic]{bengali}
% fix `matra` in bangla text
\makeatletter
\AtBeginDocument{%
\def\bbl@mapdir#1{%
{\def\languagename{#1}%
\let\bbl@ifrestoring\@firstoftwo % To avoid font warning
\bbl@switchfont
\ifnum\fontid\font>\z@
\directlua{
Babel.locale_props[\the\csname bbl@id@@#1\endcsname]%
['/\bbl@prefontid'] = \fontid\font\space}%
\fi}}}%
\makeatother
\begin{document}
\section{প্রথম}
\begin{enumerate}
\item আইটেম ১
\begin{enumerate}
\item নেস্টেড আইটেম ১
\item নেস্টেড আইটেম ২
\end{enumerate}
\item আইটেম ২
\end{enumerate}
\section{প্রথম অধ্যায়}
\begin{enumerate}
\item ফু
\begin{enumerate}
\item বার আইটেম ১
\item ফু
\end{enumerate}
\item বার
\end{enumerate}
\end{document}
请注意:我之前遇到过这个问题,@Javier Bezos 提供了一个解决方案。链接如下:答案就在这里。但是这个解决方案现在不起作用。
答案1
在调查此问题时,我发现孟加拉语的样式文件中有一个错误,因为 prehyphenchar 设置为 0,而不是保留默认值。我已在 GitHub 存储库中修复了此问题,几周后应该会在 CTAN 中修复。通过此更改,文本可以正确呈现。
但-
即使 prehyphenchar = 0 也应该能够正确呈现,我已经在luaotfload
GitHub 存储库中打开了一个问题。
选项
1.为语言分配一组空的连字模式,该模式是动态创建的。这是我在上面的评论中建议的解决方法,它应该适用于任何版本的babel
适应lualatex
(几年)。
\babelprovide[import, main, hyphenrules=+]{bengali}
2.通过将 prehyphenchar 设置为空(表示“使用默认值”)来修复它。这适用于许多版本,并且单词将使用连字符。当导入语言环境时,按以下方式完成此操作:
\babelprovide[import, main, typography/prehyphenchar=]{bengali}
3.将对齐模式设置为unhyphenated
。这基本上与 1 相同,但通过允许宽空间,水平盒的未满或过满数量将大大减少,这对于欧洲字体来说可能看起来很奇怪,但在某些脚本中却是一种常见的做法。此替代方案仅适用于较新的版本。
\babelprovide[import, main, justification=unhyphenated]{bengali}