宏包
什么是宏包?
为了完成一些功能(如定理环境、导入图片、数学公式环境等),还需要在导言区,也即document环境之前加载宏包。加载宏包的代码是\usepackage{}。本份教程中,与数学公式与定理环境相关的宏包为amsmath、 unicode-math。
在文件夹 latex_learn中创建一个名为 package_doc.tex 的文件, 并在其中输入以下代码:
\documentclass{ctexart}
\usepackage{amsmath}
\usepackage{unicode-math}
\begin{document}
这是一个数学公式:$x^2 + y^2 = z^2$。
\end{document}
常用的宏包推荐
数学与公式
amsmath: 提供丰富的数学公式环境和命令amssymb: 提供额外的数学符号unicode-math: 支持Unicode数学符号mathtools:amsmath的扩展,提供更多数学工具physics: 物理公式排版siunitx: 科学计量单位排版
文档与语言支持
ctex: 中文支持babel: 多语言支持fontspec: 字体设置(XeLaTeX/LuaLaTeX)xeCJK: 中日韩文字支持(XeLaTeX)
图形与图表
graphicx: 导入图片tikz: 绘制矢量图形pgfplots: 基于TikZ的科学绘图工具subcaption: 创建子图和子表格float: 控制浮动体(图表)的位置
表格排版
booktabs: 专业表格排版tabularx: 灵活宽度的表格longtable: 跨页表格multirow: 合并行colortbl: 彩色表格
页面布局
geometry: 页面尺寸和边距设置fancyhdr: 自定义页眉页脚titlesec: 自定义章节标题格式tcolorbox: 创建彩色文本框mdframed: 创建带框架的环境
参考文献与引用
biblatex: 参考文献管理natbib: 自然科学引用样式hyperref: 创建超链接和PDF书签cleveref: 智能交叉引用
代码与算法
listings: 代码排版与语法高亮minted: 基于Pygments的代码高亮(需要Python)algorithm2e: 算法伪代码排版algorithmicx: 另一种算法伪代码排版
其他实用工具
xcolor: 颜色支持enumitem: 自定义列表环境todonotes: 添加待办事项和注释microtype: 微排版调整,提高排版质量lipsum: 生成占位文本appendix: 附录支持glossaries: 术语表和符号表
宏包加载顺序
某些宏包的加载顺序很重要,一般遵循以下原则:
- 先加载基础宏包,如
fontspec、geometry等 - 再加载功能性宏包,如
amsmath、graphicx等 - 最后加载可能会修改其他宏包行为的宏包,如
hyperref通常应该最后加载例如:
\documentclass{ctexart}
% 基础设置
\usepackage{fontspec}
\usepackage[a4paper, margin=2.5cm]{geometry}
% 功能性宏包
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{booktabs}
% 最后加载
\usepackage{hyperref}
\end{document}