尝试使用 TikZ 使阿拉伯文本遵循路径时出现问题

尝试使用 TikZ 使阿拉伯文本遵循路径时出现问题

我需要使用 TikZ 使阿拉伯语文本遵循一些曲线路径。这是我正在使用的示例代码:

\documentclass{book}
\usepackage{xcolor}
\usepackage{tikz}
\usetikzlibrary{decorations.text}

\usepackage{fontspec}
\usepackage{polyglossia}

\setmainlanguage{english}
\setotherlanguage{arabic}

\newfontfamily\arabicfont[Script=Arabic,Scale=1.1]{GretaArabicAR-Regular}
\newfontfamily{\arr}[Script=Arabic,Scale=1.1]{GretaArabicAR-Regular}
\newfontfamily{\arb}[Script=Arabic,Scale=1.1]{GretaArabicAR-Bold}

\begin{document}

\begin{tikzpicture}
\draw[postaction={decorate,decoration={text along path,text align=center,
text={|\fontsize{20pt}{20}\selectfont\arb|إلى حبيبي لوكاس"!},
raise=-1pt}}](58mm, -64mm)to[bend left=35] (152mm, -36mm){};
\end{tikzpicture}

\textarabic{\arb\fontsize{20pt}{20}\selectfont{إلى حبيبي لوكاس"!}}

\end{document} 

在此处输入图片描述

当我编译它时,有两个问题:

  1. 字符扭曲了,好像不是同一种字体(仔细看看 ل 这个字符)
  2. 我无法强制 RTL 到文本本身。它只是忽略我。

以下是我获取的示例 PDF 和我尝试使用的字体:https://www.dropbox.com/sh/qx3yzfaavf8io9j/AACEdkMKQFaPr-oNj8BOQ2iXa?dl=0

有人可以解释一下我遇到的这些问题吗?

答案1

字符没有扭曲,但它们只是孤立的形式。阿拉伯语不能轻易地在弯曲的路径上排版,因为字符无法正确地连接在一起。但是,可以将单词与路径对齐。请参阅以下 MWE(另请参阅问题):

\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{decorations.text}

\usepackage{fontspec}
\usepackage{polyglossia}

\setmainlanguage{english}
\setotherlanguage{arabic}

\newfontfamily\arabicfont[Script=Arabic,Scale=1.1]{GretaArabicAR-Regular}
\newfontfamily{\arr}[Script=Arabic,Scale=1.1]{GretaArabicAR-Regular}
\newfontfamily{\arb}[Script=Arabic,Scale=1.1]{GretaArabicAR-Bold}

\begin{document}

\begin{tikzpicture}\arb\fontsize{20pt}{20}\selectfont
  \draw[postaction={decorate,decoration={text along path,text align=center,text format delimiters={|}{|},text={|\textarabic|{لوكاس"!} |\textarabic|{حبيبي} |\textarabic|{إلى}},raise=-1pt}}](58mm, -64mm)to[bend left=35] (152mm, -36mm){};
\end{tikzpicture}

\textarabic{\arb\fontsize{20pt}{20}\selectfont{إلى حبيبي لوكاس"!}}

\end{document} 

得出的结果(使用 Amiri 代替 Greta):

在此处输入图片描述

相关内容