React项目中TinyMCE加载含LaTeX(MathJax)内容时渲染异常的求助
React项目中TinyMCE加载含LaTeX(MathJax)内容时渲染异常的求助
我现在在做一个React项目,用TinyMCE编辑器配合MathJax处理LaTeX公式,但遇到了棘手的问题:把内容加载到TinyMCE之后,LaTeX公式完全没法正确渲染。
待加载的内容示例:
<div style="position: absolute;"> <p style="margin: 0; font-size: 12px;">\*\*(a)\*\* Solve: \\\[a\^{2}-ab+b\^{2}=3\\\\\] \\\[a+2b+1=0\\\\\]</p> </div> </div>
这段内容加载进TinyMCE后,LaTeX根本没有被解析成格式化的公式,反而显示带[ ... ]的原始文本,完全达不到预期效果。
我已经尝试过的解决方案:
- 用
better-react-mathjax的MathJaxContext包裹编辑器,结果内容直接显示“undefined”,公式还是没渲染出来 - 确认MathType插件已启用——我用的是
tiny_mce_wiris来处理数学公式输入 - 手动触发MathJax渲染:在内容加载完成后调用
window.MathJax.typeset(),但完全没有效果
我的TinyMCE配置代码:
<Editor id={id} apiKey={process.env.REACT_APP_TINYMCE} value={value} init={{ images_upload_handler: handleImageUpload, automatic_uploads: false, placeholder: '', height: height, width: '100%', draggable_modal: true, extended_valid_elements: '*[.*]', display: 'none', plugins: [ 'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'help', 'wordcount', 'tiny_mce_wiris', ], toolbar: 'undo redo | formatselect | bold italic backcolor | \ alignleft aligncenter alignright alignjustify | \ bullist numlist outdent indent | removeformat | help | image | table | drawio | tiny_mce_wiris_formulaEditor | tiny_mce_wiris_formulaEditorChemistry', setup: (editor) => { editor.ui.registry.addButton('drawio', { text: 'Draw', onAction: () => { setIsDrawioOpen(true); }, }); }, external_plugins: { tiny_mce_wiris: `https:url-to-plugin`, }, forced_root_block: 'div', }} onEditorChange={handleEditorChange} />
我需要大家帮忙解决的问题:
- 如何让MathJax在内容加载后,正确渲染TinyMCE编辑器里的LaTeX公式?
- 有没有办法强制MathJax重新处理编辑器内的全部内容?
- 是不是应该换一种方式在TinyMCE中处理LaTeX公式?
麻烦各位大佬支招了!
备注:内容来源于stack exchange,提问作者Ashim Bhatta
相关产品推荐
相关产品推荐

