Ich erstelle ein großes Dokument mit xelatex-devanagari. Die Seitenzahlen im Frontmatter sind jedoch standardmäßig römisch. Wie kann ich sie in Devanagari-benutzerdefinierte alphabetische Nummerierung ändern, wieJa, nein …oderJa, nein, nein …?
Für Aufzählungslisten ist eine ähnliche Nummerierung erforderlich. Derzeit werden auf der ersten Ebene der Aufzählung Devanagari-Ziffern angezeigt. Was ist die beste Methode, um auch auf anderen Ebenen eine Devanagari-alphabetische Nummerierung zu erreichen?
Beispielcode -
\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}
Antwort1
So werden Zähler angezeigt
In LaTeX wird ein Zähler in einem von mehreren „Stilen“ angezeigt, die durch \arabic
, \roman
, \Roman
, \alph
, \Alph
, und gegeben sind \fnsymbol
. (SieheKapitel 13ZählerIntexdoc latex2e
oder Datei mltcounts.dtxIntexdoc source2e
, oderHier/Hier/Hier/Hier.) Davon \fnsymbol
handelt es sich lediglich um Symbole, die für Fußnoten verwendet werden ( *, ‡, ‡, §, ¶, ∥, **, ††, ‡‡
), so dass es ausreicht, die anderen neu zu definieren.
Beispielsweise \Alph
ist standardmäßig definiert über \@Alph
, was definiert ist als
\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}
Wir können dies ändern क, ख, ग, …
, um überall Devanagari-Konsonanten anstelle von römischen Ziffern oder Buchstaben des lateinischen Alphabets zu verwenden. (Vielleicht möchten Sie अ, आ, इ, ई, …
für einen davon auch Devanagari-Vokale; das ist Ihre Präferenz.)
Wie Beschriftungen in Aufzählungen angezeigt werden
Die Beschriftungen für enumerate
auf jeder Ebene werden durch \labelenumi
, \labelenumii
, \labelenumiii
, und angegeben \labelenumiv
. (SieheAbschnitt 8.7aufzählenin texdoc latex2e
oder 54,6Auflisten und AufzählenIntexdoc source2e
.)
Beispielsweise \labelenumii
ist standardmäßig definiert als (\theenumii)
wobei \theenumii
wiederum definiert ist als \@alph\c@enumii
, weshalb Sie auf der zweiten Verschachtelungsebene in Listen Beschriftungen wie sehen (a)
. Sie können diese auch neu definieren, wenn Sie beispielsweise die Klammern oder Punkte an anderen Stellen haben möchten.
Etwas zusammensetzen
Hier ist Ihr Beispiel-LaTeX-Quellcode aus der Frage mit den entsprechenden Änderungen (der Teil innerhalb \makeatletter
von „to“ \makeatother
ist die einzige Änderung):
\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}
Wenn man dies mit ausführt, xelatex
erhält man Seitenzahlen in Devanagari-Konsonanten anstelle von römischen Ziffern (für den Vorspann) und für die Aufzählung Folgendes: