D2 如何用 --font-regular 等参数在渲染时替换 TTF 字体?

发布时间:2026/9/13 22:38:19

D2 如何用 --font-regular 等参数在渲染时替换 TTF 字体? D2 如何用 --font-regular 等参数在渲染时替换 TTF 字体【免费下载链接】d2D2 is a modern diagram scripting language that turns text to diagrams.项目地址: https://gitcode.com/GitHub_Trending/d2/d2D2 在渲染图表时默认使用内置字体普通、斜体、粗体、中粗体来自 Source Sans Pro等宽字体来自 Source Code Pro。如果你希望导出结果使用自己的字体文件可以在执行d2渲染命令时通过--font-regular、--font-bold等参数传入.ttf文件路径。本文基于 D2 仓库中的 CLI 参数定义、man 页和 CLI E2E 测试说明如何完成这次字体替换以及如何判断替换确实生效。前提条件已安装可执行的d2CLI且手头有要使用的.ttf字体文件。参数帮助明确说明传入的应是.ttf文件路径。可用的字体参数及其默认值d2cli/main.go 中定义了 8 个字体参数man 页模板 给出了完整说明。每个参数只替换一种字体槽位作用互不干扰参数环境变量替换的字体未提供时的默认字体--font-regularD2_FONT_REGULAR常规字体Source Sans Pro Regular--font-italicD2_FONT_ITALIC斜体字体Source Sans Pro Regular-Italic--font-boldD2_FONT_BOLD粗体字体Source Sans Pro Bold--font-semiboldD2_FONT_SEMIBOLD中粗体字体Source Sans Pro Semibold--font-monoD2_FONT_MONO等宽字体Source Code Pro Regular--font-mono-boldD2_FONT_MONO_BOLD等宽粗体Source Code Pro Bold--font-mono-italicD2_FONT_MONO_ITALIC等宽斜体Source Code Pro Italic--font-mono-semiboldD2_FONT_MONO_SEMIBOLD等宽中粗体Source Code Pro Semibold参数是逐个独立加载的loadFontsd2cli/main.go#L1117只对非空的参数读取对应 TTF 文件。也就是说只传--font-bold时只有粗体被替换其余槽位仍用默认字体一个都不传时则完全不加载自定义字体。用自定义字体渲染一张图表仓库的 CLI E2E 测试with-fonte2etests-cli/main_test.go#L344-L358演示了完整流程。测试先写入一个 D2 源文件然后带--font-bold参数执行渲染。可以照此操作准备一个 D2 源文件font.d2测试中使用的内容是a: Why do computers get sick often? b: Because their Windows are always open! a - b: italic font把你的 TTF 文件放在工作目录下仓库自带的测试字体是 e2etests-cli/RockSalt-Regular.ttf然后执行渲染。下面的命令中./RockSalt-Regular.ttf为测试使用的字体路径换成你自己的 TTF 相对路径即可d2 --font-bold./RockSalt-Regular.ttf font.d2未指定输出路径时d2默认写出与输入同名的font.svg。测试断言命令成功assert.Success并且读出的font.svg与黄金文件 with-font.exp.svg 一致这就是该命令的预期结果。如果需要同时替换多种字体各参数并列传入即可例如d2 --font-regular./regular.ttf --font-italic./italic.ttf --font-bold./bold.ttf font.d2不想在命令行重复书写时man 页说明这些 flag 也可以用对应环境变量设置如D2_FONT_REGULAR、D2_FONT_BOLD、D2_FONT_MONO等效果相同。验证替换是否生效两点依据均来自仓库文档看退出状态而不是只看输出文件。man 页明确指出不要因为输出文件存在就认为渲染成功应以d2的退出状态为准——渲染出错时 D2 有时仍会写出部分渲染结果。检查 SVG 中嵌入的font-face。生成 SVG 时D2 会把使用的字体以font-face规则内嵌字体族名由图表哈希加后缀构成例如d2-hash-font-regular、d2-hash-font-bold。嵌入逻辑见 d2svg 字体嵌入实现。docs/examples/vector-grid/vector-grid.svg 是一份现成的输出示例其中包含font-family: d2-1314486588-font-regular; font-face { font-family: d2-1314486588-font-regular;以上为文档示例实际哈希值随图表内容变化。替换后打开生成的 SVG确认font-bold槽位对应的font-face指向你的字体子集即说明自定义字体已被内嵌使用。可选分支d2.js 中的字体选项如果渲染走的是 D2 的 JavaScript/WASM 封装而不是 CLId2js/js/README.md 中CompileOptions提供对应的字体选项fontRegular、fontItalic、fontBold、fontSemibold取值是包含.ttf内容的字节数组byte array不提供时使用与 CLI 相同的默认字体。注意该 API 文档只列出这 4 个常规字体选项没有等宽字体选项且是传字体内容而非文件路径与 CLI 的用法不通用。边界与限制参数只接受.ttf文件路径参数帮助原文path to .ttf file文件不存在或读取失败时loadFonts会返回错误渲染不完成。每个参数只影响一种字重/风格槽位文档未说明某个参数会连带替换其他槽位。未传任何字体参数时不会加载自定义字体全部使用内置默认字体。下一步若替换字体后布局或字号表现异常可结合-d打印调试日志定位man 页--debug说明。【免费下载链接】d2D2 is a modern diagram scripting language that turns text to diagrams.项目地址: https://gitcode.com/GitHub_Trending/d2/d2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/13 22:38:19

LM算法深度解析:非线性最小二乘拟合的Python实现与工程实践

简介:面向数值计算与数据拟合学习者,提供基于LM算法的非线性最小二乘拟合MATLAB实现,用于解决模型参数估计与曲线拟合需求,适合正在学习优化算法或需要在MATLAB中快速上手非线性拟合的开发者。资源包共5个文件,包含3个…

2026/9/13 23:28:21

2篇4章6节:单纯病例研究和病例交叉研究

在临床流行病学研究中,传统队列、病例对照研究在慢性疾病病因探索中应用广泛,但面对心肌梗死、恶性心律失常这类由短暂暴露触发、起病急骤的急性突发事件时,会遭遇难以捕捉瞬时暴露、个体混杂难以消除的困境。为解决这一科研痛点,研究者发展出单纯病例研究、病例交叉研究两…

2026/9/13 23:28:21

OpenClaw本地部署指南:零成本AI自动化方案

1. 项目概述:零成本本地部署OpenClaw的核心价值2026年最值得关注的开源AI工具OpenClaw(原Clawdbot)正在掀起新一轮生产力革命。这个被开发者誉为"AI贾维斯"的项目,在GitHub上已经收获21万星标,从硅谷工程师到…

2026/9/13 23:28:21

别踩雷!并非所有 AI 都适合写论文,2026 教授认可工具推荐

每年毕业季,无数同学深陷论文难题:开题毫无思路、搭建框架耗费数日、初稿逻辑松散、查重标红泛滥、AI检测超标、格式反复被导师驳回。现如今市面上通用型AI工具遍地开花,但绝大多数通用大模型存在编造虚假参考文献、学术语句口语化、AI生成痕…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/13 11:18:28

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码