Quarto数学模式下字母数字未应用mainfont/mathfont的问题咨询
Quarto数学模式中mainfont/mathfont对字母、数字无效的问题解答
这不是Quarto的预期行为,本质是LaTeX数学字体机制的默认规则导致的:
- 数学模式中的变量字母默认使用「数学斜体」,数字默认使用「数学直立」,这两类字符的字体映射独立于
\log这类数学运算符 - 你设置的
mathfont仅覆盖了数学运算符、符号等默认关联的字体范围,没有覆盖字母和数字的字体映射
更简洁的解决方法(无需手动包裹公式)
不用每个公式都加\mathit{}和\mathrm{},可以通过配置LaTeX包全局统一字体:
方案1:使用带数学支持的对应字体
如果你的目标字体有专门的数学版本(比如Lato对应的Lato Math),直接指定即可:
--- documentclass: article mainfont: Lato mathfont: Lato Math --- $$ y = 123\cdot\log{x} $$
方案2:用unicode-math映射文本字体到数学范围
如果没有专门的数学字体,通过unicode-math包将文本字体映射到数学模式的字母、数字范围:
--- documentclass: article mainfont: Lato header-includes: - \usepackage{unicode-math} - \setmathfont{Lato}[Scale=MatchLowercase] - \setmathfont[range=up]{Lato} # 映射直立数字/符号到Lato - \setmathfont[range=it]{Lato Italic} # 映射斜体变量到Lato斜体 --- $$ y = 123\cdot\log{x} $$
为什么你的临时方法能生效?
\mathit{}强制把公式内的字母用文本斜体(而非数学斜体)渲染,匹配了mainfont的设置\mathrm{}把数字强制转为文本直立字体,也对齐了主字体风格
但这种手动方式维护成本高,全局配置才是更合理的方案。
内容的提问来源于stack exchange,提问作者vanadium
相关产品推荐
相关产品推荐

