Latex_package_recommendation

Latex_package_recommendation

Charles Lv7

Latex宏包推荐

宏包的概念

本文所指宏包(package),特指安装后提供 .sty 文件的、能以 \usepackage{...} 方式调用的宏包。这类宏包,旨在扩展或提供 LaTeX 的某一特定功能,以便利用户使用。

宏包的名字

  • 调用时,\usepackage{amsmath} 相当于插入了文件 amsmath.sty,此时,宏包名就是文件名。
  • 被 CTAN 收录时,一个 CTAN 上的宏包,可以包含一个或多个「广义」的宏包。通常,一个功能性宏包,被 CTAN 收录时的名字和被调用时的名字是一致的。

宏包的文档

假设在安装宏包时,同时安装了对应的文档,那么

  • 对于大部分宏包,在终端使用 texdoc <name-of-package> 即可打开其(主)文档。
  • 对于提供多个文档文件的宏包,可以使用 texdoc -l <name-of-package> 列出所有文档,再根据终端的提示,选择打开其中的某一个。
  • 有些宏包的(主)文档不是英语的,其对应的英译文档,可能在同一宏包中提供,可能在单独的宏包中提供,也可能没有提供。

宏包的分类

文章必备

功能 宏包
数学公式 amsmath
插图 graphicx
颜色 xcolor
表格 array
中文 ctex, xecjk
西文 otf
字体 fontspec

样式定制

功能 宏包
页面布局 geometry, typearea(额外支持在文档中途改变纸型)
页眉页脚 fancyhdr(fancyhdr 不会自动更新版心宽度,与 geometry 配合使用时可能出现问题。宏包 autofancyhdr 修复了这个问题)
章节标题 ctexheading(ctex 宏集的子包),titlesec
目录 tocloft, titletoc
列表 enumitem
脚注 footmisc
抄录环境 listings, fancyvrb(及扩展 fvextra), minted(不分先后)
定理环境 amsthm, thmtools, 不推荐 ntheorem
文本强调(下划线、文字底纹等) ulem, soul(均不支持中文), xeCJKfntef(仅 xetex),lua-ul(仅 luatex), tikzmark

特定领域

功能 宏包
更多公式符号 amssymb
交换图 amsmath(amscd 环境),tikzcd(有在线编辑器
公式标注 tikzmark, annotate-equations
段落对齐方式 ragged2e
幻灯片,学术报告向 beamer
多栏模式 multicol
允许栏宽不等的多栏模式(不可跨页) vwcol
数字、单位与量 siunitx
参考文献引用格式 cite, natbib(提供了「人名年份」引用格式)
索引 makeindex(定制索引样式见 texdoc ind)
绘制分子和反应流程,偏有机化学 chemfig
排版分子和反应式,偏无机化学 chemformula, mhchem
排版算法和伪代码 algorithm2e,另见知乎回答
排版代码,带语法高亮 minted(需安装 Python 库 Pygments)
排版示例,「一边是源码,一边是结果」 showexpl, tcolorbox 的 listings 等模块
插入多页 PDF pdfpages
自动切边 standalone

特定需求

功能 宏包
四则运算 calc
术语表 nomencl
自动调整宽度的子段盒子 varwidth
让长章节拥有自己的子目录 minitoc
为目录、参考文献和索引添加目录项 tocbibind
多栏目录 multitoc
首字下沉 lettrine
章首名人名言 epigraph
尾注 end­notes
多个参考文献列表 chapterbib
获知文档总页数 lastpage
获知文档各部分的总页数 pageslts
插入终端执行命令后返回的结果 bashful
使用相对于子文件的路径 import
页面水印 watermark, atbegshi

浮动体专题

功能 宏包
浮动体标题的格式 caption
双语标题 bicaption
定义新浮动体系列,让浮动体「不浮动」 float
定义新浮动体系列,允许一个浮动体环境包含多个标题 newfloat
提供「算法」浮动体系列,基于 float 宏包 algorithm
子图的标题 subcatpion, subfig
在侧边排版标题,及其他 floatrow
避免浮动体跨章节出现 placeins

表格专题

功能 宏包
在单元格中自由换行 makecell
纵向合并单元格 multirow
均分列宽 tabularx
在小数点处对齐的列 dcolumn, siunitx
三线表 booktabs
表头斜线 diagbox
使横表线避开纵表线 hhline
彩色的单元格和表线 colortbl(常通过\usepackage[table]{xcolor} 间接调用)
可跨页表格 longtable, supertabular
使列按比例分配宽度 tabu(缺乏维护,色彩支持部分有兼容性 bug)
内容和样式的分离,高质量的着色 tabularray(较新的大一统表格包,长表格会慢)

PDF 专题

功能 宏包
超链接 hyperref
书签 bookmark
注释 pdfcomment
附件 embedall, embedfile

辅助工具专题

功能 宏包
以表格形式输出指定字体前256个符号 fonttable
输出页面布局示意图,列出页面参数的值 layout
可视化各文档部件的布局参数,提供调整接口 layouts
英文测试文本,可用于测试排版效果 lipsum
中文测试文本 zhlipsum
输出测试文档,可包含目录、各级标题、列表、公式、文本等 blindtext
提供示例图片 mwe
长度的单位转换 printlen
输出文件加载依赖关系 inputtrc

命令定义、宏包编写专题

功能 宏包
综合工具 etoolbox
指定命令参数「类型」 xparse(已经打包进 latex2e 格式,无需加载)
修改已定义命令 xpatch, regexpatch
操作「字符串」 xstring

个人推荐

功能类
功能 宏包
数学公式辅助 mathtools
公式输入便捷命令 physics 可以试试 physics2
使用 opentype 数学字体 unicode-math
自动调整引号方向 csquote
兴趣类
功能 宏包
排版微调 microtype
为一系列宏包统一配置接口 interfaces(久不维护,有兼容性问题)
高度可配置的彩色盒子 tcolorbox
选项形式提供对「盒子」的操作,避免命令嵌套 adjustbox
其他
功能 宏包
数学公式样式配置和小宏包功能汇总 voss-math­mode(TeX Live 未收录,CTAN 标记为「已废弃」)
高度可定制的专业文档类 koma-script, memoir

参考文献

[1].功能性宏包推荐

  • Title: Latex_package_recommendation
  • Author: Charles
  • Created at : 2023-08-17 14:18:00
  • Updated at : 2023-08-17 16:30:27
  • Link: https://charles2530.github.io/2023/08/17/latex-package-recommendation/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments