如何在此 MWE 中保留 Mapping=arabicdigits 和 Ligatures=TeX?

如何在此 MWE 中保留 Mapping=arabicdigits 和 Ligatures=TeX?

请考虑以下 MWE:

MWE - 场景 1

\documentclass[demo]{scrartcl}
\usepackage{polyglossia}
\setmainlanguage[locale=mashriq,numerals=mashriq,abjadjimnotail=true]{arabic}
% \newfontfamily\arabicfont[Script=Arabic,Ligatures=TeX,Mapping=arabicdigits]{Simplified Arabic}
% \setsansfont[Script=Arabic,Ligatures=TeX,Mapping=arabicdigits]{Simplified Arabic}
\newfontfamily\arabicfont[Script=Arabic,Mapping=arabicdigits,Ligatures=TeX]{Simplified Arabic}
\setsansfont[Script=Arabic,Mapping=arabicdigits,Ligatures=TeX]{Simplified Arabic}

\usepackage[style=numeric,sorting=none,backend=biber]{biblatex}
\DefineBibliographyStrings{english}{%
  references = {المراجع}}
\makeatletter
\def\abx@comma{\ifdim\lastkern>\z@\unkern\fi\abx@puncthook{،}}
\makeatother

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{ibnsina,
    author = {{ابن سينا}},
    year = {{١٤١٧}},
    title = {السماع الطبيعى من كتاب الشفاء},
    publisher = {دار المناهل},
    location = {لبنان، بيروت}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}

هنا نص بالعربية مع ارقام هندي ١، ٢، ٣، الخ ومع الواصلة، واحدة - واثنتان -- وثلاثة ---.

احد المراجع\parencite{ibnsina}.

\printbibliography
\end{document}

输出--场景 1
在此处输入图片描述

MWE——场景 2

\newfontfamily\arabicfont[Script=Arabic,Ligatures=TeX,Mapping=arabicdigits]{Simplified Arabic}
\setsansfont[Script=Arabic,Ligatures=TeX,Mapping=arabicdigits]{Simplified Arabic}
% \newfontfamily\arabicfont[Script=Arabic,Mapping=arabicdigits,Ligatures=TeX]{Simplified Arabic}
% \setsansfont[Script=Arabic,Mapping=arabicdigits,Ligatures=TeX]{Simplified Arabic}

输出--场景2
在此处输入图片描述

我得到这两种效果中的任一种,取决于在阿拉伯字体定义末尾传递哪个参数。在场景 1 中,最后一个参数是Ligatures=TeX,而在场景 2 中,最后一个参数是Mapping=arabicdigits

问题
有什么方法可以同时保留印地语数字和 en dash 和 em dash 效果的 TeX 连字符?

笔记

  • 由 xetex 编译
  • \textemdash\textendash是显而易见的答案,但我不想在 Rt-to-Lt 文档中诉诸它们,因为它会产生混乱的文本脚本
  • 不需要的输出在屏幕截图中以黄色标记

答案1

您一次只能使用一个映射文件;因此解决方案是合并映射文件。

准备一个文件,texarabicdigits.map包含

; TECkit mapping for TeX input conventions <-> Unicode characters

LHSName "TeX-text"
RHSName "UNICODE"

pass(Unicode)

; ligatures from Knuth's original CMR fonts
U+002D U+002D           <>  U+2013  ; -- -> en dash
U+002D U+002D U+002D    <>  U+2014  ; --- -> em dash

U+0027          <>  U+2019  ; ' -> right single quote
U+0027 U+0027   <>  U+201D  ; '' -> right double quote
U+0022           >  U+201D  ; " -> right double quote

U+0060          <>  U+2018  ; ` -> left single quote
U+0060 U+0060   <>  U+201C  ; `` -> left double quote

U+0021 U+0060   <>  U+00A1  ; !` -> inverted exclam
U+003F U+0060   <>  U+00BF  ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C   <>  U+201E  ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C   <>  U+00AB  ; << -> LEFT POINTING GUILLEMET
U+003E U+003E   <>  U+00BB  ; >> -> RIGHT POINTING GUILLEMET

; from arabicdigits.map
U+0030 <> U+0660 ;
U+0031 <> U+0661 ;
U+0032 <> U+0662 ;
U+0033 <> U+0663 ;
U+0034 <> U+0664 ;
U+0035 <> U+0665 ;
U+0036 <> U+0666 ;
U+0037 <> U+0667 ;
U+0038 <> U+0668 ;
U+0039 <> U+0669 ;

现在运行

teckit_compile texarabicdigits

这将生成一个文件texarabicdigits.tec。将其保存在与主文件相同的目录中。现在以下测试文件

\documentclass[demo]{scrartcl}
\usepackage{polyglossia}
\setmainlanguage[locale=mashriq,numerals=mashriq,abjadjimnotail=true]{arabic}
\newfontfamily\arabicfont[Script=Arabic,Mapping=texarabicdigits]{Scheherazade}
\newfontfamily\arabicfontsf[Script=Arabic,Mapping=texarabicdigits]{Scheherazade}

\usepackage[style=numeric,sorting=none,backend=biber]{biblatex}
\DefineBibliographyStrings{english}{%
  references = {المراجع}}
\makeatletter
\def\abx@comma{\ifdim\lastkern>\z@\unkern\fi\abx@puncthook{،}}
\makeatother

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{ibnsina,
    author = {{ابن سينا}},
    year = {{١٤١٧}},
    title = {السماع الطبيعى من كتاب الشفاء},
    publisher = {دار المناهل},
    location = {لبنان، بيروت}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}

هنا نص بالعربية مع ارقام هندي ١، ٢، ٣، الخ ومع الواصلة، واحدة - واثنتان -- وثلاثة ---.

احد المراجع\parencite{ibnsina}.

\printbibliography
\end{document}

将产生以下输出

在此处输入图片描述

然后可以将和.tec文件.map移动到本地 TeX 树中。

相关内容