如何在 KaTex 中装箱公式?

How to box a formula in KaTex?

这个问题类似于 6 岁的 MathJax 问题; How to box a formula in MathJax?

如何用KaTex达到\boxed{...}

预期输出如下;

KaTex 代码显示 some amsmath translations in environments.js,但它们只是 1:1 从 amsmath 函数到 现有 KaTex 表达式的转换。

KaTex 好像utilize amsmath.sty 但是不知道怎么用

我是 KaTeX 的开发者之一。我们没有盒子。使用一些自定义 CSS 在整个方程周围添加方框应该不会太难。例如,您可以使用 KaTeX web page 并输入公式 c_i=\sum_jA_{ij}。然后编辑该页面的 CSS(使用浏览器中的 Web 开发工具或您自己的此文件副本)以向 class .katex:[=20= 添加两个样式]

.katex {
  border: 0.0625em solid currentcolor;
  padding: 0.5em;
}

现在公式被装箱了。使用 em 作为所有内容的长度单位与 KaTeX 的其他 CSS 一致,这样做会使公式作为一个整体缩放,而不管周围文本的字体大小如何。如果您只想装箱一些公式,请将它们嵌套在一些 <div class="boxedmath"> 中,并将该嵌套用作额外的 CSS 选择器。

有一些选项可以很容易地向顶层 <span class="katex"> 添加额外的 classes。如果您认为这会有用,请随时 post 一个功能请求,甚至是一个带有您自己的实现的拉取请求。

\boxed 在数学模式下工作会更难。您基本上会执行与上面类似的操作,但新引入的 class 用于盒装部分。您还需要一些代码来根据内框的外边距计算框的外边距,以使代码与 CSS 完全匹配。你应该计算出 LaTeX 使用的填充和线宽,以便 KaTeX 尽可能匹配。这是查看 LaTeX 实现发挥作用的地方。相当可行,但有些工作。如果您认为有用,再次值得提出功能请求或拉取请求。

如果严格按照 amsmath.sty 来做到这一点,那就更难了。 KaTeX 仍然缺少许多通常用于此的间距原语,尤其是可拉伸空间。我强烈建议改用面向 CSS 的实现。

为了在所有用例中正确支持这一点,最好也为盒子找到合适的 MathML 渲染。虽然 KaTeX 不使用 MathML 来显示数学,但为了屏幕阅读器和类似辅助技术的可访问性,它仍然包含 MathML。