VSCode中修改Markdown转PDF渲染字体的问题求助
解决Markdown PDF插件字体不生效的问题
以下是针对你遇到的字体未替换问题的排查和解决步骤:
1. 确认字体的准确家族名称
Ubuntu下fc-list返回的字体名称可能和文件名不一致,这是常见的配置错误根源。执行以下命令查看字体的正式家族名:
fc-list | grep -i caskaydia
比如输出可能类似:
/home/caue/.local/share/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-ExtraLight.ttf: Caskaydia Cove Nerd Font Propo,Caskaydia Cove Nerd Font Propo ExtraLight:style=ExtraLight,Regular
这里的Caskaydia Cove Nerd Font Propo才是需要在CSS和配置中使用的字体家族名,而非文件名里的CaskaydiaCoveNerdFontPropo-ExtraLight。
2. 修正CSS中的字体配置
- 替换font-family为正确的家族名,并调整font-weight(ExtraLight对应的权重是200,不是300):
body { font-family: "Caskaydia Cove Nerd Font Propo", monospace; font-size: 12pt; line-height: 1.6; font-weight: 200; } h1, h2, h3, h4, h5, h6 { font-family: "Caskaydia Cove Nerd Font Propo", monospace; font-weight: 200; /* 对应ExtraLight */ color: #222222; } code, pre { font-family: "Caskaydia Cove Nerd Font Propo", monospace; font-weight: 200; background-color: #f4f4f4; padding: 2px 4px; border-radius: 4px; }
3. 调整VSCode配置路径
Markdown PDF插件的styles配置不需要file://前缀,直接使用绝对路径或相对路径即可,避免路径解析异常:
"markdown-pdf.styles": [ "/home/caue/PhD/Instrumentation/HDLBits/style.css" ], "markdown-pdf.fonts": [ { "name": "Caskaydia Cove Nerd Font Propo", "path": "/home/caue/.local/share/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-ExtraLight.ttf" } ]
4. 重启VSCode并测试
修改配置后,完全关闭VSCode再重新打开,然后重新生成PDF,确保插件加载了新的配置和字体。
5. 排除样式冲突
如果还是不生效,可以先使用极简CSS测试:
* { font-family: "Caskaydia Cove Nerd Font Propo", monospace !important; font-weight: 200 !important; }
用这个CSS生成PDF,如果字体生效,说明之前的CSS存在样式优先级冲突,需要逐步排查原有样式的问题。
内容的提问来源于stack exchange,提问作者Caue Evangelista de Sousa
相关产品推荐
相关产品推荐

