目录,西里尔文(俄语)细节,添加部分和章节描述 + 虚线问题

目录,西里尔文(俄语)细节,添加部分和章节描述 + 虚线问题

这是我的图书项目的当前代码:

\documentclass[10pt,twoside,openany]{book}
\pagestyle{plain}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english, russian]{babel}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\setmainfont[Ligatures=TeX]{EB Garamond}
\usepackage{microtype}
\usepackage{hyphenat}
\usepackage[shortcuts]{extdash}
\usepackage[a5paper,top=0.5in,bottom=0.75in,inner=1in,outer=0.5in]{geometry} 
\usepackage{lettrine}
\usepackage[all]{nowidow}
\setlength{\parskip}{0pt}
\usepackage{fancyhdr}
\fancyhf{} % clear all header and footers
\renewcommand{\headrulewidth}{0pt} % remove the header rule
\fancyfoot[LE,RO]{\thepage} % Left side on Even pages; Right side on Odd pages
\pagestyle{fancy}
\fancypagestyle{plain}{%
  \fancyhf{}%
  \renewcommand{\headrulewidth}{0pt}%
  \fancyhf[lef,rof]{\thepage}%
}
\usepackage{tocloft}
\tocloftpagestyle{empty}
\addcontentsline{toc}{chapter}{От автора}
\addto\captionsrussian{% Replace "russian" with the language used
  \renewcommand{\contentsname}%
    {Содержание}%
}
\renewcommand{\cftpartpresnum}{Часть~}
\let\cftoldpartfont\cftpartfont
\renewcommand{\cftpartfont}{\cftoldpartfont\cftpartpresnum}
\renewcommand{\cftsecfillnum}[1]{%
  {\cftsecleader}\nobreak
  {\cftsecpagefont #1}\cftsecafterpnum\par
}
\renewcommand{\cftsubsecfillnum}[1]{%
  {\cftsubsecleader}\nobreak
  {\cftsubsecpagefont #1}\cftsubsecafterpnum\par
}
\renewcommand\cftchappresnum{\chaptername\ }
\renewcommand\cftchapleader{\cftdotfill{1}}
\renewcommand\cftchappagefont{\normalfont}
\renewcommand\cftchapfont{\normalfont}
\renewcommand\cfttoctitlefont{\hfill\Large\bfseries}
\renewcommand\cftaftertoctitle{\hfill\mbox{}}
\setcounter{tocdepth}{2}
\makeatletter
\newcommand{\ordinalrussian}[1]{%
  \@tempcnta=\number\value{#1}
  \protect\@print@tempcnta}
\newcommand{\@print@tempcnta}{%
\ifnum\@tempcnta <100
  \ifnum\@tempcnta <20
    \ifnum\@tempcnta >10
      \@tempcntb=\@tempcnta
      \divide\@tempcntb 10
      \multiply\@tempcntb 10
      \advance\@tempcnta -\@tempcntb
      \divide\@tempcntb 10
      \@printtens
    \else
      \@printones
    \fi
  \else
    \@tempcntb=\@tempcnta
    \divide\@tempcntb 10
    \multiply\@tempcntb 10
    \advance\@tempcnta -\@tempcntb
    \divide\@tempcntb 10
    \@printtwenties
    \ifnum\@tempcnta >0
      \ \@print@tempcnta
    \fi
  \fi
\else
  \@tempcntb=\@tempcnta
  \divide\@tempcntb 100
  \multiply\@tempcntb 100
  \advance\@tempcnta -\@tempcntb
  \divide\@tempcntb 100
  \@printhundreds
  \ifnum\@tempcnta >0
    \ \@print@tempcnta
  \fi
\fi}
\newcommand{\@printhundreds}{%
  \ifnum\@tempcnta = 0
    \ifcase\@tempcntb
      --\or
      сотая\or
      двухсотая\or
      трехсотая\or
      четырехсотая\or
      пятисотая\or
      шестисотая\or
      семисотая\or
      восьмисотая\or
      девятисотая\fi
  \else
    \ifcase\@tempcntb
      --\or
      сто\or
      двести\or
      триста\or
      четыреста\or
      пятьсот\or
      шестьсот\or
      семьсот\or
      восемьсот\or
      девятьсот\fi
  \fi}
\newcommand{\@printtwenties}{%
  \ifnum\@tempcnta = 0
    \ifcase\@tempcntb
      --\or
      --\or
      двадцатая\or
      тридцатая\or
      сороковая\or
      пятидесятая\or
      шестидесятая\or
      семидесятая\or
      восьмидесятая\or
      девяностая\fi
  \else
    \ifcase\@tempcntb
      --\or
      --\or
      двадцать\or
      тридцать\or
      сорок\or
      пятьдесят\or
      шестьдесят\or
      семьдесят\or
      восемьдесят\or
      девяносто\fi
  \fi}
\newcommand{\@printtens}{%
  \ifcase\@tempcnta
    десятая\or
    одиннадцатая\or
    двенадцатая\or
    тринадцатая\or
    четырнадцатая\or
    пятнадцатая\or
    шестнадцатая\or
    семнадцатая\or
    восемнадцатая\or
    девятнадцатая\fi
}
\newcommand{\@printones}{%
  \ifcase\@tempcnta
    нулевая\or
    первая\or
    вторая\or
    третья\or
    четвертая\or
    пятая\or
    шестая\or
    седьмая\or
    восьмая\or
    девятая\or
    десятая\fi
}
\makeatother
\renewcommand{\thepart}{\ordinalrussian{part}}
\renewcommand{\thechapter}{\ordinalrussian{chapter}}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{\par}{}{}
\makeatother
\usepackage{titlesec}
\titleclass{\part}{top}
\titleformat{\part}[display]
  {\normalfont\Large\bfseries}{\centering\partname\ \thepart}{10pt}{\Large\centering}
\titlespacing*{\part}{0pt}{10pt}{10pt}
\titleclass{\chapter}{straight}
\titleformat{\chapter}[display]
  {\normalfont\large\bfseries}{\centering\chaptertitlename\ \thechapter}{0pt}{\large\centering}
\titlespacing*{\chapter} {0pt}{20pt}{10pt}
\begin{document}
\cleardoublepage
\pagenumbering{arabic}
\obeylines 
\part{}
\chapter{}

理想情况下,我希望我的目录看起来像这样,但我不使用罗马数字,而是在文本中使用章节编号: 在此处输入图片描述

但目前的代码如下所示:

在此处输入图片描述
问题 1:如何将描述添加到部分和章节中,使其格式如下:
Часть Первая. Начало(第一部分。开始)
Глава Первая. Об этом(第一章。关于此内容)
问题 2:使用当前代码,例如章节号(Глава первая)与其对应的页码之间的虚线重叠,我可以看到虚线从章节号(Глава)的最后一个字母开始,穿过整个数字(первая)直到页码。我该如何纠正?

相关内容