Tex
关于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/
Tex的更多相关文章
- %我的 tex 模版
%我的 tex 模版 \documentclass[UTF8,a1paper,landscape]{ctexart}%UTF8 中文支持,a1paper 纸张大小,landscape 横向版面,cte ...
- Excel 转Latex 及tex表格的处理 总结
Excel 转LaTex表格 与TeX表格的处理 总结 工具使用:一个Latex表格输入神器--Excel2Tex插件的安装过程. 首先下载插件:http://www.ctan.org/tex-a ...
- TEX学习笔记
整理在这里, 方便以后容易查找. 毕竟每个tex的模板有些不一样. Beamer: Latex beamer 学习总结 http://blog.sina.com.cn/s/blog_6cf921f30 ...
- linux下编译bib、tex生成pdf文件
实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...
- TeX Live安装配置等默认目录
TeX Live默认目录情况: TEXDIR (the main TeX directory): !! default location: /usr/local/texlive/2015 ...
- TeX — Beauty and Fun
我是初学者,你推荐使用什么发行的 TeX? 我应该用 LaTeX 吗? 我认为最好的发行是 TeXLive CD,它不但包含了所有操作系统需要的程序,而且有许许多多宏包,如果你不是特别特殊的用户,有了 ...
- winedt打开.tex文件时会出现reading error,看不到任何文字
winedt打开.tex文件时会出现reading error,然后看不到任何文字. 解决办法:先打开空白的winedt,然后点击open,找到该.tex文件,将文件名右侧的 default 改为 ...
- [Tex学习笔记]发一篇文章的经历
打算在 INTERNATIONAL JOURNAL OFCONTEMPORARY MATHEMATICAL SCIENCES 发一篇文章, 所以就直接在 作者指引中下载 tex 模版, 写好后发邮件到 ...
- 如何升级TeX Live 2014宏包
转:人大经济论坛 LATEX论坛 版,详细出处参考: http://bbs.pinggu.org/forum.php?mod=viewthread&tid=3370640&page=1 ...
- Winedt打开tex文件报错error reading的解决方案
我刚装就发现winedt打开一些.tex文件时会出现reading error,然后看不到任何文字(网上有人讨论打开是乱码的问题,但是我的是完全看不到任何东西),我的系统winxp,网上有人说好像是和 ...
随机推荐
- 机器学习算法与Python实践之(六)二分k均值聚类
http://blog.csdn.net/zouxy09/article/details/17590137 机器学习算法与Python实践之(六)二分k均值聚类 zouxy09@qq.com http ...
- JSP中利用JSTL标签对日期格式化
数据库:Mysql 开发语言:JAVA 页面类型:JSP 对Mysql中的日期类型格式化,在JSP中,如何办呢,很多人说在JAVA后台去日期格式化,无奈了,于是找到了比较靠谱的答案 需要先引入JSTL ...
- CreateFont函数为什么改变不了字体?该怎么解决
CreateFont函数为什么改变不了字体?CFont * f; f = new CFont; f-> CreateFont( ...
- [Algorithm] Powerset Problem
By given an array [1,2,3]: Return all possible combinations. for example: [[], [1], [2], [3], [1, 2] ...
- 推荐一些socket工具,TCP、UDP调试、抓包工具
还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...
- ES6...扩展运算符(数组或类数组对象)
数组和类数组对象定义 数组:[] 类数组对象:只包含使用从零开始,且自然递增的整数做键名,并且定义了length表示元素个数的对象,我们就认为他是类数组对象. 数组使用 let foo_arr = [ ...
- Go语言中使用SQLite数据库
Go语言中使用SQLite数据库 1.驱动 Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接口的 https://github.com/mattn/go-sqlite3 ...
- Spring-boot 1.5.2 下隐藏Banner
在配置文件中增加: spring.main.banner-mode=off
- 利用mvn进行多环境配置
代码里的resource信息有很多,代码里写死某一个环境的配置的话,有以下若干问题. 1. dev,不同的beta上,使用的resource信息不同. 2. 代码没有发布到对应的环境上,需要去机器上需 ...
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...