最近因为一些原因需要在论坛部署公式显示,而Discuz!并没有包括公式显示,并且目前也没有插件可以做到这一点。根据我的经验目前能做到Discuz!中显示公式的有两种方案,下面做出分享。
方案一:
这个方案将利用Codecogs的公式显示引擎,配合Discuz内置的Discuz代码将LaTex代码转换成图片,便于排版。具体方法如下(以Discuz! X3为例,可向下向上兼容):
将equation.gif上传到/static/image/common/备用。
登录后台,依次定位到界面,编辑器设置,Discuz!代码
新增一个名为tex的代码,图片填刚才的equation.gif,提交,然后打开详情,按如下信息填写。
替换内容:
<img src="http://latex.codecogs.com/gif.latex?{1}" title="{1}">
解释:LaTex
参数提示语:
请输入LaTex代码。<span style="color:#ff0000;"><a href=” http://www.codecogs.com/products/eqneditor/editor.php?mode=NEW”>在线公式编辑器</a></span>
设定好用户组提交即可。
方案二:
这个方案利用MathJax的JS实时渲染公式,需要在当前使用的模板的header_common.htm中加入代码。可以实现直接以文本形式输入公式且无需添加Discuz!代码。缺点是手机版支持需要更改相应的手机模板(方案一直接为图片),并且论坛更新会很麻烦。
定位到/template/default(以当前模板为准)/common/下,找到header_common.htm并编辑。在其中加入如下代码:
<script type="text/x-mathjax-config"> MathJax.Hub.Config({ extensions: ["tex2jax.js"], jax: ["input/TeX", "output/HTML-CSS"], tex2jax: { inlineMath: [ ["\\(","\\)"] ], displayMath: [ ["\\[","\\]"] ], processEscapes: true }, "HTML-CSS": { availableFonts: ["TeX"] } }); </script> <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
就可以在帖子中转义 \[ \] 和\( \) 之间的LaTex代码。