LaTeX 初体验
本文章还在施工中
前言
之前一直有用 去生成 Word 的数学公式(谁让 Word 太僵硬了呢),用 manim Animation engine for explanatory math videos 的时候也经常接触 的数学公式,再加上某个小可爱的不懈安利,我也索性就试试配置吧。
配置
MikTex 以前装过,而最近写博客用 VSCode 觉得也是非常好看实用,所以这次配置我选择了 VSCode + MikTex 方案。
-
MikTex
对于 MikTex ,在下载完成后,可以通过图形界面 MikTeX Console 进行更新。安装完成后,一定要添加环境变量。使用 TeX Live 应该是差不多的,同样要注意环境变量的问题。
-
VSCode
VSCode 的下载就没什么好说的了。下载完成后,安装
LaTeX Workshop
拓展,默认情况下,该拓展会预定义几种编译方案,但是对于一些复杂的文件,往往需要几次,其编译链不一定符合要求,因此需要在 VSCode 的settings.json
文件中进行配置。以下是我的一点简单的配置:{
"[latex]": {
"editor.wordWrap": "on"
},
"latex-workshop.latex.autoBuild.run": "never", //禁止保存文件时自动build
"latex-workshop.intellisense.package.enabled": true, //自动补全
//定义编译命令
"latex-workshop.latex.tools": [
{
"name": "XeLaTeXmk",
"command": "latexmk",
"args": [
"-xelatex",
"-synctex=1",
"-shell-escape",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%.tex"
]
},
{
"name": "LuaLaTeXmk",
"command": "latexmk",
"args": [
"-lualatex",
"-synctex=1",
"-shell-escape",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%.tex"
]
},
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-shell-escape",
"%DOC%"
]
},
{
"name": "lualatex",
"command": "lualatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-shell-escape",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
//定义编译链
"latex-workshop.latex.recipes": [
{
"name": "xelatexmk",
"tools": [
"XeLaTeXmk"
]
},
{
"name": "lualatexmk",
"tools": [
"LuaLaTeXmk"
]
},
{
"name": "xelatex ➞ bibtex ➞ xelatex × 2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name": "lualatex ➞ bibtex ➞ lualatex × 2",
"tools": [
"lualatex",
"bibtex",
"lualatex",
"lualatex"
]
}
],
//设定清理文件的类型(ctrl+alt+c:清除辅助文件)
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk",
"*.nav",
"*.snm",
"*.synctex.gz",
"*.bcf",
"*.run.xml"
],
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.intellisense.citation.label": "title"
}可以参考以下网站,它有关于各配置项含义的讲解:
简单使用
前几天在网上高强度冲浪的时候,发现了武汉大学的论文模板。
你别说,还挺不错。不过要用起来还要花点时间琢磨。
该部分主要围绕该论文模板展开,可能并不适用于其他情况。
文献管理
BibTeX
BibTeX 是最为流行的参考文献数据组织格式之一。它的出现让我们摆脱手写参考文献条目的麻烦。我们还可以通过参考文献样式的支持,让同一份 BibTeX 数据库生成不同样式的参考文献列表。
Zotero 导出 .bib 文件
Zotero 是一款优秀的文献管理软件,真的超好用啊!尤其是它的浏览器插件,“抓取”文献很方便!并且 Zotero 可以通过账号在不同电脑上同步,能支持很多的拓展插件。
Zotero 可以导出分类或导出条目,对应的是一组文献和单个文献。右击菜单中选择导出XX
,就可以导出相应的 .bib
文件。
但是,它默认导出的 .bib
文件有很多不必要的信息。这时,我们可以使用 Better BibTeX for Zotero
插件优化 .bib
文件的导出内容。安装插件的步骤很简单,安装完成后,在首选项
-> Export
-> Fields
中,可以设置要过滤的项目,这样导出的 .bib
文件就可以直接拿去使用了。
知网导出 .bib 文件
想要从知网的文献引用中获取 .bib
文件,需要利用脚本进行提取。这里推荐使用 Google Chrome 的 Tampermonkey 拓展,使用油猴脚本实现提取。
在模板中使用 .bib 文件
\whusetup{⟨键值列表⟩}
的键值 element/bibliography
,设置 .bib
文件。可以是单个文件,也可以是用英文逗号隔开的一组文件。如果选定了 bib-backend = biblatex
,数据源必须明确给出 .bib
后缀名。设置好 .bib
文件的路径后,模板就会生成 参考文献
章节,引用文献会按要求的格式显示并自动编号。
\documentclass[type=bachelor]{whu-thesis} |
在正文中使用 \cite{⟨citation⟩}
进行引用,可以自动匹配编号。具体请参见文档 whu-thesis-doc.pdf
的相关说明。
公式插图表格
这一部分其实参考 whu-thesis-demo.tex
的源码和 whu-thesis-demo.pdf
就可以理解大部分使用方法了。
公式的使用
这部分包括行内公式、行间公式与公式引用等。
-
行内公式:
$a^2+b^2=c^2$
\(a^2+b^2=c^2\)
\[a^2+b^2=c^2\] -
行间公式,让公式单独一段:
还可以让公式单独一段:
\begin{equation}
\sin^2{\theta} + \cos^2{\theta} = 1
\end{equation}
注意,公式前请不要空行。为了格式的正确,公式前后的空行问题一定要注意。语意是连续的情况下,公式后面的文字是顶格开始的,不应当空行。
行间公式还可以多行对齐:
\begin{equation}
\begin{aligned}
f_1(x) & = (x + y)^2 \\
& = x^2 + 2 x y + y^2
\end{aligned}
\end{equation} -
公式引用
使用
\label{⟨标签名⟩}
为公式添加标签。使用\eqref{⟨标签名⟩}
进行引用。可以给公式加上编号
\begin{equation}
\sin^2{\theta} + \cos^2{\theta} = 1 \label{eq:pingfanghe}
\end{equation}
并通过添加的标签在正文中引用公式,如式\eqref{eq:pingfanghe}。
插图的使用
这部分是插图的使用,包括设置图片的大小、位置及分图等:
\begin{figure} |
-
设置大小
图像可以使用
width
设置宽度。[width=\textwidth]
则为一整行。 -
设置排版位置
作为浮动体,
figure
可以设置排版位置,即使用[htbp]
设置排版位置:\begin{figure}[⟨placement⟩]
...
\end{figure} -
分图子图
如果一个图由两个或两个以上分图组成时,各分图分别以(a)、(b)、(c)… 作为图序,并须有分图题。模板使用 subcaption 宏包来处理。可以参考以下代码:
\begin{figure}[h]
\centering
\begin{subfigure}{0.2\textwidth}
\includegraphics[width=\linewidth]{whulogo.pdf}
\caption{武汉大学校徽}
\label{fig:subfig-a}
\end{subfigure}\qquad
\begin{subfigure}{0.7\textwidth}
\includegraphics[width=\linewidth]{whu.pdf}
\caption{武汉大学}
\label{fig:subfig-b}
\end{subfigure}
\caption{多个分图的示例}
\label{fig:multi-image}
\end{figure} -
插图引用
若要进行引用,也是通过
\label{⟨标签名⟩}
添加标签。并使用\ref{⟨标签名⟩}
进行引用。比如引用上面的两个子图,可以用图~\ref{fig:subfig-a} 和图~\ref{fig:subfig-b}。
表格的使用
这部分包括普通表格(三线表)和跨页表格的使用。
-
普通表格
\begin{table}[ht]
\centering
\caption{简单表格}
\label{tab:1}
\begin{tabular}{|l|c|r|}
\hline
我是 & 一只 & 普通 \\
\hline
的 & 表格 & 呀 \\
\hline
\end{tabular}
\end{table}由示例可知,
{|l|c|r|}
参数是用于确定文字的对齐方向的。作为浮动体,
table
可以设置排版位置,即使用[htbp]
设置排版位置:\begin{table}[⟨placement⟩]
...
\end{table}如果需要引用表格,方法与之前类似。通过
\label{⟨标签名⟩}
添加标签。并使用\ref{⟨标签名⟩}
进行引用。 -
三线表
\begin{table}[ht]
\centering
\caption{一般三线表}
\label{tab:2}
\begin{tabular}{ccc}
\toprule
姓名 & 学号 & 性别 \\
\midrule
张三 & 001 & 男 \\
李四 & 002 & 女 \\
\bottomrule
\end{tabular}
\end{table}三线表中三条横线分别使用
\toprule
、\midrule
与\bottomrule
。若要添加 m-n 列的横线,可使用\cmidrule{m-n}
:\begin{table}[ht]
\centering
\caption{占满文字宽度的三线表}
\label{tab:3}
\begin{tabularx}{\textwidth}{CCCC}
\toprule
序号 & 年龄 & 身高 & 体重 \\
\midrule
1 & 14 & 156 & 42 \\
2 & 16 & 158 & 45 \\
3 & 14 & 162 & 48 \\
4 & 15 & 163 & 50 \\
\cmidrule{2-4} %添加2-4列的中线
平均 & 15 & 159.75 & 46.25 \\
\bottomrule
\end{tabularx}
\end{table} -
跨页表格
跨页表格常用于附录(把正文懒得放下的实验数据统统放在附录的表中)。下面是跨页表格的一个示例:
\begin{xltabular}{\textwidth}{CCCCCCCCC}
\caption{文字宽度的跨页表格示例} \\
\toprule
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
\midrule
\endfirsthead
\multicolumn{9}{l}{接上一页} \\
\toprule
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
\midrule
\endhead
\toprule
\multicolumn{9}{r}{转下一页}
\endfoot
\bottomrule
\endlastfoot
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
1 & 0 & 5 & 1 & 2 & 3 & 4 & 5 & 6 \\
\end{xltabular}跨页表格的表头表尾:
% 这里写第一页表头的内容
\endfirsthead
% 这里写之后每一页的表头的内容,可选
\endhead
% 这里写第一页表尾的内容,可选
\endfoot
% 这里写最后一页表尾的内容,可选
\endlastfoot