无法将目录中的章节编号更改为 tartibi

无法将目录中的章节编号更改为 tartibi

我有一个简单的 LaTex 文件,如下所示:

   \documentclass{book}
    \usepackage{xepersian}
    \settextfont{B Zar}       
    
    \makeatletter
    \bidi@patchcmd{\Hy@org@chapter}{%
        \addcontentsline{toc}{chapter}%
        {\protect\numberline{\thechapter}#1}%
    }{%
        \addcontentsline{toc}{chapter}%
        {\protect\numberline{\chaptername~\tartibi{chapter}}#1}%
    }{}{}
    \makeatother
    
    \begin{document}
    \tableofcontents
    \chapter{سلم}
    \section{یبسیبسیب}
    \chapter{بثیبسیب}
    \section{یبسیبسیب}
    \end{document}

但目录中的章节仍然带有数字。

我也将文件改为下面的文件,但什么都没改变。

\documentclass{book}
\usepackage{xepersian}
\settextfont{B Zar}

\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
    \if@mainmatter
    \refstepcounter{chapter}%
    \typeout{\@chapapp\space\thechapter.}%
    \addcontentsline{toc}{chapter}%
        {\protect\numberline{\chaptername~\tartibi{chapter}}#1}%
    \else
    \addcontentsline{toc}{chapter}{#1}%
    \fi
    \else
    \addcontentsline{toc}{chapter}{#1}%
    \fi
    \chaptermark{#1}%
    \addtocontents{lof}{\protect\addvspace{10\p@}}%
    \addtocontents{lot}{\protect\addvspace{10\p@}}%
    \if@twocolumn
    \@topnewpage[\@makechapterhead{#2}]%
    \else
    \@makechapterhead{#2}%
    \@afterheading
    \fi}


\begin{document}
\tableofcontents
\chapter{سلم}
\section{یبسیبسیب}
\chapter{بثیبسیب}
\section{یبسیبسیب}
\end{document}

答案1

\Hy@org@chapter是一个 hyperref 宏。但即使加载hyperref补丁尝试也会失败,因为原始定义看起来不像您提供的定义(您可以使用最后一个参数来激活“失败”分支以指示问题)。

按照第二种方法,它似乎有效,但是您需要\makeatletter/\makeatother

相关内容