到目前为止我已经这样做了:
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8
\documentclass{biditufte-book}
\usepackage{ptext}
\usepackage{xcolor}
\usepackage{showframe}
\usepackage{fancyhdr} % Required for header and footer configuration
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\normalsize\bfseries #1}{}} % Chapter text font settings
\renewcommand{\sectionmark}[1]{\markright{\normalsize\bfseries #1}{}} % Section text font settings
\renewcommand{\headrulewidth}{0pt}
\setlength{\headheight}{16.5pt}% fancyhdr tells you the length
\newlength{\bluerulelength}
\setlength{\bluerulelength}{\textwidth}
\addtolength{\bluerulelength}{\marginparsep}
\addtolength{\bluerulelength}{\marginparwidth}
\newlength{\pagenumberboxskip}
\setlength{\pagenumberboxskip}{-\bluerulelength}
\addtolength{\pagenumberboxskip}{1cm}
\addtolength{\pagenumberboxskip}{10pt}
\fancyhf{}
\fancyhead[LE]{%
\small
\makebox[-5pt][r]{ \pagenumbox{1cm}}%
\pagehead{\quad\quad\quad\quad\nouppercase{\leftmark}\hfill}%
}
\fancyhead[LO]{%
\small
\makebox[\pagenumberboxskip][r]{ \pagenumbox{1cm}}%
\pagehead{\hfill\nouppercase{\rightmark}\quad\quad\quad\quad}%
}
\newcommand{\pagenumbox}[1]{%
\begingroup\fboxsep=0pt
\colorbox{blue!20}{\pagestrut
\makebox[#1][c]{\thepage}%
}%
\endgroup
}
\newcommand{\pagehead}[1]{%
\begingroup\fboxsep=0pt
\colorbox{blue}{\pagestrut
\makebox[\bluerulelength][s]{#1}%
}%
\endgroup
}
\newcommand{\pagestrut}{%
\vrule width 0pt
height 1.5\ht\strutbox
depth 1.5\dp\strutbox
}
% Removes the header from odd empty pages at the end of chapters
\makeatletter
\renewcommand{\cleardoublepage}{
\clearpage\ifodd\c@page\else
\hbox{}
\vspace*{\fill}
\thispagestyle{empty}
\newpage
\fi}
\usepackage[localise=on]{xepersian}
\settextfont{Times New Roman}
\setdigitfont{Times New Roman}
\begin{document}
\chapter{مشاهدهپذیری}
\ptext
\section{مقدمه}
\ptext[1-10]
\section{مقدمه}
\ptext[1]
\end{document}
这会创建如下内容:
但这不是我想要的。有人能帮我吗?
答案1
内容bidi
对 进行了一些更改fancyhdr
,以适应双向排版。对我来说,这很令人困惑,因为我不熟悉双向排版。例如,要将标题偏移到左侧,通常在fancyhdr
您使用\fancyhfoffset[L]{some length}
。但是对于双向排版,您必须使用\fancyhfoffset[R]{some length}
。而且标题的行为方式也不同。也许还有L
和R
被交换了。无论如何,我试图找到一个解决方案,但它包含一些我反复试验发现的长度,我真的不知道这些数字从何而来。
我还删除了\bluerulelength
和\pagenumberboxskip
。我以为蓝色框可以做得\paperwidth
更长,因为这样可以填满整个页面的宽度,但我不得不增加 2 厘米才能正确显示。无论如何,这里有一个可能有用的方法。如果您知道如何解释各种长度,请告诉我。
\setlength{\headheight}{18pt}% fancyhdr tells you the length
\newcommand{\oddoffset}{81mm} % Why? I don't know
\newcommand{\evenoffset}{26mm}
\fancyhf{}
\AtBeginDocument{%
\fancyhfoffset[RO]{\oddoffset}%
\fancyhfoffset[RE]{\evenoffset}%
}
\fancyhead[LE]{%
\small
\pagehead{\hspace*{\evenoffset}\pagenumbox{1cm}\quad\nouppercase{\leftmark}\hfill}%
}
\fancyhead[LO]{%
\small
\pagehead{\hfill\nouppercase{\rightmark}\quad\pagenumbox{1cm}\hspace*{42mm}}%
}
\newcommand{\pagenumbox}[1]{%
\begingroup\fboxsep=0pt
\colorbox{blue!20}{\pagestrut
\makebox[#1][c]{\thepage}%
}%
\endgroup
}
\newcommand{\pagehead}[1]{%
\begingroup\fboxsep=0pt
\hspace*{-\evenoffset}%
\colorbox{blue}{\pagestrut
\makebox[\paperwidth+2cm][s]{#1}%
}%
\endgroup
}