Quarto PDF格式YAML头中配置sansfont十六进制颜色的fontspec语法问题
在Quarto PDF中为无衬线字体设置颜色的正确方法
我明白你在尝试给Quarto PDF文档的无衬线字体指定十六进制颜色时遇到了配置格式的问题,之前的写法不符合Quarto对sansfontoptions的要求,下面给你两种可行的解决方案:
方法一:直接在YAML中通过sansfontoptions指定颜色
Quarto的PDF格式配置会自动将sansfontoptions中的键值对传递给fontspec包,所以你不需要手动写\fontspec命令,直接用键值对的形式设置Color参数即可:
format: pdf: mainfont: Calibri sansfont: Overpass-ExtraBold sansfontoptions: Color: "#ff7832"
这种方式最简洁,Quarto会帮你处理和fontspec的整合,不会出现格式错误。
方法二:通过自定义LaTeX颜色并手动设置无衬线字体
如果你想使用自定义命名的颜色,可以把颜色定义和字体设置放在header-includes中,覆盖Quarto默认的无衬线字体配置:
format: pdf: mainfont: Calibri header-includes: - \definecolor{OrangeAccent}{HTML}{ff7832} - \setsansfont[Color=OrangeAccent]{Overpass-ExtraBold}
这里要注意,我们不再在YAML的sansfont字段中指定字体,而是通过\setsansfont手动配置带颜色的无衬线字体,避免Quarto的默认设置和我们的自定义设置冲突。
为什么你之前的写法会报错?
你之前把sansfontoptions写成了包含\fontspec命令的文本块,这不符合Quarto的配置规则:sansfontoptions需要是一个键值对对象,每个键对应fontspec的一个选项参数,而不是直接插入LaTeX命令。Quarto会自动将这些选项转换为\fontspec的参数,所以不需要你手动编写完整的\fontspec语句。
内容的提问来源于stack exchange,提问作者Liam Haller
相关产品推荐
相关产品推荐

