最近开始利用LaTeX写作复杂的文档,心情那个叫个爽呀,一点感觉不到排版的烦恼了。什么Word分页与分节?什么页眉与页脚?统统没有这种烦恼。这种写作乐趣就是让你只关注写作内容,爽歪歪地写下去,其实跟Markdown写博客,Git管理代码差不多的心情。其实这种烦恼只是转移到制作模板的人身上了,但是LaTeX实在是提供了太多的模板,so,尽管写吧。
写作环境推荐:
- TeXstudio 免费软件做得非常好用,并且跨平台,更新及时,实时编译为PDF,英文单词自动纠正,其它特性就不说了,就这几个特性就可以秒杀很多同类软件;
- tablesgenerator 在线LaTex表格生成工具,谁用谁知道;
- latex eqneditor 在线LaTex公式生成工具;
- Excel 这个大家都懂的吧,画图好使;
下面给一些常用的LaTex实例代码:
插入图片
需要在顶部引入如下包,其中graphicspath中是设置图片的存放根目录,一般常常新建一个目录来存放图片。
\usepackage{graphicx}
\usepackage{graphicx}
\graphicspath{ {img/} }
在插入图片的时候使用如下代码,其中:
\begin{figure}[!htb]
\centering
\includegraphics[width=0.5\textwidth]{picture_name}
\caption{describe of this image\label{fig:image}}
\end{figure}
- width 表示这个图片占的宽度;
- picture_name 表示文件名;
- lable 正文中引用使用,格式s~\ref{fig:image};
插入表格
表格直接使用在线工具生成,一般也会新建一个文件夹例如table来存放表格,每个表格单独保存为xxx.tex文件,然后使用如下代码引入表格:
\input{tables/xx.tex}
双栏并排
这里的双栏并排主要是指表格或者图片双栏显示,比如需要讲两个图显示在一行,可以先引入如下包,然后使用下面的代码就可以将两个表格并排。其实还是通过textwidth的属性值来控制宽度的。
\usepackage{graphicx}
\usepackage{subfigure}
\makeatletter\def\@captype{figure}\makeatother
\begin{table*}
\begin{minipage}{0.50\textwidth}
\centering
\input{tables/a.tex}
\caption{describe a table}
\label{table:a}
\end{minipage}
\makeatletter\def\@captype{table}\makeatother
\begin{minipage}{0.50\textwidth}
\centering
\input{tables/b.tex}
\caption{describe b table}
\label{table:b}
\end{minipage}
\end{table*}
插入算法
插入伪代码的生活需要先包含如下包:
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{amsmath}
\usepackage{graphics}
\usepackage{epsfig}
\renewcommand{\algorithmicrequire}{\textbf{Input:}} % Use Input in the format of Algorithm
\renewcommand{\algorithmicensure}{\textbf{Output:}} % Use Output in the format of Algorithm
伪代码的具体写法如下, 更多详细的语法可以参照这里 LaTex algorithms:
\begin{algorithm}[!htb]
\caption{describe algorithm.}
\label{alg:new}
\begin{algorithmic}[1]
\Require
input, $D$;
input varible;
\Ensure
\For{each virable in D$}
\EndFor
\State xxxx
\EndFor
\label{code:recentEnd}
\end{algorithmic}
\end{algorithm}
列表描述
在有些时候需要列出个1,2,3的列表,具体格式就很简单了,主要有itemize和enumerate两种,前者是列表前面是符号,而后者就是(1),(2)这种。
\begin{itemize}
\item one
\item two
\item three
\end{itemize}
\begin{enumerate}
\item one
\item two
\item three
\end{enumerate}
图表排列
如果需要将文中的所有图片放在最后面,可以包含如下的包即可:
\usepackage{endfloat}
\usepackage{epstopdf}
参考文献
一般是新建一个biblio.bib来专门存放参考文件,然后利用如下代码引入:
\bibliographystyle{IEEEtran}
\bibliography{biblio}
数学公式
复杂的数学公式可以采用在线编辑实现,HostMath