这是对以下讨论的后续XeLaTeX - \tableofcontents 中的天城文页码,由 David Carlisle 建议。我使用的是 XeLaTeX(XeTeX,TeX Live 2012/W32TeX 上的版本 3.1415926-2.4-0.9998)。这是我的最小工作示例,具有自定义的印度语页码样式。
\documentclass[14pt]{article}
\usepackage{polyglossia}
\usepackage{fontspec}
\usepackage{lipsum}
\setmainfont[Script=Devanagari]{Arial Unicode MS}
\usepackage{xstring}
\renewcommand\thepage{\Devnag{page}}
\DeclareRobustCommand\Devnag[1]{\expandafter\arabictodevnag\expandafter{\the\csname c@#1\endcsname}}
\newcommand{\arabictodevnag}[1]
{
\StrSubstitute{#1}{0}{०}[\num]
\StrSubstitute{\num}{1}{१}[\num]
\StrSubstitute{\num}{2}{२}[\num]
\StrSubstitute{\num}{3}{३}[\num]
\StrSubstitute{\num}{4}{४}[\num]
\StrSubstitute{\num}{5}{५}[\num]
\StrSubstitute{\num}{6}{६}[\num]
\StrSubstitute{\num}{7}{७}[\num]
\StrSubstitute{\num}{8}{८}[\num]
\StrSubstitute{\num}{9}{९}
}
% \usepackage[bookmarksnumbered,urlcolor=??cyan,linkcolor=blue]{hyperref}
\begin{document}
\tableofcontents
\pagebreak
\section{One}
\lipsum[1-8]
\pagebreak
\section{Two}
\lipsum[1-8]
\pagebreak
\end{document}
上述情况有两个问题
- 页面上的页码正确,但目录中的页码错误。目录中的所有页码均为“1”,而章节从页码“2”和“4”开始。
- 如果我取消注释带有 hyperref 的注释行,xelatex 将无法编译并显示消息“!未定义的控制序列 \arabictodevnag”
答案1
您必须选择一种语言,而不仅仅是加载polyglossia
。这是一个工作示例:
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage[numerals=Devanagari]{hindi}
\usepackage{fontspec}
\usepackage{lipsum}
\setmainfont[Script=Devanagari]{FreeSerif} % I don't have Arial Unicode MS
\usepackage{hyperref,bookmark}
\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}
\tableofcontents
\pagebreak
\section{One}
\lipsum[1-8]
\pagebreak
\section{Two}
\lipsum[1-8]
\pagebreak
\end{document}