
我正在寫一份文件,主要是孟加拉語,但也包含英語。我已經能夠使用所描述的方法將節和小節編號更改為孟加拉語這裡由戴維斯勒.但是,這不會將巢狀清單的編號樣式變更為孟加拉語。
從圖中可以看出,對於嵌套列表的內部列表,作為編號樣式,使用英文字母。我想用孟加拉語字母(ক、খ、গ等)來替換它們。如何才能做到這一點?
這是一個最小的工作範例。
% !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 之間切換,則這一點會更加明顯。