lf 变成 fl 并且 if 变成 fi

lf 变成 fl 并且 if 变成 fi

我正在创建英语和阿拉伯语单词之间的词汇表。

\newglossaryentry{glos:halfsp}{name=Half-Spaces,text={\myLR{$Half$-Spaces}},description={أنصاف الفضاء}}

在 pdf 文件中给出了 Hafl-Spaces。

在序言中,我使用

\usepackage{polyglossia}
\setmainlanguage[locale=morocco]{arabic}
\setotherlanguage{english}

\newfontfamily\englishfont[Scale=1]{Amiri}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Amiri}

因为我正在用阿拉伯语写一本书。

我尝试了很多方法,但都没有解决。有什么帮助吗?

举例来说:

\documentclass[12pt,a4paper]{report}

\usepackage{glossaries}
\usepackage{glossary-mcols}
\renewcommand*{\glspostdescription}{\hfill}

\makeglossaries


\usepackage{polyglossia}
\setmainlanguage[locale=morocco]{arabic}
\setotherlanguage{english}

\newfontfamily\englishfont[Scale=1]{Amiri}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Amiri}


\newglossaryentry{glos:halfpln}{name=Half-Plane,text={\LR{Half-Plane}},description={نصف المستوى}}

\begin{document}

\gls{glos:halfpln}
\end{document}

答案1

问题在于您没有选择英语,因此您仍在为 Amiri 加载选项Script=Arabic。正如您在自我回答中指出的那样,明确的语言标记解决了这个问题。您可以写成\textenglish{half-plane}简写。

如果您希望文档在您更改脚本时自动更改语言,babel请支持此功能。此模板使用 2020 或更高版本的 LuaLaTeX 进行编译:

\documentclass[12pt,a4paper]{report}
\tracinglostchars=2

\usepackage{glossaries}
\usepackage{glossary-mcols}
\renewcommand*{\glspostdescription}{\hfill}

\makeglossaries

% Requires LuaHBTeX, or LuaLaTeX from 2020 or later.
\usepackage[bidi=basic, layout=sectioning]{babel}
\usepackage{unicode-math}

\babelprovide[import=ar-MA, main, onchar=ids fonts]{arabic}
\babelprovide[onchar=ids fonts]{english}

\defaultfontfeatures{Scale=MatchLowercase, Ligatures=TeX, Renderer=HarfBuzz}

\babelfont{rm}
          [Scale=1.0, Ligatures=Common, Script=Default, Language=Default]{Libertinus Serif}
\babelfont[arabic]{rm}
          {Amiri}
\babelfont{sf}
          [Ligatures=Common, Script=Default, Language=Default]{Libertinus Sans}
\babelfont[arabic]{sf}
          [Language=Default]{Noto Sans Arabic}
\babelfont{tt}
          [Script=Default, Language=Default]{Libertinus Mono}
\babelfont[arabic]{tt}
          {ALM Fixed}

\setmathfont{Libertinus Math}

\babeltags{english=english}
\babeltags{Arabic=arabic}

\newglossaryentry{glos:halfpln}{name=Half-Plane,text={Half-Plane},description={نصف المستوى}}

\begin{document}
\chapter{A Chapter}

\gls{glos:halfpln}
\printglossaries

للُّغَة العَرَبِيّة هي أكثر اللغات السامية تحدثاً، وإحدى أكثر اللغات انتشاراً في العالم، يتحدثها أكثر من 467 مليون نسمة،

\begin{english}
Arabic (اَلْعَرَبِيَّةُ, al-ʿarabiyyah, [al ʕaraˈbijːa] or عَرَبِيّ‎, ʿarabīy, [ˈʕarabiː]
or [ʕaraˈbij]) is a Semitic language that first emerged in the 1st to 4th
centuries CE.
\end{english}

\end{document}

Amiri/Libertinus 样本

几点说明。我仍然使用了一些语言标记,实际上是针对 IPA 字符的。可以调整哪些字符被视为哪种语言的一部分,但在需要以多种方式解释相同字符的更复杂的文档中,您可能需要返回手动标记。

我选择了 Khaled Hosny 的 Libertinus 系列(基于 Linux Libertine)作为他的 Amiri 的配套英语和数学字体。它们本身都很吸引人,而且非常匹配。我还加载了无衬线和固定宽度的阿拉伯字体,您可以自由更改它们。

所有使用不同字体来表示不同文字的文档都应包含命令\tracinglostchars=2。当当前字体缺少某个字符时,该命令会打印警告,而不是默默地记录错误。

如果您希望数字和计数器使用不同的形式,您可以提供诸如maparabic和之类的选项alph=alphabetic

答案2

我可以使用的一个解决方案(还有其他解决方案吗?)是在 glos 文件中的所有位置将 Half-Plane 替换为 \begin{english}Half-Plane\end{english}

这是工作

相关内容