楼主: LIXUANHANK
9174 6

学术写作利器LaTeX入门 [推广有奖]

贵宾

大师

53%

还不是VIP/贵宾

-

TA的文库  其他...

Python小技巧汇总

威望
2
论坛币
103352 个
通用积分
9763.4134
学术水平
793 点
热心指数
974 点
信用等级
706 点
经验
135654 点
帖子
3333
精华
5
在线时间
19734 小时
注册时间
2014-1-1
最后登录
2024-1-16

初级热心勋章 初级学术勋章 初级信用勋章 中级热心勋章 中级学术勋章 高级学术勋章 高级热心勋章 中级信用勋章

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
三江小渡@豆瓣

LaTeX是专为学术写作开发的语言和编纂程序,拥有强大的package资源,这意味着用LaTeX写作可以避免Word带来的令人头疼的排版问题,而且世界上有很多人已经写好了针对各种写作格式的coding package,我们只需要套用这些package就行了。很多主流学术期刊都有自己的LaTeX模板,所以要把同一篇文章投给不同期刊的话,只要套用相应的package就可以了,比起在word里面一点点调整页边距行距引用格式之类的细节,LaTeX的效率显然要高得多。


LaTeX——比Word更适合学术写作的编纂语言。


Credit:讲座是敝系的几个技术宅办的,作者只负责记录和整理。后面的更新是个人心得。写这篇日志的初衷是小圈子分享和个人心得记录,适合完全不了解tex的入门者阅读,我的水平有限所以肯定有所疏漏,欢迎提出建议。具体使用什么写作工具,还要看写作内容和个人习惯,毕竟优化工作效率才是最终目标 :) 有兴趣的可以翻翻推荐语,有不少高人给出了相关资源和意见。


第一眼看上去,LaTex的语法也许有些吓人,但是只要你熟悉了基本的编纂模式,就会发现它的强大之处。


第一部分:新手资源

线上编纂


LaTeX可以进行线上编纂,好处是能够随时自动保存工作进度和数据,而且可以多人合作编写文档。


常用的LaTex online compiler基本就是sharelatex.com和writelatex.com这两个,需要注册,基本账户免费。


本地编纂


如果希望用LaTeX Compiler在本地电脑工作,则需要以下软件:


For Windows:


MikTex: http://miktex.org/download和TexMaker: http://www.xm1math.net/texmaker/download.html


For Mac:


MacTeX: http://www.tug.org/mactex/index.html和TexMaker(地址同Windows)


之所以都需要两个软件是因为它们各自的作用不同:MikTex是package管理软件,而TexMaker是用这些package和你自己的文字来生成最终PDF文件的软件。package的作用会在下面专门解释。


下面以sharelatex.com的界面为例子演示LaTeX的基本编纂规则和package的作用。


第二部分:文档编写基础

基本界面


打开sharelatex.com注册账号之后,点击右上角的New Project,在下拉菜单中选择example project,随便起个名字,出现这个Metro风格的界面。


ShareLaTeX基本界面


从左到右的三竖栏分别是文件相关信息、编码栏和文件生成栏,暂时叫它们ABC栏,其中B栏是进行文档编写的主要工作区。B栏中的改动在点击C栏的Recompile之后才能看到生成文件的相应改动。


B栏中蓝色的字符是function,function后面{}的里面是argument。LaTeX的function使用“”符号表示开头,“%”表示comment out即不执行此行代码。有编程知识的同学都知道这些语句的意义是把特定的argument插入到function表达式中,LaTeX也不例外。


基本function解释


documentclass{article}的意思是这篇文档的类型是学术文章,除此之外也有book,booklet等其他出版物类型,这一句限定了排版能够使用的格式,比如说如果类型是article,那么排版就可以用APA/Chicago/MLA等版式,而不是专用于booklet的一些版式;


userpackage这一行不用改动,只是定义文档的编码方式;


title是整个文档的标题,会自动居中,可以试着把例子中的42改成其他标题,再点击Recompile,可以看到生成了带新标题的文件。


再往下,author和date是文档的作者和日期信息,如果想让date自动显示今天的日期,就把这一行改为date{today}。


下面两行usepackage规定了文档使用的文字排版是natbib,图表排版是graphicx。natbib在理科写作中比较常用,如果要换成文科生常用格式比如APA的话,把上面一行改成:usepackage{apacite}。


