Chinaunix首页 | 论坛 | 博客
  • 博客访问: 80827
  • 博文数量: 11
  • 博客积分: 289
  • 博客等级: 二等列兵
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-12 14:51
个人简介

linux的爱好者,GNU的支持者。 小白中的牛人,高手中的菜鸟。 个人开源项目:https://sourceforge.net/projects/schultetable

文章分类

全部博文(11)

文章存档

2021年(2)

2017年(3)

2013年(2)

2012年(2)

2011年(2)

分类: Web开发

2011-05-16 17:38:43

一、简介
1.TeX

    Tex是一个由美国斯坦福大学计算机系教授Donald E. Knuth编写的功能强大的排版软件。它在学术界十分流行,特别是数学、物理学和计算机科学界。TeX被普遍认为是一个很好的排版工具,特别是在处理复杂的数学公式时。利用诸如是LaTeX等终端软件,TeX就能够排版出精美的文本。(摘自wikipedia)
2.LaTeX
    LaTeX是由Leslie Lamport发布的一个TeX宏集,相对于PlainTeX,它使得科技文档的排版更加直观和方便。(摘自)
3.MathTeX
    MathTeX是一个cgi程序。你可以利用它来向你的网页、博客等插入数学公式。
4.MimeTeX
    使用本地上的MathTeX需要解决依赖关系。而MimeTeX不需要解决这些依赖关系就可以编译、使用,但效果可能不如MathTeX好。如mathtex将
    1. \int_{a}^{b}f(x)dx\
  1. 输出为

而mimetex将其输出为


二、安装
    有些linux发行版的源里有mathtex和mimetex,但mathtex/mimetex常常需要手动编译,定制所需,源里的可能并不能满足我们的需求,建议编译。
1.mathtex
第一步:解决依赖关系
    Mathtex的依赖关系比较多,建议通过安装一个tex的发行版来解决,在linux下建议下载一个texlive的最新版的光盘镜像,对于texlive20100826,光盘镜像下的/texlive-doc/texlive-zh-cn/texlive-zh-cn.pdf已经说明得很清楚了,这里不再赘述,当然,你也可以尝试网络安装以直接安装最新的版本,请参考texlive官方网站的说明。
    在这里只提一点,最好让安装脚本自动创建符号链接并设置相关的环境变量,因为一般来讲,你并不需要在一个系统上安装多个tex发行版或安装多个版本的texlive,这样可以为你省去一些麻烦。有些linux发行版的源里有texlive,不过通过源装完的texlive的功能很可能不全,如果你还要使用texlive的其它功能,最好不要使用这种方法。
    tex的发行版不自带convert程序,你可以通过安装ImageMagick获得。
第二步:下载并解压源代码
    从google搜索mathtex的官方网站,那里提供源代码的下载。
第三步:编译mathtex
    基本上把mathtex所有的编译选项都说明了,这里不再赘述。
2.mimetex
    mimetex的编译和mathtex比较类似,在官方网站上也有说明,不同的就是mimetex并不需要解决tex的依赖关系。
    另外,官方的说明中给的编译命令并没有把gfuntype.c这个文件编译进去,因为只有当你需要加入新的字体时才需要这个文件,如果需要把这个文件也编译进去,应该把这个文件的文件名加在gifsave.c的前面或后面。

三、在命令行下的使用
    mathtex和mimetex的使用方法基本相同,当你将mathtex或mimetex编译好后,就可以在命令行下先切换至mathtex/mimetex所在的目录,执行形如
  1. ./mathtex.cgi "x^2+y^2" -o equation1
的命令即可,其中“"x^2+y^2"”指的是表达式,要用双引号括起来,-o后面的就是输出文件的文件名,不需要带上扩展名,mathtex默认输出为gif格式。

四、在线latex数学公式
1.codecogs
    地址是,截图如下

codecogs在线latex数学公式编辑器
在这个网页的左上角上可以选择语言,中间上部分的那些东西可以用来插入数学符号、设置格式,下面就是编辑框,再下面的分别可以设置输出的格式、字体、字号、大小、背景色、是否嵌入到文字中、是否限高,最下面的可以用来复制公式的代码,可以直接用来插入到html、latex等的代码。
2.forkosh
    这个就是mathtex、mimetex官方提供的,mathtex的地址是,mimetex的地址是不过它在使用起来并不像codecogs那样,只是提供一个输入框,一个输出框。不过功能却很全,mathtex的那个页面上给出了一个制曲线的例子,就我所知道的,只有mathtex的那个能做到。
3.sciweavers
    地址是,有字数限制,不能高于1000个字符。
4.numberempire
    地址是
5.Roger's Online Equation Editor
    地址是,模样和mathtex官网上的相似。
