欢迎光临散文网 会员登陆 & 注册

LaTeX入门:选择、安装和基础概念。

2023-01-26 10:50 作者:汐时渡  | 我要投稿

在使用LaTeX之前:

LaTeX是什么?

LaTeX是一个建立在TeX上的宏集,Leslie Lamport在Plain TeX上构建了它。

最初的TeX是高德纳教授(Donald E. Knuth)研发的,它是一门标记语言,以高效精确稳定著称,广泛地被应用于科研排版领域。值得注意的是,它的大多数发行版并不支持所见即所得,它是一门需要编译两次甚至更多次才能正确输出的标记语言。            

MS Word用户需要它么?

这要取决于你的需求,如果你在本科期间或是准备发表你的论文,无疑,你是需要LaTeX的。而在更专业的商业报告和书籍排版领域,LaTeX的占比比你想象的要高得多。但是在日常的文书工作中,你既不需要它,它也不需要你,PDF文件并没有docx那末灵活。

我要如何获得它?

在这里,我们不考虑付费的发行版,也不考虑并非LaTeX的其他版本TeX,仅考虑对于新手来说最为稳妥的TeX Live(轻量级的MiK TeX当然也很好,然而用户太少了)。

对于Windows&Mac&Unix/Linux用户:https://tug.org/texlive/

在了解LaTeX之后:

tlmgr(TeX Live的包管理机制)在win上是个大笨蛋,所以在下载iso文件后选择全部安装,不要漏下每一个包,当然你可以选择不安装TeXWork的默认前端。(这些包为你编译后的各种效果提供了支持,事实上,只要你的自创的包够多,你也可以拥有自己的TeX发行版)

例外地,win上还有ProTeXt可以选择,它是MiKTeX的另一个实现。

在Mac上:

你们有更合适的MacTeX。

在Linux上:

打开你的terminal,在你的yum/pacman/apt仓库里找找这三个包: texlive texlive-langchinese texstudio,然后安装它们。如果出了问题,在仓库上的问题可以查找各自的wiki,如果在这之后还有问题请查阅万能的archwiki。但永远记住,你的手册比单独问题的单独解决方法更权威,TUG才是最万能的。

如果你觉得TeXWork很丑:

是的,它确实很丑,所幸tex是平台无关的纯文本文件,因而你可以使用不同的前端去编辑同一份文件。例如vim、emacs和vscode、sublime。

如果你想试试新版的TeX Live:

LaTeX的引擎已经有三十多年没有大的改动了,因而发行版们更新的除了前端就是各种包,养成习惯后并没有更新的必要。如果是需要更新后的某些特性,我这一律建议你卸了重装,即使对于Unix用户可以使用脚本升级,但是那玩意实在落后时代三十年了,真的不咋好使,不如换个Linux。

当你真的需要所见即所得:

TeXmacs很不错,不过我觉得也会有人喜欢vim+spacevim或者nvim+lunarvim,写起来真舒服啊。

当你接触LaTeX时:

怎麼用LaTeX是个既然已经提出来便不再有意义的东西,因而我们不提及命令们的使用,而是着重于如何形容你所遇到的常见的问题。

而对于一些基础的概念,在这里提出,以便于你形容你的问题。

首先,LaTeX文件的格式:

源文件的格式通常是tex,它是纯文本的,对于所有平台都可以正常地查看以及编译。

源文件通常分为两部分,即导言区与正文区。

下图是一份标准的tex文档的样貌:

开头的documentclass至begin之前一段内的内容是导言区,它定义了后面的正文区的各种命令所呈现的样貌。

一般而言,一份正常的文档的导言区还会包括各种包引用命令,自定义的复合命令、重命名命令,还有一些声明性质的命令(它们定义这些文档的基础样貌,前面的各种命令在这些声明的基础上才有显示的空间)。

但是纯粹的.tex无法做到许多事,它并不方便,一些发行版创立了更方便的格式来组成一份LaTeX文档(这通常是一个目录)。你可以这样粗略地认为,源文件在初次编译后会根据定义引用你所提到的引述、媒体资源,还有外部链接,它们共同地在不同文件的组织下形成一份文档——二次编译的必要性就在于初次编译并没有将引用的资源编纂进文档,而是在源文件的指导下先将这些不同文件编译了出来。

在这里,指出几种文件的作用:

