文档章节

moinmoin中安装mathjax显示数学公式

施峰
 施峰
发布于 2012/05/16 09:54
字数 789
阅读 616
收藏 0

目前数学公式在网络上显示的方法,在google里搜一下就会发现很多。

有用texlive把公式转为图片的如:

基于MoinMoin+ConTeXt实现包含数学内容的Wiki网站

MoinMoin数学公式环境安装与配置

也有 jsmath的。

把数学公式转成图片嵌入到网页中的一个很大的麻烦是要安装texlive组合,并提供公式转成图片服务。好像有点麻烦。其实网上也有很多免费的tex公式转图片的服务。

  MathJax是一个显示数学公式的js引擎,在它的网站上吹挺牛的。按安装说明先下载下来,运行自带的demo,确实不错。但用在moinmoin上有时会出现奇怪的问题,最常见的是公式中有多个^时公式不能显示出来。原因是wiki源码先被moinmoin自己解析,发到浏览器后mathjax才进行公式转换。在moinmoin解析时可能会在公式中加入一些看不见的标记或将一些tex标记当成了wiki标记来进行解析。

解决这个问题的关键是避免moinmoin自作多情解析数学公式,让数学公式源码完整地发到浏览器。

1.插加两个插件:

MathJax.py:

# -*- coding: iso-8859-1 -*- 
"""
MoinMoin - MathJax Macro 

@copyright: 2012 luoboiqingcai <sf.cumt@163.com>
@license: GNU GPL
"""

Dependencies = ["pages"]

#def macro_MathJax(macro,rawtex):
#    "return the raw tex as it is."
#    return macro.request.formatter.text(rawtex)

def execute(macro, args):
    if not args:
        return ""
    else:
        return macro.request.formatter.text(args)

text_x_mathjax.py:

# -*- coding: iso-8859-1 -*-
"""
    MoinMoin - tex Parser using MathJax js library

    @copyright: 2012 luoboiqingcai <sf.cumt@163.com>
    @license: GNU GPL
"""

Dependencies = []

class Parser:
    """
        Send plain text in a HTML <pre> element.
    """

    ## specify extensions willing to handle
    ## should be a list of extensions including the leading dot
    ## TODO: remove the leading dot from the extension. This is stupid.
    #extensions = ['.txt']
    ## use '*' instead of the list(!) to specify a default parser
    ## which is used as fallback
    extensions = '.tex'
    Dependencies = ['page']

    def __init__(self, raw, request, **kw):
        self.raw = raw
        self.request = request
        self.form = request.form
        self._ = request.getText

    def format(self, formatter, **kw):
        """ Send the text. """
        self.request.write(formatter.div(1))
        self.request.write(formatter.text(self.raw.expandtabs()))#expandtabs is str's buildin method
        self.request.write(formatter.div(0))

把text_x_mathjax.py放到data/plugin/parser目录下,MathJax.py放到data/plugin/macro目录下。

 

2.安装mathjax:

2.1 把mathjax安装包解压并扔到apache可访问的某个目录中并配置好apache。

Alias /mysite/moin_static193/ "/usr/local/wiki/moin/mywiki/htdocs/"

2.2 在config/wikifarm/wikiname.py中加入下面这行:

html_head = '''<script type="text/javascript" src="/mysite/moin_static193/mathjax/MathJax.js?config=TeX-AMS-MML_SVG,local/local"></script>'''

2.3  修改mathjax包目录的config/local的local.js文件,加入:

MathJax.Hub.Config(
		{
		"HTML-CSS": { linebreaks: { automatic: true } },
		SVG: { linebreaks: { automatic: true } },
		tex2jax:{
			inlineMath:[
				['$','$']
			]
				}
}
		)

加入上面这些内容是让'$'成为行内公式的识别符,因为默认情况下'\['和'\]'行内公式的识别符。

 

3 重启服务器,比如:

/etc/init.d/apache restart


4 在moinmoin里插入数学公式:

插入行内公式:

<<MathJax($z=x^2+y^2$)>>

插入块级元素公式:

