latex进阶记录

前言

也算是使用了四年latex,但一直停留于修改模板的基础上。每次需要解决问题时都是临时去网上搜相关教程,大部分都用完即忘。因此想现在开始每次记录整理自己遇到的问题,以后再遇到也方便参考。

正文

题外话:关于画流程图的一个小安利

processon这个网站主要用于在线作图,推荐的理由是已经支持用latex形式输入文字。相比visio不支持latex,且对于公式、复杂符号的不友好,简单的图形可以借助processon。

不过processon也有缺点,主要表现为latex输入的字符导出后可能比普通文字模糊一些。(也可能是我不是尊贵的VIP吧)

多行公式缩放

有时会遇到公式太长的情况,需要对公式进行缩放

方法一:\resizebox

对于公式、表格等内容,我们可以使用 graphicx 提供的 \resizebox 命令来处理。

一个例子:

1
2
3
\begin{equation}
\resizebox{.9\hsize}{!}{$content$}%可以根据需要修改".9\hsize"
\end{equation}

注意:填写公式的那边一定要用“$ $”内联公式的方式,不可用其他。另外,直接这样用可能会有公式的编号,如果不需要的话,要在end代码前加上“\nonumber”。

缺点:只能一行代码。若用在多行上需要反复多次,且行距太大。

方法2: 缩小公式左右或上下的空隙宽度

缩小公式左右宽度:这个适合于只超出页面一点点的情况。

1
2
3
4
5
6
\begin{equation*}
\Ket{n_1,(n_1-n_2+1)\cdot 2^1+(n_2-n_3+1)\cdot 2^0+p\cdot 2^0}=\Ket{n_1,2n_1-n_2-n_3+p+3}
\end{equation*}
\begin{equation*}
\Ket{n_1,(n_1\!-\!n_2\!+\!1)\!\cdot\!2^1\!+\!(n_2\!-\!n_3\!+\!1)\!\cdot\!2^0\!+\!p\!\cdot\!2^0} =\Ket{n_1,2n_1\!-\!n_2\!-\!n_3\!+\!p\!+\!3}\label{eq:4}.
\end{equation*}

生成的排版为:

image-20210524181747729

注意:可以使用\quad\qquad,:;!等符号。

前两个间隔较大,后三个较小,最后一个是负距离,也就是我们上面呈现的这样,可以用于缩小左右宽度。


缩小公式上下:

1
2
3
4
5
\begin{equation}
\setlength\abovedisplayskip{3pt}%shrink space
\setlength\belowdisplayskip{3pt}
\Ket{n_3,n_2,n_1,p}\label{eq:1},
\end{equation}

img

1
2
3
\begin{equation}
\Ket{n_3,n_2,n_1,p}\label{eq:1},
\end{equation}

img

注意:\setlength\abovedisplayskip{3pt}指令在很多时候都可以用。

IEEE的格式默认行距似乎是3pt,所以可以按自己需求设置参数。

方法3: 定义新环境

在cls或tex文件里定义新环境(注意:一定要在\begin{document}之前)

1
2
\newenvironment{sequation}{\small\begin{equation}}{\end{equation}}
\newenvironment{tequation}{\tiny\begin{equation}}{\end{equation}}

而后在正文就可以用这个定义的新环境。

1
2
3
\begin{tequation}
A \times B = C
\end{tequation}

注意:但是我用这个方法后,TexStudio报错,显示缺少一些字体。网上有人给出的解决方案是改变编译方式,添加或替换为“pdfLatex”。但是我这么操作后报了新的错误,有点麻烦。使用overleaf可以正常编译。

方法4: 最简单易操作的方法

在公式外加上\begin{small}\end{small}

1
2
3
4
5
\begin{small} 
\begin{equation}
content
\end{equation}
\end{small}

当然,也可以用\tiny和其他字体,直接替换small即可。

image-20210524183038189

如果要写多行公式,可以用\begin{split}\end{split},或者cases,array。

公式间用\\换行。若想要公式对齐则在想要对齐的地方前面加上&

方法5: 公式整体左移右移。

1
\hspace{-2mm}%{}里面负数为左移,正为右移

另外,如果想要调整公式间距,公式中也可以用这个。

两张图片并列排放

单栏

在latex中,对于双栏格式的排版,插入一栏图片时,使用的是\begin{figure}……\end{figure}

可复制的代码如下:

1
2
3
4
5
6
7
\begin{figure}[!htbp]
\centering
\subfigure[子图片1标题]{\label{fig1}\includegraphics[width=0.48\linewidth]{图片位置}}
\subfigure[子图片2标题]{\label{fig2}\includegraphics[width=0.48\linewidth]{图片位置}}
\caption{整张图片的标题}
\label{fig3}
\end{figure}

跨双栏

插入双栏图片时需在figure的上标中加入符号“”,具体为`\begin{figure}……\end{figure*}`

可复制的代码如下:

1
2
3
4
5
6
7
\begin{figure*}[!htbp]
\centering
\subfigure[子图片1标题]{\label{fig1}\includegraphics[width=0.48\linewidth]{图片位置}}
\subfigure[子图片2标题]{\label{fig2}\includegraphics[width=0.48\linewidth]{图片位置}}
\caption{整张图片的标题}
\label{fig3}
\end{figure*}

让创建表格变得更简单

可以利用一个网站创建表格。网址:https://www.tablesgenerator.com/

以前手动输入时经常会因为漏了一个&符号,或调整格式而折腾半天,有了这个网站可以使创建表格的操作变得更简单舒适~

这个网站同时也支持直接上传CSV文件生成表格。