6.其它
    我相信这样的网络服务肯定还会有,有些作成了编辑器,有些则只是提供一个配好的服务器和cgi程序,这在forkosh上也有相关的列表。

五、mathtex的使用技巧与应用
1.使用mathtex作图
    你可能会注意到mathtex官方网站上有一个作图的例子,要想让你的mathtex做到可能很困难,至少我还没做到,而且我见过的mathtex的网络服务,似乎也只有forkosh的能做到,不过tex的作图能力可能不是很强,你要是想做出个小图案来还有可能,要是想精确地做出某某函数的图形来,那可能就不是件简单的事了,mathtex的作图方法跟latex的作图方法基本上是一样的,这个在陈志杰的《LATEX入门与提高》里有所介绍,可以参考一下。
2.自定义颜色
    mathtex只提供了有限的很少的颜色,你很可能需要在设定一个自己的颜色,即使是支持的颜色比较多的codecogs也未必能满足你的要求,使用形如\definecolor{blueblack}{RGB}{0,0,135}的语句可定义一种新的颜色,然后你就可以使用{\color{blueblack} expression}来使用这个颜色了,当然,definecolor只对其所在的公式起作用哦。

六、服务器应用
    本人建立mathtex服务器并不是一番风顺的,在这里,我把我的一些经验分享出来,先说明一下环境,debian linux、squeeze、amd64、apache2。
1.创建相关目录并修改权限
    在linux下,apache将网页等内容默认放在/var/www目录下,而cgi程序/脚本没有这个限制,当然你也可以将其放到这里。然后就是设置目录的权限,对于mathtex所在的目录,需要设置为777,即rwxrwxrwx,因为mathtex需要生成绶存的文件以备下次使用。
2.配置服务器
    首先要确认你的apache在启动时自动加载cgi相关的模块,下面这两行可使apache支持cgi:
  1. LoadModule cgi_module modules/mod_cgi.so

  2. AddModule mod_cgi.c
    对于apache2,是在/etc/apache2/mods-enabled下添加相应模块的链接,而不是以上一种方式,不过你的系统下可能自动添加了这个模块。
    默认情况下,apache并不允许cgi程序/脚本运行,因为cgi程序/脚本的风险较大,不过在必要的时候还是要用的,在《linux工具集》那本书里提到了三种可以让apache允许cgi程序/脚本的方法,分别是ScriptAlias、Options+ExecCGI、“AllowOverride Options和.htaccess”,其中ScriptAlias的安全性最高,实现起来也比较简单,这里以这种方法为例。
    修改/etc/apache2/httpd.conf添加形如
  1. ScriptAlias /cgi "/var/www/cgi-bin"
的语句,这个语句需要两个参数,第一个参数是为这个目录建立的别名,在这种本例中,你可以用来使用这个cgi程序,第二个参数指的是这个cgi程序/脚本所在的真实路径,应像这个例子当中的那样使用绝对路径。
3.使用“-DREFERER=\"domain\" ”编译选项以限制使用
    如果你在编译mathtex时没有使用这个选项,那么互联网上的任何网站可能都可以使用你的这个mathtex,这就相当于建立了一个免费的mathtex网络服务,当然,如果你有这个条件,mathtex的开发者们会高兴你能这样做,不过大多数情况下,你可能并不喜欢这样,那么就需要设定使用的权限,这个形式是只允许一个域名的,如果要允许多个域名,用-DREFERER=\"domain1,domain2,etc\"这种形式。

七、mimetex的使用
    mimetex在使用上和mathtex有许多相似的地方,优点是不需要tex的依赖关系,缺点就是效果会打折扣,而且功能也不如mathtex全,不过mimetex倒是可以比较容易地实现作图,在官方的说明中给出了两个例子可供参考。

八、在windows下的使用
    在mathtex的官方说明中明确提到,mathtex只能在unix或类unix系统中编译使用,其实更严格地说mathtex只能在已解决tex的依赖关系的unix或类unix系统中编译使用。现在的mathtex还没有移植到windows下。不过mimetex可以在windows下编译使用,windows版的mimetex已经编译好了一个可执行文件,你也可以自己再编译一个自己需要的。若要在windows下编译mimetex,需要创建一个unix-like的环境,并需要gcc的移植版,mingw shell可以做到,在编译时记得加上“-DWINDOWS”参数哦。

九、总结


版权声明:本文乃pl014(panuins@gmail.com)原创文章,如需转载,需要注明原文地址。
阅读(11083) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

pl0142011-05-28 17:18:17

tiplip: 你好,最后那个线图用的什么绘图软件?
谢谢.....
freemind

tiplip2011-05-26 10:31:14

你好,最后那个线图用的什么绘图软件?
谢谢