HTML环境下公式对齐与编号同步实现问题求助
问题:公式对齐与编号在HTML渲染中无法同时生效
我需要同时实现公式对齐与编号功能,PDF渲染时效果符合预期,但HTML渲染时仅对齐生效,编号不显示。
最小可复现示例(MWE):
--- title: "equation example" format: html --- \begin{align} x &= 2y\\ x^2 &= 2y*2y \end{align}
我尝试用交叉引用方式手动添加编号,但这样会丢失对齐效果:
--- title: "equation example" format: html --- $$ x = 2y $$ {#eq-1} $$ x^2 = 2y*2y $$ {#eq-2}
补充说明:PDF格式下公式能通过&符号正常对齐,我希望在HTML中复现该对齐效果并保留公式编号。
解决方案
方法1:配置MathJax自动编号
在文档YAML头部添加MathJax配置,开启AMS环境的自动编号功能,这样align环境在HTML中会自动生成编号并保留对齐:
--- title: "equation example" format: html: html-math-method: method: mathjax options: equationNumbers: autoNumber: "AMS" --- \begin{align} x &= 2y\\ x^2 &= 2y \times 2y \end{align}
方法2:单块对齐公式+整体编号
如果需要一组对齐公式共用一个编号,可以用equation嵌套split环境,同时支持交叉引用:
--- title: "equation example" format: html --- \begin{equation} \begin{split} x &= 2y\\ x^2 &= 2y \times 2y \end{split} \end{equation} {#eq-aligned-group}
方法3:手动指定独立编号
若需每行公式单独编号,可在align环境中用\tag{}手动设置编号,配合\label{}支持交叉引用(需开启方法1中的MathJax配置):
--- title: "equation example" format: html: html-math-method: method: mathjax options: equationNumbers: autoNumber: "AMS" --- \begin{align} x &= 2y \tag{1}\label{eq-first}\\ x^2 &= 2y \times 2y \tag{2}\label{eq-second} \end{align}
内容的提问来源于stack exchange,提问作者Julian
相关产品推荐
相关产品推荐

