OpenSans
我在文档中使用时遇到困难,我尝试使用\setsansfont
以下命令
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes} % OK
\setsansfont{Open Sans} % ERROR!
但它给了我以下错误:
Package fontspec Error: The font "Open Sans" cannot be found. ]
Package fontspec Error: The font "Open Sans" cannot be found. ]
Package fontspec Error: The font "Open Sans" cannot be found. ]
Font TU/OpenSans(0)/m/n/45="Open Sans" at 45.0pt not loadable: Metric (TFM) file or installed font not found. ^^I^^I}
Font TU/OpenSans(0)/m/n/28="Open Sans" at 28.0pt not loadable: Metric (TFM) file or installed font not found. ^^I^^I}
Font TU/OpenSans(0)/b/n/28="Open Sans" at 28.0pt not loadable: Metric (TFM) file or installed font not found. ^^I^^I}
Font TU/OpenSans(0)/b/n/11="Open Sans" at 11.0pt not loadable: Metric (TFM) file or installed font not found. ^^I^^I}
...
答案1
你应该能够这样做:
\usepackage[defaultsans]{opensans}
在 LuaLaTeX 或 XeLaTeX 上,文档说这会将 Open Sans 的 OpenType 版本设置为无衬线字体。
如果您希望能够切换到 Open Sans,但设置另一种无衬线字体,您可以按照上述方式加载包,并使用您想要的选项\setsansfont
,然后使用\fosfamily
命令选择 Open Sans。
答案2
原因是XeLaTeX
系统希望安装字体,但找不到。因此,要指定XeLaTeX
字体,您需要使用\setsansfont
命令中提供的选项列表,如下所示:
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\setsansfont{OpenSans}[
Extension = .ttf,
UprightFont=*-Regular,
BoldFont=*-Bold,
ItalicFont=*-Italic,
BoldItalicFont=*-BoldItalic
]
它现在可以工作是因为:
Open Sans
在我的情况下存储.ttf
格式- 有时我们需要指定字体文件名,例如:
OpenSans-Regular.ttf
- Open Sans 系列由多种样式组成,因此,为了加载这些样式,您必须指定要加载的样式。
笔记:这个答案假设你正在使用 Overleaf 或 MiKTeXopensans
软件包已安装或者使用带有 fonts-extra 的 TeXLive
希望它能帮助你!
答案3
正如其他答案所说,您可以通过文件名访问字体,但如果 xetex 配置适当,原始代码将不会出现错误。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes} % OK
\setsansfont{Open Sans} % No ERROR!
\begin{document}
ABC xyz \textsf{ABC xyz}
\end{document}
正如 texlive 手册中所述,xetex 使用 fontconfig 来定位由内部字体名称调用的字体。默认情况下,fontconfig 会查找系统字体目录,但不知道 texlive 字体。Texlive 附带一个 fontconfig 配置文件,您可以使用它来配置 config。详细信息取决于您的系统字体搜索设置方式,但就我而言,我已将该文件的稍作修改的版本复制到
/etc/fonts/local.conf
因此它包含
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/usr/local/texlive/2021/texmf-dist/fonts/opentype</dir>
<dir>/usr/local/texlive/2021/texmf-dist/fonts/truetype</dir>
<dir>/cygdrive/c/windows/fonts</dir>
</fontconfig>
这意味着我的(cygwin)xetex 除了所有 cygwin 提供的字体外,还会找到所有 texlive 和 Windows 系统字体。