xelatex-devanagari를 사용하여 큰 문서를 작성 중입니다. 그럼에도 불구하고 머리말의 페이지 번호는 기본적으로 로마자 번호로 되어 있습니다. Devanagari 사용자 정의 알파벳 번호 매기기로 어떻게 변경할 수 있습니까?아,...또는으,으,으...?
열거된 목록에도 비슷한 번호 매기기가 필요합니다. 현재 열거의 첫 번째 수준에는 데바나가리 숫자가 표시됩니다. 다른 레벨에서도 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.dtx~에texdoc 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
.)
예를 들어, 기본적으로 는 where 로 정의 \labelenumii
되며 , 이는 목록의 두 번째 중첩 수준에서 과 같은 라벨이 표시되는 이유입니다 . 다른 위치에 괄호나 마침표를 원하는 경우 이를 재정의할 수도 있습니다.(\theenumii)
\theenumii
\@alph\c@enumii
(a)
종합해보면
다음은 질문의 샘플 LaTeX 소스를 적절하게 수정한 것입니다( \makeatletter
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
로마 숫자(머리말의 경우) 대신 데바나가리 자음 페이지 번호가 제공되고, 열거의 경우 다음이 표시됩니다.