由于长期需要使用overleaf来写作业,故自己鼓捣了一个作业模板,并且对latex也有了一定的学习,在这里总结一下常用的指令,方便自己后续使用。大家有需要可以去我的github上下载源码,记得给个star!如有错误,欢迎交流~
1 文档模板设置
\documentclass[10.5pt, a4paper]{article}
此处表示5号字体,a4大小,文章模板为article,如果有其他模板,需要在这里修改
2 设置中文使用工具
% --------设置中文使用工具-------------
\usepackage[UTF8]{ctex} % 使用中文工具
% \setCJKmainfont{<font.ttf>} % 设置默认的字体,宋体、黑体、楷体、微软雅黑需要自己上传有关字体文件
具体配置见:https://cn.overleaf.com/learn/latex/Chinese
注意使用中文时需要用XeLatex来实现
3 设置页边距
% -------页边距,需要放在fancyhdr前面来确定-----------
\usepackage{geometry} % 调整页边距宏包
\hoffset -0.5cm % 页面box的上边距,默认是一个inch(2.5cm)+\voffset
\voffset -0.5cm % 页面box的上边距,默认是一个inch+\voffset
% \topmargin 12pt % 页面box与页眉之间的高度,默认17pt
% \headheight 25pt % 页眉高度,默认12pt
\headsep 1.5em % 页眉和内容之间的距离,默认25pt
\textheight 700pt % 页面内容的高度,默认561pt
\textwidth 450pt % 页面内容的宽度,默认355pt
% \footskip 20pt % 页面内容和页脚之间的距离,默认12pt
具体配置见https://www.overleaf.com/learn/latex/Page_size_and_margins#Using_the_geometry_package_layout_parameters,注意这一块需要放到页眉页脚设置前面(fancyhdr)
页边距示意图:
4 页眉页脚设置
% -------页眉页脚设置-----------
\usepackage{fancyhdr} % 页面风格设置的宏包,可以设置页眉或页脚格式
\pagestyle{fancy} % 使页面为fancy风格
\fancyhead[L]{姓名 学号} % 左页眉
\fancyhead[C]{课程名称} % 居中页眉
\fancyhead[R]{\today} % 左页眉
5 插入图片
5.1 单张图片
% --------插入图片----------
\usepackage{graphicx} % 插入图片的宏包,下面是实例
% --------单张图片居中-----------
% \begin{figure}[h] % h为当前位置,!htb为忽略美学标准,htbp为浮动图形
% \centering % 图片居中
% \includegraphics[width=0.55\textwidth]{images/1_original_image.png} % 插入图片,[]中设置图片大小,{}中是图片文件名
% \caption{原始图片} % 最终文档中希望显示的图片标题
% \label{Fig.1} % 用于文内引用的标签
% \end{figure}
5.2 多张图片
% ---------多张图片排版----------
\usepackage{subfigure} % 插入多个图片的宏包
% \begin{figure}[h]
% \centering % 图片全局居中
% \subfigure[图像模糊结果]{
% \label{Fig.2.a}
% \includegraphics[width=0.45\textwidth]{images/1.1_blurred_image.png}
% }
% \subfigure[图像模糊及加噪结果(降噪部分输入图片)]{
% \label{Fig.2.b}
% \includegraphics[width=0.45\textwidth]{images/2_blurred_noisy_image.png}
% }
% \caption{图像模糊、加噪结果}
% \label{Fig.2}
% \end{figure}
注意,如果要精确地插入当前位置,需要导入float宏包,并使用[H]来修饰figure
\usepackage{float} % 使用H位置时必须要导入
实际应用式,在文中插入\ref{Fig.2}
即可引用。效果如图所示:
6 插入表格
% --------插入表格-------------
\usepackage{booktabs} % 插入三线表所需的宏包
\usepackage{makecell} % 实现表格居中宏包
\usepackage{threeparttable} % 用于添加注释
% --------实例----------------
% \begin{table}[h] % h为当前位置
% % \setlength{\abovecaptionskip}{0cm} % 表标题上方间距
% \setlength{\belowcaptionskip}{10pt} % 表标题下方间距
% \caption{常见的图像去模糊方式及对比} % 标题位置
% \centering % 表格整体居中
% % tabular表示三线表,l\c\r表示单元格水平居中对齐,p{}m{}b{}表示单元格垂直居中对齐,中间可以插入分割线。
% % 单元格要限制宽度,用p{宽度}表示,但此时左上对齐;
% % 采用m{2cm}<{\centering}指令实现垂直居中、水平居中且自动换行
% % 单元格对齐方式可采用\makecell[c]{内容}来表示
% % [c]是水平居中,[l]水平左居中,[r]水平右居中;
% % *[c]水平 + 垂直居中,*[l]垂直居中 + 水平左居中,*[r]垂直居中 + 水平右居中
% % 内容\\换行可以直接换行
% % \toprule[1pt]可以修改三线表的磅数
% % \resizebox{\linewidth}{!}{ % 自适应长度,\linewidth表示文章宽度
% \begin{tabular}{m{70pt}<{\centering}m{150pt}m{150pt}}
% \toprule[1.0pt]
% 去模糊方式 & \makecell[c]{原理} & \makecell[c]{特点} \\
% \midrule[1.0pt]
% 逆滤波 & 用退化函数除退化图像的傅里叶变换来计算原始图像的傅里叶变换估计 & 复原过程简单,但受到噪声影响很大 \\
% \midrule
% 维纳滤波 & 一种最小二乘滤波方法,利用平稳随机过程的相关特性和频谱特性对混有噪声的信号进行滤波 & 可应用于连续、离散、标量、向量的各种场景且效果较好,但只能处理平稳过程,同时需要提供一定的噪声信息 \\
% \midrule
% 正则化滤波 & 使用正则化对图像进行反卷积,进行有约束的去模糊处理 &当知道附加噪声的部分信息时,使用约束去卷积实现图像恢复比较有效 \\
% \midrule
% Lucy-Richardson滤波 & 假设噪声服从泊松分布,该算法优化PSF相关的模糊信息 & 对PSF模糊信息了解较多时,但对图像中噪声信息了解较少时,此方法较为有效 \\
% \bottomrule[1.0pt]
% \end{tabular}
% % }
% \label{Table.1}
% \end{table}
具体排版效果如图:
7 插入代码
插入代码必须要引入的宏包为listings
,不同的语言使用方法大同小异,这里以C++和matlab为例
7.1 C++代码
首先在宏包位置定义代码风格
\usepackage{listings} % 插入代码的宏包
\usepackage{xcolor} % 颜色相关宏包,并定义颜色
\definecolor{commentgreen}{RGB}{2,112,10}
\definecolor{eminence}{RGB}{108,48,130}
\definecolor{weborange}{RGB}{255,165,0}
\definecolor{frenchplum}{RGB}{129,20,83}
\lstset { % C++代码配置,
% 格式调整参考https://ldzhangyx.github.io/2021/03/25/latex-code/
% https://www.overleaf.com/learn/latex/Code_listing#Options_to_customize_code_listing_styles
language=C++,
frame=single, % 框线tb表示上下方,参考
tabsize=4,
showstringspaces=false, % 不显示空格
numbers=left, % 数字位置
breaklines=true, % 自动换行
%upquote=true,
commentstyle=\color{commentgreen},
keywordstyle=\color{eminence},
stringstyle=\color{red},
basicstyle=\small\ttfamily, % basic font setting
emph={int,char,double,float,unsigned,void,bool},
emphstyle={\color{blue}},
escapechar={\&, \$},
% keyword highlighting
classoffset=1, % starting new class
otherkeywords={>,<,.,;,-,!,=,~},
morekeywords={>,<,.,;,-,!,=,~},
keywordstyle=\color{weborange},
classoffset=0,
}
然后在正文中添加:
\begin{lstlisting}
C++代码块
\end{lstlisting}
显示效果如下:
7.2 Matlab代码
与上面类似,在宏包位置添加如下定义即可,但需要在同级目录下导入mcode.sty(可以在matlab官网下载)
\usepackage{listings} % 插入代码的宏包
\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode} % matlab代码插入
8 实现链接跳转
导入如下宏包
% ---------实现链接跳转--------------
% \usepackage[backref]{hyperref} % 方块形状的超链接
% 格式参考:https://www.overleaf.com/learn/latex/Hyperlinks#Styles_and_colours
\usepackage{hyperref} % 宏包
\hypersetup{
hypertex=true,
colorlinks=true,
linkcolor=blue,
anchorcolor=blue,
% citecolor=blue
} % 对应设置
9 ref.bib参考文献库引用
首先添加cite宏包:
% ---------文献引用-----------------
% 参考https://www.overleaf.com/learn/latex/Bibliography_management_with_bibtex
\usepackage{cite} % 用于引用的宏包
制作自己的ref.bib文件,放到main.tex同级的位置
@article{sgbm,
title={Stereo processing by semiglobal matching and mutual information},
author={Hirschmuller, Heiko},
journal={IEEE Transactions on pattern analysis and machine intelligence},
volume={30},
number={2},
pages={328--341},
year={2007},
publisher={IEEE}
}
@inproceedings{gc,
title={Interactive graph cuts for optimal boundary \& region segmentation of objects in ND images},
author={Boykov, Yuri Y and Jolly, M-P},
booktitle={Proceedings eighth IEEE international conference on computer vision. ICCV 2001},
volume={1},
pages={105--112},
year={2001},
organization={IEEE}
}
@inproceedings{quasi,
title={Real-time stereo reconstruction in robotically assisted minimally invasive surgery},
author={Stoyanov, Danail and Scarzanella, Marco Visentini and Pratt, Philip and Yang, Guang-Zhong},
booktitle={International Conference on Medical Image Computing and Computer-Assisted Intervention},
pages={275--282},
year={2010},
organization={Springer}
}
这里想得到bibtex格式的参考文献,可以在谷歌中找到对应的参考文献,点击引用选择bibtex,复制内容到ref.bib文件中即可
然后在文中参考文献位置添加如下代码:
\bibliographystyle{unsrt} % 设置参考文献格式,unsrt按照文献引用顺序来
\bibliography{ref} % 引用bib文献库
最后在需要引用的位置添加\cite{name}
即可
10 其他
上面的代码基本上可以满足大部分需求(关于公式的介绍之后我会另开一个文章,等之后有空了发),还有一些关于排版杂七杂八的内容,在这里记录一下。大多数都可以在overleaf官网找到,大家在Google的同时可以更多地以官网为主,不容易出错。
10.1 实现不编号
在原有命令后面添加*号:
\section*{...}
10.2 列表操作
利用enumerate宏包
\begin{enumerate}[(1)]
\item 1111111111
\item 2222222222
\item 3333333333
\end{enumerate}
10.3 首行不缩进
\noindent{段落}