我最近一直在使用 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}}}