将一个脚本中的字符替换为另一个脚本中的字符

将一个脚本中的字符替换为另一个脚本中的字符

我正在使用 XeLaTeX + Memoir 工作,我有两个文档:一个用英语排版,另一个用阿拉伯语排版。由于这两个文档是相关的,我正在使用该包xr在两者之间建立交叉引用。我的阿拉伯语文本使用东部阿拉伯语(所谓的阿拉伯-印度语)数字。当xr将交叉引用的页码从阿拉伯语文档拉入我的英语文档时,显示的数字是阿拉伯-印度语 ١。

我希望将其显示为英语中使用的(常规)阿拉伯数字:1。显然,这是两个不同的字符,具有不同的字形。我使用的字体是 Khaled Hosny 的出色 Amiri,包含这两个字符(尽管在稍后阶段,英文文本将以不同的拉丁字体排版)。

因此,我的问题是,假设字体包含两个字符,我该如何用一个字符(1)替换另一个字符(١)?

以下是 MWE 文件(为了xr使其工作,您必须先编译第一个,然后编译第二个,然后再次重新编译第一个):

minimalxr1.tex

\documentclass{memoir}
\usepackage{xr}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{arabic}

\setromanfont[Mapping=tex-text,Numbers=OldStyle,Ligatures=Common]{Amiri}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2,WordSpace=1.66]{Amiri}

\externaldocument{minimalxr2}

\begin{document}

This is a test of cross-referencing to this page \pageref{test}.

\end{document}

minimalxr2.tex

\documentclass{memoir}
\usepackage{xr}
\usepackage{polyglossia}
\setmainlanguage[numerals=mashriq]{arabic}
\newfontfamily\arabicfont[Ligatures=TeX,Script=Arabic,Scale=1.2,WordSpace=1.66]{Amiri}

\externaldocument{minimalxr1}

\begin{document}

\begin{Arabic}

هذا أنموذج 
\label{test}

\end{Arabic}

\end{document}

答案1

如果您不需要阿拉伯语minimalxr1.tex,您可以\newunicodechar按如下方式使用。可以添加语言测试。

minimalxr1.tex

\documentclass{memoir}
\usepackage{xr}
\usepackage{polyglossia}
\usepackage{newunicodechar}
\setmainlanguage{english}
\setotherlanguage{arabic}

\newunicodechar{١}{1}
\newunicodechar{٢}{2}
\newunicodechar{٣}{3}
\newunicodechar{٤}{4}
\newunicodechar{٥}{5}
\newunicodechar{٦}{6}
\newunicodechar{٧}{7}
\newunicodechar{٨}{8}
\newunicodechar{٩}{9}
\newunicodechar{٠}{0}


\setmainfont[Mapping=tex-text,Numbers=OldStyle,Ligatures=Common]{Amiri}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2,WordSpace=1.66]{Amiri}

\externaldocument{minimalxr2}

\begin{document}

This is a test of cross-referencing to this page \pageref{test}.

Also \pageref{2},
\pageref{3},
\pageref{4},
\pageref{5},
\pageref{6},
\pageref{7},
\pageref{8},
\pageref{9},
\pageref{10}

\end{document}

minimalxr2.tex

\documentclass{memoir}
\usepackage{xr}
\usepackage{polyglossia}
\setmainlanguage[numerals=mashriq]{arabic}
\newfontfamily\arabicfont[Ligatures=TeX,Script=Arabic,Scale=1.2,WordSpace=1.66]{Amiri}

\externaldocument{minimalxr1}

\begin{document}

\begin{Arabic}

هذا أنموذج 
\label{test}

\end{Arabic}

\newpage
x\label{2}

\newpage
x\label{3}

\newpage
x\label{4}

\newpage
x\label{5}

\newpage
x\label{6}

\newpage
x\label{7}

\newpage
x\label{8}

\newpage
x\label{9}

\newpage
x\label{10}

\end{document}

minimalxr1.pdf

在此处输入图片描述

相关内容