基于mimeTex的数学公式Webservice的部署和实现
通过Latex语法,实现生成数学公式的解决方案也很多。
这里介绍一种方法,使用开源的mimeTex。该项目的官网地址如下:
http://www.forkosh.com/mimetex.html
网站主页有一个声明。如果你的服务器上已经安装了latex,那么推荐使用mathTex,因为mathTex基于真正的Latex,并且显示的图像质量高于mimeTex。但是mathTex只能在linux环境部署,并且需要已安装了latex才行。而mimeTex则可以在linux和windows下都部署,并且不需要安装latex。
在linux下的部署方式
首先,需要安装Apache等服务器,并且配置好cgi环境。不熟悉的点这里。
接下来,下载mimetex.zip下载地址如下: http://www.forkosh.com/mimetex.zip
下载完毕后,解压缩。
unzip mimetex.zip -d mimetex
然后编译
cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi
然后可以看到生成了一个mimietex.cgi文件
可以先测试一下这个文件,运行命令
./mimetex.cgi "x^2+y^2"
可以看到生成的点阵图。缩小了看可以隐约看到数学公式
说明生产的cgi文件很正常,把该cgi文件复制到Apache中设置的cgi-bin目录下,然后通过网址访问:
http://localhost:9000/cgi-bin/mimetex.cgi?x^2+y^2
可以看到图像
剩下的事情就是熟悉latex语法的问题了,关于语法可以从这里了解更多 http://www.forkosh.com/mimetexmanual.html
在Windows下的部署方式如下。
如果需要在windows部署,根据官网的描述,可以通过Code Project中的项目eq2img实现,该项目地址http://www.codeproject.com/Articles/11406/Enable-Your-Users-to-Write-Math-Equations-in-Your
首先下载eq2img_all.zip,下载地址http://www.shitalshah.com/dev/eq2img_all.zip
该项目把基于unix下的c源码编译成了VC++的win32的dll,因此可以将该dll移植到.net环境中使用。(这个方式本人未做验证,但感觉比较复杂)。
事实上在windows的IIS上实现CGI功能是更简单的方法,我们可以下载已经编译好的exe文件,在IIS中配置该文件作为CGI的运行程序。windows下的exe文件的下载地址如下:
http://www.forkosh.com/mimetex.exe/windows/mimetex.zip
下载后,解压缩,并且可以在控制台中验证该exe文件,输入命令行mimetex.exe "x^+y^2",同样可以看到点阵图,表面这个exe文件正确。
然后配置该文件处理作为cgi程序。
打开IIS7,在站点中,双击处理程序映射,点击添加脚本映射。如下图
确认之后,可以在处理程序映射列表中看到刚才的配置项
然后在IE中输入http://localhost/mimetex/.tex?x^2+y^2 (注意访问的后缀名是.tex)后,可以看到图像了。
相关文章:

对称加密算法AES之GCM模式简介及在OpenSSL中使用举例
AES(Advanced Encryption Standard)即高级加密标准,由美国国家标准和技术协会(NIST)于2000年公布,它是一种对称加密算法。关于AES的更多介绍可以参考:https://blog.csdn.net/fengbingchun/article/details/100139524 AES的GCM(Galois/Counte…

iOS UITextField清空按钮
extField.clearButtonModeUITextFieldViewModeWhileEditing; 就可以了,表明编辑输入框的时候启动一键清空按钮。另外,clearButtonMode还有三个属性: UITextFieldViewModeNever, 清空按钮永不出现 UITextFieldViewModeUnlessEditing, 不编…
腾讯“疯狂”开源
作者 | 马超责编 | 胡巍巍出品 | CSDN(ID:CSDNnews)近日,腾讯自研的万亿级分布式消息中间件TubeMQ正式开源,并捐赠给Apache基金会,成为基金会官方认可的Incubator项目。我们知道与TubeMQ功能类似的kafka是领…

