Numeração enumera ambientes e páginas com alfabeto Devanagari

Numeração enumera ambientes e páginas com alfabeto Devanagari

Estou construindo um documento grande com xelatex-devanagari. Ainda assim, os números das páginas no frontmatter são padronizados para a numeração romana. Como posso alterá-los para numeração alfabética personalizada Devanagari, comoअ, आ...ouक, ख, ग...?

Numeração semelhante necessária para listas enumeradas. Atualmente, o primeiro nível de enumeração mostra numerais Devanagari. Qual é o melhor método para obter a numeração alfabética Devanagari também em outros níveis?

Código de amostra -

\documentclass[oneside]{book}
\usepackage{fontspec}
\setmainfont[Script=Devanagari,Mapping=devanagarinumerals]{Sanskrit 2003}

\renewcommand{\chaptername}{अध्यायः}
\renewcommand{\contentsname}{विषयसूची}

\begin{document}

\frontmatter
\tableofcontents
\chapter{भूमिका}

\mainmatter
\chapter{सङ्ग्रहः}
\begin{enumerate}
  \item प्रथमम्
  \begin{enumerate}
    \item द्वितीयम्
    \begin{enumerate}
      \item तृतीयम्
      \begin{enumerate}
        \item चतुर्थम्
      \end{enumerate}
    \end{enumerate}
  \end{enumerate}
\end{enumerate}

\end{document}

demonstração de enumeração

Responder1

Como os contadores são exibidos

No LaTeX, um contador é exibido em um dos vários “estilos”, dados por \arabic, \roman, \Roman, \alph, \Alphe \fnsymbol. (VerCapítulo 13Contadoresemtexdoc latex2eou Arquivo mltcounts.dtxemtexdoc source2e, ouaqui/aqui/aqui/aqui.) Destes, \fnsymbolsão apenas símbolos utilizados para notas de rodapé ( *, ‡, ‡, §, ¶, ∥, **, ††, ‡‡), portanto basta redefinir os demais.

Por exemplo, por padrão \Alphé definido via \@Alphque é definido como

\def\@Alph#1{%
 \ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
  K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or
   Y\or Z\else\@ctrerr\fi}

Podemos modificar isso para sempre usar consoantes Devanagari क, ख, ग, …em todos os lugares, no lugar de algarismos romanos ou letras do alfabeto latino. (Você também pode querer vogais Devanagari अ, आ, इ, ई, …para uma delas; a preferência é sua.)

Como os rótulos nas enumerações são exibidos

Os rótulos para enumeratecada nível são dados por \labelenumi,,, e . (Ver\labelenumii\labelenumiii\labelenumivseção 8.7enumerarem texdoc latex2e, ou 54,6Itemizar e enumeraremtexdoc source2e.)

Por exemplo, por padrão \labelenumiié definido como (\theenumii)where \theenumiié por sua vez definido como \@alph\c@enumii, e é por isso que no segundo nível de aninhamento em listas, você vê rótulos como (a). Você também pode redefini-los, se (digamos) desejar os parênteses ou pontos em lugares diferentes.

Juntar as peças

Aqui está o exemplo da fonte LaTeX da pergunta, com as modificações apropriadas (a parte dentro \makeatletterde \makeatotheré a única alteração):

\documentclass[oneside]{book}
\usepackage{fontspec}
\setmainfont[Script=Devanagari,Mapping=devanagarinumerals]{Sanskrit 2003}

\makeatletter
% Always use Devanagari consonants for alph/Alph/roman/Roman styles.
\def\devanagari@alph#1{%
 \ifcase#1\or क\or ख\or ग\or घ\or ङ\or च\or छ\or ज\or झ\or ञ\or
  ट\or ठ\or ड\or ढ\or ण\or त\or थ\or द\or ध\or न\or प\or फ\or ब\or भ\or म\or
   य\or र\or ल\or व\or श\or ष\or स\or ह\else\@ctrerr\fi}
% Imitating xgreek.sty and xepersian.sty
\let\@alph\devanagari@alph
\let\@Alph\devanagari@alph
\let\@roman\devanagari@alph
\let\@Roman\devanagari@alph

% Change appearance of enumerate at levels 2, 3, 4.
\renewcommand{\labelenumii}{\theenumii.} % Instead of: (\theenumii)
\renewcommand{\labelenumiii}{(\theenumiii)} % Instead of: \theenumiii.
\renewcommand{\theenumiii}{\@arabic\c@enumiii} % Instead of: \@roman\c@enumiii
\renewcommand{\labelenumiv}{(\theenumiv)} % Instead of: \theenumiv.
\makeatother

\renewcommand{\chaptername}{अध्यायः}
\renewcommand{\contentsname}{विषयसूची}

\begin{document}

\frontmatter
\tableofcontents
\chapter{भूमिका}

\mainmatter
\chapter{सङ्ग्रहः}
\begin{enumerate}
  \item प्रथमम्
  \begin{enumerate}
    \item द्वितीयम्
    \begin{enumerate}
      \item तृतीयम्
      \begin{enumerate}
        \item चतुर्थम्
      \end{enumerate}
    \end{enumerate}
  \end{enumerate}
\end{enumerate}

\end{document}

Executar isso com xelatexfornece números de páginas consoantes com Devanagari em vez de algarismos romanos (para o assunto inicial) e, para enumerar, o seguinte: enumerar ambiente com rótulos Devanagari

informação relacionada