Estoy creando un documento grande con xelatex-devanagari. Aún así, los números de página en la portada por defecto son la numeración romana. ¿Cómo puedo cambiarlos a numeración alfabética personalizada de Devanagari comoअ,आ...oक,ख,ग...?
Se necesita una numeración similar para las listas enumeradas. Actualmente, el primer nivel de enumeración muestra números devanagari. ¿Cuál es el mejor método para lograr la numeración alfabética devanagari también en otros niveles?
Código de muestra -
\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}
Respuesta1
Cómo se muestran los contadores
En LaTeX, un contador se muestra en uno de varios "estilos", dados por \arabic
, \roman
, \Roman
, \alph
, \Alph
y\fnsymbol
. (VerCapítulo 13Contadoresentexdoc latex2e
, o Archivo mltcounts.dtxentexdoc source2e
, oaquí/aquí/aquí/aquí.) De estos, \fnsymbol
solo se utilizan símbolos para las notas a pie de página ( *, ‡, ‡, §, ¶, ∥, **, ††, ‡‡
), por lo que basta con redefinir los demás.
Por ejemplo, por defecto \Alph
se define vía \@Alph
cual se define 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 esto para usar siempre consonantes devanagari क, ख, ग, …
en todas partes, en lugar de números romanos o letras del alfabeto latino. (Es posible que también desees vocales devanagari अ, आ, इ, ई, …
para una de ellas; es tu preferencia).
Cómo se muestran las etiquetas en las enumeraciones
Las etiquetas para enumerate
cada nivel están dadas por \labelenumi
, \labelenumii
, \labelenumiii
y \labelenumiv
. (Versección 8.7enumeraren texdoc latex2e
, o 54,6Detallar y enumerarentexdoc source2e
.)
Por ejemplo, por defecto \labelenumii
se define como (\theenumii)
donde \theenumii
a su vez se define como \@alph\c@enumii
, razón por la cual en el segundo nivel de anidamiento en listas se ven etiquetas como (a)
. También puede redefinirlos si (por ejemplo) desea que los paréntesis o puntos estén en diferentes lugares.
Poniendo todo junto
Aquí está su fuente LaTeX de muestra de la pregunta, con las modificaciones apropiadas (la parte dentro \makeatletter
de \makeatother
es el único cambio):
\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}
Al ejecutar esto con xelatex
se obtienen números de página consonantes devanagari en lugar de números romanos (para la portada) y, para la enumeración, lo siguiente: