关于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. C#邮件发送(最坑爹的邮箱-QQ邮箱)

    最近工作挺清闲的,有空的时候陪妹子出去玩玩,自己看看小说,看看电影,日子过的挺欢乐的,这个星期幡然悔悟,代码才是我的最爱,做点小东西,就写个邮件发送程序.说的邮件发送相信工作过基本上都会用到过,用户注 ...

  2. 查看LINQ Expression編譯後的SQL語法(转)

    在用了LINQ語法之後的一個月,我幾乎把SQL語法全部拋到腦後了,不過 LINQ好用歸好用,但是實際上操作資料庫的還是SQL語法,如果不知道LINQ語法 編譯過後產生怎樣的SQL語法,一不小心效能就會 ...

  3. 大数据开发实战:Stream SQL实时开发三

    4.聚合操作 4.1.group by 操作 group by操作是实际业务场景(如实时报表.实时大屏等)中使用最为频繁的操作.通常实时聚合的主要源头数据流不会包含丰富的上下文信息,而是经常需要实时关 ...

  4. 如何在编辑器里添加CSS或JS代码

    //编辑器里代码模式下的代码 <scripttype="text/javascript"> //my code.... </script> //编辑器里可视 ...

  5. (转)mobile cpu上禁用alpha test的相关总结

    转自:http://www.cnblogs.com/TracePlus/p/4037165.html 因为,每家芯片的特性不同,根据向framebuffer写法的不同,分为tile-based的mob ...

  6. iis 防火墙防止恶意ip攻击

    今天发现服务器里,一个IP不停的占用我的网络资源,然后在防火墙里配置,将其禁止访问,网络很快降了下来. 这个恶意的IP是 115.171.60.62

  7. oauth2-server-php-docs 存储 学说2

    学说2 创建客户端和访问令牌存储 要把学说融入到你的项目中,首先要建立你的实体.我们先从客户端,用户和访问令牌模型开始: yaml YourNamespace\Entity\OAuthClient: ...

  8. Android缓存处理

    Android缓存: 採用缓存,能够进一步大大缓解数据交互的压力,又能提供一定的离线浏览.下边我简略列举一下缓存管理的适用环境: 1. 提供网络服务的应用 2. 数据更新不须要实时更新.哪怕是3-5分 ...

  9. 在线创建springboot项目

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

  10. Linux下设置进程使用指定核的CPU

    一.原因: 我们不能任由操作系统负载均衡,因为我们自己更了解自己的程序,所以,我们可以手动地为其分配CPU核,而不会过多地占用CPU0,或是让我们关键进程和一堆别的进程挤在一起. 二.查看方法: 1. ...