{{{#!mathjax

$$z=x^2+y^2$$

}}}

 

ps:当页面里有很多数学公式时mathjax的工作效率就有点低了。我在自己的电脑上架设的moinmoin,同样的页面在用了mathjax后比原来没用mathjax慢了不知道多少倍。而如果把texlive生成图片缓存起来,在第一次生成图片后以后的加载就快多了。

 

 

© 著作权归作者所有

施峰
粉丝 2
博文 4
码字总数 2795
作品 0
沙坪坝
私信 提问
在Hexo中使用Mathjax渲染LaTeX数学公式

版权声明:本文为本人原创文章,未经本人允许不得转载,谢谢。 https://blog.csdn.net/yuanlaijike/article/details/82598651 转载于:如何在Hexo中使用Mathjax渲染LaTeX数学公式 平时使用m...

Jitwxs
2018/09/11
0
0
MathJax: 让前端支持数学公式

文章图片存储在,网速不佳的朋友,请看《MathJax:让前端支持数学公式》 或者 来我的技术小站 godbmw.com 1. 必须要说 1.1 开发背景 博主使用开发的个人博客,博文使用语法编写,然后交给前端...

godbmw
2018/10/04
0
0
wiki moinmoin1.9.7 一个问题,用户登录后任何预览都要出错,不知何因。

wiki moinmoin1.9.7 一个问题,用户登录后任何预览(即使不修改内容)都要出错,如下: The server encountered an internal error and was unable to complete your request. Either the ser...

SamXIAO
2014/01/01
0
1
MoinMoin 1.9.6 发布,Python 的 Wiki 引擎

MoinMoin 1.9.6 发布了,该版本主要是修复了 twikidraw 和 anywikidraw 组件的安全漏洞,该漏洞将导致攻击者可执行任意代码,该版本影响 MoinMoin 1.9.5 以及之前的所有版本,请即刻升级!!...

oschina
2013/01/09
1K
1
MoinMoin 1.9.3 发布,Python的Wiki系统

MoinMoin是一个基于Python环境的wiki引擎程序,支持包括中文在内的多语种特性。 MoinMoin程序是遵循GNU GPL的开源项目,启动于2000年7月20日,最初由JürgenHermann撰写。最近的版本为2006年...

红薯
2010/06/30
742
0

没有更多内容

加载失败,请刷新页面

加载更多

Wondershare Recoverit - 专业数据恢复神器,支持U盘、存储卡等外部设备!

Wondershare Recoverit 今天带来的这款软件叫做Wondershare Recoverit,是一款专业实用的数据恢复软件,也是一款比较久的数据恢复软件了,可以恢复所有文件类型。 包括照片、视频、文档和其他...

_Somuns
22分钟前
6
0
SpringCloud gateway 修改返回数据

SpringCloud gateway 修改返回数据 版本说明 开源软件 版本 springboot 2.1.6.RELEASE jdk 11.0.3 gradle 主要引入了springboot 2.1,lombok plugins { id 'org.springframework.boot' v......

buddie
今天
9
0
PHP实现单人多人聊天源码免费分享 | 电脑报修系统

源码清单 1. 简易版登陆式聊天源码。 2. 电脑报修轻系统源码。 3. 关注下面公众号回复“聊天”,免费获取。 聊天系统 虽然微信,QQ是即时通讯的元老。但是他们限制很多,所以很多人都想做一个...

北桥苏
今天
6
0
跟面部识别开愚人玩笑?做一个时尚口罩就能实现

全文共3208字,预计学习时长6分钟 图片来源:Upsplash/Pavel Anoshin 目前,人脸识别的使用率正在不断上升,随之而来关于面部识别道德问题的争论也愈发激烈。从机场到社交媒体,面部识别的应...

读芯术
今天
1
0
Git同步更新操作GitHub和码云仓库上面的代码

一、前言 问题: 小编在生活中,一般都是将代码保存到github上,但由于国内的码云仓库确实速度比github快很多,用起来也很方便,于是后来就慢慢转码云了,当然小编在github上的代码也不想放弃...

郑清
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部