LaTeX宏包介绍备忘

这篇博客整理了作者使用LaTeX过程中遇到的16个重要宏包,包括geometry、tikz、xcolor等,每个宏包都有详细的说明文档下载链接和使用示例。例如,geometry用于页面布局,tikz是强大的绘图工具,xcolor提供色彩支持,而ctex则用于中文支持。此外,还包括luacode、listings、setspace等宏包的使用介绍。

  我学习使用LaTeX大概有半年时间,很喜欢这种方式的编辑排版,现在基本上使用的文档编辑都从Office之类的软件转移过来了。LaTeX的内容很多,为了方便以后查询,现在把自己使用过的宏包介绍和说明文档的下载地址收录在此。

  以下文档的下载地址都在我的百度网盘,不需要优快云里面的积分。另外,这些文档都是官方或者开发者免费提供的,不存在侵权问题,大家放心下载使用。

1、geometry

下载:geometry宏包说明文档百度网盘下载
介绍:这个宏包用于页面布局,例如设置页面尺寸。
示例:

页面大小及页边距设置
\geometry{a4paper, left = 3.17cm, right = 3.17cm, top = 2.54cm, bottom = 2.54cm}

这段语句的作用就是把页面设置为A4纸大小,并设置了上下左右的页边距,这个边距是参考MSOFFICE的。

设置单页的页边距
\newgeometry{left = 0cm, right = 0cm, top = 0cm, bottom = 0cm}
% 恢复命令
\restoregeometry

上述语句把页面的边距都改为0,后面是恢复成原来的设置。我在编写封面时就把页边距都设为0,好进行全页面的设计。
  

2、tikz

下载:tikz宏包说明文档百度网盘下载
介绍:这个宏包是强大的在线绘图包,真的很强。
示例:

\tikz \datavisualization [
scientific polar axes={0 to pi, clean},
all axes=grid,
style sheet=vary hue,
legend=below
][
visualize as smooth line=sin,
sin={label in legend={text=$1+\sin \alpha$}}]
data [format=function] {
var angle : interval [0:pi];
func radius = sin(\value{angle}r) + 1;
}[
visualize as smooth line=cos,
cos={label in legend={text=$1+\cos\alpha$}}]
data [format=function] {
var angle : interval [0:pi];
func radius = cos(\value{angle}r) + 1;
};

效果如下:
tikz绘图示例二  

3、xcolor

下载:xcolor说明文档百度网盘下载
介绍:提供色彩支持。
示例:

示例一
\usepackage[dvipsnames, svgnames, x11names]{xcolor}
\definecolor{umlyellow}{RGB}{255, 251, 214}

以上语句的第一句是调用xcolor宏包,同时也载入三个色彩名称支持。第二句是自定义新的色彩名称。
  

4、hyperref

下载:hyperref宏包说明文档百度网盘下载
介绍:支持超链接,好像只有加载这个包目录才能跳转。
示例:

示例一
% 设置超链接样式
\hypersetup{%
  colorlinks,%
  linkcolor = blue!80!black,%
  breaklinks,%
}%

  

5、graphics

下载:graphics宏包说明文档百度网盘下载
介绍:图片支持。上面的这份说明文档中还包含了color宏包的说明。
示例:

示例一
\includegraphics[width=8cm]{cover.jpg}

上面的语句是载入cover.jpg图片,并且指定显示宽度为8cm。这里要注意的是图片文件可以带路径,并且路径中的下划线不受LaTeX的影响。
  

6、ctex

下载:ctex宏包说明文档百度网盘下载
介绍:中文支持。原来我在使用xeLaTeX编译方式时,用的是xeCJK,还是挺好用的,只是现在使用LuaLaTeX后,xeCJK就用不成了,所以目前使用这个包来支持中文。
示例:

示例一
% 设置字体。注意顺序,第一个定义的就是默认字体
\setCJKfamilyfont{song}{FZShuSong-Z01S}% 方正书宋简体
\newcommand{\song}{\CJKfamily{song}}%
\setCJKfamilyfont{kaiti}{FZKai-Z03S}% 方正楷体简体
\newcommand{\kaiti}{\CJKfamily{kaiti}}%
\setCJKfamilyfont{heiti}{FZHei-B01S}% 方正黑体简体
\renewcommand{\heiti}{\CJKfamily{heiti}}% 因为原命令已被ctex中定义过,所以这里重定义
\setCJKfamilyfont{fangsong}{FZFangSong-Z02S}% 方正仿宋简体
\renewcommand{\fangsong}{\CJKfamily{fangsong}}% 因为原命令已被ctex中定义过,所以这里重定义