[Android]开发摇一摇分歧表决器过程
心血来潮,走进Android,准备开发一个摇一摇分歧表决器(PS:这个想法源自去年看的一个都市剧《约会专家》中主人公杭杭开发的分歧表决器APP)。简述:摇一摇分歧表决器是一款Android App,通过将传统的…

C和C++安全编码笔记:整数安全
5.1 整数安全导论:整数由包括0的自然数(0, 1, 2, 3, …)和非零自然数的负数(-1, -2, -3, …)构成。 5.2 整数数据类型:整数类型提供了整数数学集合的一个有限子集的模型。一个具有整数类型的对象的值是附着在这个对象上的数学值。一个具有整数类型的对象…
8.3折特惠票仅剩3天!「2019 嵌入式智能国际大会」全日程大公开!
8.3折特惠票仅剩3天立即抢购:https://t.csdnimg.cn/otBk还有5天,大伙期待的「2019嵌入式智能国际大会」正式开幕了!2019年12月6日-7日,我们在深圳市人才研修院见!大会以“万物互联泛在智能”为主题,邀请30位…

iOS点击空白收回键盘
//点击空白收回键盘 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [self.view endEditing:YES]; }
第一个net-mvc程序
结构 视图层 <% Page Language"C#" Inherits"System.Web.Mvc.ViewPage<dynamic>" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">…

iOS 储存用户信息设置封装 直接调用即可(部分是代码片段)
、、、、、、、、、、、、、、、、、、首先 定义 UserInfo #import <Foundation/Foundation.h> interface UserInfo : NSObject //用户id property (nonatomic, strong) NSString *userID; //用户名 property (nonatomic, strong) NSString *userName; //密码 propert…

ASN.1简介及OpenSSL中ASN.1接口使用举例
ASN.1(Abstract Syntax Notation One)是一套标准,是描述数据的表示、编码传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以描述独立于特定计算机硬件的对象结构。OpenSSL的编码方法就是基于该标准。ASN.1是一种结构化的数字对象描述语言,…
谁是当今最顶级的技术?SQL、Java、Python、C++ 皆上榜!
【12月公开课预告】,入群直接获取报名地址12月11日晚8点直播主题:人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播:利用容器技术打造AI公司技术中台12月17日晚8点直播主题:可重构计算:能效比、通用性…

将表里的数据批量生成INSERT语句的存储过程 增强版
原文:将表里的数据批量生成INSERT语句的存储过程 增强版将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件来生…

通过OpenSSL的接口实现Base64编解码
对openssl genrsa产生的rsa私钥pem文件,使用普通的base64解码会有问题,如使用https://blog.csdn.net/fengbingchun/article/details/85218653 中介绍的方法,一是有可能不能从返回的结果中直接使用strlen来获得最终字符的大小,因为…
激辩:机器究竟能否理解常识?
【12月公开课预告】,入群直接获取报名地址12月11日晚8点直播主题:人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播:利用容器技术打造AI公司技术中台12月17日晚8点直播主题:可重构计算:能效比、通用性…

Mac OS X 下Node.js开发环境的搭建
1.安装Xcode2.安装Homebrew 谷歌搜索Homebrew 复制命令行 打开终端 粘贴命令行 点击回车 安装 输入密码等2.安装Nodejs利用Homebrew安装nodejs打开终端 输入 :brew install nodejs 回车查询nodejs版本:node --version3.安装文档数据库 MongoDB打开终…

.NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper
.NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary>/// MySql 数据库操作类/// </summary>public class MySqlHelper{/// <summary>/// MysqlConnection/// </summ…
Instagram个性化推荐工程中三个关键技术是什么?
作者 | Ivan Medvedev,Haotian Wu,Taylor Gordon译者 | 陆离编辑 | Jane出品 | AI科技大本营(ID:rgznai100) 【导语】近期,Facebook 在博客上分享了第一篇详细介绍 Explore 系统关键技术,以及 I…

