关于Tex,有许多概念、许多软件。这些软件是做什么的,要解决哪些问题,今日好好总结一下。

就像任何领域一旦引入代数系统,一切都会变得井然有序一样。就像用五行八卦描述事物,事物的规律就变得清晰一样,类比能够简洁快速地把事物描述清楚。下面用类比的方式说一下结论:

  • Tex:相当于C语言,较为底层,用起来复杂
  • Latex:相当于C++,较为高层,它是对Tex的封装。更准确地说,Latex不是一门语言,它只是对Tex的封装。Latex之于Tex,犹如TypeScript之于JavaScript,犹如less之于CSS。
  • MiKTex:相当于G++,MinGW等编译器,是Latex编译器,把Latex文件生成其它文件。更确切的说,它相当于Python里面的Anaconda,它不仅包含Python编译器,还包括一些预先装好的包。
  • texStudio:相当于Visual Studio,CodeBlock,VisualC++6.0,是Latex语言的IDE,它需要绑定编译器。

一、语言层面

Tex和Latex是一种宏语言,下面简要介绍一下何为宏语言。

宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言并未在通用编程中广泛使用,但在文本处理程序中应用普遍。

计算机科学里的宏(Macro),是一种批量处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。

一言以蔽之,宏就是一种写法,宏相当于复制粘贴。

Tex

TeX 是一个排版系统。用 TeX,你可以把你的文章做成书那种效 果。你可以把它打印出来,或者送到出版社投稿。TeX 非常适合用来 写学术论文和书籍。

TEX是诞生于20世纪70年代末到80年代初的一款计算机排版软件,其作者就是鼎鼎大名的《计算机程序设计艺术》的作者-----高德纳。TEX以追求高质量为目标,很早就实现了矢量描述的计算机字体、细致的分页断行算法和数学排版功能,因其数学排版能力得到了学术界的广泛使用,也启发了后来复杂的商业计算机排版软件。

Tex之父Knuth对于Tex非常自信,他不仅把Tex的版本号定为3.1415926(圆周率的数值,表示已经圆满完美),还宣称每发现一个bug,奖金就会翻倍。Knuth 用他自己设计的“文学编程语言” WEB写了TeX的代码,到了正式发行的时候,他非常自信的奖励 $1.28 给第一个发现 bug 的人,以后每发现一个 bug, 奖金都会翻倍,最多 $327.68。后来由于加入了对8字节字符的支持,产生了一些小 bug. 从1995年到现在,总共只发现一个 bug. 发现 bug 的周期越来 越长,而且后来的 bug 都是一些在挑剔的人找出来的一些“美学” 上的问题了。但是严谨的 Knuth 仍然把它们作为 bug 处理。

TeX 确实已经很老了,它在 1982 年以后基本就没有变化过。但 是你要相信 TeX 是一个 masterpiece。它几乎没有bug, 而且你可以 在几乎任何计算机上使用它,从PC机到Cray巨型机。经过几十年的风 霜,它仍然是 "state-of-the-art". TeX 是如此的稳定,几十年前 的文档在现在输出效果不会有任何变化。虽然 TeX 程序和语言本身 没有再变化,但是 TeX 是可以在不修改主程序的情况下扩展的。 Knuth 在那个年代就想到了程序的扩展性,展现了卓越的远见。

TeX 是一个非常多才多艺的程序。它不但可以编辑论文,书籍, 幻灯片,学术杂志,还可以编辑乐谱,化学分子图,电路图,国际象 棋,中国象棋,甚至围棋棋谱,……事实上只有少量文档不适合用 TeX 编辑。你可以到这里看看样品 。

TeX 的一个宏包 MusiXTeX 可以做出漂亮的乐谱。你可以在 MusiXTeX的 网页找到很多乐谱。