以上语句是定义了一些汉字字体的调用命令。上面的四种字体是方正官方免费提供的、可以商用的字体,大家可以去官网下载。要有版权意识。在Ubuntu下,ctex定义的汉字字体调用命令是对文鼎系列字体的,这个看个人喜好。
  

7、luacode

下载:luacode宏包说明文档百度网盘下载
介绍:用于在LuaLaTeX编译方式下,支持lua代码编写调用。LuaLaTeX编译方式对于程序员而言比较有意义,因为通过这种方式,我们就把文档的编辑排版与lua语言编程联系在一起,又通过lua与C/C++联系起来,这样我们的发挥空间就很大了。
示例:

示例一
  \luaexec{
    require "lua/uml_class"
    local umlClass = UmlClass:new(nil, "#1", "#2")
    tex.sprint(umlClass:Draw())
  }

上述语句调用了lua子目录里的uml_class.lua文件,并传递两个参数给其中的UmlClass类的函数new。这个就是前面示例中绘制UML图的命令。uml_class.lua文件是纯粹的(直接在LaTeX下编写会有很多制约)lua文件,我是在VSCode中编写好后供LaTeX调用。

示例二
\luaexec{%
  local test = require("test")
  str = "字符串示例:" .. test.Hello() .. "\\\\"
  tex.sprint(str)
  str = "数值计算示例,面积: " .. test.Area(6)
  tex.sprint(str)
}%

这个示例是调用test.so动态链接库,这个库是C语言编写的,有关代码、方法我在另一篇博客中介绍。
  

8、enumerate

下载:enumerate宏包说明文档百度网盘下载
介绍:自动枚举宏包,就是在前面加上可自定义的序号。
示例:

示例一
\begin{enumerate}[(1)]
  \item \textbf{僵化性}
  \item \textbf{脆弱性}
  \item \textbf{牢固性}
  \item \textbf{粘滞性}
  \item \textbf{不必要的重复}
  \item \textbf{晦涩性}
\end{enumerate}

上述语句会在条目前面显示(1)、(2)……之类的序号。
  

9、listings

下载:listings宏包说明文档百度网盘下载
介绍:支持代码显示,可以语法高亮等。
示例:

示例一
% 代码显示样式设置
\lstset{%
  breaklines,% 自动换行
  basicstyle=\small,% 设置字体大小
  frame=single,% 单线框
  numbers=left,% 行号在左边
  numberstyle=\tiny,% 行号字体大小
  keywordstyle = \color[RGB]{0, 0, 160},% 关键字颜色
  commentstyle = \color[RGB]{160, 160, 160},% 注释颜色
  stringstyle  = \color[RGB]{0, 0, 255},% 字符串颜色
}%

上述语句是设置显示的程序代码样式。

示例二
  \begin{lstlisting}
public void testPayroll() {
  MockEmployeeDatabase db = new MockEmployeeDatabase();
  MockCheckWriter w = new MockCheckWriter();
  Payroll p = new Payroll(db, w);
  p.payEmployees();
  assert(w.checksWereWrittenCorrectly());
  assert(db.paymentsWerePostedCorrectly());
}
  \end{lstlisting}

在lstlisting环境内,不会受到LaTeX控制字符的影响。
  

10、setspace

下载:setspace宏包源文件 提取码:0c9v
介绍:这个宏包用于行距设置。
因为这个宏包没有专门的说明文档,只是在源代码中有介绍,所以这里直接提供宏包的源代码文件下载。
示例:

示例一
\renewcommand{\baselinestretch}{1.0}% 修改n倍行距
\setlength{\baselineskip}{20pt}

行间距是由两部分控制,就是上面的这两个,第一行的1.0代表几倍行距。
  

11、overpic

下载:overpic宏包说明文档百度网盘下载
介绍:用于在图片上面摆放文字。说明文档只有一页。
示例:

