在博客里轻松使用LaTeX 数学公式[转]
笔者最近的博文有不少数学相关内容,发现利用一些网上服务、jQuery和CSS,可以更轻松地在博客里使用语法排版方程式。是基于的排版系统。而就是美国著明计算机教授高德纳(Donald E. Knuth),为了编写他的巨著《计算机程序设计艺术(The Art of Computer Programming)》而设计的系统,对于数学公式的排版支援十分强大。
线上LaTeX数学公式编辑器
笔者最初使用这个线上LaTeX数学公式编辑器,输入公式时,就会产生一个影像档案(如GIF、PNG、SVG),把该HTML代码复制到博客即可。例如:
1
|
\sqrt{a^2+b^2}
|
选择输出为HTML,该编辑器就会产生以下的HTML代码:
1
|
< img src = "http://latex.codecogs.com/gif.latex?\sqrt{a^2+b^2}" title = "\sqrt{a^2+b^2}" />
|
这HTML码就能显示该公式
这个方法已算不错了,但还有3个小问题:
- 每次修改,都要从IMG找到代码,复制过去编辑器,再复制过来,比较麻烦。
- 希望像一般技术书籍,为公式加入编号,方便评论和沟通时使用。
- 万一想改变生成影象的服务、输出格式、大小设置等,就要修改每个地方。
于是,笔者想到使用jQuery,把放置代码的特定的HTML标记,自动变换成IMG标记,并使用CSS作编号。
jQuery作转换
笔者最近才得知jQuery,是百分百新手,请各位不吝赐教。
现时希望支持两种数学公式,一种是文字中的内联(inline)公式,另一种是整行独占的公式。笔者分別采用span和div标记,并共同使用math作为class:
1
|
< span class = "math" >latex code</ span >
|
2
|
< div class = "math" >latex code</ div >
|
之后,就使用以下JavaScript代码,在网页载入后做这个转换:
1
|
// math.js
|
2
|
$(document).ready( function () {
|
3
|
$( ".math" ).each( function (i) { $( this ).html( "<img src=\"http://latex.codecogs.com/png.latex?" + this .innerHTML + "\"/>" ); });
|
4
|
});
|
CSS排版
最后,利用CSS2计数器(CSS2 counter),为非内联的公式加入编号。 编号的方式各有喜好,笔者博客里使用采用(节.公式编号)格式,笔者定义"节"(section)是以<h2>为层级,公式编号则是在一个章节里从1开始。在博客园中,博客内文是在div.entry之内,以下CSS代码就能为公式加上编号和置中(可加进博客"修改设置 -> 通过CSS定制页面风格"):
1
|
body { counter-reset :section 0 ; }
|
2
|
div.entry h 2: before { counter-increment :section; content : counter (section) ". " }
|
3
|
div.entry h 2 { counter-reset :equation }
|
4
|
div.math:before { counter-increment :equation; content : "(" counter (section) "." counter (equation) ")" ; float : right ; }
|
5
|
div.math img { display : block ; margin-left : auto ; margin-right : auto ; }
|
6
|
span.math img { border : none ; vertical-align : middle ; }
|
测试1
1
|
< p >牛顿力学第三定理是</ p >
|
2
|
< div class = "math" >\vec{F}=m \frac{d \vec{v}}{dt} + \vec{v}\frac{dm}{dt}</ div >
|
3
|
< p >当中< span class = "math" >\frac{d \vec{v}}{dt}</ span >是速度相对于时间的改变。 </ p >
|
4
|
< p >爱因斯坦的能质守衡公式是</ p >
|
5
|
< div class = "math" >E=mc^2</ div >
|
牛顿力学第三定理是
当中是速度相对于时间的改变。
爱因斯坦的能质守衡公式是
(可看到方程计数器的递增,使编号由(4.1)变成(4.2)。)
测试2
1
|
< p >计算两个矢量< span class = "math" >\mathbf{A}</ span >和< span class = "math" >\mathbf{B}</ span >之间的夹角< span class = "math" >\theta</ span >,可用</ p >
|
2
|
< div class = "math" >\cos \theta = \frac{\mathbf{A} \cdot \mathbf{B}}{\left \| \mathbf{A} \right\| \cdot \left \| \mathbf{B} \right\|}</ div >
|
计算两个矢量和之间的夹角,可用
(可看到h2标记把计方程数器重置,使编号变成(5.1)。)
结语
对于简单的公式,笔者现在可以直接使用HTML编辑器输入代码,修改也容易。透过CSS把显示的格式和内容分离,将来改变皮肤、或影象生成服务等也变得容易。
一个缺点是,读者透过RSS等方式,只能看见源码。
读者可于这里下载代码。
关于的进阶公式输入方法,可参考中文维基:数学公式
来源:http://www.cnblogs.com/miloyip/archive/2010/04/26/1720877.html
转载于:https://www.cnblogs.com/guangrou/archive/2010/10/14/1851440.html
在博客里轻松使用LaTeX 数学公式[转]相关推荐
- 分享几个可以放在博客里的小工具
刚加入博客园的时候,拜读了LloydSheng的随笔<玩转博客园的5个小技巧>,收获不小,其中的几个技巧我也用到了自己的博客里,很感谢LloydSheng的分享精神. 经常去访问博客园其他 ...
- 为什么要开这个博客?我在这个博客里写什么?
今天我问自己为什么要开这个博客?我在这个博客里写什么? 就在我问完自己这两个问题的时候,我的脑子里便闪现出我这几年的工作与生活:不停的出差,奔波在各地,有的时候一觉醒来都有一种不知道自己身处何方的错觉 ...
- 如何把视频写在博客里?
博客小技巧--把视频写到51cto博客里 今天在网友'为梦奔跑'的指点下,我已经成功把优酷的视频转换到我的51cto博客了,在此表示感谢!这可是我梦寐以求的事情呀!o(∩_∩)o...哈 ...
- 自己收藏在博客里的英语口语学习资料,贴出来分享给大家
自己博客里收藏了好多别人总结出来的学习资料,呵呵 ,学习起来比较方便,贴出来一些分享给大家. 1.实用英语口语 http://www.8hello.cn/w_show/34/w_show-17067. ...
- hexo博客next主题添加对数学公式的支持
hexo博客默认为markdown格式,但是新搭建的hexo博客不支持公式渲染,下面介绍hexo博客next主题下添加对数学公式支持的方法. 环境说明: hexo版本:5.4.1 next版本: 最新 ...
- 自由在博客里插入广告,有钱你不赚吗???
其实这些广告也没啥意思,难怪ITeye只做谷歌的广告. 国内的广告,全是CPA和CPS类型的广告,一点利润都没.NND,不做也罢,还影响博客美观. 更新于2012年5月25日 晚.... 广告类型 C ...
- 在博客里胡搞markdown排版是否搞错了什么
(1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 当时高考完分数出来准备报志愿的时候,我犹豫应该选择什么专业.开始的时候我考虑土木工程,但是我母亲极力要求我必须要 ...
- 在CSDN博客里保持代码格式的方法
新手肯定能遇到的问题,刚刚开始写博客时自己粘贴的代码参差不齐,别人的确工工整整,于是搜了以下解决办法: 方法一:按语言插入 如图,在编辑器里点击代码页有"<>"的按钮, ...
- 下载新浪博客里的音乐
以该篇博客距离与独立里面的音乐为例: 点击浏览器菜单栏里的[工具]---[Internet选项]---[常规]---[设置]---[查看文件],把所有文件都删了: 打开网页,把那个背景音乐完整地在线听 ...
最新文章
- 【风之语】至贱城市之苏州
- AndoridSQLite数据库开发基础教程(5)
- ASP.NET MVC Model绑定小结
- openresty开发系列24--openresty中lua的引入及使用
- C++中申请内存的正确方法
- C语言小程序显示心形,如何用vc6.0编出来一个心形
- android 图片置顶,Android布局图片置顶
- Springboot课设旅游推荐系统
- 关键词热度分析工具_不懂亚马逊关键词分析怎么办?10款超好用的亚马逊运营必备关键词研究分析工具,建议收藏!...
- 高清HDMI高清编码器(HDMI网络传输器)使用及前景
- android studio日志不打印,Mac 下 Android Studio 不打印日志的解决办法
- 卷积神经网络(CNN)图像识别知识总结
- 程序包xxx不存在解决办法
- CCAnimation创建动画cocos2d-x教程
- MongoDB 查询语法与常用查询语句总结
- 网络安全、信息安全、数据安全、个人信息的含义
- 程序员职场进阶 32 讲
- 软件工程之美学习笔记三十八 37 | 遇到线上故障,你和高手的差距在哪里?
- android图案怎么解锁,Android解锁图案共有多少种?
- 从硬件到软件工程师,工作12年,我是如何实现财务自由的
热门文章
- 根据thickbox定制自己的遮罩层
- 构造函数,拷贝构造函数,赋值函数
- 'fopen' This function or variable may be unsafe
- matlab中“存储空间不足,无法处理此命令”
- 通过源码将git升级到最新版
- mysql 用户授权_mysql添加、删除用户和授权用户
- vue-awesome-swiper缩略图无法联动的问题
- 运营管理最新版史蒂文森_运营增长人都在看的硬核案例拆解是怎么做的?
- 戴尔电脑开机黑屏怎么办_笔记本电脑开机黑屏怎么办
- 在浏览器控制台执行以下代码,输入的结果是()