全新安装 CentOS 8,使用 Sphinx (3.0.3),并将 latex-engine 设置为 xelatex。
我遇到了一些问题,但经过一些工作后问题就解决了 - 搜索和安装(例如 cmap.sty)。我想我最终还是dnf install texlive-*
尝试让它工作了。
最后,我遇到了瓶颈:
(/usr/share/texlive/texmf-dist/tex/latex/polyglossia/gloss-english.ldf)kpathsea:make_tex: Invalid filename `[FreeSerif.otf]/OT', contains '['
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "FreeSerif" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
我成功安装了一堆免费字体dnf install gnu-free-serif-fonts gnu-free-mono-fonts gnu-free-sans-fonts gnu-free-fonts-common
,运行了 fc-cache 后就可以看到字体了fc-list | grep FreeSerif
:
/usr/share/fonts/gnu-free/FreeSerifBoldItalic.ttf: FreeSerif:style=Bold Italic,получерен курсивен,negreta cursiva,tučné kurzíva,fed kursiv,Fett-Kursiv,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Félkövér dőlt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itálico,gros cursiv,Обычный Курсив,Tučná kurzíva,Fet Kursiv,ตัวเอียงหนา,Kalın İtalik,huruf tebal kursif,жирний курсив,Polkrepko Pežeče,treknais kursīvs,pusjuodis kursyvas,nghiêng đậm,Lodi etzana,धृष्ट-तिरछा
/usr/share/fonts/gnu-free/FreeSerifBold.ttf: FreeSerif:style=Bold,получерен,negreta,tučné,fed,Fett,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,gros,Обычный,Fet,ตัวหนา,Kalın,huruf tebal,жирний,Polkrepko,treknraksts,pusjuodis,ضخیم,đậm,Lodia,धृष्ट
/usr/share/fonts/gnu-free/FreeSerifItalic.ttf: FreeSerif:style=Italic,курсивен,cursiva,kurzíva,kursiv,Λειψίας,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,kursywa,Itálico,cursiv,Курсив,ตัวเอียง,İtalik,kursif,Ležeče,kursīvs,kursivas,nghiêng,Etzana,तिरछा
/usr/share/fonts/gnu-free/FreeSerif.ttf: FreeSerif:style=Regular,нормален,normal,obyčejné,Mittel,µεσαία,Normaali,Normál,Normale,Gemiddeld,odmiana zwykła,Обычный,Normálne,ปกติ,menengah,прямій,Navadno,vidējs,normalusis,عادی,vừa,Arrunta,सामान्य
看到文件是 ttf,而 polyglossia 需要 otf,所以我下载了OTF 的来自GNU 网站,解压它们,将它们复制到/usr/share/fonts/gnu-free
并运行fc-cache
。我仍然收到相同的错误 - 即使 fc-list 现在找到了它们:
[root@server ~]# fc-list | grep FreeSerif.*otf
/usr/share/fonts/gnu-free/FreeSerifItalic.otf: FreeSerif:style=Italic,курсивен,cursiva,kurzíva,kursiv,Λειψίας,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,kursywa,Itálico,cursiv,Курсив,ตัวเอียง,İtalik,kursif,Ležeče,kursīvs,kursivas,nghiêng,Etzana,तिरछा
/usr/share/fonts/gnu-free/FreeSerifBoldItalic.otf: FreeSerif:style=Bold Italic,получерен курсивен,negreta cursiva,tučné kurzíva,fed kursiv,Fett-Kursiv,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Félkövér dőlt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itálico,gros cursiv,Обычный Курсив,Tučná kurzíva,Fet Kursiv,ตัวเอียงหนา,Kalın İtalik,huruf tebal kursif,жирний курсив,Polkrepko Pežeče,treknais kursīvs,pusjuodis kursyvas,nghiêng đậm,Lodi etzana,धृष्ट-तिरछा
/usr/share/fonts/gnu-free/FreeSerif.otf: FreeSerif:style=Regular,нормален,normal,obyčejné,Mittel,µεσαία,Normaali,Normál,Normale,Gemiddeld,odmiana zwykła,Обычный,Normálne,ปกติ,menengah,прямій,Navadno,vidējs,normalusis,عادی,vừa,Arrunta,सामान्य
/usr/share/fonts/gnu-free/FreeSerifBold.otf: FreeSerif:style=Bold,получерен,negreta,tučné,fed,Fett,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,gros,Обычный,Fet,ตัวหนา,Kalın,huruf tebal,жирний,Polkrepko,treknraksts,pusjuodis,ضخیم,đậm,Lodia,धृष्ट
答案1
答案2
Sphinx 生成一个.tex
默认字体配置,指定为:
\setmainfont{FreeSerif}[
Extension = .otf,
UprightFont = *,
ItalicFont = *Italic,
BoldFont = *Bold,
BoldItalicFont = *BoldItalic
]
\setsansfont{FreeSans}[
Extension = .otf,
UprightFont = *,
ItalicFont = *Oblique,
BoldFont = *Bold,
BoldItalicFont = *BoldOblique,
]
\setmonofont{FreeMono}[
Extension = .otf,
UprightFont = *,
ItalicFont = *Oblique,
BoldFont = *Bold,
BoldItalicFont = *BoldOblique,
]
这将强制通过(文件名搜索)进行字体搜索kpathsea
,该搜索仅配置为查看您的 TexLive 安装路径(TEXMF)。以下是一些解决该问题的方法:
- 编辑
Extension...
生成的文件中的参数.tex
,以恢复字体配置搜索。 - 安装提供 GNU FreeFont 的 TexLive 包。
- 将您的 /usr/share/fonts/* 条目符号链接到您的 TEXMF 安装,以便找到它们。
- 使用 lualatex 实现自己的字体搜索并处理这种情况。
我只能通过 libera.chat IRC 上 #latex 频道的 hrnz 找到它,谢谢!
答案3
这是我的方法。我在目录中找到了我的 FreeSerif 字体:
/usr/local/texlive/2020/texmf-dist/fonts/truetype/public/gnu-freefont/FreeSerif.ttf
于是我双击它。我的 Mac 询问我是否要安装此字体。我单击“是”,然后它就安装了。然后我重新编译 latex 文件,发现它已经可以正常工作了。