我正在写一份主要使用孟加拉语但也包含英语的文档。我可以使用所述方法将章节和小节编号更改为孟加拉语这里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}
在 LuaLaTeX 上,该文档会自动检测您何时输入英文并更改语言,因此您将看到 Times New Roman 字体的英文文本并获得连字模式、连字等。
XeTeX 会将所有文本视为默认语言,除非您明确更改它,您可以通过添加命令\babeltags{english=english}
并写入来更改它\textenglish{Foo bar}
。否则,您的英文文本将显示为 Shonar Bengla。如果您的孟加拉语字体不支持拉丁字母,或者您在 LTR 和 RTL 之间切换,这种情况会更加明显。