TeX 主要依靠 BibTeX 实现文献管理。作 者可以从杂志,协会,网站等地方得到 BitTeX 文献数据库,然后在 自己的文件里只需要写一个几个字母长的标识符,比如 "kn95",就 可以自动在论文,书籍末尾加上已经引用的文献的参考文献条目。文 献条目可以自动排序,也可以不排序。

这种数据库条目是附和国际文献分类规则的,只要一个样式文件 就可以把文献数据自动排成需要的样子。一个期刊要求引用时采用 [Bhatt and Cai, 1993] 这样的字样,另一个期刊要 [BC93] 这样的, 而第三个期刊要 [10] 这样的数字编号,一个个改起来多麻烦! BibTeX 就可以让你轻松改变这些样式。而且这种文献条目的样式可 以自己选择。各个协会,比如 ACM, IEEE, SIAM, AMS ... 都会提供 附和它们投稿要求的 BibTeX 样式文件 .bst 给你。只要有了这种样 式文件,就可以不费力气的插入各种样式的参考文献条目了。

Latex

LATEX开始于20世纪80年代初,是Leslie Lamport博士为了编写自己的一部书籍而设计的。LATEX是对TEX的封装和拓展,实际上就是用TEX语言编写的一组宏代码,拥有比原来TEX格式(Plain TEX)更为规范的命令和一整套预定义的格式,隐藏了不少排版方面的细节,可以让完全不懂排版理论的学者们也可以比较容易地将书籍和文稿排版出来。

世界上只有一个TeX程序,它就叫做 "tex", 它是由 D. E. Knuth 设计并且实现的。TeX 不仅是一个排版程序,而且是一种程序语言。LaTeX 就是用这种语言写成的一个“TeX 宏包”,它扩展了 TeX 的功能,使我们很方便的逻辑的进行创作而不是专心于字体,缩进这些烦人的东西。TeX 还有其它的大型宏包,它们和 LaTeX 一起 都被叫做 "format",现在还有一种常用的format叫做 ConTeXt, 用 它能方便的作出漂亮的幻灯片,动态屏幕文档…… 我们通常用 TeX 都是在用 LaTeX, ConTeXt, 因为 TeX 的底层需要更多的知识才 能了解,一般人不需要自己设计自己的格式。

二、编译器层面

目前常用的Latex编译器有三种:

  • MiKTex
  • TexLive
  • MacTex

MiKTex

官网介绍如下:

MiKTex (pronounced mick-tech) is an up-to-date implementation of TeX/LaTeX and related programs.

MiKTex是Latex的一种实现,并且包含了其它相关程序。它支持Mac OS,Windows,Linux等平台。

TexLive

官网介绍如下:

TeX Live is an easy way to get up and running with the TeX document production system. It provides a comprehensive TeX system with binaries for most flavors of Unix, including GNU/Linux, and also Windows. It includes all the major TeX-related programs, macro packages, and fonts that are free software, including support for many languages around the world.

TEXLive是TEX的一个发行版,它是由TUG(TEX User Group,TEX用户组)发布的,可以在类UNIX/Linux、Mac OS X和Windows等不同的操作系统平台下安装使用,并且提供相当可靠的工作环境。
和MiKTex一样,TexLive支持跨平台。

MacTex

下面是来自官网的一段话:

The MacTeX Technical Working Group (mTWG) was formed in Hawaii in July 2003 at TUG 2003: the Silver Anniversary -- 25 years! -- of TeX, the 24th Annual Meeting and Conference of the TeX Users Group (TUG). Its goal is to work on action items that would enhance current and future development of TeX on Mac OS X. Apple Computer Inc. was a sponsor at TUG 2003 and provided computers, wireless networking, and technical support that enabled TUG to have its first remote live presentation from the Netherlands to an audience in Hawaii.
The MacTeX Lion drawing by Duane Bibby, created to celebrate the success of TeX on Mac OS X, was presented to the Grand Wizard, Don Knuth in January 2004. It is available in screensaver sizes here.

MacTex技术组2003年成立于夏威夷,它的目标是促进Tex在MacOS系统上的应用。这套软件不支持Linux和Windows。