.tex文件用于描述文档内容。

.bib是以bibligraphy方式导入参考文献时,描述参考文献的文档,它由.bbl编译。

.sty是包文件,在引言区使用\usepackage导入,平时不需要注意。

.cls是类文件,通过文档最前面的\documentclass命令导入,你可以将其理解为一个LaTeX使用的“CSS库的引用”。

以及,box,字宽,字高,字号,行距以及块。

LISP是一门古老的,在Unix宇宙诞生之前就已经存在的,高级语言。它提出了一个七十年后的今天还被人们所使用的概念:宏(macro)。

它的具体定义,由于LISP语言的宏的概念在计算机世界的扩展已经失去了一个具体的意义。你可以这样认为:如果一个东西,它可以执行一个相对比较复杂的任务,它就是一坨函数。如果这坨函数被定义成一个宏,那么你就可以在文件中用简单几个关键词引用它来完成一个任务。

而LaTeX是一门标记语言,它的包(package)概念就类似于宏,简单的TeX命令语句被包装起来定义成一个包。你又可以在引言区定义这些包所定义的命令来组成新的命令,在这个过程中,LaTeX更多地是作为一种shell而非标记语言来工作。

shell的输出,对于terminal来说是文件的变化和不知所谓的字符串,对于一份tex文档,就是box——人们将文档的一个相对独立的部分定义为一个box。一个公式的左右两边分别可以是两个box,一个段落也可以是box,一个章节甚至是一系列互有关联的书的某一本也是box。

对于tex,box是一个非常合适的模型,每一个box都有与其对应的源文件段落,对于命令的冲突,显现在box上就是badbox(坏箱)。也就是虽然可以输出但并不美观的box,tex认为你输入的命令与美观且正确的命令不同。

而字号(高)与字宽,LaTeX采用point与ciceros定义,人们多用英美制。pt,磅数,点数;cc,西塞罗。一般来说,pt确定,cc也随之确定,当我们指多少多少字号时,通常也指代了它的高度。

严正地指明,pt是字号单位,使用在摄影和排版以及设计领域,它是一个字号的大小单位,而非什么长度单位!尽管它可以这样使用,但它不是!

对于ex与em,它们分别是当前字体下x的高度(四分之三pt)和M的宽度,px则是四分之三pt的高度。

在这里附一张对照表,图源见水印:

一些汉语排版有独特的规则,一个字宽是0.8倍英文字宽。

还有一个来自cnblog的表格(@心态与习惯)

人类讨厌迪多字号。

重要地,还有一些换算规则,在这指明:

1点=0.376毫米=1.07英美点=0.0148英尺=0.1776英寸,1pt=1/72英尺=0.3527 毫米。

行距上,一般采用你所定义的字号高度和浮动的额外间距之和,常用五号字体+12pt。

至于块的概念,我这里笼统地认为是图像以及表格和特殊段落的一个统称,它们也使用字号来衡量几何尺寸——尽量不要对这些东西使用自定义命令和嵌套!

尤其应该注意的是,直接在命令行内编译tex时,不指明输出将会输出dvi文件。

当你在引言区定义一个命令:

它八成不会不听话,事实上是你的脑子不听话,tex永远是对的——它的错误很容易就可以发现,一般而言是出现在引言区。

当你觉得花哨的命令很多而且不知道怎么用:

我有一份速查表。

当你只是想要个炫酷的样式:

vscode的md预览可以自定义css样式,LaTeX.css+md=pdf预览。

关于TeXmacs和lyx:

我不喜欢gnu丑到爆炸的原生风格,但我喜欢emacs的顺滑体验,我永远推荐你用emacs作为tex编辑器。至于lyx,很好用,而且预览很舒服,但是不那么自由——至少对于大多数人,emacs比它自由多了。听说有个汉语TeXmacs叫做墨干,我并不怎莫看好,主要是因为它长得就不太优雅。

全文参考:

https://github.com/wklchris/Note-by-LaTeX

http://github.com/z-bingo/Resume-Chinese-English-LaTeX

https://blog.csdn.net/robert_chen1988/article/details/52739825

https://www.zhihu.com/question/62943097

https://github.com/vincentdoerig/latex-css

LaTeX入门:选择、安装和基础概念。的评论 (共 条)

分享到微博请遵守国家法律