این کد رو ببینید. توضیحات لازم رو به صورت کامنت توی کد نوشتم:
\documentclass{book}
\usepackage{hyperref}
\usepackage{xepersian}
\settextfont{Yas}
\makeatletter
\newcommand*{\@thechapapp}{\@tartibi\c@chapter}
\bidi@appto\appendix{\gdef\@thechapapp{\@harfi\c@chapter}}
% ترتیبی کردن شماره فصلها در فهرست مطالب در صورت استفاده از بسته hyperref
\bidi@patchcmd{\Hy@org@chapter}{%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
}{%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\@chapapp~\@thechapapp:}#1}%
}{\typeout{We succeded in redefining \string\@chapter}}
{\typeout{We failed in redefining \string\@chapter}}
% زیاد کردن فاصله بین شماره فصلها و عنوان آنها در فهرست مطالب
\bidi@patchcmd{\l@chapter}{%
\setlength\@tempdima{1.5em}%
}{%
\setlength\@tempdima{4.5em}%
}{\typeout{We succeded in redefining \string\l@chapter}}
{\typeout{We failed in redefining \string\l@chapter}}
% زیاد کردن تورفتگی بخشها و زیربخشها از سمت راست
\renewcommand*\l@section{\@dottedtocline{1}{4.5em}{2.3em}}
\renewcommand*\l@subsection{\@dottedtocline{2}{6.8em}{3.2em}}
\makeatother
\begin{document}
\tableofcontents
\chapter{مقدمه ای بر لاتک}
\section{یک عنوان دیگر}
\subsection{مقداری متن}
\appendix
\chapter{یک پیوست}
\end{document}
حالا اگه بخوایم این کدها رو با خواستههای این پرسش منطبق کنیم، میشه کد رو به صورت زیر نوشت:
\documentclass{book}
\usepackage{ptext}
\usepackage{tocloft}
\usepackage{hyperref}
\usepackage{xepersian}
\settextfont{Yas}
\SepMark{-}
\makeatletter
\newcommand*{\@thechapapp}{\@tartibi\c@chapter}
\bidi@appto\appendix{\gdef\@thechapapp{\@harfi\c@chapter}}
% ترتیبی کردن شماره فصلها در فهرست مطالب در صورت استفاده از بسته hyperref
\bidi@patchcmd{\Hy@org@chapter}{%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
}{%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\@chapapp~\@thechapapp:}#1}%
}{\typeout{We succeded in redefining \string\@chapter}}
{\typeout{We failed in redefining \string\@chapter}}
\makeatletter
% اضافه کردن خط تیره بعد از شمارهها در متن
\def\@seccntformat#1{\csname the#1\endcsname\@SepMark\quad}
% اضافه کردن خط تیره بعد از شمارهها در فهرست مطالب
\renewcommand{\cftsecaftersnum}{\@SepMark}%
\renewcommand{\cftsubsecaftersnum}{\@SepMark}%
\renewcommand{\cftsubsubsecaftersnum}{\@SepMark}%
\makeatother
% زیاد کردن عمق شمارهگذاریها در متن و فهرست مطالب
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
% زیاد کردن فاصله بین شمارهها و عنوانها در فهرست مطالب
\setlength\cftchapnumwidth{4.5em}
\setlength\cftsecnumwidth{3em}
\setlength\cftsubsecnumwidth{4em}
\setlength\cftsubsubsecnumwidth{5em}
% زیاد کردن تورفتگی شمارهها و عنوانها در فهرست مطالب
\setlength\cftsecindent{4.5em}
\setlength\cftsubsecindent{7.5em}
\setlength\cftsubsubsecindent{12em}
\begin{document}
\tableofcontents
\chapter{مقدمهای بر لاتک}
\section{لاتک چیست؟}
\section{زیپرشین}
\subsection{بستهها}
\subsubsection{یک عنوان}
\appendix
\chapter{یک پیوست}
\end{document}
که این خروجی رو بهمون میده: