一、简介
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将
-
-
输出为
-
而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所在的目录,执行形如
-
./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:
-
LoadModule cgi_module modules/mod_cgi.so
-
-
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添加形如
-
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) |