1. 为什么在Mac上选择LaTex?从安装说起
如果你在Mac上写过论文、技术报告或者任何需要复杂排版、大量数学公式的文档,那你一定对Word或者Pages那种“所见即所得”的编辑方式感到过头疼。公式编号对不上、参考文献格式乱成一团、目录生成后页码全错……这些琐碎又耗时的排版问题,常常让人在内容创作之外浪费大量精力。这时候,LaTex就该登场了。
LaTex本质上不是一个文字处理器,而是一个专业的排版系统。你写的是一份包含内容和格式命令的纯文本文件(.tex文件),然后通过编译,LaTex引擎会严格按照你的指令,生成一份格式精美、结构严谨的PDF文档。听起来有点“编程”的味道?没错,但别担心,对于大多数写作场景,你只需要掌握几个简单的命令,就能获得远超普通办公软件的排版质量。尤其是在学术界,LaTex几乎是撰写论文、书籍的标准工具。
那么,在Mac上搭建LaTex环境,是不是很复杂呢?早些年可能确实需要一些折腾,但现在的MacOS生态已经让这件事变得非常简单。我们完全可以通过一个集成的发行版来一次性搞定所有东西,避免手动拼凑各种宏包和引擎的麻烦。接下来,我就带你走一遍最主流、最省心的安装路径,保证你十分钟内就能开始写第一份LaTex文档。
2. 一步到位:安装MacTex发行版
对于Mac用户来说,安装LaTex环境的首选,甚至可以说是唯一需要认真考虑的选择,就是 MacTex。它是一个完整的、为MacOS量身定制的TeX发行版,里面包含了LaTex引擎(pdfTeX, XeTeX, LuaTeX)、数以千计的宏包、字体以及一个图形化的编辑器TeXShop。你不需要再去单独搜索和安装任何基础组件。
2.1 下载与安装MacTex
首先,打开你的浏览器,访问MacTex的官方主页。这里我建议直接搜索“MacTex”找到官网,或者通过知名的TeX用户组织网站找到下载链接。你会看到两个主要的下载选项:MacTex Full 和 MacTex Basic。
- MacTex Full:这是完整版,大小通常在4GB以上。它包含了一切你可能用到的宏包、字体和工具。如果你是初学者,或者不确定自己需要什么,我强烈建议直接下载这个版本。虽然下载体积大,但一劳永逸,避免了日后写作中因为缺少某个冷门宏包而中断编译的尴尬。
- MacTex Basic:这是一个精简版,大约只有100MB。它只包含了最核心的引擎和少量基础宏包。适合磁盘空间极其紧张,或者对自己需求非常明确的资深用户。对于绝大多数人,我不推荐这个版本,因为后续手动安装缺失的宏包可能更麻烦。
下载完成后,你会得到一个 .pkg 安装文件。双击它,就像安装其他Mac软件一样,一路点击“继续”、“同意”、“安装”即可。安装过程会持续一段时间,特别是完整版,请耐心等待。安装程序会自动将必要的命令行工具和路径配置好,无需你手动干预。
安装成功后,你可以在“应用程序”文件夹里找到一个叫“TeX”的文件夹,里面就有图形化编辑器TeXShop。不过,我们今天的重点不是它,而是更强大的VS Code。
2.2 验证安装与环境变量
安装完MacTex后,最好验证一下是否真的成功了。打开Mac自带的“终端”(Terminal)应用。
在终端里,输入以下命令并回车:
latex --version
如果安装成功,你会看到一长串版本信息,显示你安装的LaTex引擎详情。同样,可以试试:
pdflatex --version
xelatex --version
这些是常用的LaTex编译引擎。看到版本信息,就说明核心工具已经就位。
接下来是一个关键但常被忽略的步骤:检查环境变量。虽然MacTex安装程序通常会帮你配置,但为了确保在终端和VS Code里都能无缝使用LaTex命令,我们最好确认一下。LaTex的可执行文件通常安装在 /usr/local/texlive/2024/bin/universal-darwin 这样的路径下(年份可能会变,比如2023、2025)。
打开终端,输入:
echo $PATH
查看输出的路径中是否包含类似 /usr/local/texlive/2024/bin/universal-darwin 的字符串。如果没有,我们需要手动将它添加到你的shell配置文件中。
如果你使用的是MacOS默认的zsh shell,配置文件是 ~/.zshrc。用文本编辑器(比如 nano)打开它:
nano ~/.zshrc
在文件的末尾,添加这么一行(请根据你实际安装的路径调整年份):
export PATH="/usr/local/texlive/2024/bin/universal-darwin:$PATH"
然后按 Ctrl+X,再按 Y 确认保存,最后回车退出nano。
为了让这个改动立刻生效,需要在终端执行:
source ~/.zshrc
或者干脆关闭终端再重新打开。之后,再输入 latex --version,应该就能正常识别了。这一步确保了无论你在哪里调用LaTex命令,系统都能找到它。
3. 打造高效写作工作流:VS Code + LaTex Workshop
虽然MacTex自带了TeXShop,但它的界面和功能相对简单。为了获得更现代的编辑体验、更强大的代码提示和实时预览功能,我强烈推荐使用 Visual Studio Code 搭配 LaTex Workshop 插件。这套组合拳能让你写LaTex像写代码一样流畅高效。
3.1 安装与配置VS Code插件
首先,确保你已经安装了VS Code。如果没有,去官网下载安装,过程非常简单。
打开VS Code,点击侧边栏的“扩展”图标(或者按 Cmd+Shift+X),在搜索框里输入“LaTex Workshop”。你会看到一个由James Yu开发的高星插件,安装它。这个插件几乎集成了LaTex写作所需的一切功能:语法高亮、代码片段、编译构建、错误提示,以及最重要的——实时预览。
安装完成后,我们需要进行一些简单的配置,让它更好用。点击VS Code左下角的齿轮图标,选择“设置”。在设置搜索框中输入“latex”,我们会找到“LaTex-workshop”相关的配置项。
这里我分享几个我调整过的关键设置,你可以直接复制到你的用户设置(JSON格式)中。点击设置页右上角的“打开设置(JSON)”图标,在花括号 {} 内添加:
"latex-workshop.latex.recipes": [
{
"name": "xelatex -> bibtex -> xelatex * 2",
"tools": ["xelatex", "bibtex", "xelatex", "xelatex"]
}
],
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": ["%DOCFILE%"]
}
],
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.latex.autoBuild.run": "onSave",
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk",
"*.snm",
"*.nav",
"*.synctex.gz"
]
我来解释一下这几个配置是干嘛的:
- recipes(编译配方):定义了一套编译流程。我设置的这个“xelatex -> bibtex -> xelatex * 2”是处理包含参考文献(BibTex)文档的标准流程,需要编译多次才能正确生成引用编号。你可以一键执行这个完整流程。
- tools(工具定义):定义了xelatex和bibtex命令的具体参数。
-synctex=1用于实现正向和反向搜索(点击PDF跳转到源码,反之亦然),-interaction=nonstopmode让编译在遇到错误时也不停止(方便排查),-file-line-error让错误信息更易读。 - viewer(预览器):设置为“tab”意味着在VS Code内部的新标签页打开PDF,比调用外部预览器更方便。
- autoBuild.run(自动构建):设置为“onSave”后,每次你保存.tex文件,VS Code都会自动触发编译,无需手动点击。这是实现“动态预览”的基础。
- clean.fileTypes(清理文件类型):定义了哪些中间文件在清理时会被删除。LaTex编译会产生一大堆
.aux,.log等临时文件,这个列表告诉插件清理哪些。
3.2 创建你的第一个LaTex文档并动态预览
配置好插件,让我们立刻来体验一下。在VS Code中新建一个文件,保存为 hello.tex。注意,后缀必须是 .tex。
在文件中输入以下最基础的LaTex代码:
\documentclass{article}
\usepackage[UTF8]{ctex} % 如果你需要写中文,就加上这个包
\title{我的第一个\LaTeX 文档}
\author{你的名字}
\date{\today}
\begin{document}
\maketitle
\section{引言}
你好,世界!这是我的第一个LaTex文档。它看起来像代码,但编译后会变得非常漂亮。
\section{数学公式}
LaTex最强大的功能之一就是排版数学公式。行内公式如 $E = mc^2$,或者单独显示的公式:
\[
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
\]
\section{列表}
\begin{itemize}
\item 这是一个无序列表项。
\item 这是另一个。
\end{itemize}
\begin{enumerate}
\item 这是一个有序列表项。
\item 这是第二个。
\end{enumerate}
\end{document}
保存文件。此时,由于我们设置了 autoBuild.run: onSave,VS Code会在后台自动开始编译。你可以看到状态栏有个小齿轮在转动。编译完成后,在编辑器的右侧,会自动打开一个标签页,显示生成的PDF预览!
这就是“动态预览”的魅力所在:现在,你尝试在左边的.tex源码里修改一些文字,比如把“你好,世界!”改成“你好,LaTex!”,然后按 Cmd+S 保存。几乎瞬间,右侧的PDF预览就会刷新,显示出你刚刚修改的内容。这种即时反馈的体验,极大地提升了写作效率,你再也不用在编辑器和PDF阅读器之间来回切换了。
在VS Code的左侧活动栏,你还会看到一个“TeX”图标。点击它,会打开LaTex Workshop的功能面板。在这里,你可以手动触发编译、清理临时文件、查看编译日志和错误、管理参考文献等,功能非常集中。
4. 高效写作进阶技巧与避坑指南
环境搭好了,也能预览了,但这只是开始。要想真正高效地用LaTex写作,还得掌握一些技巧,并避开我当年踩过的一些坑。
4.1 项目管理与文件组织
当你写一篇复杂的论文时,不可能把所有内容都堆在一个 .tex 文件里。好的做法是分而治之。
- 主文档(main.tex):只负责文档类型的设定、调用宏包、设置全局格式,以及通过
\input{}或\include{}命令来组织各个章节。 - 章节文件(chapter1.tex, chapter2.tex):每个章节一个独立文件,内容清晰,便于协作和版本管理。
- 参考文献库(refs.bib):使用BibTex管理参考文献,所有引用条目都放在这个单独的
.bib文件里。 - 图像文件夹(figures/):把所有图片都放在这个文件夹里,在文档中用相对路径引用。
这样的结构不仅清晰,而且当你只想编译某一章节进行校对时,可以临时注释掉主文档里其他章节的引入命令,加快编译速度。VS Code的LaTex Workshop插件对这种多文件项目支持得很好,它会自动分析文件依赖关系。
4.2 处理中文与特殊字体
如果你需要撰写中文文档,仅仅使用 \usepackage[UTF8]{ctex} 宏包有时还不够。这个宏包默认会使用系统中文字体。如果你对字体有要求,比如需要使用“思源宋体”或“霞鹜文楷”,可以进行更详细的配置。
一个常见的坑是编译中文文档时,如果使用 pdflatex,可能会遇到编码问题。我推荐始终使用 xelatex 或 lualatex 引擎来编译中文文档,它们对Unicode和系统字体的支持是原生的。这也是为什么我在前面的配置里将 xelatex 作为默认工具。
例如,在文档开头可以这样配置字体(需要你的系统已安装相应字体):
\documentclass{article}
\usepackage[UTF8]{ctex}
\setCJKmainfont{Source Han Serif SC} % 设置中文字体为思源宋体
\setCJKsansfont{Source Han Sans SC} % 设置中文无衬线字体
\setCJKmonofont{Source Han Mono SC} % 设置中文等宽字体
这样,你的中文排版就会非常美观和专业。
4.3 参考文献管理利器:Zotero + Better BibTex
写学术文档,参考文献管理是重头戏。手动维护 .bib 文件简直是噩梦。我的黄金搭档是 Zotero(免费开源的文献管理软件)加上它的 Better BibTex 插件。
你可以在Zotero中管理所有文献,Better BibTex插件能自动为每一条文献生成一个唯一的“引用键”(Citation Key),比如 Einstein1905。然后,你可以让Zotero自动将整个文献库,或者你选中的条目,导出为一个 .bib 文件,并保持实时同步。
在LaTex文档中,你只需要用 \cite{Einstein1905} 来引用,并在文档末尾使用 \bibliographystyle{} 和 \bibliography{refs} 即可。结合前面配置的编译配方(包含bibtex命令),参考文献列表和引用编号会自动、准确地生成和更新。这比任何手动操作都要可靠和高效一百倍。
4.4 编译错误排查与日志阅读
LaTex编译报错是家常便饭,尤其是刚开始的时候。不要被满屏的红色错误信息吓到。绝大多数错误都是因为:
- 拼写错误:命令名拼错,比如
\documentcalss。 - 缺少宏包:使用了某个命令(如
\usepackage{minted}用于代码高亮),但没有安装对应的宏包。通常终端会提示你缺少哪个包,用tlmgr(MacTex自带的包管理器)安装即可:sudo tlmgr install minted。 - 括号不匹配:
{}或[]没有成对出现。 - 文件路径错误:插入图片时,指定的图片路径不对。
当编译失败时,首先看VS Code的“问题”面板(Problems),或者集成终端里的输出。错误信息通常会定位到 .tex 文件的具体行数。从第一个错误开始解决,因为后面的错误可能是由第一个错误引发的。养成随时保存、随时编译的习惯,可以尽早发现错误,避免在最后堆积大量问题。
5. 让LaTex写作更顺手的辅助工具
除了核心的编辑和编译环境,还有一些小工具能极大提升舒适度。
5.1 代码片段与自动补全
VS Code的LaTex Workshop插件提供了基本的代码片段,但你也可以自定义。比如,我定义了一个输入 beg 然后按Tab键,就能自动展开为 \begin{} 和 \end{} 环境的片段。你可以在VS Code的“用户代码片段”设置中,为latex语言添加自己的片段。例如:
{
"Document Environment": {
"prefix": "doc",
"body": [
"\\documentclass{${1|article,report,book|}}",
"\\usepackage[UTF8]{ctex}",
"\\title{$2}",
"\\author{$3}",
"\\date{\\today}",
"",
"\\begin{document}",
"\\maketitle",
"",
"$0",
"",
"\\end{document}"
],
"description": "Create a basic LaTex document structure"
}
}
这样,输入 doc 按Tab,就能快速生成一个完整的文档框架,光标会在几个预设位置跳转,让你快速填充内容。
5.2 版本控制:Git
用LaTex写论文,一定要用Git进行版本控制。.tex 文件是纯文本,非常适合Git管理。你可以清晰地看到每次修改的内容,随时回退到任何一个版本,再也不用担心文件覆盖或者起名“论文终版_final_真的最后改这个.docx”这种尴尬的情况了。将你的LaTex项目文件夹初始化为一个Git仓库,定期提交(commit),并推送到远程仓库(如GitHub、Gitee)进行备份。VS Code内置了优秀的Git图形化界面,操作起来非常方便。
5.3 图形与图表绘制
LaTex不仅擅长排版文字和公式,通过 TikZ 宏包,你甚至可以用代码绘制精美的矢量图形、流程图、电路图等。虽然学习曲线有点陡峭,但对于需要大量标准化图表的文档(如技术报告、教材),一旦掌握,效率和质量是拖拽式绘图工具无法比拟的。对于更复杂的示意图,我通常先用其他工具(如OmniGraffle, draw.io)画个草图,然后在LaTex中用TikZ精确重绘,确保风格与文档完全统一。
最后,分享一个我自己的习惯:我会为每一个新的LaTex项目创建一个简单的 Makefile 或者 compile.sh 脚本。这样,除了在VS Code里点击按钮,我也可以在终端里直接输入 make 或 ./compile.sh 来编译整个项目,这对于自动化构建或者服务器端编译非常有用。LaTex的世界很深邃,但入门并用于高效生产,其实就这么几步。从安装MacTex,到配置VS Code实现动态预览,再到掌握一些项目管理技巧,你已经拥有了一个强大且舒适的写作环境。剩下的,就是开始你的创作,让内容本身成为焦点,把排版交给LaTex。
662




被折叠的 条评论
为什么被折叠?



