使页眉宽度覆盖整个页面

使页眉宽度覆盖整个页面

我需要为偶数页和奇数页设置一个标题,如下所示: 在此处输入图片描述

到目前为止我已经这样做了:

% !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}。而且标题的行为方式也不同。也许还有LR被交换了。无论如何,我试图找到一个解决方案,但它包含一些我反复试验发现的长度,我真的不知道这些数字从何而来。

我还删除了\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
}

相关内容