Latex environment on MacOS
一直希望能够自如的使用TeX来进行写作,但学习曲线还是比较高的,可惜断断续续一直没有能够入门。趁着这段时间疫情严重,待在家里又不想搞学习,那不如来重头开始学习一下吧。
一些相关的概念
TeX $/tɛx/$ 是高德纳(Donald Ervin Knuth)教授编写的排版软件,通俗来讲就是跟Word差不多的东西,但是TeX就好像是Markdown一样,跟编程语言差不多,不是那种所见即所得的。以下是一些相关的概念:
TeX Engine
TeX引擎就是实际可以运行TeX的二进制程序,主要有以下几种:
- Knuth的原始 TeX,只能支持plain tex格式,这样。现在最新的版本是 January 12, 2014发布的版本3.14159265
tex <somefile>
- ε-TeX
- 1990s后期发布的对TeX的一组增强扩展,实际上除了原始的TeX引擎其他的引擎都已经默认支持了这些特性
- pdfTeX
- pdfTeX包含了PDF 和DVI格式的输出,被许多TeX的发行版用作默认的TeX引擎
- XeTeX
- 同样包含了ε-TeX并原生支持Unicode和OpenType
- LuaTeX
- 基于pdfTeX并支持Luau脚本的TeX引擎,最初被作为pdfTeX的下一代版本但事实上形成了一个独立的分支。同样,它支持ε-TeX,使用UTF8,并能够支持嵌入Lua脚本
TeX 格式
TeX是一个宏(macro)处理器,macro就像是编程语言中的函数一样,
\def\foo{bar}
上面这个指令会将所有的`\foo`替换成`bar`。基于TeX有不同的格式,实际上就是一些macro的集合,相当于提供了一些库供用户使用,主要有以下这些:
- Plain TeX:原始的TeX发行版包含的基本指令集
- LaTeX2e: LaTeX的最新稳定版本(最新的试验版本是LaTeX3),所有的TeX程序都支持LaTeX2e
- ConTex: 另一种TeX系统
发行版
TeX有许多种发行版,例如:
总结
借用维基百科上的词条来总结一下吧,更加一目了然各个概念之间的区别:
Mac上的TeX环境
Mac上推荐安装MacTeX。安装完成之后,可以看到一个TeXShop的编辑器,并可以在terminal中运行tex命令:
tex This is TeX, Version 3.14159265 (TeX Live 2019) (preloaded format=tex) **
Textmate
然后就是选择编辑器了,网上有不少教程,基于VSCode或者Sublime Text等的,在Mac上还有另一个选择就是Textmate了,在Textmate中安装LaTeX的Bundle即可,然后打开它的设置:
编写完成之后,使用Command + R运行即可预览:
值得注意的是,如果使用XeLaTeX要支持中文需要设置一下字体:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Hiragino Sans GB}
\begin{document}
Hello,中国!
\end{document}
Visual Studio Code
安装MacTex以及Latex Workshop扩展。
- 若要使用Fontawesome,需要安装FontAwesome.otf字体
- 若要使用latexindent进行格式化,需要安装依赖:
# 若出现cpan无限提示初始化设置的时候,可以尝试
# rm -rf ~/.cpan
# cpan (local:lib)
port install perl5
cpan Log::Log4perl
cpan File::HomeDir
cpan Unicode::GCString
cpan Log::Dispatch::File
cpan YAML::Tiny
cpan File:Which
# Configuring E/ET/ETHER/Mac-SystemDirectory-0.13.tar.gz with Makefile.PL
# HASCOMPILER6fHX/TESTA9Xc.c:2:10: fatal error: 'EXTERN.h' file not found
# see:
# https://stackoverflow.com/questions/65435551/latexindent-trouble-installing-filehomedir-macsystemdirectory-since-macos
export CPATH=/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/System/Library/Perl/5.28/darwin-thread-multi-2level/CORE:$CPATH
参考: