Изменить стиль нумерации на бенгальский во вложенном упорядоченном списке

Изменить стиль нумерации на бенгальский во вложенном упорядоченном списке

Я пишу документ, который в основном на бенгали, но также содержит английский. Мне удалось изменить номера разделов и подразделов на бенгали, используя описанный методздесьот Davislor. Однако это не меняет стиль нумерации на бенгальский для вложенных списков.

Как видно из изображения, для внутреннего списка вложенного списка в качестве стиля нумерации используются английские алфавиты. Я хочу заменить их на бенгальские алфавиты (ক, খ, গ и т. д.). Как это можно сделать?

Вот минимальный рабочий пример.

% !TeX program = xelatex
\documentclass[12pt]{article}

\usepackage{babel}

\babelprovide[maparabic]{bengali}
\babelfont{rm}{Shonar Bangla}
\babelfont[english]{rm}{Times New Roman}

\begin{document}
    \section{প্রথম অধ্যায়}
    Foo bar
    \begin{enumerate}
        \item ফু
        \begin{enumerate}
            \item বার
            \item ফু
        \end{enumerate}
        \item বার
    \end{enumerate}
\end{document}

Я использую MiKTeX и XeLaTeX.

решение1

Рад, что вы нашли это полезным. Короткий ответ: добавьте опцию alph=alphabeticв babelprovide. Более длинный ответ (который обеспечивает совместимость с LuaLaTeX и добавляет несколько дополнительных функций):

% Recommended with LuaLaTeX in TeX Live 2020 or later,
% but also works with XeLaTeX.
\documentclass[12pt]{article}
\tracinglostchars=2 % Warn if the current font lacks a character.
\usepackage{iftex}

\ifluahbtex % Includes LuaLaTeX in TeX Live 2020.
  \usepackage[bidi=basic, layout=sectioning.counters]{babel}
  \usepackage{fontspec}
  %% Will auto-detect the language on LuaLaTeX:
  \defaultfontfeatures{ Renderer=HarfBuzz, Ligatures=TeX, Scale=MatchLowercase }
  \babelprovide[onchar=ids fonts]{english}
\else % Another Unicode engine, such as XeLaTeX.
  \usepackage[bidi=default, layout=sectioning.counters, english]{babel}
  \usepackage{fontspec}
  \defaultfontfeatures{ Ligatures=TeX, Scale=MatchLowercase }
\fi

\babelprovide[import,
              main,
              maparabic,
              alph=alphabetic
             ]{bengali}

\babelfont{rm}
          [Scale=1.0, Language=Default]{Shonar Bangla}
\babelfont[english]{rm}
          [Ligatures=Common]{Times New Roman}

\begin{document}
    \section{প্রথম অধ্যায়}
    Foo bar
    \begin{enumerate}
        \item ফু
        \begin{enumerate}
            \item বার
            \item ফু
        \end{enumerate}
        \item বার
    \end{enumerate}
\end{document}

Образец шрифта Shonar Bangla

В LuaLaTeX этот документ автоматически определит, когда вы печатаете на английском языке, и изменит язык, поэтому вы увидите английский текст шрифтом Times New Roman и получите шаблоны переносов, лигатуры и т. д.

XeTeX будет обрабатывать весь текст как язык по умолчанию, если вы явно не измените его, что можно сделать, добавив команду \babeltags{english=english}и написав \textenglish{Foo bar}. В противном случае ваш английский текст будет отображаться как Shonar Bengla. Это будет более заметно, если ваш бенгальский шрифт не поддерживает латинский алфавит или если вы переключаетесь между LTR и RTL.

Связанный контент