在Pandoc中结合拉丁与阿语/希伯来文生成LaTeX的问题
问题分析与解决方案
你的核心错误
- 配置中错误地将
\hebrewfont的脚本设置为Script=Arabic,希伯来文对应的脚本应为Script=Hebrew。 - 嵌入英文单词的阿拉伯字符未被
polyglossia识别为阿拉伯语环境,因此仍会调用主字体Brill(缺少对应字符),导致显示方框。
最优解决方案(自动字符回退,无需手动标记)
直接通过fontspec为主字体设置** fallback 字体**,当Brill缺少目标字符时,自动切换到对应字体显示,无需额外语言标记,适合嵌入字符的场景:
--- mainfont: "Brill" mainfontoptions: - RawFeature=+fallback=Scheherazade New;+fallback=Amiri header-includes: - \usepackage{fontspec} --- # English only Lorem ipsum # English with Arabic oﺵﻉerim # Hebrew text שלום עולם
备选方案(明确语言环境,适合连续非英文段落)
若需要对连续的阿拉伯/希伯来文段落做语言标记,需修正polyglossia配置,并手动包裹非英文内容:
--- mainfont: "Brill" header-includes: - \usepackage{polyglossia} - \setmainlanguage{english} - \setotherlanguage{arabic} - \setotherlanguage{hebrew} - \newfontfamily\arabicfont[Script=Arabic]{Scheherazade New} - \newfontfamily\hebrewfont[Script=Hebrew]{Amiri} --- # English only Lorem ipsum # English with Arabic o\textarabic{ﺵﻉ}erim # Hebrew paragraph \texthebrew{שלום עולם,这是一段连续的希伯来文文本}
另一种高效方案(使用babel自动识别脚本)
babel对XeLaTeX的字体切换支持更智能,可自动检测字符所属脚本并切换字体:
--- mainfont: "Brill" header-includes: - \usepackage[english,arabic,hebrew]{babel} - \babelfont{rm}{Brill} - \babelfont[arabic]{rm}{Scheherazade New} - \babelfont[hebrew]{rm}{Amiri} --- # English only Lorem ipsum # English with Arabic oﺵﻉerim # Hebrew text שלום עולם
内容的提问来源于stack exchange,提问作者bulbul
相关产品推荐
相关产品推荐

