Latex自用笔记
Latex 中文支持
- 使用XeLatex引擎,在文档的第一行 添加
% !TEX program = xelatex
- 使用ctex宏包,其中utf8看情况加不加,默认的时候是加的,当报错的时候去掉再试试
\usepackage[UTF8]{ctex}
文本
-
加粗
\textbf{ }
-
颜色修改,引入宏包
\usepackage{color}
{\color{red} 文本}
\textcolor[rgb]{1,0,0}{文本} % 颜色参数范围为[0,1] -
修改行距
在\begin{document}之前加入\linespread{2}
,里面的数字即行距
具体参考博客LaTeX—行距设置
公式
1 数学符号
含义 | 符号 | 代码 |
---|---|---|
属于 | ∈ \in ∈ | \in |
交集 | ∩ \cap ∩ | \cap |
并集 | ∪ \cup ∪ | \cup |
偏导 | ∂ \partial ∂ | \partial |
2 连等
```
\usepackage{amsmath}
\begin{align*} * &= * \\ &= * \\ &= * \end{align*}
```
或者
\begin{equation}
\begin{aligned}
p_\theta(\tau) &= p(s_1)p_\theta(\alpha_1|s_1)p_\theta(\alpha_2|s_2)p_\theta(\alpha_3|s_3) \cdots \\
&= p(s_1)\prod\limits_{t=1}^Tp_\theta(\alpha_t|s_t)p(s_{t+1}|s_t,\alpha_t)
\end{aligned}
\label{eq1}
\end{equation}
3 矩阵 (需要引入\usepackage{amsmath}
)
```
% 并排矩阵
$$
\centering{\begin{matrix}
X=\begin{bmatrix}
0 & 1 \\
1 & 0
\end{bmatrix} & H = \frac{1}{\sqrt{2}}\begin{bmatrix}
1 & 1 \\
1 & -1
\end{bmatrix}
\end{matrix}}
$$
```
4 大括号
这里的{lcr} 用于控制对齐方式,这里分别是左对齐,居中,右对齐
```
\usepackage{amsmath}
\usepackage{array}
$$
\begin{array}{lcr}
\frac{x}{100}+\frac{y+1000-x}{100} & & (1)\\
\frac{x}{100} +5 & &(2)\\
5+\frac{y+1000-x}{100} & &(3)
\end{array}
$$
```
还有一种加大括号的公式
\usepackage{amsmath}
\usepackage{array}
\usepackage{cases}
引入宏包如下
Eg:
\begin{numcases}{\varphi_k = \varphi_{k-1}+(a_{k-1}-a_k)\frac{\pi k}{x}=}
\varphi_{k-1} & $a_k=a_{k-1}$ \\
\varphi_{k-1} \pm k\pi & $a_k\neq a_{k-1}$
\end{numcases}
图片
1 单张图片插入
这里label一定要在caption后面,引用的时候用\ref{fig:x}
就好了,然后就是中括号里面的选项,我一般习惯用[htbp!]
,这样组合的意思就是latex会尽量满足排在前面的浮动格式,就是h-t-b这个顺序,让排版的效果尽量好。
[h] 当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够,这一参数将不起作用。
[t] 顶部。将图形放置在页面的顶部。
[b] 底部。将图形放置在页面的底部。
[b] 浮动页。将图形放置在一只允许有浮动对象的页面上。
\begin{figure}[htbp!]
\centering
\includegraphics[width=0.8\textwidth]{images/static.png}
\caption{这里是图注}
\label{fig:x}
\end{figure}
2 并排图片插入
需要引用包\usepackage{subfigure}
\begin{figure}[h!]
\centering
\subfigure[右上子图图注]{
\begin{minipage}[t]{0.33\linewidth}
\centering
\includegraphics[width=1.2in]{fig/3_50.png} % 图片路径
% \caption{fig1}
\end{minipage}%
}%
\subfigure[上中子图图注]{
\begin{minipage}[t]{0.33\linewidth}
\centering
\includegraphics[width=1.2in]{fig/3_650.png}
%\caption{fig2}
\end{minipage}%
}%
\subfigure[左上子图图注]{
\begin{minipage}[t]{0.33\linewidth}
\centering
\includegraphics[width=1.2in]{fig/3_950.png}
%\caption{fig2}
\end{minipage}
}%
% 上面的空行是必须的
\subfigure[右下子图图注]{
\begin{minipage}[t]{0.33\linewidth}
\centering
\includegraphics[width=1.2in]{fig/3_1200.png}
%\caption{fig2}
\end{minipage}
}%
\subfigure[中下子图图注]{
\begin{minipage}[t]{0.33\linewidth}
\centering
\includegraphics[width=1.2in]{fig/3_1650.png}
%\caption{fig2}
\end{minipage}
}%
\subfigure[左下子图图注]{
\begin{minipage}[t]{0.33\linewidth}
\centering
\includegraphics[width=1.2in]{fig/3_2000.png}
%\caption{fig2}
\end{minipage}
}%
\centering
\caption{迭代过程演示}
\end{figure}
3 修改图注
\usepackage{caption}
\begin{document}
\captionsetup[figure]{labelfont={bf},name={Fig.},labelsep=period}
表格
引入包\usepackage{booktabs}
-
Excel导出Latex
参照博客【LaTeX】使用Excel中导出latex代码的表格,文中的扩展包链接我这里也放一下excel2latex.xla -
并排表格
\begin{table}[H]
\begin{minipage}{0.48\linewidth}
\centering
\caption{ 迭代次数对结果的影响 }
\begin{tabular}{cc}
\toprule
迭代次数 & 准确率(\%) \\
\midrule
100 & 53.33 \\
500 & 56.67 \\
1000 & 53.33 \\
1500 & 96.67 \\
2000 & 96.67 \\
10000 & 96.67 \\
50000 & 93.33 \\
100000 & 93.33 \\
\bottomrule
\end{tabular}
\end{minipage}\begin{minipage}{0.48\linewidth}
\centering
\caption{ 隐藏层对网络影响 }
\begin{tabular}{cc}
\toprule
隐藏层数量 & 准确率(\%) \\
\midrule
100 & 53.33 \\
500 & 56.67 \\
1000 & 53.33 \\
1500 & 96.67 \\
2000 & 96.67 \\
10000 & 96.67 \\
50000 & 93.33 \\
100000 & 93.33 \\
\bottomrule
\end{tabular}
\end{minipage}
\end{table}
-
调整表格行高
\usepackage{array}
\renewcommand\arraystretch{2} -
表格内换行
\usepackage{makecell}
在 tabular 里面使用
\makecell[居中情况]{第1行内容 \ 第2行内容 \ 第3行内容 …}
参考文献
- 将参考文献放在.bib文件里,如命名为ref.bib
- 文章末尾(\end{doucument}之前),加入如下
\begin{table}[htbp] % 加在\begin{table}[htbp]后面
\renewcommand\arraystretch{2} % 2表示2倍行高,
...
\end{table}
\bibliographystyle{plain} % 参考文献风格
\bibliography{bibfile} % .bib文件名
在VScode里面编写时,需要使用命令行运行命令,使用bibtex编译.aux文件
bibtex xxx.aux (文件名)
参考文献风格有:
plain,按字母的顺序排列,比较次序为作者、年度和标题.
unsrt,样式同plain,只是按照引用的先后排序.
alpha,用作者名首字母+年份后两位作标号,以字母顺序排序.
abbrv,类似plain,将月份全拼改为缩写,更显紧凑.
ieeetr,国际电气电子工程师协会期刊样式. 这个比较合适
acm,美国计算机学会期刊样式.
siam,美国工业和应用数学学会期刊样式.
apalike,美国心理学学会期刊样式
伪代码(算法)
引入如下的包
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}
在begain document之前
设置中文的方式
\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}
正文中
\begin{algorithm}[htb]
\begin{algorithmic}[1] %每行显示行号
\caption{算法示例}
\Require 一些输入
\Ensure 一些输出
\Function {MergerSort}{$Array, left, right$}
\State $result \gets 0$
\If {$left < right$}
\State $middle \gets (left + right) / 2$
\EndIf
\State \Return{$result$}
\EndFunction
\State
\Function{Merger}{$Array, left, middle, right$}
\State $i\gets left$
\While{$i<middle$ \textbf{and} $j<right$}
\State 循环体
\EndWhile
\For{$i = 0 \to k-1$}
\State $Array[left + i] \gets B[i]$
\EndFor
\State \Return{$result$}
\EndFunction
\end{algorithmic}
\end{algorithm}
代码
引入宏包\usepackage{listings}
,\usepackage{xcolor}
参考LaTeX实战经验:如何插入程序代码
导言区设置:
\lstset{
language = Python,
numbers=left,
numberstyle= \tiny,
keywordstyle= \color{ blue!70},
commentstyle= \color{red!50!green!50!blue!50},
frame=shadowbox, % 阴影效果
rulesepcolor= \color{ red!20!green!20!blue!20} ,
escapeinside=``, % 英文分号中可写入中文
xleftmargin=2em,xrightmargin=2em, aboveskip=1em,
framexleftmargin=2em
}
正文中:
\begin{lstlisting}
def calcShannonEnt(dataSet):
"""
计算给定数据集的香农熵
:param dataSet:给定的数据集
:return:返回香农熵
"""
numEntries = len(dataSet)
labelCounts ={}
for featVec in dataSet:
currentLabel = featVec[-1]
if currentLabel not in labelCounts.keys():
labelCounts[currentLabel] =0
labelCounts[currentLabel] += 1
shannonEnt = 0.0
for label in labelCounts.keys():
prob = float(labelCounts[label])/numEntries
shannonEnt -= prob*log(prob,2)
return shannonEnt
\end{lstlisting}