Ourren

关注技术,记录生活.

LaTeX写作技巧总结

| 留言

最近开始利用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

同时一个项目的文献这些可以使用 zoteo 或者 mendeley来管理并导出。