孟加拉语文本中字母之间的间隙枚举列表

孟加拉语文本中字母之间的间隙枚举列表

我在嵌套列表中使用孟加拉字母作为标签时遇到问题,发布了问题经过几个小时的自我研究,我终于想出了一个解决方案回答该问题。

新问题是,我看到一些字母之间有间隙,如下图所示(突出显示)。这些间隙是意料之外的。如何解决?

在此处输入图片描述

这是我的工作示例:

\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 也应该能够正确呈现,我已经在luaotfloadGitHub 存储库中打开了一个问题。

选项

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}

相关内容