我正在创建英语和阿拉伯语单词之间的词汇表。
\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}
几点说明。我仍然使用了一些语言标记,实际上是针对 IPA 字符的。可以调整哪些字符被视为哪种语言的一部分,但在需要以多种方式解释相同字符的更复杂的文档中,您可能需要返回手动标记。
我选择了 Khaled Hosny 的 Libertinus 系列(基于 Linux Libertine)作为他的 Amiri 的配套英语和数学字体。它们本身都很吸引人,而且非常匹配。我还加载了无衬线和固定宽度的阿拉伯字体,您可以自由更改它们。
所有使用不同字体来表示不同文字的文档都应包含命令\tracinglostchars=2
。当当前字体缺少某个字符时,该命令会打印警告,而不是默默地记录错误。
如果您希望数字和计数器使用不同的形式,您可以提供诸如maparabic
和之类的选项alph=alphabetic
。
答案2
我可以使用的一个解决方案(还有其他解决方案吗?)是在 glos 文件中的所有位置将 Half-Plane 替换为 \begin{english}Half-Plane\end{english}
这是工作