性能优化
用 Pandoc + Eisvogel 模板把…
需要把 Markdown 文档转成带目录、专业排版、支持中/俄文与移动端阅读的 PDF 时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
用 Pandoc + Eisvogel 通用
解决思路
- 桌面/打印版(A4)命令:pandoc doc.md -o doc.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:margin=2.5cm -V fontsize=11pt -V documentclass=article
- 移动端友好版(6x9 手机屏优化)命令:pandoc doc.md -o doc-mobile.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:paperwidth=6in -V geometry:paperheight=9in -V geometry:margin=0.5in -V fontsize=10pt -V linestretch=1.2
- 俄文 PDF(使用 EB Garamond 字体):在命令中追加 -V mainfont="EB Garamond"
- 俄文移动版:在移动端命令基础上追加 -V mainfont="EB Garamond"
- 按文档类型选择主题色:白皮书用蓝色 1e3a8a、营销材料用绿色 059669、研究文档用紫色 7c3aed、技术文档用灰色 374151
- 在 YAML frontmatter 中设置标题页:title、subtitle、author、date、titlepage: true、titlepage-color、titlepage-text-color、book: true(完整模板见 references/frontmatter_templates.md)
- Markdown 排版最佳实践:列表前留空行、标题后留空行、嵌套列表用 3 个空格缩进
- 修复「冒号后紧跟列表」被渲染成行内文本的问题:在冒号后加空行
- 用预处理脚本自动修复 Markdown:scripts/fix_markdown.py input.md output.md(自动修复冒号后列表、标题后列表、嵌套列表间距)
- 简单 PDF 工作流:先判断上下文(Telegram 用移动版,否则桌面版)→ 判断是否俄文(是则用 EB Garamond)→ 运行对应 pandoc 命令 → 验证输出
- 专业标题页工作流:添加带主题色的 YAML frontmatter → 填入元数据(title、author、date)→ 选择布局(移动版或桌面版)→ 用 xelatex 生成
- 用脚本生成:scripts/generate_pdf.py doc.md -t white-paper;scripts/generate_pdf.py doc.md -t marketing --russian;scripts/generate_pdf.py doc.md --mobile
- 移动版布局参数:6x9 英寸页面、10pt 字体、0.5in 边距、1.2 行距、自动生成带 -mobile.pdf 后缀的文件名
- 移动版可追加链接颜色参数:-V colorlinks=true -V linkcolor=blue -V urlcolor=blue
- 通过 Telegram 机器人生成 PDF 时默认使用移动版布局,除非用户明确要求打印/桌面版
- 安装依赖:brew install pandoc;brew install --cask mactex
适用边界 · 注意事项
- 需要非 Markdown 输入或非 LaTeX 排版引擎时
- 未安装 pandoc 与 LaTeX(mactex)环境时
- 用户明确要求桌面/打印版时不要用移动版布局