这是我的图书项目的当前代码:
\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:使用当前代码,例如章节号(Глава первая)与其对应的页码之间的虚线重叠,我可以看到虚线从章节号(Глава)的最后一个字母开始,穿过整个数字(первая)直到页码。我该如何纠正?