在LaTeX R Markdown文档中修改段落字体族的问题求助
问题解决方法
1. 字体不生效的原因
你使用xelatex作为编译引擎且加载了fontspec包时,传统LaTeX的\fontfamily{字体简写}语法不兼容,必须使用fontspec提供的专属字体调用命令。
2. 局部修改字体的正确写法
你可以直接在需要修改字体的位置用\fontspec{字体名}调用系统已安装的字体,示例修改如下:
\begingroup % 替换括号内的字体名为你系统中存在的字体即可 \fontspec{Microsoft YaHei}\fontsize{18}{22}\selectfont \textcolor{black}{tasks} \endgroup
如果需要频繁使用某款字体,可以在YAML的header-includes中预先定义字体族,简化后续调用:
header-includes: - \usepackage{graphicx} - \usepackage{fancyhdr} - \usepackage{fontspec} - \usepackage{xcolor} - \pagestyle{fancy} - \renewcommand{\headrulewidth}{0.0pt} % 新增预定义字体,\yahei为自定义的命令名,后面跟系统字体名 - \newfontfamily\yahei{Microsoft YaHei} - \newfontfamily\song{SimSun}
后续需要使用时直接调用自定义命令即可:
\begingroup \yahei\fontsize{18}{22}\selectfont \textcolor{black}{tasks} \endgroup
3. 可用字体查询方法
不同系统的字体查询方式如下:
- Windows:打开「控制面板-字体」,列表中显示的字体全名即为可调用的名称
- Mac:打开「字体册」应用,选中目标字体后显示的全称即为可用名称
- Linux:在终端执行
fc-list命令,输出内容中冒号后标注的就是字体名
补充注意事项
- 字体名要和系统显示完全一致,大小写、空格、特殊符号都不能出错
- 如果要使用非系统自带字体,可以把字体文件放在Rmd文档同目录,通过路径参数调用:
\fontspec[Path=./]{customfont.ttf} \fontsize{字号}{行间距}的第二个参数建议比字号大2-4pt,避免行间距过小导致文字重叠
内容的提问来源于stack exchange,提问作者JK Lambert
相关产品推荐
相关产品推荐

