寻求Quarto中兼容HTML与PDF的带公式缩进枚举实现方案
Quarto兼容HTML/PDF的带缩进枚举实现方案
方案概述
放弃pandoc lineblock,改用自定义列表环境+跨格式配置,兼顾Markdown的简洁性与HTML/PDF输出的一致性,完美支持标题、长文本、数学公式的排版需求。
实现步骤
编写Markdown结构
用编号列表搭配自定义内容块,标题直接放在编号项后,内容块用Quarto的环境语法包裹:1. **标题1** ::: indent-block 长文本内容,支持多段落换行: 这是第二段内容,自动继承缩进。插入行内公式:$E=mc^2$,或多行公式: $$\sum_{n=1}^\infty \frac{1}{n^2} = \frac{\pi^2}{6}$$ ::: 2. **标题2** ::: indent-block 另一组内容,格式保持统一。 :::配置跨格式样式
在_quarto.yml中分别设置HTML的CSS规则和PDF的LaTeX自定义环境:format: html: css: custom.css pdf: include-in-header: text: | \newenvironment{indentblock}{% \begin{list}{}{% \setlength{\leftmargin}{1.8em} \setlength{\topsep}{0.3em} \setlength{\parsep}{0.5em} }% \item[]}{\end{list}}HTML样式文件(custom.css)
为内容块设置缩进和间距,保证HTML输出的排版美观:.indent-block { margin-left: 1.8em; margin-top: 0.3em; margin-bottom: 0.8em; line-height: 1.6; }
完整MWE示例
--- title: "兼容格式演示" format: html: css: custom.css pdf: include-in-header: text: | \newenvironment{indentblock}{% \begin{list}{}{% \setlength{\leftmargin}{1.8em} \setlength{\topsep}{0.3em} \setlength{\parsep}{0.5em} }% \item[]}{\end{list}} --- ## 示例内容 1. **牛顿第二定律** ::: indent-block 该定律描述了力、质量与加速度的定量关系,公式表示为: $$\vec{F} = m\vec{a}$$ 它是经典力学的核心定理,适用于低速宏观场景;当物体速度接近光速时,需改用相对论力学修正模型。 ::: 2. **微积分基本定理** ::: indent-block 定积分与原函数的关系可表述为: $$\int_{a}^{b} f'(x) dx = f(b) - f(a)$$ 这一定理搭建了微分与积分的桥梁,极大简化了定积分的计算流程。 :::
方案优势
- 对比lineblock:无需手动添加
|标记,长文本编辑更顺畅,数学公式渲染无异常。 - 跨格式兼容:HTML通过CSS控制样式,PDF通过LaTeX环境实现一致的缩进和间距,两种输出格式效果统一。
内容的提问来源于stack exchange,提问作者Julian
相关产品推荐
相关产品推荐

