带有 XePersian 的拉丁页码?

带有 XePersian 的拉丁页码?

我最近一直在使用 XePersian 以传统方式排版波斯语和阿拉伯语诗歌,即两列对齐。诗歌格式由 bidipoem 包完成,一切都很好。如果在每列中添加 kashidas,效果会更好,据我所知,目前只有通过 XePersian 才能做到这一点。

无论如何,尽管我仔细阅读了 XePersian 文档,但我唯一想不通的是如何获取拉丁文(而不是默认的波斯文)页码。有什么想法吗?我知道这是一个具体且可能很愚蠢的问题,但我似乎无法弄清楚。为了保险起见,我将在下面复制我的序言。

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[12pt,letterpaper]{article}
\usepackage{hyperref}
\usepackage{setspace}
\usepackage{bidipoem}
\usepackage[Kashida]{xepersian}
\settextfont[Scale=1.4]{Scheherazade}
\setlatintextfont{Brill}
\begin{document}
\begin{latin}
Latin Text
\end{latin}
\end{document}

等等。我添加了最后一行来表明我正在进入拉丁文本环境,它可以很好地切换到以拉丁字母打印除页码之外的所有内容。

谢谢!

答案1

您可以重新定义plain页面样式:

\makeatletter
\def\ps@plain{%
  \let\@mkboth\@gobbletwo
  \let\@oddhead\@empty
  \def\@oddfoot{\reset@font\hfil\lr{\arabic{page}}\hfil}%
  \let\@evenhead\@empty
  \let\@evenfoot\@oddfoot}
\makeatother
\pagestyle{plain}

一个不那么令人生畏的方法是fancyhdr

\usepackage{fancyhdr} % must go before bidipoem

\fancypagestyle{plain}{%
  \fancyhf{}%
  \renewcommand{\headrulewidth}{0pt}%
  \fancyfoot[C]{\lr{\arabic{page}}}%
}
\pagestyle{plain}

第一行必须在加载之前进行bidipoem,其余部分可以放在序言中的任何位置。

注意:您收到的警告\renewcommand{\thepage}{\lr{\arabic{page}}}是由于\lr不可扩展且不是无害:书签全部都是错误的。

因此,正如 Vafa Khalighi 所建议的,如下定义

\renewcommand{\thepage}{\texorpdfstring{\lr{\arabic{page}}}{\arabic{page}}}

可能会更受欢迎。

答案2

您只需重新定义\thepage即可切换到拉丁字体。根据 Vafa 对 egreg 的回答的评论,这应该这样做:

\renewcommand{\thepage}{\texorpdfstring{\lr{\arabic{page}}}{\arabic{page}}}

相关内容