iOS UIbutton 点击无反应的几种情况
1、UIButton不能点击情况的第一种是,你将button添加到一个不能响应点击事件的View里。如你将button添加到UIImageView中,解决办法只需将UIImageView的 userInteractionEnabled设为YES即可。 例如: self.headImgV [[UIImageView alloc] ini…

C和C++安全编码笔记:格式化输出
C标准中定义了一些可以接受可变数量参数的格式化输出参数,参数中包括一个格式字符串。printf()和sprintf()都是格式化输出函数的例子。格式化输出函数是由一个格式字符串和可变数目的参数构成的。在效果上,格式化字符串提供了一组可以由格式化输出函数解…
谈谈UI架构设计的演化
谈谈UI架构设计的演化 经典MVC 在1979年,经典MVC模式被提出。 在当时,人们一直试图将纯粹描述思维中的对象与跟计算机环境打交道的代码隔离开来,而Trygve Reenskaug在跟一些人的讨论中,逐渐剥离出一系列的概念,最初是T…

JWT(JSON Web Token)简介及实现
JWT(JSON Web Token):是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为Json对象安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用HMAC SHA256或RSA等对JWT进行签名。 JW…

iOS UIImageView 加载含有汉字的url处理方法
NSString *url [model.pic stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; [self.headImgView sd_setImageWithURL:[NSURL URLWithString:url]];

《评人工智能如何走向新阶段》后记
由AI科技大本营下载自视觉中国自《评人工智能如何走向新阶段》一文发表(在内部)后,引来了中外专家、草根们的广泛议论,有深有浅,其中似有一些思考价值,故录入本文后记: 中外专家、草根们23条议…
用XCA(X Certificate and key management)可视化程序管理SSL 证书(3)--创建自己定义的凭证管理中心(Certificate Authority)...
在第“用XCA(X Certificate and key management)可视化程序管理SSL 证书(2)---创建证书请求”章节中,我们介绍了怎样用XCA创建SSL证书请求(Certificate Request),在一章节中…

C和C++安全编码笔记:并发
并发是一种系统属性,它是指系统中几个计算同时执行,并可能彼此交互。一个并发程序通常使用顺序线程和(或)进程的一些组合来执行计算,其中每个线程和进程执行可以在逻辑上并行执行的计算。这些进程和(或)线程可以在单处理器系统上使用分时抢占…

《评人工智能如何走向新阶段》后记(再续1)
由AI科技大本营下载自视觉中国中外专家、草根对《评人工智能如何走向新阶段》一文进行广泛议论,已在《后记》中发表原创(未加修改)的23条议论,现再续发24-30条如下: 24.最近半年来,人工智能的发展重心逐渐…

iOS UITextView 随键盘弹出界面上移
- (void)textViewDidBeginEditing:(UITextView *)textView { CGRect frame textView.frame; int offSet frame.origin.y 70 - (self.view.frame.size.height - 216.0); //iphone键盘高度为216.iped键盘高度为352 [UIView beginAnimations:"ResizeForKeyboard" co…

H3C 交换机命名规则
例:H3C-S5500-28C-EIH3C:为固定值,就是“H3C”这个品牌S的位置:代表产品系列『S 代表交换机SR 代表业务路由器』第一个5的位置:代表产品子系列号『3系为千兆上行,百兆下行的合适交换机 例:S3600 S31005系为全千兆的盒式交换机 …

iOS 时间选择器封装(含三种模式)
#import <UIKit/UIKit.h> typedef enum : NSUInteger { DatePickerViewDateTimeMode,//年月日,时分 DatePickerViewDateMode,//年月日 DatePickerViewTimeMode//时分 } DatePickerViewMode; protocol DateTimePickerViewDelegate <NSObject> optional /** * 确定按…

C和C++安全编码笔记:总结
《C和C安全编码》(原书第2版)这本书是2013年出版的。 这里是基于之前所有笔记的简单总结,笔记列表如下: 字符串:https://blog.csdn.net/fengbingchun/article/details/105325508 指针诡计:https://blog.csdn.net/fengbingchun/…