写这篇东西的起因挺简单我有一篇写了三周的方案文档Word 里光调图片位置和表格格式就耗了整整一个下午最后打印预览时编号还错乱了一处。那时候我就在想微软这套排版体系到底有多少时间是真花在写作上。后来我花了大概一个周末把主力写作工具从 Word 换成了 LaTeX再配合 VS Code 和 Pandoc把日常写作、公式输入、参考文献管理全部重新捋了一遍。到现在用了小半年回头盘点写作效率不只是提升一点半点而是整个思考方式都变了。这篇文章就是一次完整复盘核心解决三件事为什么要迁移、怎么把工具链一次配好、以及那些文档里不写但实际百分之百会撞上的坑。无论你是学生要写论文、工程师写技术方案还是博主写带公式和表格的深度长文这套流程都能直接抄作业。1. 为什么要迁到 LaTeX一次写作思维的升级1.1 Word 让人又爱又恨的三个瞬间我不否认 Word 依然是很多人日常写作的首选——门槛低所见即所得还能顺带画个流程图。可一旦文档超过 20 页或者频繁出现数学公式、交叉引用、参考文献列表这三个场景几乎人人都会撞上第一个是“表格乱跑”Word 里的表格经常不受控。你明明把它放在了第二章末尾关掉文档再打开它自己跑到了第三章开头。图片也一样浮动对象一会儿跟着段落跑一会儿掉到下一页顶部每次都要手动拖回去下一版修订后又得重来。第二个是公式排版的无力感。Word 自带的公式编辑器应付简单的行内变量还行一旦涉及分段公式对齐、大型运算符、矩阵、多行条件表达式光是把光标点到正确的位置就很熬人。更别提前后公式字体不一致、下标大小忽大忽小这些细节问题。第三个是样式统一这件事。标题字体、段落行距、编号格式今天改一个明天改一个最后稿子发出去合作方回了一句“标题级别不太规范”。整个人瞬间就不想干活了。这几个痛点放在一起本质上是一个原因Word 把内容编辑和排版视觉绑在了同一个界面里。你写着写着注意力就被“这东西看起来对不对”拉走了而不是关注“这句话表达得准不准确”。而 LaTeX 干脆把这两件事分开——你只管用纯文本写内容版式交给模板统一处理。1.2 LaTeX 到底解决了什么内容和样式分离LaTeX 不是所见即所得它是“编译式排版”。你在源文件里写这样的内容\section{研究方法} 本实验采用控制变量法其中温度与反应速率的关系可用式~\ref{eq:arrhenius} 描述。 \begin{equation} \label{eq:arrhenius} k A e^{-E_a / RT} \end{equation}写完后用编译器渲染成 PDF。你不需要考虑标题在页面的哪个位置、公式是否居中对齐、编号是否连续这一切都由 document class 和宏包自动处理。好处非常直接内容和样式分离大纲和编号自动生成永远不用担心“第三个标题应该是 2.3 还是 2.4”。参考文献用 BibTeX 或 biblatex 管理引用条目和参考文献表自动匹配不用担心“某篇引文漏在参考文献里”。公式排版水准直接达到出版级你前脚敲完\begin{equation}后脚出来的就是工整的公式。一句话总结Word 像手写一封信你得自己控制字距和行距LaTeX 像用信封模板打印你只负责把信的内容写好。1.3 哪些场景适合用 LaTeX哪些不该硬上我把日常写作分为三类适合度完全不一样。第一类适合迁移到 LaTeX学术论文、毕业论文、技术方案、带大量公式的博客长文、简历个人推荐用模板编译 PDF、任何需要长期维护和版本管理的文字材料。第二类可以考虑半迁移工作周报、非正式内部文档。这些不需要公式和严格排版用 Markdown 更轻便。其实 Markdown 本身就可以看作 LaTeX 的简化版后续我会讲怎么做联动。第三类不建议用 LaTeX 硬上需要多人实时协作改稿的运营文案、需要复杂批注流的大规模审校、内容重排版而格式几乎忽略的碎片化笔记。这些场景 Word 或在线文档的协同体验明显更好。选工具的本质是选匹配场景硬搬反而增加成本。我的建议是让 LaTeX 成为“正式输出流”的终点而把碎片写作放在 Markdown 里最后统一走 Pandoc 转换——这也是我整套系统里最顺手的一环。2. 环境搭建从零装好一套能用的工具链2.1 发行版选型TeX Live 还是 MiKTeXLaTeX 是一个排版系统但真正要跑起来还得装发行版。主流选择是 TeX Live 和 MiKTeX。TeX Live 是跨平台全量发行版macOS、Linux、Windows 通吃。我首推它理由很简单包完整、跨平台一致、社区排查问题方便。不过有个缺点——体积很大完整安装大概 6 到 8GB。好在官方提供了“方案一完整安装”和“方案二仅安装必需组件”两个选项。日常使用建议直接完整安装省得编译时缺宏包再临时补。对于国内用户直接用清华镜像下载 ISO 或者使用 install-tl 时指定镜像站速度能快十倍不止# 以 Windows 下 PowerShell 为例 # install-tl-windows.exe 运行后使用镜像 tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnetMiKTeX 则是按需安装宏包安装包小很多Windows 下体验也不错。只是它的宏包更新频率快某些旧项目换到新环境中容易出现版本兼容问题。我的结论如果你主要写中文论文、需要稳定跨平台直接上 TeX Live如果只是临时用一下、想体验体验MiKTeX 也能跑通小项目。但长期使用别在发行版上纠结选一个装好、跑通、稳定用就够。2.2 编辑器选型VS Code LaTeX Workshop 是最省心的组合编辑器是日常写作的主战场我的选择是 VS Code LaTeX Workshop 插件。这套组合的优势是零学习成本自动补全、编译一键操作、同步 PDF 定位都现成。还有人用 TeXstudio、Overleaf或者 Vim/Emacs。我承认 Overleaf 也很优秀尤其是多人协作和免环境配置但本地 VS Code 的响应速度、自定义空间、和 Git 的配合更强。2.3 安装配置细节环境变量、包管理器、常见坑安装完 TeX Live 后有一个最容易被忽略但非常关键的检查项可执行文件路径有没有自动加到系统 PATH。Windows 上经常出现提示“latex 不是内部或外部命令”就是路径没写入环境变量。具体检查方法是打开终端输入latex --version。如果提示找不到命令手动把 TeX Live 的 bin 目录加进 PATH。默认安装路径通常在C:\texlive\2024\bin\windows注意不同的 TeX Live 版本号目录名称不一样2024 是版本号按实际安装版本替换。macOS 一般在/usr/local/texlive/2024/bin/universal-darwin或x86_64-darwin。验证方式新建终端执行xelatex --version能输出版本信息就说明环境通了。VS Code 里装完 LaTeX Workshop 插件后默认配置已经能编译简单的英文文档。但中文支持需要一点额外设置我后面专门讲。现在先确保本地能跑通一个最简单的hello.tex\documentclass{article} \begin{document} Hello, \LaTeX! \end{document}终端里执行xelatex hello.tex同目录下生成hello.pdf环境就完全通了。3. 核心语法与实操先跑通一篇完整的文档3.1 文档骨架从零构建一篇中文论文LaTeX 默认的article文档类不支持中文。中文场景两个主流方案一是用ctexart文档类二是加载ctex宏包。我推荐ctexart它对中文字体、段落缩进、标题中文化都做了封装省心很多。一个最简可用的中文骨架\documentclass[UTF8]{ctexart} \usepackage{graphicx} % 插图 \usepackage{amsmath} % 数学公式扩展 \usepackage{booktabs} % 三线表 \usepackage{hyperref} % 超链接 \title{从 Word 到 LaTeX打造高效、优雅的日常写作流} \author{Your Name} \date{\today} \begin{document} \maketitle \tableofcontents \section{引言} 这里写正文。 \end{document}用xelatex编译两次第一次先生成目录信息就能看到带中文标题、自动目录的 PDF。注意编译中文文档时最好用xelatex这是支持 Unicode 和系统字体最稳定的引擎。如果不小心用了pdflatex编译中文大概率报错“UTF-8 编码问题”或者字体找不到。把编译引擎切到xelatex问题立刻消失。3.2 数学公式行内公式、行距问题、希腊字母与常用符号公式是 LaTeX 的最大优势也是很多人迁移的核心原因。按出现位置分为行内公式和行间公式。行内公式用一对美元符包裹比如$E mc^2$。但实际写的时候有一个高频坑行内公式如果包含分式\frac{1}{2}在正文里会把行距撑大。解决办法是用\dfrac强制显示大分式或\tfrac强制缩小分式。比如行内写法一$ \frac{1}{2} $ % 自动调整大小 行内写法二$ \tfrac{1}{2} $ % 强制小分式不撑行距 独立公式写法\[ \frac{1}{2} \]希腊字母直接用命令。\alpha、\beta、\gamma、\delta、\theta、\lambda、\mu、\sigma、\omega这些是最常用的。大写希腊字母用首字母大写命令比如\Gamma、\Delta、\Theta、\Lambda、\Sigma、\Omega。常用数学符号要背几个高频命令\pm正负号、\times乘号、\div除号、\leq小于等于、\geq大于等于、\neq不等于、\approx约等于、\infty无穷大、\partial偏微分符、\nabla纳布拉算子、\sum求和、\prod求积。求和符号带上下限行间用\sum_{i1}^{n}行内会自动压缩下标位置也可以用\sum\limits_{i1}^{n}强制上下标注在符号正下方。公式矩阵用过amsmath宏包后用pmatrix、bmatrix、vmatrix环境\[ \begin{pmatrix} a b \\ c d \end{pmatrix} \begin{bmatrix} 1 2 \\ 3 4 \end{bmatrix} \]3.3 特殊符号输入左矢右矢、五角星、上标脚注物理或量子化学写作时左矢和右矢是刚需。量子力学中用\langle和\rangle表示左右矢尖括号再配合上下标。比如$\langle \psi |$ % 左矢 $| \psi \rangle$ % 右矢 $\langle \phi | \psi \rangle$ % 内积 $\langle \psi | \hat{H} | \psi \rangle$ % 期望值如果觉得每次写\langle、\rangle太繁琐可以在导言区定义简写\newcommand{\bra}[1]{\langle #1|} \newcommand{\ket}[1]{|#1\rangle} \newcommand{\braket}[2]{\langle #1|#2\rangle}文内直接写$\bra{\psi}$、$\ket{\psi}$省时省力。五角星符号有几种场景文本模式中想打一个实心五角星可以用\ding{73}需要pifont宏包数学模式下常用\star这是空心五角形更多用作星号。如果确实要一个大号实心五角星可以用\usepackage{bbding}后写\FiveStar或者\char2605依赖字体支持。最稳妥的通用方案是用pifont\usepackage{pifont} % 实心五角星 \ding{73} % 空心五角星 \ding{72}表格里的星号上标和脚注是很多人一上手就懵的地方。LaTeX 表格脚注不能直接用\footnote否则会报错或者脚注编号错乱。主流方案是用threeparttable宏包\begin{table}[htbp] \centering \begin{threeparttable} \caption{实验结果对比} \begin{tabular}{ccc} \toprule 方法 准确率 显著性 \\ \midrule A 0.85 0.03\tnote{*} \\ B 0.91 0.02\tnote{**} \\ \bottomrule \end{tabular} \begin{tablenotes} \item[*] $p0.05$ \item[**] $p0.01$ \end{tablenotes} \end{threeparttable} \end{table}表内需要标星号时直接在单元格加\tnote{*}脚注内容统一放在表下方的tablenotes环境里排版非常整洁。3.4 表格和插图位置乱跑怎么治“LaTeX 表格位置乱跑”是热搜词里高频出现的问题也是新手最大的困惑。原因在于 LaTeX 的浮动体机制——表格、图片会被 LaTeX 主动“优化”到它认为合适的位置而不是你写下代码的位置。处理方式分两层。第一层是调整位置参数。浮动环境\begin{table}[htbp]中h 表示 here尽量在当前位置t 表示 top顶部b 表示 bottom底部p 表示独立页面。参数顺序代表优先权实际排版时 LaTeX 会按顺序尝试。日常写作建议固定写[htbp]既给了 LaTeX 足够的浮动空间又尽可能保持在当前位置附近。想强制某个表必须出现在当前位置用大写[H]这是float宏包提供的选项\usepackage{float} \begin{table}[H] ... \end{table}第二层是接受 LaTeX 的“自动排版哲学”。LaTeX 对齐的印刷标准是“页面上下都有内容尽量避免大量留白”所以它有时会把表格挪到更合适的位置。如果你的表格与上下文引用关系不紧密就完全不需要干预如果一定要“表出现在第几节之后”使用[htbp]配合“在正文中用\ref引用它”就足够了。表格常用三线表模式推荐booktabs宏包写出来专业但简洁\usepackage{booktabs} \begin{table}[htbp] \centering \begin{tabular}{lcr} \toprule 项目 数量 占比 \\ \midrule A 100 50\% \\ B 80 40\% \\ C 20 10\% \\ \bottomrule \end{tabular} \end{table}关于插图之前热词里有人问“Geogebra 能否与 LaTeX 结合使用”答案是能而且很丝滑。Geogebra 画好的图形可以导出为.tex文件本质是一个tikzpicture环境的矢量图代码直接在 LaTeX 里\input{xxx.tex}就能嵌入。好处是矢量输出、缩放不糊适合数学教学和论文。常规图片则推荐用graphicx宏包\usepackage{graphicx} \begin{figure}[htbp] \centering \includegraphics[width0.8\textwidth]{figures/流程图.png} \caption{系统流程图} \label{fig:flow} \end{figure}width0.8\textwidth的意思是图片宽度占正文宽度的 80%这是最常用的缩放方式比用绝对长度更安全。4. 用 Pandoc 从 Word 转 LaTeX迁移的捷径与坑4.1 Pandoc 转换的基本操作很多用户尝试迁移时手头已经有一堆 Word 文档。这时 Pandoc 是最佳帮手。它是一个万能文档转换器支持 Word 转 LaTeX、Markdown 转 LaTeX、LaTeX 转 Word 等等。安装 Pandoc 非常简单Windows 下用 Chocolateychoco install pandocmacOS 下用 Homebrewbrew install pandoc。安装完成后纯文本转 LaTeXpandoc input.md -o output.texWord 转 LaTeXpandoc input.docx -o output.tex还可以直接输出 PDFpandoc input.md -o output.pdf --pdf-enginexelatexPandoc 会自动识别 Word 里的标题层级、列表、表格转成 LaTeX 对应结构。实测下来结构简单的 Markdown 文档转换效果非常好Word 里没有过多手工排版的话转换后的 TeX 文件可直接编译。我的建议是日常用 Markdown 写作最后统一用 Pandoc 转 LaTeX 排版输出既保留了轻量写作的流畅感又拿到了 LaTeX 专业排版的成品。4.2 转换后必须手动修的地方Pandoc 不是万能的以下三类内容转出来基本都要手动调。第一类是 Word 里手工调过的格式。Word 文档里通过手工缩进、多余空格、手动编号做出来的“伪样式”Pandoc 无法精准识别成 LaTeX 逻辑结构会原样转成文本或格式指令编译后可能乱套。所以转换前先在 Word 里尽量用真正的“标题 1、标题 2”样式表格用真正的表格不要用空格对齐。第二类是公式。Word 自带的 OMML 公式Pandoc 能转成 LaTeX 数学公式但默认转换结果是\[...\]环境搭配一堆\mathrm包裹。整体可用但遇到矩阵、分段函数时容易结构走样需要逐个检查。第三类是图片路径。Pandoc 对 Word 内嵌图片默认输出到一个 media 目录然后 TeX 里引用相对路径。如果最后的编译环境目录结构不对图片就全挂。经验是转换完成后把图片统一放进figures/目录重新改一遍\includegraphics的路径别省这个功夫。4.3 从 PDF 转 LaTeX 的 AI 工具补充网上还有人在问“将 PDF 文件转为 LaTeX 代码最好用的 AI”。这个需求多出现在旧论文翻新、扫描件重排。目前确实有一些工具用机器学习做 PDF 结构识别加公式识别比如 Mathpix、SimpleTex、以及若干开源的公式识别模型效果比早期工具强很多公式复杂时也能输出可编译的 LaTeX 代码。不过要认清楚PDF 转 LaTeX 不是“无损开箱即用”的识别后的代码必须人工校对尤其是涉及多级标题、脚注、复杂图表交叉引用时。我的工作流是把 AI 识别的.tex当作草稿再用 Pandoc 的 Markdown 流程做精排效率和准确率都能接受。5. 用 VS Code 把写作流打磨到日常顺手5.1 LaTeX Workshop 常用配置与编译模式切换装好 LaTeX Workshop 插件后建议自己定义一个settings.json的核心配置。我现在的配置是{ latex-workshop.latex.recipes: [ { name: xelatex, tools: [xelatex] }, { name: latexmk, tools: [latexmk] } ], latex-workshop.latex.tools: [ { name: xelatex, command: xelatex, args: [ -synctex1, -interactionnonstopmode, -file-line-error, %DOC% ] }, { name: latexmk, command: latexmk, args: [ -xelatex, -synctex1, -interactionnonstopmode, -file-line-error, %DOC% ] } ], latex-workshop.view.pdf.viewer: tab }这里重点解释两个参数。-synctex1是同步定位的核心配合 PDF 查看器可以让你从 LaTeX 源码直接跳到 PDF 对应位置反向也可以。-interactionnonstopmode表示编译出错时不中断询问直接全量跑完日志里看错误信息。如果是新手还是建议保留默认的交互模式能看到每一步编译日志。“如何改变 LaTeX Workshop 的默认编译模式”这个问题很多人刚装完会困惑按 Ctrl S 保存后它默认用pdflatex或latexmk编译中文文档老报错。解决方式就是在 recipes 里把第一个 recipe 设为xelatex保存文件时就会自动走 xelatex 编译。5.2 用 snippets 和批量替换把输入速度拉上来LaTeX 的语法学习曲线主要在于命令记忆。实际使用中效率最高的提升手段不是背命令表而是用 VS Code 的用户代码片段User Snippets。比如我常用的{ Section: { prefix: sec, body: \\section{${1:标题}}, description: 插入 section 环境 }, Equation: { prefix: eq, body: [ \\begin{equation}, ${1:表达式}, \\end{equation} ], description: 插入 equation 环境 }, Bold: { prefix: bf, body: \\textbf{${1:文本}}, description: 加粗 } }写文档时敲sec再按 Tab 就自动补全\section{标题}敲eq自动生成完整的公式环境光标自动跳到内容位置。这套输入方式搞顺了写长文完全不会被打断。另一个很实用的技巧是“批量替换”。比如从网上复制了一段文本里面包含大量中文引号、“×”、破折号等符号。在 LaTeX 里中文引号通常要用 LaTeX 的 和写法但直接使用 Unicode 引号在 xelatex 下也能显示取决于字体。更稳妥的办法是写一个正则替换把所有中文双引号统一转成英文引号或去掉。VS Code 的“在替换中使用正则表达式”功能就能搞定不用专门写脚本。5.3 日常写作流Markdown 草稿 LaTeX 终稿我目前最顺手的日常流是这样的平时随手记录的想法、大纲、碎片内容全用 Markdown 写在 Obsidian 或 VS Code 里轻量、快速、方便搜索。等到内容基本成稿需要正式排版时用 Pandoc 转成 LaTeX再在 VS Code 里精修格式、补全交叉引用和参考文献最后编译 PDF 输出。这套组合的好处是写作阶段不会被格式拖累排版阶段又能拿到极其稳定的输出。Markdown 和 LaTeX 都基于纯文本配合 Git 做版本管理改哪里、改了什么一目了然。不像 Word 的 docx 文件Git 对比内容简直是灾难。6. 常见问题与排查技巧实录6.1 高频问题速查表根据我这段时间的实操把遇到频率最高的十二个问题整理成了速查表每个问题都给一个可落地的解法。问题原因解决方案latex 命令找不到TeX Live bin 目录未加入 PATH手动加环境变量重复用xelatex --version验证中文文档编译报错用 pdflatex 编译中文改用 xelatex 引擎表格跑到下一页浮动体机制位置参数没给好用[htbp]或强制[H]公式撑大行距行内分式过大用\tfrac或\dfrac替代表格星号脚注报错\footnote在表格内失效改用 threeparttable希腊字母无法显示未进入数学模式或字体不支持放在$...$内或改 CTEX 字体LaTeX Workshop 默认编译方式不对默认 recipe 用了 pdflatexsettings 中把 xelatex 设为第一 recipe图片编译后不显示路径错误或缺少 graphicx 宏包\usepackage{graphicx}统一用相对路径Word 转 LaTeX 后图片丢失Pandoc 生成的图片路径不在编译目录拷贝图片到正确目录并修正 includegraphics 路径目录不更新编译次数不够连续编译两遍或 run latexmk参考文献不显示未运行 bibtex / biberlatexmk 一键运行或手动按顺序编译中文粗体显示不了字体不支持伪粗体ctex 宏包下用\heiti或\textbf配合伪粗体设置6.2 两条最值得记住的实操经验如果你只从这篇文章里带走两条经验我想强调这两点。第一遇到任何 LaTeX 错误先去看编译日志。VS Code 的输出面板会指出第几行、什么错误。大多数问题不是“LaTeX 太复杂”而是“路径不对”“宏包没引”“引擎选错”。养成看日志的习惯比记一百条命令更重要。第二不要在同一个 tex 文件里反复修排版。LaTeX 的设计哲学是“一次配置长久复用”。花时间建好一个适合自己需求的模板——中文字体、浮动体位置、常用宏包、表格样式都提前配好之后所有文档都用模板开始效率能提升一个量级。我自己现在已经积累了三套模板论文类、技术报告类、轻量笔记类每一套开箱即用。最后再分享一个小技巧把那些反复用到的片段收集成一个个人宏包文件mycommands.sty用\usepackage{mycommands}引入。像\bra、\ket、命令缩写、表格统一格式这些全都沉淀在里面。写新文档时不用重复造轮子旧代码里的经验自动就能复用。这个做法看似简单长期省下的时间却是实打实的。