CTex

CTEX是TEX中的一个版本,CTEX 指的是CTEX 中文套装的简称。
CTEX 指的是CTEX 中文套装的简称,是把MiKTEX和一些常用的相关工具,如GSview,WinEdt 等包装在一起制作的一个简易安装程序,并对其中的中文支持部分进行了配置,使得安装后马上就可以使用中文。

CTeX中文套装是基于 Windows 下的 MiKTeX系统,集成了编辑器 WinEdt和 PostScript处理软件 Ghostscript 和 GSview 等主要工具。 CTeX中文套装在 MiKTeX的基础上增加了对中文的完整支持。 CTeX中文套装支持 CCT 和 CJK 两种中文 TeX处理方式。

三、IDE层面

texStudio

TeXstudio is an integrated writing environment for creating LaTeX documents. Our goal is to make writing LaTeX as easy and comfortable as possible. Therefore TeXstudio has numerous features like syntax-highlighting, integrated viewer, reference checking and various assistants.

TeXstudio是一个LaTex集成环境,目的是使编写LaTex更加方便,它提供语法高亮、集成预览、引用检查及其它一些辅助工具。

Lyx

lyx是一个“所见即所指”(what you see is what you mean)的利用LATEX来排版的文件编辑软件。相对于其它标榜所见即所得的编辑器而言,LyX标榜只显示你真正的关心的内容。

TexWorks

TexWorks是一个简易的Tex集成环境,包括编辑、预览等功能,但是相比TexStudio和Lyx则显得略微简陋。它是MiKTex自带的IDE。

WinEdt

这是CTeX自带的一款,功能比较齐全,也是我的入门编辑器。入门首推这款,下载CTeX即可,也可以单独安装。

Sublime、Vscode、Atom、IntelliJIdea

许多高级编辑器都提供有LaTex编辑插件。

四、Tex教程

The Not So Short Introduction to LaTeX2e(lshort)
一个最容易懂的 LaTeX 入门教材。我就是看这个学会 LaTeX 的。 这个文档已经被翻译成很多种语言,包括汉语。这里是一个英语版本。

Math into LaTeX
一个非常好的讲述怎样在 LaTeX 里方便的输入数学公式的书,也 可以作为一个通用的 LaTeX 入门书籍。

LaTeX Command Summary
一个LaTeX命令速查手册,不知道谁写的。包含很多很多内容,符 号名列表啊,……什么都有,只有14页。你可以打印出来放在手边备 用。

Using Imported Graphics In LATEX2e
王磊翻译整理的 Using Import graphics in LaTeX2e(Keith Reckdahl 编写,Ver. 2, Dec. 15 1997) 在 LaTeX 中你可以用很多 种方式插入图片,这本书就是讲述怎样实现各种各样的插图效果。译 者加入了对 picinpar, picins, wrapfig 等宏包的介绍。特别推荐 picins 宏包,它可以轻松实现这样的插图:

以上资料可从此链接下载。

五、工具选择

TexStudio+MiKTex 大概是最佳选择。

参考资料

http://docs.huihoo.com/homepage/shredderyin/tex_frame.html
https://blog.csdn.net/qq_33429968/article/details/64919687
The Comprehensive TEX Archive Network
https://ctan.org/
latexstudio.net:有许多latex使用技巧
http://www.latexstudio.net/

知乎-有哪些好用的latex编辑器