这里就要讲到package的作用了。package类似于一个插件,能够把各种事先设定好的标准排版方式、图表排列方式、公式生成方式等等直接插入文档中,免去了手动调整这些参数的麻烦。很多常用的package都有高人写好的代码,我们只要拿过来用就行了,比用word调整页边距、页码等等要方便得多。apacite就算是一个广泛使用的package,我们学校也有专门的机构负责编写论文排版的package,我们只要在usepackage{}中把这些package作为argument插入{}就可以了。


如果需要的话,我们可以在下一行加一个function:tableofcontents,然后点击recompile,可以看到latex会自动在标题后面插入目录,而且目录内容会根据后面的正文小标题改变。还可以在tableofcontents后面加上另一个function:pagebreak,这样文档的正文就会另起一页。pagebreak类似于word里面的分页符,在任何需要分页的地方都可以使用。


begin{document}是正文正式的开始标志,相应的结束标志end{document}则在文档最后。end{document}后面的任何内容都不会在compile里面显示出来,所以如果我们需要只把编码的一部分生成文档,只要在这部分的结束处输入end{document}就行了。begin和end的命令也适用于标记文中插入的图表的起始和结束。


很多时候我们还需要在文章前面加上abstract,方法也很简单,只要像下面这样进行编码:


begin{document}

maketitle

begin{abstract}

(这里放置abstract的文字)

end{abstract}


就可以了。


注意maketitle这一行一定要在begin{document}的下面,否则LaTeX会判定为语法错误。maketitle命令的作用是把标题信息(也就是begin{document}之前的title,author,date等)显示出来,如果comment out或者删去maketitle这一行,这些标题信息将不会显示在C栏的PDF中。当然,如果你正好不需要显示标题,就可以删去这个命令。


section{introduction}是对文档部分的划分,括号里是这部分的名称,latex会生成具体的部分数字编号。子分层的命令是subsection。一般来说latex不允许过多子分层,比如说在usepackage{apacite}规则中,只允许两个子分层也就是subsubsection{}。


了解了以上基础知识之后,就可以进行最基本的LaTeX文档编写了。下面几部分要讲的是如何插入引用和生成参考书目。


第三部分:引用

Google Scholar和LaTeX的协作


打开Google Scholar首页,点击右上角设置,将“参考书目管理软件”设置为“显示导入BibTex的链接”。然后随便搜索一篇文章,点击搜索结果下面的“导入BibTex”,可以看到几行代码,这就是LaTeX能够识别的bibliography。


设置导入BibTeX之后的Google Scholar条目


点击“导入BibTex”之后的代码


把这几行代码复制粘贴到sharelatex界面A栏的reference.bib中:


将代码复制到reference.bib里面


但是如果这时候点recompile,会看到生成的reference里并没有新加入的这篇文章,因为我们在正文中还没有引用它。


于是接下来讲一下如何在正文中插入引用。


在正文中插入引用


复制刚才粘贴的代码的第一行中划红线的内容(也就是BibTeX自动生成的引用文章代码),然后在正文中需要插入引用的部分插入citeA{文章代码},这样就能在正文中引用了。


正文中引用,注意只复制文章代码


这时候再点recompile,才能看到reference中出现了新加的这篇文章。注意:citeA是APA格式的引用function,示例文档代码里面的citep是另一种排版格式的引用function。


在reference中,latex会自动调整文章标题的大小写为只大写首单词的开头字母。如果需要保留文章原标题的大小写格式,就在reference.bib里面相应文章标题title的两边再加上一个括号{},比如title={{A bird’s-eye view of learner CORPUS research}},就可以保留原标题的大小写了。


第四部分:LaTeX维基百科全书

上面也提到了LaTeX的function中有很多不同的package供选择,那么到哪里去找不同类型的package呢?比如说我这篇文章用了apacite,那如果我下一篇文章要用MLA格式,该用什么package?


LaTeX的维基页面http://en.wikibooks.org/wiki/LaTeX 就提供了这样一个百科全书式的资源,也有PDF版可以下载。


页面中详细列出了各部分function所能够使用的package,只要点开目录链接去找到package名称就行了。对于本地编纂软件来说,则需要下载package之后用MikTex来进行管理。


自从写了LaTeX教程笔记之后,我试着用ShareLatex代替word完成了三个written assignment和两个presentation,写作体验和效果都还不错。所以像我一样的文科僧大可不必对写代码这件事感到头疼,比起HTML/CSS,LaTeX还算是对新手比较友好的,毕竟很多常用的格式和排版都有写好的LaTeX package。


下面就以我自己已经完成的一个assignment和一个presentation作为例子来讲LaTeX的具体应用和注意事项。


