是的,我见过这问题。(1) 这个问题已有五年历史,(2) 给出的答案对我来说毫无用处,(3) 我没有足够的声誉来发表评论(并且将问题作为答案发布似乎是错误的)。
这种情况对我来说有点令人困惑。我正在尝试编译西里尔字母 Hello World由 Grigory M 提出,无论我做什么,XeLaTeX
都拒绝加载任何系统字体。
我做了什么:
- 确保已安装 Linux Libertine;
- 尝试运行
fc-list
并在文档中使用其他字体; - 尝试使用
*.otf
文件名作为命令的参数\newfontfamily\russianfont
,按照建议这里; - 尝试复制
*.otf
文件,然后以 root 和普通用户身份~/.fonts
运行fc-cache -f -v
- 尝试将
texlive-fontconfig.conf
文件从/var/lib/texmf/fonts/conf
复制到/etc/fonts/conf.d/09-texlive.conf
,然后fc-cache -fsv
按照建议以 root 身份运行这里。
什么都没帮助。我只是一直看到同样的错误:
fontspec error: "font-not-found"! The font "Linux Libertine" cannot be found. ...sianfont[Script=Cyrillic]{Linux Libertine}
完整日志是这里。
我在 OpenSuSE 13.2 上使用 TeXLive2016。我通过启用TeXLiveRPM repo,本质上是一个将 CTAN 文件转换为 RPM 包的工具。
任何帮助都将非常感激。
为了完整起见,下面是代码本身:
\documentclass{article}
\usepackage{fontspec} % loaded by polyglossia, but included here for transparency
\usepackage{polyglossia}
\setmainlanguage{russian}
\setotherlanguage{english}
% XeLaTeX can use any font installed in your system fonts folder
% Linux Libertine in the next line can be replaced with any
% OpenType or TrueType font that supports the Cyrillic script.
\newfontfamily\russianfont[Script=Cyrillic]{Linux Libertine}
\begin{document}
Привет
\begin{english}
Hello!
\end{english}
\end{document}
答案1
好的,我明白了(非常感谢@alwaysask)。
事实证明我实际上必须指定*.otf
文件的名称(而不是抽象的、人性化的字体名称)作为命令的参数\newfontfamily\russianfont
,正如建议的那样这里。那篇文章中唯一错误的地方是你必须指定完全的文件名(带扩展名)。
答案2
简单的解决方案:做不是只需双击即可运行。右键单击字体,然后“为所有用户安装“。