示例一
\begin{overpic}[width = 21cm]{#4}%
    \color{white}\put(70, 57){\textit{Hongshan Park, Anshun, Guizhou}}%
\end{overpic}

效果如下:
在这里插入图片描述

12、booktabs

下载:booktabs宏包说明文档百度网盘下载
介绍:提供一些改善表格质量的附加功能。目前我用在给表格上下横线加粗。
示例:

示例一
\begin{tabular}{p{0.06\textwidth}|p{0.24\textwidth}|p{0.7\textwidth}}
\bottomrule
年份 & 获奖者 & 获奖原因\\
\hline
1966 & Alan J. Perlis & 先进编程技术和编译架构方面的贡献\\
\hline
1971 & John McCarthy & Lisp语言、程序语义、程序理论、人工智能方面的贡献\\
\hline
1972 & E. W. Dijkstra & 对开发Algol做出了原理性贡献\\
\hline
1977 & John Backus & 在高级语言方面所做出的具有广泛和深远意义的贡献,特别是在Fortran语言方面\\
\toprule
\end{tabular}

效果如下:
在这里插入图片描述
其中的\bottomrule与\toprule就是这个宏包提供的功能,注意是顶部横线用\bottomrule,底部横线用\toprule,是倒着用,否则会有一丝缝隙,当然,如果你想有缝隙也可以。

13、colortbl

下载:colortbl宏包说明文档百度网盘下载
介绍:为表格上色提供支持。
示例:

示例
\begin{center}
  \heiti 表2.1 QList、QLinkedList和QVector容器的时间复杂度比较\songti
  \begin{tabular}{C{2.5cm}|C{2.5cm}|C{2.5cm}|C{2.5cm}|C{2.5cm}}
  \bottomrule[2pt]
  \rowcolor{gray!20}
  容器类 & 查找 & 插入 & 头部添加 & 尾部添加\\
  \hline
  QList & O(1) & O(n) & Amort.O(1) & Amort.O(1)\\
  \hline
  QLinkedList & O(n) & O(1) & O(1) & O(1)\\
  \hline
  QVector & O(1) & O(n) & O(n) & Amort.O(1)\\
  \toprule[2pt]
  \end{tabular}
\end{center}

说明:代码中的\rowcolor命令即由此宏包提供。

14、multirow

下载:multirow宏包说明文档百度网盘下载
介绍:提供表格中的多行合并支持。
示例:

示例
\begin{center}
  \heiti 表1-5 Pascal的运算符\songti\\
  \begin{tabular}{c|c|c|c|c|c|c}
    \bottomrule[2pt]
    分类 & 运算符 & 目数 & 优先级 & 运算类型 & 返回类型 & 功能说明\\
    \hline
    \multirow{13}{0.5cm}{算术} & - & 单目 & 1 & 整、实型 & 整、实型 & 取负\\
    \cline{2-7}
    ~ & NOT & 单目 & 1 & 整型 & 整型 & 位非\\
    \cline{2-7}
    ~ & * & 双目 & 2 & 整、实型 & 整、实型 & 乘法运算符\\
    \cline{2-7}
    ~ & / & 双目 & 2 & 整、实型 & 实型 & 实数除\\
    \cline{2-7}
    ~ & DIV & 双目 & 2 & 整型 & 整型 & 整数除\\
    \cline{2-7}
    ~ & MOD & 双目 & 2 & 整型 & 整型 & 取模(取余)\\
    \cline{2-7}
    ~ & AND & 双目 & 2 & 整型 & 整型 & 位与\\
    \cline{2-7}
    ~ & SHL & 双目 & 2 & 整型 & 整型 & 左移\\
    \cline{2-7}
    ~ & SHR & 双目 & 2 & 整型 & 整型 & 右移\\
    \cline{2-7}
    ~ & + & 双目 & 3 & 整、实型 & 整、实型 & 加法\\
    \cline{2-7}
    ~ & - & 双目 & 3 & 整、实型 & 整、实型 & 减法\\
    \cline{2-7}
    ~ & OR & 双目 & 3 & 整型 & 整型 & 位或\\
    \cline{2-7}
    ~ & XOR & 双目 & 3 & 整型 & 整型 & 位异或\\
    \hline
    \multirow{4}{0.5cm}{逻辑} & NOT & 单目 & 1 & 布尔型 & 布尔型 & 逻辑非\\
    \cline{2-7}
    ~ & AND & 双目 & 2 & 布尔型 & 布尔型 & 逻辑与\\
    \cline{2-7}
    ~ & OR & 双目 & 3 & 布尔型 & 布尔型 & 逻辑或\\
    \cline{2-7}
    ~ & XOR & 双目 & 3 & 布尔型 & 布尔型 & 逻辑异或\\
    \hline
    \multirow{6}{0.5cm}{关系} & = & 双目 & 4 & 基本类型 & 布尔型 & 等于\\
    \cline{2-7}
    ~ & <> & 双目 & 4 & 基本类型 & 布尔型 & 不等于\\
    \cline{2-7}
    ~ & < & 双目 & 4 & 基本类型 & 布尔型 & 小于\\
    \cline{2-7}
    ~ & > & 双目 & 4 & 基本类型 & 布尔型 & 大于\\
    \cline{2-7}
    ~ & <= & 双目 & 4 & 基本类型 & 布尔型 & 小于或等于\\
    \cline{2-7}
    ~ & >= & 双目 & 4 & 基本类型 & 布尔型 & 大于或等于\\
    \hline
    \multirow{8}{0.5cm}{集合} & * & 双目 & 2 & 集合类型 & 集合类型 & 集合交\\
    \cline{2-7}
    ~ & + & 双目 & 3 & 集合类型 & 集合类型 & 集合并\\
    \cline{2-7}
    ~ & - & 双目 & 3 & 集合类型 & 集合类型 & 集合差\\
    \cline{2-7}
    ~ & = & 双目 & 4 & 集合类型 & 布尔型 & 两个集合是否相等\\
    \cline{2-7}
    ~ & <> & 双目 & 4 & 集合类型 & 布尔型 & 两个集合是否不相等\\
    \cline{2-7}
    ~ & >= & 双目 & 4 & 集合类型 & 布尔型 & 左集合是否包含了右集合\\
    \cline{2-7}
    ~ & <= & 双目 & 4 & 集合类型 & 布尔型 & 右集合是否包含了左集合\\
    \cline{2-7}
    ~ & IN & 双目 & 4 & & 布尔型 & 左操作数是否为右集合的元素\\
    \hline
    \multirow{3}{0.5cm}{其他} & * & 双目 & 3 & 字符、字串 & 字符、字串 & 字符串连接\\
    \cline{2-7}
    ~ & @ & 单目 & 3 & 任意类型 & 指针型 & 取得操作数变量的地址\\
    \cline{2-7}
    ~ & \textasciicircum & 单目 & 1 & 指针型 & 任意类型 & 取得指针变量指向存储单元的值\\
    \toprule[2pt]
  \end{tabular}
\end{center}

说明:代码中的\multirow命令即由此宏包提供。

15、xstring

下载:xstring宏包说明文档百度网盘下载
介绍:提供字符串操作支持。
示例:

示例
\begin{center}
  \begin{tikzpicture}[start chain=1 going right,node distance=-0.15mm]
    \node[on chain=1] at (-1.5, -0.4){……};
    \foreach \x in {1,...,13} {
      \x, \node[draw, on chain=1, minimum size=8mm] {\StrChar{while { }(a>10)}{\x}};
    }
    \node[on chain=1] at (9.5, -0.4){……};
    \draw[arrow1,on chain=1](-0.6,-1.7)--node[left,yshift=-20pt,xshift=10pt]{上一个单词起始位置}(-0.6,-0.8);
    \draw[arrow1,on chain=1](3.4,-1.7)--node[left,yshift=-20pt,xshift=10pt]{搜索指针}(3.4,-0.8);
    \draw[arrow1,on chain=1](5,-1.7)--node[left,yshift=-20pt,xshift=10pt]{起始位置}(5,-0.8);
  \end{tikzpicture}
  \heiti\\ 图2-1 词法分析器起始位置\songti
\end{center}

说明:示例中的\StrChar{}命令即由此宏包提供。

16、soul

下载:soul宏包说明文档百度网盘下载
介绍:我用这个宏包来设置下划线的颜色,当然,还可以设置下划线的其他样式。此宏包在设置颜色时要与color宏包(或xcolor)一起使用。
示例:

示例
...
\setulcolor{red}
...
\ul{C++}
...

说明:其中的\setulcolor命令用于设置下划线颜色,\ul命令用于给大括号内的文字加下划线。要注意的是,这里如果使用老命令\underline是没有颜色效果的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值