主要涉及的document type有article和beamer两种,主要的功能有1)用qtree画树形结构,2)用tabular做表格,3)调整行间距/字体字号/页边距等,4)beamer(幻灯片)的一些简单排版。


实例一:用Beamer做presentation

LaTeX也可以做幻灯片,而且直接保存为PDF格式,不用担心PPTX在不同的电脑上渲染效果不同了。网上有一个流传较广的Beamer Quick Start,我的slide基本上也是照着这个教程做出来的,下文简称为BQS。


PREAMBLE

首先在preamble(就是begin{document}前面的那些部分)中定义:


documentclass[xcolor=dvipsnames]{beamer}


其中方括号[]里的指令是要求beamer使用xcolor来生成dvipsnames指定的色彩效果。LaTeX的很多指令都是这个[]{}的格式,大多数遵循【[ ]定义具体参数 - { }定义上层argument】的规则,所以这一行的意思是“建立一个颜色可由dvip指定的beamer文件”。(beamer自带的default)


然后下面这几行:


usecolortheme[named=Maroon]{structure}

usetheme{Boadilla}

usepackage{helvet}


usecolortheme就是来指定beamer的颜色是Maroon,{structure}的意义我也不清楚,大概是只在heading和title这些构建structure的文字上菜使用自定义颜色的意思。所以可以看到,生成的slide中只有标题和页脚等部分才是红色的。


usetheme是指定beamer的主题,类似PPT中的设计模板。BQS中给出了好几个常用的theme。需要注意的是有一些不常用的theme是不会直接被sharelatex识别的,必须和开发者设计的其他的指令配合使用。不过类似Boadilla,Warsaw,Singapore和BQS里面给的这些theme都能被sharelatex识别,而且足够应付一般的presentation了。


usepackage{helvet}用来指定beamer使用的字体。beamer的默认字体是略带圆角的某个字体,如果不喜欢的话就在preamble中另外设置,几个比较常用的helvet (Helvetica),times (Times New Roman),bookman (Bookman Old Style),serif等等都是不错的选择。字体对应的名称见:http://www.uncg.edu/cmp/reu/pres ... amer%20Tutorial.pdf 中的第48页。



原帖地址:http://mp.weixin.qq.com/s?__biz= ... 097ea052bc8fc673#rd


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:LaTeX Late atex LAT ATE package 文章 Word 程序 而且

已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
oliyiyi + 12 + 12 + 1 + 1 + 1 精彩帖子
crystal8832 + 24 + 2 + 2 精彩帖子
平军 + 60 + 20 + 3 + 3 + 3 精彩帖子

总评分: 经验 + 72  论坛币 + 56  学术水平 + 6  热心指数 + 6  信用等级 + 4   查看全部评分

听高山流水,谈经世济民。
沙发
LIXUANHANK 学生认证  发表于 2014-10-30 19:03:00 |只看作者 |坛友微信交流群
标题和页眉设置


title[Short title of the presentation]{Full title of the presentation}

标题:方括号是缩写,会显示在每一张slide的页脚;大括号里是完整的标题。
subtitle{subtitle here}
副标题。
author[John Smith]{John Smith}
演讲者姓名。方括号里的名字会显示在页脚中。
institute[XX University]{M.A. in XXX
XXX University[1ex]
texttt{example@XXX.edu}}
演讲者的affiliation。方括号还是页脚内容。大括号中的用来分行,[1ex]用来减小email的字号。
date[March 2013]{today}
演讲日期。估计都已经摸着规律了,beamer中title这几行,方括号里都是页脚的内容。

插入新幻灯片


begin{document}之后就是幻灯片正文了。每一张幻灯片的起始和结束用begin{frame}和end{frame}来标示。这两个tag之间的代码就是这张幻灯片上的内容。begin{frame}{slide title}则可以把title直接插入页眉,更符合实际需要;但是相应的end{frame}后面不需要加上{slide title}。

插入Bulletin point


begin{itemize}
item (空一格后输入每个point的内容)
item (同上)
item
...
end{itemize}

插入数字列表


begin{enumerate}
item
item
item
...
end{enumerate}

学过HTML的同学可以把itemize和enumerate理解为ordered list和unordered list

分行


在两行文字中间插入par。也可以用一行空白来代替。
需要较大行间距,则可在两行之间插入:

par
bigskip

插入图片


先把要插入的图片用A栏的upload file导入。如果compiler是pdfLaTeX的话,常用图片格式比如JPG/PNG/BMP都兼容,如果compiler是LaTeX则只有EPS才能插入。compiler可在setting中设置。

