
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 설정과 옵션을 이해하려면 설명서를 읽는 데 시간을 좀 투자해야 할 것입니다 .
MWE
.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}