You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XeLaTeX无法识别TeXLive字体路径及字体尺寸异常问题咨询

问题背景

我在Ubuntu系统中尝试使用XeLaTeX调用apt包texlive-fonts-extra中的字体QTLinostroke.otf,已执行以下命令完成安装:

sudo apt install texlive-fonts-extra

该字体默认安装路径为/usr/share/texlive/texmf-dist/fonts/opentype/public/qualitype/QTLinostroke.otf。随后编写了如下XeLaTeX代码并尝试编译:

%!TeX program=xelatex
\documentclass[12pt]{article}

\usepackage[a4paper,margin=2.05cm]{geometry}
\usepackage{fontspec}

\setmainfont{QTLinostroke}

\begin{document}

The quick brown fox jumps over lazy the dog.

\end{document}

但XeLaTeX无法找到该字体文件,不过将QTLinostroke.otf复制到$HOME/.fonts/目录后,代码可正常编译。现咨询以下两个问题:

  1. 为何XeLaTeX无法识别属于TeXLive包的系统字体文件?
  2. 已在\documentclass中设置12pt,但该字体编译后显示尺寸仍过小。

问题解答

1. XeLaTeX无法识别TeXLive包字体的原因

fontspec宏包默认依赖系统字体管理器(如Ubuntu的fontconfig)查找字体,而TeXLive安装在/usr/share/texlive/texmf-dist/fonts/下的字体,并未被自动注册到系统字体数据库中。系统字体管理器不会主动扫描这个TeX专属路径,因此fontspec无法通过字体名称找到该字体。

把字体复制到$HOME/.fonts/后,系统会自动扫描该目录并更新字体缓存,fontconfig能识别到字体,fontspec自然可以正常调用。

如果不想复制字体,也可以直接指定字体文件路径调用,修改\setmainfont写法即可:

\setmainfont[Path=/usr/share/texlive/texmf-dist/fonts/opentype/public/qualitype/]{QTLinostroke.otf}

2. 字体显示尺寸过小的解决方法

12pt是文档的基准字号,但部分字体本身的设计字身框(em size)与视觉大小不匹配,会导致视觉上看起来偏小。可以通过fontspec的Scale参数手动调整缩放比例,示例如下:

\setmainfont[Scale=1.2]{QTLinostroke}

若使用指定路径的写法:

\setmainfont[Path=/usr/share/texlive/texmf-dist/fonts/opentype/public/qualitype/, Scale=1.2]{QTLinostroke.otf}

可根据实际显示效果调整Scale的数值,直到字体大小符合预期。

内容的提问来源于stack exchange,提问作者ASarkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:54:53