Tex的更多相关文章

  1. %我的 tex 模版

    %我的 tex 模版 \documentclass[UTF8,a1paper,landscape]{ctexart}%UTF8 中文支持,a1paper 纸张大小,landscape 横向版面,cte ...

  2. Excel 转Latex 及tex表格的处理 总结

    Excel 转LaTex表格 与TeX表格的处理 总结   工具使用:一个Latex表格输入神器--Excel2Tex插件的安装过程. 首先下载插件:http://www.ctan.org/tex-a ...

  3. TEX学习笔记

    整理在这里, 方便以后容易查找. 毕竟每个tex的模板有些不一样. Beamer: Latex beamer 学习总结 http://blog.sina.com.cn/s/blog_6cf921f30 ...

  4. linux下编译bib、tex生成pdf文件

    实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...

  5. TeX Live安装配置等默认目录

    TeX Live默认目录情况:   TEXDIR (the main TeX directory):     !! default location: /usr/local/texlive/2015  ...

  6. TeX — Beauty and Fun

    我是初学者,你推荐使用什么发行的 TeX? 我应该用 LaTeX 吗? 我认为最好的发行是 TeXLive CD,它不但包含了所有操作系统需要的程序,而且有许许多多宏包,如果你不是特别特殊的用户,有了 ...

  7. winedt打开.tex文件时会出现reading error,看不到任何文字

    winedt打开.tex文件时会出现reading error,然后看不到任何文字.   解决办法:先打开空白的winedt,然后点击open,找到该.tex文件,将文件名右侧的 default 改为 ...

  8. [Tex学习笔记]发一篇文章的经历

    打算在 INTERNATIONAL JOURNAL OFCONTEMPORARY MATHEMATICAL SCIENCES 发一篇文章, 所以就直接在 作者指引中下载 tex 模版, 写好后发邮件到 ...

  9. 如何升级TeX Live 2014宏包

    转:人大经济论坛 LATEX论坛 版,详细出处参考: http://bbs.pinggu.org/forum.php?mod=viewthread&tid=3370640&page=1 ...

  10. Winedt打开tex文件报错error reading的解决方案

    我刚装就发现winedt打开一些.tex文件时会出现reading error,然后看不到任何文字(网上有人讨论打开是乱码的问题,但是我的是完全看不到任何东西),我的系统winxp,网上有人说好像是和 ...

随机推荐

  1. javascript 的面向对象特性参考

    最近在看用javascript+css实现rich client.javascript 也是一个蛮有意思的语言.特别是其面向对象的实现和其他“标准”的OO launguage有很大的不同.但是,都是动 ...

  2. JAVA-开发IDE版本

    Eclipse发布的完整列表包括: Neon, June 22, 2016 Mars, June 24, 2015 Luna, June 25, 2014 Kepler, June 26, 2013 ...

  3. SharePoint 2010/2013: List view Lookup threshold uncovered

    SharePoint with Large lists is common scenario in any Sharepoint deployment. While there are Several ...

  4. LInux 解压缩文件

    常用命令有2个,一个是tar,一个是zip,二选一就行 有的服务器没有安装zip命令,就只有tar可以用,我个人建议还是安装一个zip好一些,tar实在太繁琐 1.解压 tar -zxvf ./xxx ...

  5. 在线创建springboot项目

    在线创建srpingboot项目的网址:https://start.spring.io/ 我只选了一个web,然后开始生成:

  6. 基于webview的选择滑动控件(PC和wap版)

    有了webview,大家开发ios或者安卓的app就方便很多啦. 第一可以增量更新: 第二webview可以同时兼容ios和安卓,减少开发量哦. --------------------------- ...

  7. iOS DES ECB 模式加密

    //iOS DES ECB 模式加密 #import <CommonCrypto/CommonCryptor.h> ,,,,,,,}; +(NSString *) encryptUseDE ...

  8. Centos7中firewalld防火锁墙的使用

    一.服务控制 启动: systemctl start firewalld 查看状态: systemctl status firewalld  停止: systemctl disable firewal ...

  9. C#中添加三个线程同时启动执行某一方法,并依次调用某方法中的循环打印输。

    添加三个线程同时启动执行某一方法,并依次调用某方法中的打印输:ABC ABC ABC ABC 实现代码如下: using System; using System.Collections.Generi ...

  10. Spring MVC 实现文件的上传和下载

    前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:“用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流”.我回复他说:“使用Spring MVC框架可以做到这一点,因为Spri ...