
我使用該fancyhdr
套件來更改頁首和頁尾樣式。我這樣做是為了讓章節名稱出現在標題中。另外,我將其設定為使章節號出現在頁腳中的頁碼之前。我正在使用 XELATEX + POLYGLOSSIA
關於頁碼:它不像頁尾那樣出現在目錄中,只顯示頁碼,不顯示章節號。
關於章節名稱:章節命名的標籤未正確顯示在標題中(它們與標題和主章節名稱不同)。 (阿拉伯字體連結(DL 和安裝)https://fontzone.net/font-details/simplified-arabic)此修改正確顯示在標題中:
\gappto\captionsarabic{\renewcommand{\chaptername}{الباب}}
而這個則沒有:
\makeatletter
\patchcmd{\@makechapterhead}{\thechapter}{\words{chapter}}{}{}
\makeatother
這是完整的程式碼:
\documentclass[a4paper,12pt,twoside]{book}
\usepackage[a4paper,top=2.5cm,bottom=2.5cm,margin=2.5cm,bindingoffset=0.5cm]{geometry}
\usepackage{fontspec}
\usepackage [hidelinks,colorlinks=true,linkcolor = blue,anchorcolor = blue,citecolor = blue,filecolor = blue,urlcolor = blue]{hyperref}
\usepackage{url,graphicx}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,arrows,positioning,matrix,quotes, shapes.geometric,calc}
\usepackage{rotating}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{\rightmark}
\rhead{\leftmark}
\cfoot{\thechapter-\thepage}
\renewcommand{\headrulewidth}{2pt}
\renewcommand{\footrulewidth}{2pt}
\usepackage{polyglossia}
\setdefaultlanguage[calendar=gregorian,locale=default,numerals=mashriq]{arabic}
\setotherlanguages{english}
\newfontfamily\arabicfont[Script=Arabic,Mapping=arabicdigits]{Simplified Arabic}
% MACROS FOR CHANGING CHAPTER NAMES %
\gappto\captionsarabic{\renewcommand{\chaptername}{الباب}} %to name the chapter title الباب instead of باب
\newcommand\words[1]{\expandafter\xwords\csname c@#1\endcsname}
\def\xwords#1{\ifcase#1\or
الأول\or
الثاني\or
الثالث\or
الرابع\or
الخامس\or
السادس\or
السابع\or
الثامن\or
التاسع\or
العاشر\or
الحادي عشر\or
الثاني عشر\or
الثالث عشر\or
الرابع عشر\or
الخامس عشر\or
السادس عشر\or
السابع عشر\or
الثامن عشر\or
التاسع عشر\or
العشرون\or
\else
I need more words أحتاج إلى المزيد من ترقيمات الأبواب بالحروف في ملف arbbook.cls\fi}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makechapterhead}{\thechapter}{\words{chapter}}{}{}
\makeatother
%
\title{}
\author{}
\date{}
\begin{document}
\tableofcontents{}
\chapter{fgfdfgfdg}
\subsection{سيسس}
\subsection{سيسس}
\subsection{سيسس}
\subsection{سيسس}
\newpage
\subsection{سيسس}
\subsection{سيسس}
\subsection{سيسس}
\subsection{سيسس}
\end{document}
答案1
雖然,你的問題對我來說不太清楚(可能是因為我看不懂阿拉伯語),但我認為這符合你的要求。我已經利用過這個答案。我認為您可能需要花一些時間閱讀手冊來babel
了解其所有 BiDi 設定和選項才能獲得您想要的輸出。
微量元素
編譯用lualatex
.
\documentclass[a4paper,12pt]{book}
\usepackage[nil,bidi=basic-r,layout=counters]{babel}
\babelprovide[import=ar,mapdigits,main]{arabic}
\babelprovide[import=en,language=Default]{english}
\babelfont{rm}{Latin Modern Roman}
\babelfont[arabic]{rm}{Amiri}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{\rightmark}
\fancyhead[R]{\leftmark}
\renewcommand{\headrulewidth}{2pt}
\renewcommand{\footrulewidth}{2pt}
\makeatletter
\renewcommand{\thepage}{\thechapter-\csname @arabic\endcsname\c@page}
\makeatother
\usepackage[hidelinks,colorlinks=true,allcolors=blue]{hyperref}
\usepackage{etoolbox}
\gappto\captionsarabic{\renewcommand{\chaptername}{الباب}}
\newcommand\words[1]{\expandafter\xwords\csname c@#1\endcsname}
\def\xwords#1{%
\ifcase#1\or
الأول\or
الثاني\or
الثالث\or
الرابع\or
\else
I need more words\fi}
\makeatletter
\pretocmd{\Hy@org@chapter}
{\begingroup \renewcommand{\thechapter}{{\words{chapter}}}}
{}
{}
\patchcmd{\Hy@org@chapter}
{\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}}
{\addcontentsline{toc}{chapter}{\@chapapp\space\words{chapter}\space#1}}
{}
{}
\apptocmd{\Hy@org@chapter}
{\endgroup}
{}
{}
\patchcmd{\@makechapterhead}
{\thechapter}
{\words{chapter}}
{}
{}
\makeatother
\begin{document}
\tableofcontents{}
\chapter{سيسس}
\section{سيسس}
\subsection{سيسس}
\subsection{سيسس}
\subsection{سيسس}
\clearpage
\section{سيسس}
\subsection{سيسس}
\subsection{سيسس}
\subsection{سيسس}
\end{document}