有一些同学写学术论文还在用Word。不可否认的是word非常容易上手,而且所写即所得,是一个非常不错的文本编辑器。而且,交给导师修改论文会更加方便。但是,如果论文较长,格式又非常纷繁复杂,尤其是正规出版物,那么一般推荐使用LaTex作为编辑工具。
Word前期上手容易,但是后期高级操作就比较困难,相对的,LaTex前期上手不容易,但是后期高级操作比较容易。LaTex的本质目的就是让用户无需考虑格式问题,只需要专注于撰写文章内容本身即可,减少了不必要的操作。最近网上博客流行的MarkDown编辑器就是LaTex的简化版,大家有兴趣的可以了解一下。
在学术论文撰写过程中,LaTex作为标准化论文的工具,一直被广为流传,更是传言,不会LaTex的,就写不出好文章(这话有点夸大了)。为此,我们还是需要学习如何使用LaTex。
本章,我们以简单的LaTex使用方式[Overleaf],以ACL 会议论文为例,进行LaTex使用方法介绍和说明。
首先,找到Overleaf的网站后,可以看到有很多会议和期刊的LaTex文件夹已经为我们准备好了,因此我们不再需要费尽心思去寻找模板了,这使得我们可以只关注与论文的内容,而不用去管论文的格式了。
当我们打开ACL 2019的论文模板后,我们的界面如图所示,左边是项目的目录,中间是我们的源文件,右边是PDF预览版。这里我们一一介绍,首先了解LaTex的组成结构,即左边的部分,左边部分包含整个LaTex项目的文件组成。
第一个以bib结尾的文件为包含参考文献的文件,这里列举了我们所有论文中使用的参考文献,其格式均为bib的格式,这种格式可以使用谷歌学术中引用里使用BibTex导出即可。
在正文中,只需要在适当的位置写入以下语句即可,这里需要提一点的是,不同的论文对其参考文献的格式要求不同,一般会给出一个bst后缀的文件,这个文件是规定了参考文献的格式与排版,一般不需要我们手动修改,如果需要修改的话,我们后期会出进阶教程。
\bibliography{acl2019} %bib文件名
\bibliographystyle{acl_natbib} %参考文献的格式的文件名
在本例中,第二个是PDF文件,这个不用说了,就是我们的输出文件,第三个文件为sty文件,这个文件表明的是LaTex文件中所使用的各种样式,这就像是在网页中的css文件一样。一般的,我们多半使用sty文件,也有使用cls文件,这个我们再以后的教程中详细介绍,本文主要简单介绍一下其内容,使得更容易上手。一般来说,.cls 和 .sty 文件都是增加 LaTeX 功能的补足文件。它们在我们排版文章时对应的使用 \documentclass{} 和 \usepackage{} 加载。
在主文件中,只需要在开头引入相关的样式文件即可,如下代码所示:
\documentclass[11pt,a4paper]{article} %这是引入一个cls文件
\usepackage[hyperref]{acl2019} %这是引入一个sty文件
\usepackage{times}
\usepackage{latexsym}
第四个文件就是主文件,也就是编写我们内容的文件。我们可以看到,它其实是一个增强版的标记语言文件,既包含了格式化样式,也包含部分逻辑语句,就像是带了脚本的网页一样。
的确如此,在该文件中,是我们所写的主要内容,除了正常的内容表达外,他有一些语法如下所示:
1. 关键字语法
注释的符号为%关键字以\开头关键字分为单标签和双标签两种单标签格式为\关键字{目标内容},如\title{Test for ACL 2019},其标题名为"Test for ACL 2019",特别的如使得字体缩小,则为{\small目标文字}。双标签格式开始为\begin{对象名},结束为\end{对象名},如\begin{abstract}和\end{abstract},该标签对中间的内容即为摘要。还有一些特殊的关键字,如\newcommand表示自定义命令,有点像宏定义一样;\maketitle则是划开标题和正文等,这些我们都在以后的教程中详细介绍。还有一些其他语法。2. 文章结构
好了,现在进入正文阶段,在正文中,最重要的是篇章的结构,首先看到的是文章层次,其定义方式如下,重启一段也可以直接空一行即可:
\part{part标题}\section{section标题}\subsection{subsection标题}\subsubsection{subsubsection标题}\paragraph{paragraph标题}\subparagraph{subparagraph标题}
3. 常用命令
接下来是几个常用的命令.
斜体\emph{International Joint Conference on Artificial Intelligence}加粗\textbf{The proceedings are designed for printing on A4paper.}为加粗交叉引用~\ref{ssec:first}为引用当前文件的位置,其对应位置上的代码为\label{ssec:first},需紧跟section或者subsection。不需转义\verb|\aclfinalcopy|表示使用原文\aclfinalcopy,不需要转义顶格开启新段落\noindent4. 列表
有序列表\begin{enumerate}[(1)] \item 有编号的列表 \item ... \end{enumerate}
无序列表\begin{itemize}\item Left and right margins: 2.5 cm\item Top margin: 2.5 cm\item Bottom margin: 2.5 cm\item Column width: 7.7 cm\item Column height: 24.7 cm\item Gap between columns: 0.6 cm\end{itemize}
5. 表格
普通表格\begin{table}[t!]\begin{center} %表格整体居中\begin{tabular}{|l|rl|} %各列对齐方式\hline %直线\textbf{Type of Text} & \textbf{Font Size} & \textbf{Style} \\ %设置字体\hlinepaper title & 15 pt & bold \\ %各列以&分割author names & 12 pt & bold \\author affiliation & 12 pt & \\the word ``Abstract'' & 12 pt & bold \\section titles & 12 pt & bold \\subsection titles & 11 pt & bold \\document text & 11 pt &\\captions & 10 pt & \\abstract text & 10 pt & \\bibliography & 10 pt & \\footnotes & 9 pt & \\\hline\end{tabular}\end{center}\caption{\label{font-table} Font guide. } %文章标题\end{table}
双列表格\begin{table}\centering\small\begin{tabular}{cc} %一个c表示一列\begin{tabular}{|l|l|} %|表示是否需要竖线\hline\textbf{Command} & \textbf{Output}\\\hline\verb|{\"a}| & {\"a} \\\verb|{\^e}| & {\^e} \\\verb|{\`i}| & {\`i} \\ \verb|{\.I}| & {\.I} \\ \verb|{\o}| & {\o} \\\verb|{\'u}| & {\'u} \\ \verb|{\aa}| & {\aa} \\\hline\end{tabular} & \begin{tabular}{|l|l|} %第二个表格\hline\textbf{Command} & \textbf{Output}\\\hline\verb|{\c c}| & {\c c} \\ \verb|{\u g}| & {\u g} \\ \verb|{\l}| & {\l} \\ \verb|{\~n}| & {\~n} \\ \verb|{\H o}| & {\H o} \\ \verb|{\v r}| & {\v r} \\ \verb|{\ss}| & {\ss} \\\hline\end{tabular}\end{tabular}\caption{Example commands for accented characters, to be used in, \emph{e.g.}, \BibTeX\ names.}\label{tab:accents}\end{table}
跨列表格\begin{table*}[t!] %这里的星表示当为2列的文章时,此表格为1列表格。\centering\begin{tabular}{lll} output & natbib & previous ACL style files\\ \hline \citep{Gusfield:97} & \verb|\citep| & \verb|\cite| \\ \citet{Gusfield:97} & \verb|\citet| & \verb|\newcite| \\ \citeyearpar{Gusfield:97} & \verb|\citeyearpar| & \verb|\shortcite| \\\end{tabular}\caption{Citation commands supported by the style file. The citation style is based on the natbib package and supports all natbib citation commands. It also supports commands defined in previous ACL style files for compatibility. }\end{table*}
这里t表示表格的位置,具体的有以下四种选项:
h Here - at the position in the text where the table environment appears.t Top - at the top of a text page.b Bottom - at the bottom of a text page.p Page of floats - on a separate float page, which is a page containing no text, only floats.6. 引用与脚注
从上表中,可以看到5种引用格式,分别是:
\citep{Gusfield:97} %(人名,时间)\citet{Gusfield:97} %人名(时间)\citeyearpar{Gusfield:97} %(时间)~\cite{Gusfield:97} %(人名,时间)~\cite{Gusfield:97,Aho:72} %(人名,时间;人名,时间)
这里引用参考文献时,其别名只需要在参考文献的第一个部分加上即可。
引用表格或图的形式(see Table~\ref{font-table})脚注\footnote{This is how a footnote should appear.}至此,我们把整个ACL2019的模板自上而下梳理了一番,从而可以更好地使用这个模板了。至于更加深层的教程,我们会后续解答。
1. 公式
公式就是LaTex公式,与Makedown的语法保持一致.有序公式如下所示,无序公式使用$$符号或者\begin{equation*}即可。
\begin{equation}1+2+3+\dots+(n-1)+n = \frac{n(n+1)}{2}\end{equation}
2. 插入图表
\begin{figure}[h]\begin{center}\includegraphics[scale=0.8]{图片名字}\end{center}\caption{外部图片标题}\label{fig:test_demo}\end{figure}
在此之前需要引入包\usepackage{graphics}
只需要按照上述步骤,我们就可以构建完整的论文了。
本人技术博客同步更新,欢迎关注: 刘炫320的博客_CSDN博客-算法编程习题解答(java版),机器学习习题集,leetcode领域博主
LaTeX 是一种基于 TeX 的排版系统,已经成为大多数科技领域(STEM)专业排版的标准。事实上,很多数学、物理和计算机科学相关的期刊和出版社,仅仅接收 LaTeX 排版文章。
和所见即所得( What You See Is What You Get:WYSIWYG)的 word 排版系统不同,LaTeX 需要编写代码,然后编译生成 PDF 文件。虽然学起来有一定的难度,但一旦掌握了 LaTeX,文章排版将会更加高效和灵活。
TeX 开发者高德纳(上右),LaTeX 开发者莱斯利·兰伯特(上左)
关于 LaTeX 的介绍,网上已经有很多,但是我发现即便对于已经熟练掌握了 LaTeX 的写作者来说,也会忽略掉一些 LaTeX 的强大的功能。
本文主要聊聊一些能使得 LaTeX 排版更加有效和简洁的设计模式,以此有效避免错误的产生。这些模式只是建议,不一定要非得严格遵守。有时候在一个论文模板中合适的模式在另外一个模板中可能不合适,比如在博士论文模板中定义的某些符号的宏在另外的论文模板(如论文摘要)中可能行不通。我的这些建议都源于我在机器学习和计算机科学的论文准备过程中所积累起来的经验。具体应用场景,请遵循你所在学科的排版规范。
LaTeX 在日臻完善,有很多方便作者的自定义功能,因此可以把排版 LaTeX 文稿和软件工程相类比。这个类比不是非常完美:一个软件往往需要数十年的维护,但是我们的论文很快就可以发表了。但是无论如何,两者在设计模式上是类似的。
不要重复造轮子: 为一些重复出现的模块,比如数学符号等操作,定义宏。你可能在刚开始写论文的时候,用 代表概率。但是有一天你希望让概率的符号更加清晰,就用查找和替换的方式把 换掉。这在实际操作中会产生很多错误,从而导致符号表示上的不一致。事实上我们如果在头文件中定义 \newcommand{\probability}{P},就可以很容易做到在正文中对 的替换。我们要时刻保持符号的一致,并按照自己的意愿随时更换符号。
另外可能会重复代码还有这样的场景,我们有时候会在正文陈述定理内容,但是其证明放在附录中,优雅的做法是应用上面方法来调用正文中的定理。同样,如果你有在图题中重复的模板(例如,相同的图例),考虑定义一个宏来整合它。
关注编译过程中的错误和警告: LaTeX 编译器会对各种常见的问题发出警告,如引用未定义的参考文献等等。我建议趁热打铁,立即修复这些警告。检查这些问题,如果确实如此,尽快移除该引用。
编译中出现的错误应立即更正,文档前面的错误会导致剩余部分不能正常编译,从而产生错误的或者不可预知的编译结果。所以错误一旦出现就要立即修正,避免后续反复调试,从而可以专心撰写论文。
不过一些优秀的编译器,比如基于云的协作式 LaTeX 编辑器,会执行模糊编译,这样即便有错误还是可以完成编译。
自动检查: 执行自动检查可以发现一些常见错误。此处不必局限于代码,可以利用一些外部的开发工具进行自动检查。比如拼写检查,Matt Might 就写了一些 shell 脚本用来检查语态(被动语态)和一些模棱两可的词汇用法方面的问题。
掌握好至少一种 IDE: 掌握好一款适用于自己的 LaTeX 集成开发环境。由于可以实时同步和注释,Overleaf 非常适合协同编辑,我很喜欢用它。但是它缺少某些功能,并且比本地编译器要慢一些,因此我一般会在 IntelliJ 中安装 IDEA 插件。当然还有很多其他优秀的 IDE,我们需要做的是选择至少一个适合自己的并掌握。
▲ Overleaf是基于云的协作式 LaTeX 编辑器
代码管理: 毫无疑问,我们一般应用诸如 Git 的版本控制系统来管理代码,并适时推送更新。如果你的文件损坏或者被删除,你就会意识到代码管理的重要性。因为可以轻松恢复到早期的版本,我可以对论文进行大量的编辑。当同时需要一个论文的多个版本时,比如需要研讨会和学术会议两个版本,我们可以分别编辑多个部分,然后根据自己需要进行合并。这里还有提下 Overleaf,你会对它内置的版本控制系统比较满意。
LaTeX 有非常卓越的数学公式排版功能,因此在数学及其相关学科中应用非常广泛。
留意数学公式与标点: 数学公式和文本要融为一体,因此需要适时断句。如果一个句子以公式结尾,公式后面必须要有句号。通常情况下,行内公式($…$)可以随时断句。不过公式环境($…$ 或者 \begin{equation}…\end{equation})也要注意加标点。关于这点,未来还会有单独文章做介绍。
▲ mathpix
这里要介绍两个好用的工具:数学公式识别 mathpix Snip 和 识别手写出符号 Detexify。
前者可以对截图中的数学公式自动转化为 LaTeX 命令,甚至可以进行函数图形的绘制。
▲ Detexify
而后者是,如一个符号你还不知道它对应的 LaTeX 命令,可以在 Detexify 中画个草图,它就会进行搜索给出一系列可能对应代码选项。
LaTeX 鼓励作者制定文章的结构,而把排版细节留给 LaTeX。这样操作一般都没有问题,但有时候会使得排版结果出错。
语义问题: 如果想要强调一段文字,请用 \emph{},而不要用 \textit{}。虽然他们都可以输出斜体,但是 \emph{} 会自动在斜体和罗马体之间切换,如 \emph{emphasis \emph{nested} works} 生成 “emphasis nested works ”,但是 textit{italics \textit{is} idempotent} 则生成 “italics is idempotent” 。\emph{} 这一功能定理这类环境中会很有用,可以让斜体单元的一部分是罗马体。
**在缩写的句点后面加空格:**LaTeX 会在句子后面自动加空格,以增加可读性。但如果碰到缩写中的句点,比如在 e.g. this 中, 会自动在 e.g. 后面加个空格。为了避免这一问题,可以在后面加一个\,即 e.g.\ this。
有时候 LaTeX 会错误地以为一些大写字母后面的句点不是一个句子的结尾,此时需要插入一个\@来结束整个句子,比如 LaTeX was invented in the US\@.
LaTeX 拥有非常优秀的图片处理功能,包括图像的浮动环境,插入外部图片的包,或者直接在文稿中生成矢量图。
采用矢量图: 应该尽可能使用矢量图图形,比如 SVG 或 PDF 文件,而避免使用位图,如 PNG 或 JPG 格式。
矢量图能够可以在不丢失保真度的情况下以高分辨率展示图片,从而保证读者们可以任意缩放图片,并高质量地打印图片。同时在保存文件时矢量图更省空间,因此我们一般把平面图形和示意图存成矢量图。位图文件适合拍照或者屏幕截图。
匹配文章格式: 虽然可以在 matplotlib 中生成外部图片,但是图片应该和文章格式相符,比如应该和文章其他部分的内容采用相同的字体和字号,应该保存成文章中所需要的尺寸。LaTeX 可以对图片进行放缩从而可以保证图片的尺寸与文字保持一致。很多和 matplotlib 类似的包可以调整图片的尺寸,使得当图片尺寸大的时候,可以增加一些坐标系标签将图片尺寸优化。
图片自成一体: 读者们很可能会跳过文章的细节直接跳到图的部分,也可能会忘掉前面的相关介绍内容,甚至有些读者只看图的标题,并依此来寻找文章的核心内容。因此最好做到每个图自成一体,包含清晰的坐标轴、图例,并在图的标题中包含理解图的内容所需要的额外的信息。
LaTeX 最初是为学术论文写作而生,参考文献及其引用非常方便,只是还有一些细节应该特别关注。
尽量采用 : 作为 的升级, 是 LaTeX 中最新的文献目录管理工具。 中加入了很多新的功能,比如新的条目 @online,以及一些语种的本地化。但如果你向某个杂志或者会议投稿,则必须使用规定的 LaTeX 模板,以及规定的文献管理工具。
使用正确的引用命令: 要区分带方括号的引用和文内引用。如果是带方括号的引用,用命令 \parencite (BibLaTeX) 或者 \citep (BibTeX); 如果是文内引用,用 \textcite (BibLaTeX) 或者 \citet (BibTeX)。要尽量避免嵌套括号,比如 \citep[see][]{gleave2020} 会生成 “(see Gleave et al, 2020)”,而 (see~\citep{gleave2020}) 则生成 “(see (Gleave et al, 2020))”。我们尽量不要用后者。
不可断行空格的使用: 引用的内容应该和引用它的句子或者词语处于同一行,因此要用到不可断行空格 ~,以避免孤立被引用的内容,比如 Knuth developed LaTeX~\citep{latex}。
文献目录管理: 无论论文结果对错,如果所列参考文献比较草率,读者或者论文评阅人可能会认为整个论文都是如此。为保证所有文献条目的一致性,应注意参考文献题目的大小写。如果参考文献题目中包含首字母缩写时,比如 {DQN} 就必须用{ }括起来。选择正确的条目类型也很重要,比如 @inproceedings 代表会议论文,@article 表示期刊论文,@misc 表示预印本。最后,也是最基本的问题,要保证文献目录的一致性。作者名字和期刊名称要保持一致,即要么全部简写,要么都写全名,尤其要注意人名中的中间名。一般在文献目录中要么全加上文献的 DOI,要么全部不加。
通过下面一些链接可以获得更多关于学术写作的一般建议。
《How to Write a Scientific Abstract in Six Easy Steps》,Steve Easterbrook. 《Basic Submission Checklist and one Approach to Writing》,Amy Tabb. 《Responding to Peer Review》,Matt Might.本文作者:[遇见数学翻译小组核心成员] jiahl,这里小编还推荐人邮图灵今年的一本新书《简单高效LaTeX》,既可以作为一本简明教程,亦可作为日常桌面上的参阅手册,感兴趣的朋友可以留意下。
#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } 简单高效LaTeX(图灵出品) ¥47 购买相关问答
显然,经过历史检验的Latex原生字体是最好看的。如果仅仅从个人偏好上看,衬线字体是Palatino最耐看,非衬线字体是Helvetica最耐看。LaTeX是一款非常漂亮...
用记事本打开你的config.pro文件,增加参数text_hight_factor40,这个数字越大字体越小,根据自己使用的屏幕分辩率调整吧用记事本打开你的config.pro文件,增加...
这极可能是由于你在文档中使用了斜体命令,却没有用花括号对其范围进行限制。你可以把文中所有斜体部分的内容改成如下的形式:{\itThisisthetext.}其中\it...
在LaTeX中,字体大小的基本尺寸设置为10pt,11pt和12pt,其中默认为10pt。首先,你需要通过`\documentclass[12pt]{article}`来设置整体的字号大小。随后,你可...
我是需要写论文的时候开始使用LaTeX的,可以分享一下自己的经验。如果想快速学会上手,可以下载一个模版,然后对把里面的例子重复一遍,然后基本就可以把大概的...
LaTeX是一种排版系统,用于创建高质量的科技文档,包括论文、报告、演示文稿等。以下是LaTeX的使用方法:1.LaTex文件的扩展名是.tex,所以首先创建一个以.tex...
使用代码调节行间距:latex中的行距和字号是紧密相连的。水平间距设置:\hspace{1em}水平产生一个字符的间距垂直间距设置:\vspace{1cm}垂直方向上产生1cm...
公式字体通常是一种特殊的字体,其主要特点是包含数学符号和符号。它们通常用于数学、物理学和化学等领域的文本中,以使数学公式和方程式更容易阅读和理解。常...
1.水平间距。\quad插入相当于当前字体大小的空白\qquad是\quad的两倍\空白比较小\hfill根据排版需要插入空白,撑满整行\hspace{宽度大小}和\hspace*{...
跨平台+云端LaTeX再各个平台都有免费发行版,tex文档在各个平台编译出来的pdf效果一致,而word基本只支持windows,用其它软件打开格式也很混...跨平台+云端...