デーヴァナーガリー文字で環境とページを番号付けする

デーヴァナーガリー文字で環境とページを番号付けする

私はxelatex-devanagariを使って大きな文書を作成しています。それでも、前書きのページ番号はデフォルトでローマ字になっています。これを次のようにデーヴァナーガリーのカスタムアルファベット番号に変更するにはどうすればいいでしょうか?अ,आ...またはक,ख,ग...?

列挙リストにも同様の番号付けが必要です。現在、列挙の最初のレベルにはデーヴァナーガリー数字が表示されています。他のレベルでもデーヴァナーガリー アルファベット番号付けを実現する最良の方法は何ですか?

サンプルコード -

\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}

列挙デモ

答え1

カウンターの表示方法

LaTeXでは、カウンターは\arabic、、、、、、、\romanおよびで示されるいくつかの「スタイル」のいずれか\Romanで表示されます。(\alph\Alph\fnsymbol第13章カウンターtexdoc latex2e、またはファイルmltcounts.dtxtexdoc source2e、 またはここ/ここ/ここ/こここのうち、 は\fnsymbol脚注に使用される記号 ( *, ‡, ‡, §, ¶, ∥, **, ††, ‡‡) にすぎないので、他を再定義するだけで十分です。

例えば、デフォルトでは次のように\Alph定義されます。\@Alph

\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}

क, ख, ग, …これを変更して、ローマ数字やラテン アルファベットの文字の代わりに、どこでも常にデーヴァナーガリー子音を使用するようにすることができます。(またअ, आ, इ, ई, …、そのうちの 1 つにデーヴァナーガリー母音を使用することもできます。これは好みの問題です。)

列挙内のラベルの表示方法

enumerate各レベルでの のラベルは\labelenumi\labelenumii\labelenumiii、で示されます\labelenumiv。(セクション8.7列挙する、またはtexdoc latex2e54.6項目別と列挙texdoc source2e

たとえば、デフォルトでは は\labelenumiiとして定義さ(\theenumii)れ、\theenumiiは として定義されます\@alph\c@enumii。そのため、リストのネストの第 2 レベルでは のようなラベルが表示されます(a)。括弧やピリオドを別の場所に配置したい場合は、これらも再定義できます。

それを一緒に入れて

以下に、質問から適切な変更を加えたサンプルの LaTeX ソースを示します (変更される\makeatletterのは 〜内の部分\makeatotherのみです)。

\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}

これを実行すると、xelatexローマ数字の代わりにデーヴァナーガリー子音のページ番号(前付けの場合)が表示され、列挙の場合は次のようになります。 デーヴァナーガリー文字のラベルで環境を列挙する

関連情報