导入之后,输入插入图片的指令includegraphics[scale=X]{X.PNG},如下图所示,左边为代码,右边为对应的slide:


用includegraphics插入图片(红色划线部分)

scale就是图片的缩放,X一般是个大于0小于1的数字,比如0.6就是原图片缩放百分之六十。{ }里面是图片文件名。【注意:图片文件名中不能有空格,否则latex无法识别】

如果需要让图片居中,则需要centering这个命令:

...
par
centering
includegraphics[] {}
par
...

经个人实验得出结论:par这个空行命令在这里是必不可少的,因为如果不用par把居中的图片和上下文分隔开的话,上下文靠近图片的部分也会居中。

插入图片的方法是把图片作为Figure插入,比如:(建立一个example file也能看到类似的例子)

begin{figure}[h!]
centering
includegraphics[scale=1.7]{universe.jpg}
caption{The Universe}
label{threadsVsSync}
end{figure}

这样还能给图片加上caption,功能更完善一些。

控制内容显示先后顺序


LaTeX也可以实现powerpoint那种逐一显示每一项的效果。还是刚才那张图:


用pause控制内容显示顺序(蓝色划线)

加入pause这个命令后,下面新加入的内容会在一张新的slide上显示,播放的时候,配合讲解,可以营造一种“揭晓谜底”“步步推进”的效果。

插入简单表格



插入简单表格

图片中代码太小看不清楚所以直接复制在这里:

begin{frame}{Quantifier and Scope}
The scope of quantifier is directly reflected by the surface structure;
par
bigskip
begin{center}
begin{tabular}{|c|c|c|c|} hline
textsc{Obj} position & Scrambling & Trace & Ambiguity hline
Spec,TP & A-scrambling & non-recoverable & unambiguous hline
Spec,HP & A'-scrambling & recoverable & ambiguous hline
end{tabular}
end{center}
(cf.23 and 24)
par
bigskip
Disambiguation can be reached by inserting a higher adverb such as 'fortunately'.
end{frame}

关键就是从begin{center}到end{center}之间的这一段代码。

{center}是表格居中的命令;

begin{tabular}{|c|c|c|c|} hline这一行建立表格的结构。其中第二个{ }里面有多少个用“|” 分开的格子,表格就有多少个column。可以把“|”理解为vertical line,很形象。每个格子里面能出现的字幕只有r/c/l三种,分别代表左对齐、居中、右对齐,所以这个表格所有的单元格都是居中对齐的。hline是加入一个horizontal line也就是分行的命令。

再往下是表格的具体内容:

Spec,TP & A-scrambling & non-recoverable & unambiguous hline

因为设置了表格有四个column,所以对应的每一个row里面就要用三个“&”把四个column分隔开。“&”相当于“|”的作用。每一个row的结束由“空格 + ”标示。最后的hline用来给这一横行下面加上边栏。如果没有hline,就没有这一行下面的边栏。

以此类推,最后以

end{tabular}
end{center}

结束这个表格。
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
平军 + 40 + 20 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 40  论坛币 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
woshiren123 发表于 2014-10-30 19:11:18 |只看作者 |坛友微信交流群
LaTeX虽然没word那么直观,但出来的效果更好些。
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
平军 + 10 + 10 + 1 + 1 + 1 鼓励积极发帖讨论

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

板凳
╰不滅信念 学生认证  发表于 2014-11-2 19:12:29 |只看作者 |坛友微信交流群
有个问题一直困扰我好久。看看这个在线编辑器:\[Online ~  \LaTeX ~ Equation ~ Editor\]
导出的格式可以是:gif,png,pdf,swf,emf,svg
我用过的编辑器有sublime text, winedt,但是一般只导出pdf,那其他格式是怎么导出的呢?


where there is a will there is a way

使用道具

报纸
gyqznufe 发表于 2015-4-2 11:53:13 |只看作者 |坛友微信交流群
苦逼的作者们!弱弱的问一句,《中国科学·XXX》等期刊,光解决排版问题就需要作者位学latex来搞定,有这个必要吗?真是苦逼到家了哈!

使用道具

地板
lily_feng 发表于 2015-4-7 11:07:44 |只看作者 |坛友微信交流群
请问,用sharelatex.com上的模板做成自己的.tex文件之后怎么下载保存到自己的电脑上呢?

使用道具

7
tianwk 发表于 2021-2-23 00:16:31 |只看作者 |坛友微信交流群
thanks for sharing

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 13:15