前言
Office正版化越来越严格,价格也是越来越高,而 WPS 要么广告烦人,要么时不时爆个雷,难道就没有什么办法了吗,这里将深入介绍使用 Latex 作为主力文本编辑器的各方面内容,期望可以为深受困扰的同学提供一点选择的空间。首先明确一些基本的概念:
- Tex:这是1978年就出现的一种排版格式化语言。用于描述版面的各方面细节,例如使用多大的字体,预留多少间隔等等。
- Latex:在Tex基础上进行了语言包装的扩展版本,将 Tex 的语言使用更接近排版文章习惯的宏和模版进行了封装,使用起来更为直观和方便。
Latex 如果非要和 Word 比较的话,实话实说肯定没有 Word 好用,也没有 Word 直观,学习成本也很高。但是基于某些不在这里讨论的原因,还是有必要看下 Latex 到底能做到什么程度。
Latex 语言看起来就像下面这个样子,请不要被“编程语言”什么的吓到,这个离Java、C++ 之类的编程语言还差得很远,毕竟 Latex 不需要描述复杂的逻辑,仅仅需要说清楚在哪里用什么方式写下一段文字,算是一种很简单的编程语言,不难掌握。
\documentclass{article}
\begin{document}
Hello world!
\end{document}
生成出来的是 pdf 文件,长得想这样:
Latex 只是一种语言标准,需要有一个程序来将源文件编译成pdf文件,这就是常说的编译器。目前最常用的编译器有两个 texlive 和 miktex ,这两个都是跨平台的,支持 Windows, Linux 和 macOS.
- texlive 比较大,内容比较全,但是个头较大,安装包有 4G,全部装完要 7G左右。
- miktex 占用空间比较小,遇到需要的包需要在线下载。
有了编译器,原则上可以使用文本编辑器,比如记事本之类的就可以开始编写文档了,也可以使用支持 Tex 的编写界面,Texmaker、Kile、Texstudio,甚至 vs code、 vim都可以作为 tex 的编写界面。
先安装个环境
MiKTeX
官网 https://miktex.org/ 下载对应操作系统的版本。
以 Windows 为例,安装完成之后,打开命令行,查看版本信息可以验证安装是否正常:
tex --version
latex --version
pdftex --version
如果报命令不存在什么的,可能是没有在 path 中加入路径,可以将路径加入到 path,例如安装到 E 盘,执行程序所在的位置为 E:\MiKTeX\miktex\bin\x64\。提醒下,配置好path需要重新关闭打开一下命令行,配置才会生效。
texlive
官网 https://tug.org/texlive/ 下载,推荐下载 iso 镜像 Index of /CTAN/systems/texlive/Images/
Window 环境下使用虚拟光驱挂载,使用光盘中的批处理安装。安装完成一样在命令行中输入命令查看版本信息,以验证安装是否正常。
install-tl-windows.bat
Linux 环境安装方式和 Windows 差不多,以 Centos 为例:
#直接下载到 centos
wget https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/texlive2023-20230313.iso
#如果是虚拟机,建议下载到 Windows 下,再通过共享文件夹的方式给 Centos 访问,具体做法:
## Windows下设置文件夹为共享文件夹
## Centos 安装 cifs 格式
yum -y install cifs-utils
## Centos 创建挂载点
mkdir /mnt/share
## 挂载共享目录, “//192.168.1.1/linuxshare” 是共享目录,“/mnt/share”是挂载目录,user是Windows账户,
## 如果有密码会提示输入 Windows 的密码。
mount -t cifs //192.168.1.1/linuxshare /mnt/share -o user=user1
## 挂载成功可以在 Centos 访问共享文件夹的数据
ll /mnt/share
#创建光盘挂载目录
mkdir /mnt/cd
#挂载 iso
mount /mnt/share/texlive2023-20230313.iso /mnt/cd
ll /mnt/cd
#运行安装程序
cd /mnt/cd
./install-tl
## 如果执行时报 perl 错误,需要安装下 perl 环境
yum install perl-Digest-MD5
#验证安装是否正常
tex --version
latex --version
选个满意的编辑界面
先来命令行
在这个章节,将会使用命令行的方式操作 Latex。当然不是说以后都用命令行来操作,这么做的目的仅仅是为了说明安装好的 Latex 环境是如何工作的,后面的内容使用 Windows 系统下的 MiKTeX 演示。打开安装目录,例如E:\MiKTeX\miktex\bin\x64\,可以看到里面有很多的 exe 程序,需要关注的主要有下面列出的几个:
- tex.exe
- latex.exe
- xelatex.exe
- pdflatex.exe
- lualatex.exe
前面说过,Latex 是仅仅是语言规范,从编写的 tex 脚本到 pdf 之间需要有编译器,这些 exe 就是编译器的具体实现了。不同的 exe 是由不同的高手编写的,或者是同一个编译器的不同版本。当然, 这么多编译器有好处,也有坏处,不同的编译器性能不一样,所能支持的内容,以及宏包的兼容性也不一样,这也是 “为什么在你机器上就可以,别人编译就报错”最可能的一个原因。所以,如果使用别人提供的模版,最好问一下使用的哪个编译器。
首先把前面提供的 Latex 脚本,用文本编辑器另存为 hello.tex 文件,命令行进入文件所在目录,依次执行命令行。
E:\DownLoad>tex hello.tex
tex: security risk: running with elevated privileges
This is mikTeX, Version 3.141592653 (MiKTeX 22.7.30) (preloaded format=tex.fmt)
restricted \write18 enabled.
(hello.tex
! Undefined control sequence.
l.1 \documentclass
{article}
?
! Undefined control sequence.
l.2 \begin
{document}
?
[1] )
Output written on hello.dvi (1 page, 248 bytes).
Transcript written on hello.log.
报版本不对,可以看到 tex 程序并能理解其中的标签,但是不能编译成功,也就是前面