【转】TeXmacs:一个真正“所见即所得”的排版系统
TeXmacs:一个真正“所见即所得”的排版系统

好久没有推荐过自己喜欢的软件了,现在推荐一款我在美国做数学作业的私家法宝:TeXmacs。我恐怕不可能跟以前那么有闲心写个长篇的 TeXmacs 说明文档了,不过这东西如此的简单好用,所以基本上不用我写什么文档了。鉴于知道的人很少,不理解它的人很多,这里只是帮它打个广告,吊一下胃口。
TeXmacs 的主要特点是:
跟 Lyx 等不同,它不是一个 TeX 的“前端”,而是一个完全独立的,超越 TeX 的系统。TeXmacs 拥有跟 TeX 相同,甚至更好的排版美观程度。这是因为它采用跟 TeX 一样的排版算法,并且用 C++ 重新实现。据说分页的算法比 TeX 的还要好些。
拥有超越 Word (或者任何一款字处理软件)的,真正的“所见即所得” (WYSIWYG)。Word 所谓的“所见即所得”其实是假的。所见即所得的含义应该是,屏幕上显示的内容,跟打印下来的完全一样。可是 Word 能做到吗?打印一个文档出来你就发现跟屏幕上显示的有很大区别,一般来说屏幕上显示的要粗糙一些。一些 TeX 的前端,比如 Lyx, Scientific Workspace 等也是类似的,它们都不能达到真正的所见即所得。
直接可在屏幕文档里绘图。完全可视化的表格,公式编辑环境。这些都是比 TeX 方便高效很多的方式。需要当心的是,用过 TeXmacs 一段时间之后,你会发现回到 TeX 的公式编辑方式简直就像回到原始社会。
非常人性化的按键设计。比如,在数学公式环境下,你按任意一个字符,然后就可以用多次 TAB 键相继选择“拓扑相同”的字符。举个例子,如果你按 @,然后再按几下 TAB,就会发现这个字符变成各种各样的圆圈形的字符。如果你按 >,再按 =,就会出现大于等于号,之后再按 TAB,就会相继出现大于等于号的各种变体。
在直观的同时不失去对底层结构的控制。比如,(见下图)窗口右下角的状态栏,显示出当前光标位置的“上下文”是“proof eqnarry* (1,1) start”,这表示的是这是在一个 proof 环境里的 eqnarry 的坐标 (1,1) 的开始处。当你使用 Ctrl-Backspace,最靠近光标的那层“环境”会被删除。比如,如果你现在的字体是斜体,那么在 Ctrl-Backspace 之后,字体就立即还原成正体。

结构化的浏览功能。比如,按 Ctrl-PgUp, Ctrl-PgDn 就可以在“相同类型”的结构里上下跳转。比如,如果你在小节标题里按这个键,就可以迅速的浏览所有的小节标题。如果你在数学公式里按这个键,就可以迅速浏览所有的数学公式。
与交互式程序接口。支持很多种计算机代数系统,和交互式软件,比如 MAXIMA,Octave,…… 这些系统返回的数学公式会直接被 TeXmacs 显示为“TeX 效果”。使用 Scheme 作为嵌入式语言,并且可以使用它来扩展系统。这比起 TeX 的语言是非常大的进步。
目前由于 TeX 的垄断地位,以及由于 TeXmacs 是法国人做的,这个系统在美国还不是很流行,很多人都没听说过有这种东西存在。学术圈的很多人由于受到某种错误思想的“洗脑”,都不理解这种图形化编辑软件的价值。希望中国人民和法国人民一样后来居上,超越美国。
想要迅速的掌握 TeXmacs 的基本用法,可以参考我绘制的 TeXmacs 思维导图:

