LaTeX完成Scientific Papers的一些说明

  • A+
所属分类:LaTeX基础
摘要这一篇会介绍关于LaTeX来完成论文写作的一些小的技巧, 和一些小的方法。

简介

这一部分会介绍一下关于LaTeX来完成论文写作的一些方式。之前介绍过LaTeX的一些基本的使用方式,这里主要是介绍使用他来完成科学类文章的写作。主要参考资料是GitHub上一个仓库里的内容,链接会放在下面。

更多资料

主要参考链接 : Tips and Tricks for Writing Scientific Papers

LaTeX的更多详细说明 : LaTeX指南信息

表格的绘制

在说绘制表格之前, 简单说明几个问题

  • hline表示横线
  • toprule: 表示三线表的表头的横线(这个与后面两个三线表的都需要使用booktabs
  • midrule: 表示三线表中间的横线
  • bottomrule: 表示三线表最后的横线

我们可以使用booktabs绘制出很漂亮的表格,下面看一个简单的例子。这个例子演示一下三线表的绘制, 这种表格在写paper的时候会经常被使用到.

  1. \documentclass{article}
  2. \usepackage{booktabs}
  3. \begin{document}
  4. % --
  5. \begin{table}
  6.     \centering
  7.     \begin{tabular}{lcccc}
  8.         \toprule
  9.         & \multicolumn{4}{c}{Data} \\ \cmidrule(lr){2-5}
  10.         DoS Types & Correct &  Wrong & Total & Accuracy \\
  11.         \midrule
  12.         back & 0 & 359 & 359 & 0.00\% \\
  13.         land & 7 & 0 & 7 & 100.00\% \\
  14.         neptune & 4616 & 41 & 4657 & 99.12\% \\
  15.         pod & 36 & 5 & 41 & 87.80\% \\
  16.         smurf & 652 & 13 & 665 & 98.05\% \\
  17.         teardrop & 12 & 0 & 12 & 100\% \\
  18.         mailbomb & 0 & 293 & 293 & 0.00\% \\
  19.         apache2 & 72 & 665 & 737 & 9.77\% \\
  20.         processtable & 135 & 550 & 685 & 19.71\% \\
  21.         udpstorm & 0 & 2 & 2 & 0.00\% \\
  22.         \bottomrule
  23.     \end{tabular}
  24.     \caption{The Model1 for DoS Attack}
  25.     \label{tab-label}
  26. \end{table}
  27. \end{document}

简单做一下说明, 上面的我们需要修改的是{lcccc}这里后面四个c表示后面(也就是Data部分)的数据居中表示, multicolumn{4}表示的是Data有4列.

最终绘制的表格如下所示:

LaTeX完成Scientific Papers的一些说明

表格的自动换行

有的时候, 我们需要表格中的内容可以自动换行, 这里需要注意的是, Only the p - type can have a width argument. 关于自动换行的参考资料见: How to create a table with fixed column widths

我们看一个简单的例子:

  1. \begin{table}[htbp!]
  2.     % 我提取的特征与其他人提取的特征
  3.     \centering
  4.     \begin{tabular}{|p{2cm}|p{5cm}p{2cm}p{2cm}|}
  5.         \toprule
  6.         Attack Types & Important Features in cite &  Numbers of Important Features in cite & The Same Important Feature \\
  7.         \midrule
  8.         DoS & 3, 4, 5, 6, 8, 23, 29, 36, 38, 39, 40 & 11 & 9 \\
  9.         Probe & 2, 3, 4, 5, 6, 12, 29, 32, 33, 34, 35, 36, 37, 40 & 14 & 11 \\
  10.         R2L & 1, 2, 3, 5, 6, 10, 12, 14, 16, 24, 32, 33, 35, 36, 37, 38, 39, 41 & 18 & 9 \\
  11.         U2R & 3, 5, 6, 10, 14, 17, 32, 33 & 8 & 6 \\
  12.         \bottomrule
  13.     \end{tabular}
  14.     \caption{Performances of The Model}
  15.     \label{tab5-ModelExplain-1}
  16. \end{table}

最终的效果如下图所示:

LaTeX完成Scientific Papers的一些说明

长表格自动换页

有的时候, 我们会遇到表格过长, 一页装不下的问题, 这个时候就需要使用长表格的自动换页. 同时, 我们在自动换页的时候, 希望表头和表尾的横线可以在每一页都出现, 下面就看一个小例子, 可以实现上面的功能, 即长表格的自动换页和表头的自动重复. 代码如下:

  1. \documentclass{article}
  2. \usepackage{longtable}
  3. \begin{document}
  4. \begin{longtable}{|c|c|r|r|r|r|}
  5. \caption{caption}
  6. \label{table:label} \\ % add \\ command to tell LaTeX to start a new line
  7. % Appear table header at the first page as well
  8. \hline
  9. line1 & line2 & $t_1$ & $t_{12}$ & $t_2$ & $r$(\%)\\
  10. \hline
  11. \endfirsthead
  12. % Appear the table header at the top of every page
  13. \hline
  14. line1 & line2 & $t_1$ & $t_{12}$ & $t_2$ & $r$(\%)\\
  15. \hline
  16. \endhead
  17. % Appear \hline at the bottom of every page
  18. \hline
  19. \endfoot
  20. % data begins here
  21. 10 & 2 & 0:22:00 & 9:46:00 & 2:00:00 & 80.49 \\
  22. 204 & 205 & 2:01:00 & 2:57:00 & 1:11:00 & 47.97 \\
  23. % 这里复制粘贴更多的数据, 使其可以超出一页的范围
  24. \hline
  25. \end{longtable}
  26. \end{document}

效果如下图所示, 虽然有些不清楚, 不过总之是可以实现分页的.

LaTeX完成Scientific Papers的一些说明

表格种内容的对齐

参考资料: How can I left-justify a paragraph cell in a table?

我们需要使用array的宏包

  1. \usepackage{array}

接着可以使用raggedright, raggedleft, centering来完成左对齐, 右对齐和居中. 我们可以看一下下面的这个例子.

  1. \begin{table}
  2.      \begin{center}
  3.      \label{pntable}
  4.      \begin{tabular}{|p{2cm}<{\raggedright}|>{\centering}p{6.5cm}|p{3cm}<{\raggedleft}|}
  5.      \hline
  6.      \textbf{Integer} & \textbf{Partitions} & \textbf{Number of partitions} \\ \hline
  7.      1 & 1 & 1 \\ \hline
  8.      2 & 2, 1+1 & 2 \\ \hline
  9.      3 & 3, 2+1, 1+1+1 & 3 \\ \hline
  10.      \end{tabular}
  11.      \end{center}
  12.      \caption{All the partitions of $n \in \{1,\ldots,3\}$}
  13. \end{table}

最终的结果如下图所示:

LaTeX完成Scientific Papers的一些说明

引用subfigure

在书写的时候, 我们经常会出现使用子图的情况, 那么在引用的时候, 我们应该如何来进行书写呢, 下面就看一下一个简单的例子作为演示.

  1. \documentclass{article}
  2. \usepackage{subfigure}
  3. \usepackage{graphicx}
  4. \usepackage{caption,setspace}
  5. \begin{document}
  6. \begin{figure*}[htbp!]
  7.     \centering
  8.     \subfigure[Explanation for DoS]{
  9.         \includegraphics[width=4.16in]{DoSAttack.png} % 二分类模型的解释, DoS攻击的数据
  10.         \label{fig5-Binary-1:1}
  11.     }
  12.     \quad    %用 \quad 来换行
  13.     \subfigure[Explanation for Normal]{
  14.         \includegraphics[width=4.16in]{Normal.png} % 二分类模型的解释, Normal数据
  15.         \label{fig5-Binary-1:2}
  16.     }
  17.     \caption{Specific Data Explanation}
  18.     \label{fig5-Binary-1}
  19. \end{figure*}
  20. Fig.~\ref{fig5-Binary-1}
  21. Fig.~\ref{fig5-Binary-1:1}
  22. Fig.~\ref{fig5-Binary-1:2}
  23. \end{document}

最终的效果如下图所示, 我们可以对子图进行引用.

LaTeX完成Scientific Papers的一些说明

公式的书写

关于公式的书写,首先建议使用工具mathpix完成latex代码生成,工具链接将图像(数学公式)转换为LaTeX–Mathpix,进行粘贴即可。

注意公式书写需要package,amsmath. 下面看一个例子. 使用latex生成公式的时候是自动带上标号的,这个很是方便。

  1. \documentclass{article}
  2. \usepackage{amsmath}
  3. \begin{equation}
  4.     F \text { -Score }=\frac{2 * \text { Recall } * \text { Precision }}{\text { Recall }+\text { Precision }}
  5. \end{equation}

最终效果如下所示:

LaTeX完成Scientific Papers的一些说明

一些常用的数学公式

这里介绍一些常用的latex的数学公式, 可以方便查找和进行使用. 可以参考链接: 常用数学符号的 LaTeX 表示方法

分式

  1. \frac{N}{M}
LaTeX完成Scientific Papers的一些说明

连加

  1. \sum_{i \in (1,100)}^{100}
LaTeX完成Scientific Papers的一些说明

上划线与下划线

其中\qquad表示空格

  1. \overline{\phi_{i}(f, x)} \qquad \underline{\phi_{i}(f, x)}
LaTeX完成Scientific Papers的一些说明

m行n列图片插入(子图插入)

这一篇介绍一下关于LaTeX中子图的插入, 即我们希望插入n行m列的图片。主要参考链接如下: LaTeX中m行n列图片排版方法

我们使用subfigure包来完成排版。下面看一个简单的例子。下面会产生一个2*2的图片。

  1. \usepackage{subfigure}
  2. \begin{figure}[htbp!]
  3.     \centering
  4.     \subfigure[dst\_host\_serror\_rate Distribution]{
  5.         \includegraphics[width=2in]{dataDistribution1.png}
  6.     }
  7.     \subfigure[srv\_serror\_rate Distribution]{
  8.     \includegraphics[width=2in]{dataDistribution2.png}
  9.     }
  10.     \quad    %用 \quad 来换行
  11.     \subfigure[wrong\_fragment Distribution]{
  12.         \includegraphics[width=2in]{dataDistribution3.png}
  13.     }
  14.     \subfigure[wrong\_fragment Distribution]{
  15.         \includegraphics[width=2in]{dataDistribution3.png}
  16.     }
  17.     \caption{The disturbition of Data}
  18.     \label{fig5-Distribution-1}
  19. \end{figure}

最终的效果如下所示:

LaTeX完成Scientific Papers的一些说明

交叉引用

这里介绍关于LaTeX中交叉引用的实现. 主要参考链接(这一份参考资料很不错): 在 LaTeX 中使用交叉引用.

这里会包含引用章节, 引用图标, 引用数学公式等.

引用章节

下面简单说明一下引用章节的内容, 我们需要在section后面加上label, 来使得可以被引用.

  1. \documentclass{article}
  2. \usepackage[utf8]{inputenc}
  3. \usepackage{ctex} % 对于中文的显示
  4. \usepackage{booktabs}
  5. \begin{document}
  6. % 引用章节
  7. \section{123}
  8. \subsection{abc} \label{abc}
  9. \subsection{def}
  10. 这里引用subsection\{abc\}的内容, \ref{abc}.
  11. \end{document}

我们看一下最终的效果.

LaTeX完成Scientific Papers的一些说明

论文的引用

关于论文的引用, 在LaTeX指南信息中也做了简单的介绍, 在这里再做以下详细的说明.

我们需要将参考文献写在ref.bib文件中, 同时上面的bibliographystyle是可以有不同的选项的.

  1. % 参考文献
  2. \bibliographystyle{unsrt}
  3. \bibliography{ref} % 存文字的名字

下面简单介绍一下bibliographystyle的一些选项和不同的作用.

  • plain,按字母的顺序排列,比较次序为作者、年度和标题
  • unsrt,样式同plain,只是按照引用的先后排序
  • alpha,用作者名首字母+年份后两位作标号,以字母顺序排序
  • abbrv,类似plain,将月份全拼改为缩写,更显紧凑:
  • ieeetr,国际电气电子工程师协会期刊样式:
  • acm,美国计算机学会期刊样式:
  • siam,美国工业和应用数学学会期刊样式:
  • apalike,美国心理学学会期刊样式:

也就是我们要想使用按照引用的出现顺序进行标号, 我们就要使用unsrt的格式.

引用多处文献

参考资料: latex中同一处引用多篇文献

正常情况我们编译以后的正文引用处显示的是[1][2][3], 但是我们希望文献显示为[1,2,3], 可以使用下面的方法进行实现.

  1. \usepackage{cite}
  2. \cite{bibtex1,bibtex2,bibtex3}

引用公式

这里我们来说一下公式的引用, 其实原理都是差不多的, 只需要定义一下label即可. 我们可以简单来看一下例子.

  1. \begin{equation} \label{part3_eq2}
  2.     x^{\prime}
  3. \end{equation}
  4. % 上面定义了Label, 下面就可以引用
  5. This is \ref{part3_eq2}.

最终的结果如下图所示:

LaTeX完成Scientific Papers的一些说明

LaTeX手动换行

参考资料1: Allow line break, but without inserting a dash

参考资料2: Underscore makes text go past end of line into margins

我们使用\allowbreak或是\linebreak来进行分行, 同时使用这个时不会有连字符. 下面简单看两个例子.

  1. long\allowbreak word
  2. long\linebreak word

同时, 在latex中, 若出现了_的时候, 就不能自动换行. 我们可以使用下面的方式进行换行.

  1. \renewcommand\_{\textunderscore\allowbreak} % 使得_可以换行

 

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: