如何在xetex
或中获取天城体数字latex
(特别是在枚举环境中)?
我可以使用 unicode 来编写天城体文本,但是无法在章节编号、枚举环境等中获取天城体数字。
以下是我正在使用的的基本代码:
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{hindi}
\setotherlanguage{english}
\setmainfont[Script=Devanagari]{Nakula}
\begin{document}
\section{Section Heading}
देवनागरी
Same English Text
१ २ ३ ४ ५ ६ ७ ८ ९ ०
\begin{enumerate}
\item This is first
\item देवनागरी
\end{enumerate}
\end{document}
我正在使用 xetex(Ubuntu 12.04 上的默认设置)进行编译。
答案1
目前没有将所有数字更改为梵文的界面。但是你可以定义自己的:
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{hindi}
\setotherlanguage{english}
\setmainfont[Script=Devanagari]{Nakula}
\newcommand{\devanagarinumeral}[1]{%
\devanagaridigits{\number\csname c@#1\endcsname}}
% renew all representation of counters
\renewcommand{\thesection}{\devanagarinumeral{section}}
\renewcommand{\thepage}{\devanagarinumeral{page}}
\renewcommand{\theenumi}{\devanagarinumeral{enumi}}
\begin{document}
\section{\foreignlanguage{english}{Section Heading}}
देवनागरी
\foreignlanguage{english}{Some English Text}
१ २ ३ ४ ५ ६ ७ ८ ९ ०
\begin{enumerate}
\item \foreignlanguage{english}{This is first}
\item देवनागरी
\end{enumerate}
\end{document}
\@arabic
一个更冒险的做法是改变(用阿拉伯数字代表计数器的内部命令)的含义:
\makeatletter
\def\@arabic#1{\expandafter\devanagaridigits\expandafter{\number#1}}
\makeatother
这将使您免于重新定义所有需要的计数器表示,但可能会破坏依赖于的包\@arabic
。
答案2
有这样一个映射,使用 Mapping=devanagarinumerals 作为字体特性。此映射自 2007 年 7 月起存在,最初随 velthuis 包分发,现在包含在 xetex-devanagari 中。