令人不安的字形

令人不安的字形

为了使用我在 Windows 10 上使用过的相同键盘布局输入阿拉伯语,我创建了一个.mim文件(键映射文件)并将其放入/usr/share/m17n以使其ibus-m17n在基于 Ubuntu 18.04 LTS 的 KDE Neon 上运行。除了装饰括号、普通括号、大括号、方括号和尖括号之外,所有内容都按我的预期工作。这是我的 tex 文档:

\documentclass{article}
\usepackage{harfload, fontspec, arabluatex}
\usepackage[a4paper, margin=1in]{geometry}
%\setmainfont{Kalpurush}[RawFeature={mode=harf}]
\newfontfamily\arabicfont[Script = Arabic]{Al Qalam Quran Majeed Web} 
\newcommand{\textarabic}[1]{\bgroup\textdir TRT\arabicfont #1\egroup}     % Arabic inside LTR
\newcommand{\n}[1]{\bgroup\textdir TLT #1\egroup}     % for digits inside Arabic text
\newcommand{\afootnote}[1]{\footnote{\textarabic{#1}}}     % Arabic footnotes
\newenvironment{Arabic}{\textdir TRT\pardir TRT\arabicfont}{}     % Arabic paragraph
\parindent 0pt
\begin{document}
    \textarabic{﴾وَصِيَّةً﴿ مِّنَ ٱللّٰه} \\
    \textarabic{(وَصِيَّةً) مِّنَ ٱللّٰه} \\ 
    \textarabic{\{وَصِيَّةً\} مِّنَ ٱللّٰه} \\
    \textarabic{[وَصِيَّةً] مِّنَ ٱللّٰه} \\
    \textarabic{<وَصِيَّةً> مِّنَ ٱللّٰه}   
\end{document}

以下是我得到的信息:

在此处输入图片描述

这是harflatex/lualatex问题吗?还是我在制作键盘布局时遗漏了什么?映射如下所示:

;; It's an edited copy of "ar-kbd.mim" file.
(input-method ar phonetic)
(description "Arabic Phonetic (MS Windows).")
(title "ض")

(map
 (arabic
  ("`" "`")
  ("1" "١")
  .
  .
  .
  ("[" "[")
  ("]" "]")
  ("a" "ا")
  .
  .
  .
  ("\(" "\(")
  ("\)" "\)")
  .
  .
  .
  ("{" "{")
  ("}" "}")
  .
  .
  .
  ("<" "<")
  (">" ">")
  .
  .
  .
  ((G-9) "﴾")
  ((G-0) "﴿")
  .
  .
  .
  ((KP_Add) "+")
  ((KP_Subtract) "-")
  )
)

(state
 (init
  (arabic)))

我已经为知道如何修复 libreoffice writer 中这些问题的任何人添加了 libreoffice 产生的输出。

答案1

arabluatex 或多或少说对了。对于括号,你应该根据文档使用\abraces,装饰括号是故意不反映在 Unicode 中的:

\documentclass{article}
\usepackage{arabluatex}
\newfontfamily\arabicfont{Amiri}[Script = Arabic]
\begin{document}
    \arb{﴾وَصِيَّةً﴿ مِّنَ ٱللّٰه} \\
    \arb{(وَصِيَّةً) مِّنَ ٱللّٰه} \\
    \arb{\{وَصِيَّةً\} مِّنَ ٱللّٰه} \\
    \arb{\abraces{وَصِيَّة} مِّنَ ٱللّٰه} \\
    \arb{[وَصِيَّةً] مِّنَ ٱللّٰه} \\
    \arb{<وَصِيَّةً> مِّنَ ٱللٰه}
\end{document}

在此处输入图片描述

luahblatex 与 luaotfload 3.11 配合使用也正确无误(同样,装饰括号除外,它们故意未在 Unicode 中反映出来):

\documentclass{article}
\usepackage{fontspec}
\newfontfamily\arabicfont{Amiri}[Script = Arabic,Renderer=Harfbuzz]
\newcommand{\textarabic}[1]{\bgroup\textdir TRT\arabicfont #1\egroup} 
\begin{document}
    \textarabic{﴾وَصِيَّةً﴿ مِّنَ ٱللّٰه} \\
    \textarabic{(وَصِيَّةً) مِّنَ ٱللّٰه} \\
    \textarabic{\{وَصِيَّةً\} مِّنَ ٱللّٰه} \\
    \textarabic{[وَصِيَّةً] مِّنَ ٱللّٰه} \\
    \textarabic{<وَصِيَّةً> مِّنَ ٱللٰه}
\end{document}

在此处输入图片描述

使用标准 luatex 会失败,因为 luaotfload/fontloader 会忽略 bidi-mirrored 功能,请参见https://github.com/u-fischer/luaotfload/issues/61

\documentclass{article}
\usepackage{fontspec}
\newfontfamily\arabicfont{Amiri}[Script = Arabic]
\newcommand{\textarabic}[1]{\bgroup\textdir TRT\arabicfont #1\egroup} 
\begin{document}
    \textarabic{﴾وَصِيَّةً﴿ مِّنَ ٱللّٰه} \\
    \textarabic{(وَصِيَّةً) مِّنَ ٱللّٰه} \\
    \textarabic{\{وَصِيَّةً\} مِّنَ ٱللّٰه} \\
    \textarabic{[وَصِيَّةً] مِّنَ ٱللّٰه} \\
    \textarabic{<وَصِيَّةً> مِّنَ ٱللٰه}
\end{document}

在此处输入图片描述

答案2

[已编辑] [注:这不是答案,只是一个简单的补充说明]

这适用于标准luatex,但已使用 LRE、RLE 和 PDF 字符(Pop Directional Formatting)。然而,大多数字体luaotfload默认打印这些标记(见下面的屏幕截图)。

\documentclass{article}
\usepackage{fontspec}
\newfontfamily\arabicfont{Amiri}[Script = Arabic]
\begin{document}
\pardir TRT\textdir TRT\arabicfont\noindent
‪﴿‬وَصِيَّةً‪﴾‬ مِّنَ ٱللّٰه\\
‪)‬وَصِيَّةً‪(‬ مِّنَ ٱللّٰه\\
‪\}‬وَصِيَّةً‪\{‬ مِّنَ ٱللّٰه\\
‪]‬وَصِيَّةً‪[‬ مِّنَ ٱللّٰه\\
‪>‬وَصِيَّةً‪<‬ مِّنَ ٱللّٰه\\
\end{document}

在此处输入图片描述

相关内容