宏包
什么是宏包?
为了完成一些功能(如定理环境、导入图片、数学公式环境等),还需要在导言区,也即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}