LaTeX宏包介绍备忘

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

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

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宏包说明文档百度网盘下载
介绍:这个宏包是强大的在线绘图包,真的很强。
示例:

示例一
\begin{pgfpicture}
\pgfmathdeclarerandomlist{color}{{red}{blue}{green}{yellow}{white}}
\foreach \a in {1,...,50}{
\pgfmathrandominteger{\x}{1}{85}
\pgfmathrandominteger{\y}{1}{85}
\pgfmathrandominteger{\r}{5}{10}
\pgfmathrandomitem{\c}{color}
\pgfpathcircle{\pgfpoint{+\x pt}{+\y pt}}{+\r pt}
\color{\c!40!white}
\pgfsetstrokecolor{\c!80!black}
\pgfusepath{stroke, fill}
}
\end{pgfpicture}

效果如下:
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绘图示例二

示例三

  下面这张图是我自己编写的UML绘图宏包,是由tikz扩展而来。
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

下载:无
介绍:这个宏包用于行距设置
示例:

示例一
\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,是倒着用,否则会有一丝缝隙,当然,如果你想有缝隙也可以。

猜你喜欢

转载自blog.csdn.net/weixin_44420912/article/details/86346798