使用梵文字母編號列舉環境和頁面

使用梵文字母編號列舉環境和頁面

我正在使用 xelatex-devanagari 建立一個大型文件。儘管如此,frontmatter 中的頁碼預設為羅馬編號。我怎樣才能將它們更改為梵文自訂字母編號,例如अ,आ...或者क、ख、ग...

枚舉清單需要類似的編號。目前,第一級枚舉顯示梵文數字。在其他層級實現梵文字母編號的最佳方法是什麼?

範例程式碼 -

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

我們可以修改它,以便始終在任何地方使用梵文輔音क, ख, ग, …,代替羅馬數字或拉丁字母表中的字母。 (您可能還需要梵文元音अ, आ, इ, ई, …之一;這是您的偏好。)

枚舉中的標籤如何顯示

每個等級的標籤由、、和enumerate給出。 (看\labelenumi\labelenumii\labelenumiii\labelenumiv第8.7節列舉英寸texdoc latex2e,或 54.6逐項列舉與枚舉texdoc source2e.)

例如,預設情況下\labelenumii被定義為(\theenumii)where\theenumii又被定義為\@alph\c@enumii,這就是為什麼在清單中嵌套的第二層,您會看到類似 的標籤(a)。如果您(例如)想要在不同位置使用括號或句點,您也可以重新定義它們。

把它放在一起

\makeatletter這是問題中的範例 LaTeX 原始程式碼,經過適當修改( to中的部分\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會​​給出梵文輔音頁碼,而不是羅馬數字(對於前面的內容),並且對於枚舉,如下: 使用梵文標籤列舉環境

相關內容