我有这个例子,作为arabic
第二语言\pagenumbering{roman}
不要将页码格式更改为罗马数字
评论
如果我们删除章节标题,就可以更改页码。
\documentclass[12pt]{report}
\usepackage[T1]{fontenc}
%\usepackage[french]{babel}
\usepackage[arabic,french]{babel}
\begin{document}
\pagenumbering{roman}
%\renewcommand{\thepage}{foo}
\chapter{First chap} % problem does not appear if we remove chapter headings
\section{First sec}
\newpage
text
\newpage
text
\end{document}
答案1
对阿拉伯语的支持pdftex
是一个单独的包 ( arabi
)。请参阅https://ctan.org/pkg/arabi。我认为它主要针对大多数阿拉伯语文档,因此如果布局代码发生变化,我不会感到惊讶。但是,对于短文本(几个单词),定义一个简单的宏很容易:
\documentclass[12pt]{report}
\usepackage[LAE,T1]{fontenc}
\usepackage[spanish, bidi=default]{babel}
\newcommand\usearabic[1]{{\fontencoding{LAE}\selectfont\beginR#1\endR}}
\begin{document}
Text \usearabic{اثنين ثلاثة} text \usearabic{ثلاثة} text.
\end{document}
答案2
在文件中,arabicore.sty
我们可以找到重新定义\ps@plain
,\ps@myheadings
其中\ps@headings
包括重新定义\thepage
命令
\let\SAV@ps@plain\ps@plain
\let\SAV@ps@myheadings\ps@myheadings
\let\SAV@ps@headings\ps@headings
%
\def\ps@plain{\ps@empty%
\gdef\thepage{\protect\if@rlmain\protect\I{\number\c@page}%
\protect\else\protect\textLR{\number\c@page}%
\protect\fi}%
\SAV@ps@plain}
%
\def\ps@myheadings{\ps@empty%
\gdef\thepage{%
\protect\if@rlmain\protect\I{\number\c@page}%
\protect\else\protect\textLR{\number\c@page}%
\protect\fi}%
\SAV@ps@myheadings}
%
\def\ps@headings{\ps@empty%
\gdef\thepage{%
\protect\if@rlmain\protect\I{\number\c@page}%
\protect\else\protect\textLR{\number\c@page}%
\protect\fi}%
\SAV@ps@headings}
我们需要使用以下方法恢复宏的初始定义
\let\ps@plain\SAV@ps@plain
\let\ps@myheadings\SAV@ps@myheadings
\let\ps@headings\SAV@ps@headings
例如变成
\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[arabic,french]{babel}
\begin{document}
\makeatletter
\let\ps@plain\SAV@ps@plain
\let\ps@myheadings\SAV@ps@myheadings
\let\ps@headings\SAV@ps@headings
\makeatother
\renewcommand{\thepage}{foo}
%\pagenumbering{roman}
\chapter{First chap}
\section{First sec}
\newpage
text
\newpage
text
\end{document}