LaTex学习总结(二)

 

伪代码

\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}

伪代码参照这个写:

\begin{algorithm}
	\caption{Graph algorithm}%算法标题
	\begin{algorithmic}[1]%一行一个标行号
		\Require %输入
		$G$,Graph %这里需要两个回车接着写输入


		$n$,node
		\Ensure %输出
		$S$,Set
		\Function{remove\_edges}{Graph $G$,Set $I$} %函数
		\For {each $i$ in $I$}  %for
		\If{$degree(i) > t$}  %if
		\State remove node $i$ from $G$ %其它的需要加\State
		\EndIf
		\EndFor
		\State \Return{$G$} %函数返回
		\EndFunction
	\end{algorithmic}
\end{algorithm}

image-20200609172033051

如果想写中文“算法”、“输入、输出”,在伪代码前加上:

\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}

伪代码分页

伪代码太长需要分页时,在引入包的地方加入(但是这时候”algorithm”就不能命名为“算法”了,不知道怎么解决,如果有知道的大佬可以评论告诉我):

%伪代码换页
\makeatletter
\newenvironment{breakablealgorithm}
{% \begin{breakablealgorithm}
	\begin{center}
		\refstepcounter{algorithm}% New algorithm
		\hrule height.8pt depth0pt \kern2pt% \@fs@pre for \@fs@ruled
		\renewcommand{\caption}[2][\relax]{% Make a new \caption
			{\raggedright\textbf{\ALG@name~\thealgorithm} ##2\par}%
			\ifx\relax##1\relax % #1 is \relax
			\addcontentsline{loa}{algorithm}{\protect\numberline{\thealgorithm}##2}%
			\else % #1 is not \relax
			\addcontentsline{loa}{algorithm}{\protect\numberline{\thealgorithm}##1}%
			\fi
			\kern2pt\hrule\kern2pt
		}
	}{% \end{breakablealgorithm}
		\kern2pt\hrule\relax% \@fs@post for \@fs@ruled
	\end{center}
}
\makeatother

然后把之前的 \begin{algorithm}\end{algorithm}换成 \begin{breakablealgorithm}\end{breakablealgorithm},就 OK 了

参考文献

一、添加参考文献

  • 1.XXX.bib 是你记录你参考文献的文件(自己新建,改后缀名),放在那你的 tex 目录里,可以用 txt 编辑。当你需要引用某一文献时,如下图,在 Google(百度)学术找到文献的页面,其上有引用,点击后选择 BibTex,复制下来粘贴到 bib 文件里

    如果是一些报告之类的话,可以自己写(是中文时需加上 userf = {zh}):

    @online{Report,
      addendum={ 《2019年我国互联网络安全态势综述》,国家计算机网络应急技术处理协调中心,2020年4月发布 },
      userf = {zh},
    }
    

image-20200609173248237

image-20200609173948891

copy 过来的 bibtex 索引一定要 先检查一遍又没有 # $ % & ~ _ ^ \ { } 等特殊字符 若有,一定在前面加上一个转义符号 \,否则报错 misplaced alignment tab character &

  • 2.引用时加 \cite{}其中{}里加入参考文献的标识,上图参考文献对应的就是 US2005DNS,这个其实可以自己改名字,只要是一一对应即可

    当没有在文章中直接引用,却想在参考文献列表中显示时使用 \nocite{}

编译参考文献两种方法,选一种即可:

二、Biber

1.首先,打开 texstudio 选项-设置-构建-默认文献工具改为 biber:

image-20200612103451158

2.在 \begin{document}前加入参考文献文件 \addbibresource{XXX.bib}

3.在想要显示参考文献列表的地方加 \printbibliography

二、BibTex

首先类似上一步把默认参考文献改为 bibtex

\begin{document}之后,\end{document}之前加:

\bibliographystyle{plain} %plain是bib模板格式,bst文件名
\bibliography{XXX} %加bib文件的名称,不要后缀

PS:如果没有 bst 文件时,那么就需要默认提供的几个 bst 模板了: plain,按字母的顺序排列,比较次序为作者、年度和标题 unsrt,样式同 plain,只是按照引用的先后排序 alpha,用作者名首字母+年份后两位作标号,以字母顺序排序 abbrv,类似 plain,将月份全拼改为缩写,更显紧凑 ieeetr,国际电气电子工程师协会期刊样式 acm,美国计算机学会期刊样式

三、编译参考文献

  • 如果想改参考文献标题名字:
    • 文档类是 article, 用 \renewcommand\refname{参考文献}
    • 文档类是 book 之类, 用 \renewcommand\bibname{参考文献}

texstudio 快捷键 F8 编译参考文献

编译时,LaTex—BibTeX/Biber—LaTex—LaTex,需要编译四次,可以按快捷键 F6-F8-F8-F8