LaTeX(LATEX,音译“拉泰赫”)是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,它在学术界十分流行,特别是数学、物理学、统计学与计算机科学界。
latex也是排版软件,但和可见可得的word、wps等有明显不同,它强调的是可想可得,也就是说你怎么想的告诉latex,余下的让它去完成,使用者花更多的时间在内容,而不是不停的调整版面效果。
入门难度稍微高,但是一旦掌握会爱不释手,会带你通向另一个智慧的世界。
说说自己的实际使用感受,很早就装了latex,偶尔探索一下,完全都不知道从哪里下手,自然也就没能体会到它的强大。最近一段时间一直在更新网站,很多图严重失真,就想自己绘图,尝试了很多软件都不爽。物理、数学等绘图都是规律的、严谨的、规范的,用其他软件为了线条粗细,对齐与否不停的调整,白白浪费很多时间,更不要说公式的结合了。
后来发现latex也可以绘图,于是就尝试学习了一下,很快就爱不释手,恨不得退给所有的朋友。
1、强大的绘图
latex可以绘制矢量图,非常适合绘制物理、数学的图像。
比如
\begin{tikzpicture}[scale=0.5] %百分号后面是注释,不会被执行
\draw[thick] (0,0) circle (4); %\draw 画 , [thick]: []参数,thick实线
\draw[fill] (0,0) circle(0.1); %\draw 画 , [fill]:在坐标(0,0)) 充填半径0.1的实心圆
\draw[dashed] (-4,0) -- ++(0:8) node[midway,above]{$O$} ;%(-4,0) -- ++(0:8) 从(-4,0)画一条线0°方向延长8
\draw[dashed] (-4,0) -- ++(120:-4)-- ++ (30:6.9) ;%(-4,0) -- ++(0:8) 从(-4,0)开始120°方向延长6.9
\draw[dashed] (-4,0) -- ++(30:8) ;
\draw[dashed] (-4,0) -- ++(-30:7)node[right]{$D$} ; %右侧标记字母D
\draw[dashed] (-4,0) -- ++(-60:6)node[left]{$P$}-- ++(30:7) ;
\draw[thick,->] (-4,0) -- ++(-60:7);
\draw[thick,->] (-1,1.7) -- ++(-60:7);%->画带箭头的线
\draw[thick,->] (2,3.5) -- ++(-60:7);
\draw[thick] (-3.5,0) arc(0:-60:0.5)node[right=1]{$\theta$};
\node[above] at (-4.5,0) {$A$} ;
\node[above] at (4.5,0) {$B$} ;
\node[above] at (-3,-4) {$C$} ;
\end{tikzpicture}
结果
latex其实让你用数学的方式告诉它,你要画一个什么样的图,然后它就帮你画一个,对学习数学的高中生来说,这种作图方式非常锻炼一个人的思维和解决问题的能力,顺便还能理解编程语言。
当然这只是简单的绘图,对于数学函数绘图那就更简单了
\begin{tikzpicture}[domain=0:4]
\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[color=red] plot (\x,\x) node[right] {$f(x) =x$}
% \x r 表示弧度
\draw[color=blue] plot (\x,{sin(\x r)}) node[right] {$f(x) = \sin x$};
\draw[color=orange] plot (\x,{0.05*exp(\x)}) node[right] {$f(x) = \frac{1}{20} \mathrm e^x$};
\end{tikzpicture}
效果
其他绘制图形展示
2.强大的公式排版功能
公式排版是latex最重要的功能,科学家高德纳(Donald Ervin Knuth)为自己写论文而不能漂亮的展示数学公式而苦恼,于是停下手中的工作,专门研究文字排版。
高德纳花了整整9年的时间和精力,完成了对整个西文印刷行业带来了革命性变革的TeX排版软件和METAFONT字型设计软件。这两个软件为高德纳赢得了ACM的另一个奖项:1986年度的软件系统奖(Software System Award)。但是这两个软件并没有为高德纳和斯坦福大学赚过一分钱。
高德纳把它们作为自由软件无偿提供给用户,这比理查德·斯托尔曼的GNU计划(GUN的哲学就是:软件源码看成人类共同拥有的知识财富,应该公开地自由交换、修改)造了5-6年,自然也比后来的Linux(林纳斯91年开发linux)早,应该算是开源的鼻祖了。
高德纳说:“我写这两个程序是出于对书籍的热爱,也想给这个领域以必要的推动。我已经有些名气了,我的书卖得也不错。所以我不需要为我出于热爱而做的事保留专卖权。此外,数学家通常是不为他们发现的定理获取报酬的”。
1979年,高德纳还创建了TeX用户集团,这个集团10年前的成员数就超过3 000。细心的读者也许会注意到,许多西文书版权页的下部注明“本书用TeX系统排版”。
作为开源代码运动最早的倡导者之一,高德纳将TeX和Metafont 无偿贡献给了世界,自己没有从中获取任何报酬,他的想法是,一个人一旦能够喂饱自己并有个安身之所,剩下的就是为别人做点什么了。“我尝试尽我所能的去熟悉电脑科学里的一些领域,然后把这些知识摘要成大家比较容易了解的方式,让没有那么多时间做这种学习的人也能够吸收它们”。
他的这个理念比GUN还要早,自然也比后来的Linux早,应该算是开源的鼻祖了。
TeX的版本号不是自然数列,也不是年份,而是从3开始,不断地逼近圆周率 (3.14,3.141……目前最新版本是3.141 592 6)。高德纳再一次用行动宣告,我这个东西,不可能再有什么大的改进了,最多只能小修小补,使其 趋近完美。他还专门设立了奖金: [2] 谁发现TeX的一个错误,就付他2.56美元,第二个错误5.12美元,第三个10.24美元……以此类推。我们都知道,传说某个国王就因为这种指数游戏失去了江山,高德纳作为算法大师,更清楚指数增长的可怕性。然而他却敢立此重赏,结果直到今天,他也没有为此付出多少钱,高的另一悬赏是向发现其著作中错误的人发奖,数额依旧是2.56美元始,因为“256美分刚好是十六进制的一美元”。不过寥寥几位获奖者都将有他签名的支票当作文物珍藏,并未打算去银行兑现。可见TeX经过了怎样的千锤百炼。这个耗费十年打造的玩具,让当初质疑图灵奖发错了的人们全部闭嘴了,他们甚至改口说:哦,为了这个TeX,不妨再给高德纳一个图灵碗吧。
所以年轻人,真的应该更好的去追高人的脚步,利用自己的聪明才知让世界变得更好,除了为自己也为他人做点积累性的事情。
公式范例
$ f(x) = a+b $ %行内公式演示 %后面是注释,不会显示在前端。
这是一个行内公式演示,可以和文字在一排
$ f(x) = a+b $
$ $ f(x) = a+b $ $ %行间公式,行间公式统一在中间位置
$$f(x) = a+b $$
上下标
$$ a_{ij}^{2} + b^3_{2}=x^{t} + y' + x'_{12} $$
$$ a_{ij}^{2} + b^3_{2}=x^{t} + y’ + x’_{12} $$
$$\overbrace{1+2+\cdots+n}^{n个} \qquad \underbrace{a+b+\cdots+z}_{26}$$
$$\overbrace{1+2+\cdots+n}^{n个} \qquad \underbrace{a+b+\cdots+z}_{26}$$
如果以上还可以勉强用wps、word来处理,那么下面的呢
$$D(x) = \begin{cases}
\lim\limits_{x \to 0} \frac{a^x}{b+c}, & x<3 \\
\pi, & x=3 \\
\int_a^{3b}x_{ij}+e^2 \mathrm{d}x,& x>3 \\
\end{cases}$$
$$D(x) = \begin{cases}
\lim\limits_{x \to 0} \frac{a^x}{b+c}, & x<3 \\ \pi, & x=3 \\ \int_a^{3b}x_{ij}+e^2 \mathrm{d}x,& x>3 \
\end{cases}$$
当然,现在也有很多软件开始支持latex的语法,word 似乎支持一些了,这都是建立在人家开源的基础上,并且形成统一了标准,目前浏览器一样支持latex的数学公式,上面漂亮的公式都是浏览器自己解释出来的效果。
只要你稍微记忆一些简单的语法,就可以很快的输入公式,比那些看上去简单比如wps的输入方式,实际非常慢,而且不容易调整。
我们只要学一些简单的代码,就可以很方便的书写公式。另外,由于tex代码的普及,主流的浏览器也可以实现对公式的支持,本站的公式也是用latex直接书写的,一旦发现错误非常容易修改,展示效果也和软件差不多。
这也是我喜欢latex的另一个原因。
安装latex
windows,linux都有各自的版本。
鉴于windows用户多,先说windows的。
官网:TeX Live官网
1、下载TeX Live
点击下图箭头所示下载iso文件
2、双击打开下载好的iso文件,在如下图install-tl-windows.bat右键,以管理员身份运行
3、如下图为安装界面,你可以根据自己的需求修改安装目录,还可以点击Advanced修改一些配置,比如取消一些没用的语言包的安装
4、之后就是非常漫长的等待,一定要耐心等待,中途退出可能就会出错,安装完成后是如下界面
5、命令行输入xelatex -v如果没出现版本信息说明要配置环境变量
6、配置环境变量,将tex live安装根目录下的bin/win32目录添加到系统环境变量path
7、配好环境变量后再查看版本信息,如下图表示配置成功
8、安装texstudio,官网:清华资源
下载了之后安装就行了,使用的时候实际是打开这个软件,前面那个是内核或者是服务,是看不到到了。
9、texstudio配置中文,点击options → \to →Configure TeXstudio
language这里选择zh_CN
10、设置编译环境为XeLaTeX,点击构建,默认编译器选择XeLaTeX
点击新建文件,就可以编辑你的文件了,我第一次用就是一脸懵逼,因为往里输入之后,什么都没有。
其实,latex排版方式类似编程,你需要稍微学一点语法,这样才能体会latex的奥妙。把下面的代码复制进去。
\documentclass{article}
\usepackage{ctex} % 支持中文的代码,如果你发现中文不能显示,把这个放在文档前面。
% 这里是导言区
\begin{document}
Hello, world! 祝贺你,你已经踏入latex的大门了,坚持下去,你会发现更多的智慧。
\end{document}
展示需要点绿色的三角形生成一下,右侧就能看到结果了。
linux发行版很多,我的是ubuntu,所以介绍一下ubuntu的latex的环境配置
1、Latex的安装过程,打开终端输入代码即可
sudo apt-get install texlive-full # 安装时间有点长,文件有4g左右。
# 后面是注释,在命令终端不会执行
apt-cache search cjk # 找到相关宏包,安装
对应执行下面的命令,安装一些插件尤其是中文的支持。
sudo apt-get install latex-cjk-xcjk cjk-latex latex-cjk-chinese
安装图形化界面
sudo apt-get install texstudio
打开TeXstudio即可
linux 下安装复杂软件是不是很清爽!
不管学什么,入门最好的方式
1、先了解一个全貌,知道你要学的东西是啥,有啥作用。
2、抄袭开始,或者从例题开始,千万不要尝试自己一一探索。
3、掌握大概的时候,再去尝试解决别人没有解决的问题。
我们先下载一个模板看看,一个完整的latex文档长什么样。
https://github.com/ElegantLaTeX/ElegantPaper
这是一个开源模板项目,鼠标放在code ,然后点 Download ZIP,下载即可。
然后解压缩
其实大多数时候我们只需要选一个自己喜欢的模板就行了。
剩下的事情就是关注内容就行了。
当然你想快速有一个直观的感受,可以打开 https://cn.overleaf.com/latex/templates/memsait-template/ncxbphzgzdbp
2、latex模板网站 https://www.latexstudio.net该网站还整理了很多LaTeX使用技巧和学习资源。
3、在线体验网站 https://cn.overleaf.com/latex/templates
4、在线编辑器 https://www.texpage.com/