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}
Responder1
Como os contadores são exibidos
No LaTeX, um contador é exibido em um dos vários “estilos”, dados por \arabic
, \roman
, \Roman
, \alph
, \Alph
e \fnsymbol
. (VerCapítulo 13Contadoresemtexdoc latex2e
ou Arquivo mltcounts.dtxemtexdoc source2e
, ouaqui/aqui/aqui/aqui.) Destes, \fnsymbol
são apenas símbolos utilizados para notas de rodapé ( *, ‡, ‡, §, ¶, ∥, **, ††, ‡‡
), portanto basta redefinir os demais.
Por exemplo, por padrão \Alph
é definido via \@Alph
que é 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 enumerate
cada nível são dados por \labelenumi
,,, e . (Ver\labelenumii
\labelenumiii
\labelenumiv
seçã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 \makeatletter
de \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 xelatex
fornece números de páginas consoantes com Devanagari em vez de algarismos romanos (para o assunto inicial) e, para enumerar, o seguinte: