现在的宏只能用于单个行内公式或者公式块,没办法跨公式使用。katex 的文档我看了下,应该是支持在 katex.render
或者 katex.renderToString
时候传入 macros
参数来提供自定义宏的,希望能有方法配置全局有效,或者是笔记本/文档范围内有效的宏定义,这样在处理一些复杂情况的时候会简单很多。
举个例子,我现在在做一些公式整理。为了获得比较好的显示效果,我可能需要这样写我的公式:
\mkern2mu\overline{\mkern-2mu A+B \mkern-2mu}\mkern1mu =
\mkern2mu\overline{\mkern-2mu A\mkern-2mu}\mkern1mu
\mkern2mu\overline{\mkern-2mu B \mkern-2mu}\mkern1mu
就像乱码一样。如果可以用宏,我可以先定义这样一个宏:
\def\logicnot#1{\mkern2mu\overline{\mkern-2mu#1\mkern-2mu}\mkern1mu}
定义完以后我就可以这样写我的公式:
\logicnot{A+B}=\logicnot A \logicnot B
定义了宏以后我的公式源码不但更简洁,语义也更强。这是效果:
现在没办法配置宏,我想得到上面那样的输出,要么不用宏定义,每次都用乱码一样的 latex 命令来些公式,要么每次都要先把宏定义粘进去,用起来比较麻烦。
试了下,如果是像我上面那样的宏定义,应该是需要这样去让 katex 做渲染:
katex.renderToString("\\logicnot{A+B}=\\logicnot A \\logicnot B", {
"macros": {
"\\logicnot":"\\mkern2mu\\overline{\\mkern-2mu#1\\mkern-2mu}\\mkern1mu"
}
});
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于