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:一个真正“所见即所得”的排版系统的更多相关文章

  1. 排版系统Latex傻瓜方式使用(论文排版)

    0. 什么是Latex? LaTEX(英语发音:/ˈleɪtɛk/ lay-tek或英语发音:/ˈlɑːtɛk/ lah-tek,音译"拉泰赫").文字形式写作LaTeX.是一种基 ...

  2. groff - groff 文档排版系统前端

    总览 (SYNOPSIS) groff [ -abehilpstvzCENRSUVXZ ] [ -wname ] [ -Wname ] [ -mname ] [ -Fdir ] [ -Idir ] [ ...

  3. troff - groff 文档排版系统的 troff 处理器

    总览 SYNOPSIS troff [ -abcivzCERU ] [ -d cs ] [ -f fam ] [ -F dir ] [ -m name ] [ -M dir ] [ -n num ] ...

  4. 判断一个Activity 判断一个包 是否存在于系统中 的方法

    判断一个包是否存在于系统中(来自网络),经过测试,好用: public boolean checkBrowser(String packageName) { if (packageName == nu ...

  5. 【Unity Shaders】Reflecting Your World —— 在Unity3D中创建一个简单的动态Cubemap系统

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  6. 使用Phalcon框架开发一个简易的博客系统

    使用Phalcon PHP框架开发一个简易的博客系统(类似于CMS) 最近在做Phalcon(Phalcon在英文中指的是鸟类中飞得最快的那一个物种,由于是高性能框架,借用了这个词)相关的项目,由于刚 ...

  7. 如何在本地搭建一个Android应用crashing跟踪系统-ACRA

    https://github.com/bboyfeiyu/android-tech-frontier/tree/master/others/%E5%A6%82%E4%BD%95%E5%9C%A8%E6 ...

  8. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态?

    https://alibaba.github.io/arthas/ Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决 ...

  9. 【MEF】构建一个WPF版的ERP系统

    原文:[MEF]构建一个WPF版的ERP系统 引言 MEF是微软的一个扩展性框架,遵循某种约定将各个部件组合起来.而ERP系统的一大特点是模块化,它们两者的相性很好,用MEF构建一个ERP系统是相当合 ...

随机推荐

  1. apache 反向代理的时候,通过域名访问是,出现跳转到ip或者无权访问的情况

    解决方法很简单,在配置反向代理的时候加上一行: ProxyPreserveHost On 例如:ProxyPass / http://202.112.0.1/ProxyPassReverse / ht ...

  2. 微软BI 之SSRS 系列 - 报表邮件订阅中 SMTP 服务器匿名访问与 Windows验证, 以及如何成功订阅报表的实例

    这篇文章源于在上一篇博文中有园友提出订阅 SSRS 报表时的一个问题,  于是就好好总结了一下,把有关 SSRS 报表订阅的要点和容易出现问题的地方写出来,希望对大家有所帮助! 参看上一篇博文 - S ...

  3. JAVA GC优化入门

    为什么需要优化GC? JAVA的GC是面试必考的题目,可是在实际项目中什么时候使用GC哪?或者应该什么时候优化GC哪?有句名言:“GC优化永远是最后一项任务”. 在使用GC之前,应该考虑一下进行GC的 ...

  4. [转]double与BigDecimal

    转自:http://superivan.iteye.com/blog/963628 [1] 精确的浮点运算: 在Java里面,有时候为了保证数值的准确性需要精确的数据,先提供一个例子就可以发现问题了: ...

  5. mahout基于Hadoop的CF代码分析(转)

    来自:http://www.codesky.net/article/201206/171862.html mahout的taste框架是协同过滤算法的实现.它支持DataModel,如文件.数据库.N ...

  6. xampp 教程

    xampp教程1 使用安装包进行安装 (目前有三种可供选择下载的XAMPP for Windows: 安装包   简单且安全:XAMPP 的便捷安装程序.) 使用安装包来安装XAMPP是最简单的方法. ...

  7. Keepalived系列一:安装Keepalived

    1:简介 它是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(B ...

  8. linux c server and client 简单的通信

    server.c #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <st ...

  9. ios中一级导航

    效果图 第一步先下载文件 http://pan.baidu.com/share/link?shareid=2148445651&uk=9237761877 将目录引入到xcode中 在xcod ...

  10. iOS设置圆角的四种方法

    小小圆角问题,正常情况下,我们不需要过多关心,但当屏幕内比较多的时候,还是有必要了解下性能问题的 一.设置CALayer的cornerRadius 这是最常用的,也是最简单的. cornerRadiu ...