【转】TeXmacs:一个真正“所见即所得”的排版系统的更多相关文章
- 排版系统Latex傻瓜方式使用(论文排版)
0. 什么是Latex? LaTEX(英语发音:/ˈleɪtɛk/ lay-tek或英语发音:/ˈlɑːtɛk/ lah-tek,音译"拉泰赫").文字形式写作LaTeX.是一种基 ...
- groff - groff 文档排版系统前端
总览 (SYNOPSIS) groff [ -abehilpstvzCENRSUVXZ ] [ -wname ] [ -Wname ] [ -mname ] [ -Fdir ] [ -Idir ] [ ...
- troff - groff 文档排版系统的 troff 处理器
总览 SYNOPSIS troff [ -abcivzCERU ] [ -d cs ] [ -f fam ] [ -F dir ] [ -m name ] [ -M dir ] [ -n num ] ...
- 判断一个Activity 判断一个包 是否存在于系统中 的方法
判断一个包是否存在于系统中(来自网络),经过测试,好用: public boolean checkBrowser(String packageName) { if (packageName == nu ...
- 【Unity Shaders】Reflecting Your World —— 在Unity3D中创建一个简单的动态Cubemap系统
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- 使用Phalcon框架开发一个简易的博客系统
使用Phalcon PHP框架开发一个简易的博客系统(类似于CMS) 最近在做Phalcon(Phalcon在英文中指的是鸟类中飞得最快的那一个物种,由于是高性能框架,借用了这个词)相关的项目,由于刚 ...
- 如何在本地搭建一个Android应用crashing跟踪系统-ACRA
https://github.com/bboyfeiyu/android-tech-frontier/tree/master/others/%E5%A6%82%E4%BD%95%E5%9C%A8%E6 ...
- 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态?
https://alibaba.github.io/arthas/ Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决 ...
- 【MEF】构建一个WPF版的ERP系统
原文:[MEF]构建一个WPF版的ERP系统 引言 MEF是微软的一个扩展性框架,遵循某种约定将各个部件组合起来.而ERP系统的一大特点是模块化,它们两者的相性很好,用MEF构建一个ERP系统是相当合 ...
随机推荐
- Web UI 技术发展历程
本文内容 纯文本和静态 HTML 页面 服务器端技术 插件技术--ActiveX.Applet 和 Flash Ajax 异步时代和基于 JavaScript 的 UI 技术 RIA--Adobe F ...
- SVN 配置文件说明
svnserve是SVN自带的一个轻型服务器,客户端通过使用以svn://或svn+ssh://为前缀的URL来访问svnserve服务器,实现远程访问SVN版本库.svnserve可以通过配置文件来 ...
- C#.NET常见问题(FAQ)-如何把定义存放类实例的数组
数组存放的可以是普通的int,double,string类型,也可以是自定义的类的实例 如果数组长度未知,可以用list对象存放 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: h ...
- CSS 之 样式优先级机制
多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 1.一般情况下,优先级从低到高,如下: 浏览器缺省(即浏览器默认) →(外部样 ...
- 在linux下makefile的使用
在linux下makefile的使用
- oj
https://github.com/zhblue/hustoj insert into privilege(user_id,rightstr) values('wxy','administrator ...
- MAC LINUX 安装PYQT(事例)
MAC安装 1.安装命令:brew install pyqt Warning: Your Xcode () is outdated Please install Xcode 5.0. Warning: ...
- arm-linux 裸机下 VNC 的实现
这里的 arm-linux 裸机指的是,只有基本 C 库和安装了 busybox 的嵌入式系统,没有 X11 或者 wayland 作为底层支援. 这里的实现是基于 framebuffer 的,是将用 ...
- MyArrayList——自己实现ArrayList
注:转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5965205.html 代码已移植:https://github.com/ygj0930/MyAr ...
- Selenium高亮页面对象
使用QTP习惯了,在QTP中可以通过访问对象的highlight方法直接高亮对象,确实很方便,那么如何让Selenium高亮页面的测试对象了,可以通过javascript修改页面对象的属性进而高亮对象 ...