[秀璋带你读论文] 拿什么来拯救我的拖延症?初学者如何提升编程兴趣及LATEX入门详解 - Go语言中文社区

[秀璋带你读论文] 拿什么来拯救我的拖延症?初学者如何提升编程兴趣及LATEX入门详解


又是在凌晨三点赶作业,又是在Deadline前去熬夜,一次次无眠,一次次抱怨。为什么三年前、两年前、一年前,甚至是昨天,我都下定决心“从现在开始读顶会论文”,却又悄悄选择逃避;为什么我的收藏夹存了很多学习资料和视频,然而却没有再次翻起;为什么无数次告诫自己一定要卸载游戏和社交APP,开始好好学习,但明天又会继续下载去放纵自己。我们忙碌,我们孤独,我们在一遍遍地逃避和自我安慰中变得惴惴不安,拖延和等待终将击垮我们的斗志。人生几何,去日良多,不要再让拖延彻底吞噬了你我!

为了改变,为了前行。因此就有了这样一篇文章,也有了《秀璋带你看论文》新的系列,同时也解答了一些初学编程博友的疑惑。本文将分享作者这些年学习、编程和科研的经历,也将详细介绍LATEX工具的用法,就当是开启我们科研之门的钥匙。注意,本文欢迎大家对号入座,闭上眼睛、扪心自问,你有拖延症吗?你是不是也准备开始学习一门新的编程技术,却又立刻放弃;你是不是无数次在截止日期前通宵达旦、痛心不已?你是不是立下很多flag却没有付诸以行动而更改计划呢?如果这篇文章能唤起你去学习,去奋斗,去拼搏,足矣。如果你能坚持一个月、半年、一年,甚至几年,去做自己想做的事情,去追逐心中的乌托邦。那么,我希望你再回过头来找到这篇文章,告诉你的好友秀璋,我们曾一起拼搏前行,这种素未谋面却相互鼓励的感觉真好!

在这里插入图片描述

更重要的是,希望大家督促我,我在此立下每个星期至少分享一篇学术论文的flag,也期待您的加入,多多与我评论、交流、探讨,同时欢迎大家推荐我好的论文和创新。该系列文章主要包括:

  • 空间安全方向: 作者目前正在学习系统安全、网络安全、恶意代码溯源等知识,该方向的论文主要来自顶会、期刊,也有部分较好的中文核心。同时,会结合实际项目及作者的理解进行分享。
  • 人工智能方向: 作者一直从事人工智能相关研究,但没有系统地阅读过AI论文,后续也想尝试安全与AI的融合,所以这里想阅读一些前沿的人工智能论文。
  • 知识图谱方向: 知识图谱和自然语言处理我是2014年开始接触,硕士毕业论文也是实体对齐和属性对齐。后续工作一直从事知识图谱与贵州文化、舆情等融合的研究,这些论文将从实战讲解,包括命名实体识别、关系提取、事件提取等。
  • 图情情报方向: 图书情报方向是在传统计量分析、文献情报分析基础上,融合大数据、人工智能、NLP等知识进行讲解,涉及情感分析、舆情分析、大数据分析、可视化分析等知识。该部分论文主要源自C刊核心内容,实战以作者的编程博客为主。
  • 计算机视觉方向: 作者曾研究过数字图像处理技术,随着算法发展,传统的先验计算如何融合到深度神经网络中,更好地实现人脸识别、模式识别、指纹识别等。同时,恶意代码用图像表示从而进行恶意代码识别,计算机视觉如何抢救古文物、民族文字,对抗样本都是新关注点,作者也将努力去学习。

最后,感恩一路有你,感谢一路同行,希望通过编程分享帮助到更多人,也希望学成之后回贵州教更多学生。因为喜欢,所以分享,且看且珍惜,加油!等我四年学成归来~

资源下载:https://github.com/eastmountyxz



一.如何督促自己高效的学习

对我而言,我自认为自制力还可以。高中三年每天学到凌晨2点;大学期间在CSDN分享博客八年从未间断;上班之后又挤周末、上下班赶公交的时间考了博士;2019年下半年初入安全,《网络安全自学篇》系列记录了这大半年的点点滴滴,82篇文章,50万访问量,每一篇都是我的血肉,都包含了我的汗与泪。那么,我为何还有这么严重的拖延症呢?我又该如何督促自己高效的学习呢?

在这里插入图片描述


1.编程初学者的世界

很多博友和初入编程世界的朋友都问过我,我应该怎么学习呢?我应该去选择哪一门编程语言呢?我又应该怎么提升自己的编程兴趣呢?

时光回到十年前,我刚入大学。
从未接触电脑的我也是一个懵懂的小屁孩,高考被莫名其妙调剂到了一个陌生的专业——软件工程。调剂可能也是很多同学都会面临的,一个“毫无兴趣”的专业会让你我迷失。到了大学,我们就像脱缰的野马脱离了父母老师的约束,我也一样。大一刚接触电脑不久的我就学会了dota,开始看小说。每天重复着下午打球,晚上打游戏到熄灯,看小说到深夜的日子,难道是我的控制能力不强吗?不是的,高中的我也每天学到2点!是我们还没有接触到这些诱惑,还不知道它们的魅力有多大。所以,在大学一定不要沉迷于游戏和小说,切记,切记,切记。

在这里插入图片描述


如果你是依然沉迷其中的大一学子,醒醒吧!少年~
幸运的是,我还是一个比较会反思自己的人。寒窗苦读十二年,父母心血何止千,难道就是为了让我们来大学享受的?况且这算得上享受吗?毕业之后难道我真的只会修电脑、做PPT吗?欧,NO,我连电脑都不会修。所以,接下来我开始改变,怎么做呢?

  • 跟着好学生一起编程,如果没有,从自己做起
    这之后我开始改变,跟着优秀的同学一起学习,一起编程。无数个中午都跑到实验楼和图书馆敲打代码,从C语言的“Hello World”到HTML的“< html>< /html>”,一点点成长。这过程痛苦吗?其实痛苦,但也夹杂着欢笑,尤其是当屏幕出现我们想要的结果,那种欣喜若狂至今回味无穷。

  • 远离寝室,扎根图书馆或实验室
    幸运的是我们寝室学习氛围还算好,但我们仍然远离寝室,去图书馆或教学楼学习。在我遇到的很多网友中,可能有学习氛围不是很好的。没关系,少年,不要在意别人的眼光,想想自己的父母,出去学习、敲代码吧!我看到了太多的学生通过自己的努力找到让我羡慕的工作,专科也好、本科也罢、硕士博士亦然,只有不断地去奋斗,去吸取,才能体味到人生各个阶段的魅力。

  • 不耻下问,坚持不懈
    编程道路上是孤独的,我们会遇到各种各样的问题,这种独立搜索解决问题的能力也至关重要。记住一句话,不要总觉得自己的问题简单,就害怕而不去询问,更可怕的是逃避。我也一样,从最早的VC环境搭建,到回文递归、图形打印、列表文件等,都一点点摸索着前行,况且现在网络这么发达,社交论坛这么多。同样,坚持也非常重要,当我无助沮丧时,就会想起小石匠精神,“有个小石匠在不停的敲打石头,似乎敲打了上百次也没能在石头上留下任何裂痕,但就在他敲第一百零一下的时候,石头突然裂成了两半”,我知道,不是最后那一下击碎了石头,而是前面不懈努力的结果。

  • 多敲代码,多去实践
    编程中最忌讳的就是拿着书本、看着视频、喝着奶茶,就是一天。作为一个计算机学生,不去敲代码,不去实践怎么能行。同时,很多基础课程都非常重要,有的课程可能枯燥,比如《数据结构》《软件工程》《操作系统》《算法分析》等等。但换个角度,你能否将枯燥书本中的内容用代码去实现呢?能不能编写一些小程序呢?算法能不能编个音乐推荐系统呢?能不能做出一个小型DOS系统呢?

  • 争当小组核心,尝试参加竞赛,这种短期压迫自己和追逐学习的能力才是你的珍宝
    大学中很多课程会分小组,我建议你尝试当组长或作为核心成员。回过头来,大学四年,真正让我成长的课程都是我作为组长或核心的时候,可能你的组会有打酱油的人,但这何尝不是对你的一种提升和锻炼呢?同时,大学中的竞赛有很多,比如ACM、CTF、软件设计大赛、阿里竞赛等。个人建议你可以尝试参加一些竞赛,这种短时间内让你参与到团队中去做项目,会让你不断成长,也是你一生的珍宝。我大二就参加了游戏协会、ACM,博士最近又参加了CTF,每次都能从实战中学到了很多前沿技术。

  • 网络自学提升,撰写博客分享
    随着网络学习资源和课程越来越多,我们能通过网络自学很多知识,后面我会进行详细推荐。同时,为了更好地逼迫自己去学习,养成独立编程的习惯,我从2013年3月开始撰写博客,最早的一些都是课程作业或编程实战,到后面系统的博客,我伴随着CSDN成长。虽然写博客会占用一些时间,但这种在线笔记会记录你学习的点滴,而且当你再次遇到问题时能快速解决,如果博客写得好对你找工作未尝也不是一种优势。尤其是缺乏独立学习能力的同学,当我们在网上看实战课程时,非常建议一边编写代码一边用博客记录,最开始可能会很艰难,但慢慢你会发现自己的技术在不断成长,人有的时候是需要PUSH、PUSH、PUSH的。

在这里插入图片描述



2.兴趣是最好的老师

我是调剂生,我不想学习编程。
回到之前的问题,很多初学者都是调剂生,对编程不感兴趣,怎么办呢?刚开始我来到这个专业的时候,也觉得它不适合我,我的一些同学也因为一些课程后觉得不适合这个专业。难道真的不适合吗?很多时候是在为自己找一个借口罢了,因为你根本没用心去学。如果你不知道你是否适合,那你需要的是付出、努力去学习,况且又有多少人能够再次调专业呢?

当我付出后,我才知道其实这个专业是适合我的,因为其他的我想不出第二个更适合的专业,而且更加热爱这个专业。计算机专业本身还是非常有意思的,我们能通过编程做很多有趣的东西,也可以私下去学习一些技术或完成一些软件。


如何让自己对编程感兴趣呢?
兴趣是最好的老师,刚开始接触编程C语言、C++、数据结构时,我们会觉得枯燥而丢失兴趣。这里我非常建议大家课后去做一些自己感兴趣、并且可见的程序,我就是在大二开始学做游戏慢慢提升编程兴趣的,下图正是我最终做的音乐游戏《坠梦》。如果你是一名初学者或大一新生,你可以去做哪些事情呢?

  • C#能够迅速完成Windows应用程序,比如聊天室、对话框等,也可以实现.NET网站
  • Python简洁的特点非常适合初学者,建议学习路线为语法、爬虫、网站、可视化、数据分析、CV、AI等
  • C++/MFC能够让你完成一些应用程序,可以结合图像处理或小型系统来学习
  • JAVA推荐大家结合网站开发来学习,包括传统的SSH、Spring Cloud、Android移动端开发等
  • 游戏开发其实挺有意思的,包括Unit3D软件、gamemaker、OpenGL等都不错
  • 网络安全也非常有意思,但提醒大家要合理合法去完成实验
  • 参加学校的编程社团或组队比赛,大家一起去学习或完成一个东西

我自认为不是很聪明的学生,但是只要我用心去学了肯定能入门,至于精通还需要很长的磨练。如果你能有打 lol 的那种激情,编程其实也很轻松,只有付出才会有所收获;如果你编程有holy shit(超神)那种欣喜若狂,你还做不出来吗?其实当你独立完成一个项目后,它的感觉不亚于一次暴走的杀戮、一次超神!!!

在这里插入图片描述



3.真正的大牛都是在寒暑假炼成的

这句话我不知道出自何处,只知道是我们的学长鼓励我们编程时说的,而我们的学长又是上上届学长传承下来的。如果你还是学生,一定要好好珍惜寒暑假,在那段时间我们能学到很多东西,可以做一个自己感兴趣的软件或项目,学习一些技术算法都是非常有用的。我就利用寒暑假学习了MFC编程知识、C#网络编程知识、Python技术等。你是否也应该去尝试一下,何乐而不为呢?YQ期间,你是否仍在坚持学习新技术呢?又为什么不是从今天开始制定计划补充能量呢?

当我到了大三的时候,专业课变得越来越多,也是最繁忙的一年。其中需要学习的就包括:计算机网络、操作系统、数据库、项目实践、编译原理、汇编等,还有很多自选的专业知识课程。在这当中你需要扎实的学习,提升自己的专业技能后,才能更好的找工作或为研究生出国打基础。所以,寒暑假还是要利用起来啊,上课期间哪还有时间搞其他的!下面是我这些年寒暑假的学习经历,看了之后,你就会知道为什么我说“真正的大牛都是在寒暑假练成的”了!

  • 大一寒假: 参加学院ACM集训队,3周的编程实践,第一次了解算法竞赛
  • 大一暑假: 学院组织去东软学习锻炼,MFC完成汽车地图解析系统,当时就是个拖油瓶

在这里插入图片描述

  • 大二寒假: 与两位好友花了半年时间共同开发了音乐游戏《坠梦》《采蘑菇小矮人》
  • 大二暑假: 小学期实践完成DOS操作系统开发,学习了Object-C移动端开发,改编游戏《仙剑一》

在这里插入图片描述


  • 大三寒假: 独立学习了C#编程语言,完成了网络编程应用开发,这为后面本科毕设打下基础
  • 大三暑假: 小学期编程实践,准备考研,同时提升英语等能力
  • 大四寒假: 完成了毕业设计Eastmount安全卫士,当时360还没有相关功能,做了一款集成痕迹清除的安全软件
  • 大四暑假: 回贵州支教半个月,第一次站上讲台授课,同时由于研究生方向为NLP和Web数据挖掘,开始接触Python编程,学习爬虫分析

在这里插入图片描述

  • 研一寒假: 进一步研究知识图谱,参加CCF会议并分享相关博客
  • 研一暑假: 结合课程进一步学习JAVA网站和Android开发,进一步提升编程实践,完成LeetCode题目及找工作
  • 研二寒假: 系统学习搜索引擎、知识图谱相关知识,并完成毕业论文实体对齐算法研究
  • 研二暑假: 反复奔波北京和贵州找教师工作,最后到贵州财经大学成为一名教师

在这里插入图片描述

如果你还是一个大学生,你也应该去享受一下自己独立编程实现一个感兴趣东西的过程。在这期间,你需要自己查阅资料、调动自己的积极性,尽自己的最大努力去完成它。下一个寒暑假你是否也应该珍惜起来,不,应该是从现在开始去做点什么了吧!短暂的激情是不值钱的,只有长久的激情才是值钱的。不论未来如何变化,我都希望大家能始终坚持自己为人处世的原则,怀抱一颗学习、感恩的心,坚持着去追逐心中的梦想,人生路上期待你的陪伴与前行,共勉~



4. 如何改掉拖延症的习惯

你或许也听过TED关于拖延症的讲座,我们制定好了理想的计划,最终却只能在Deadline前熬夜去完成。在生命的日历上,我们涂掉了一格又一格,不要再让拖延吞噬了你我的成长。

让我们沮丧的不是我们没有实现梦想,而是我们甚至还没有开始追寻梦想
The frustration is not that we could’t achieve their dreams, it’s that we weren’t even able to start chasing them

那么,如何改掉编程或学习中的拖延症呢?下面是我的个人意见,如果存在不足或错误的地方,还请批评指正。

  • 编程不要想太多,先开始写代码再说,做最重要
  • 如果自觉性不强的,可以结伴而行,找到努力的小伙伴,一起前行
  • 如果是编程不感兴趣造成的,尝试让自己爱上编程,做好玩的,完成一件后又适当奖励自己
  • 编程实践和撰写博客能够让你付诸以行动,分享会让你重拾兴趣
  • 编程路上需要鼓励,去感染你身边的人,看到自己喜欢的文章,不要吝啬评论和点赞
  • 制定计划并定期打卡,让自己忙碌起来之后会忘记游戏、小说等诱惑
  • 如果有导师督促,每周的汇报会让你紧张起来,酸爽
  • 现在、立刻、马上,别再等待

同时,我自认为还是努力的,朋友圈也比较励志,这也影响了很多周围的好友一起奋斗,如果您想加我微信一起前行,私聊我就好。为了逼迫自己开源,我的Github从二月份开始每日打卡,这或许也是另一种远离拖延的方法吧!你也可以试试~

在这里插入图片描述

当然,写这篇文章的初心有两个,一方面是帮助初入编程又困惑的同学,另一方面是督促自己赶紧去看学术论文,别再拖延了。所以接下来《秀璋带你读论文》系列文章就是我摆脱科研拖延症的尝试,半年或一年后我们再来看看结果吧!

在这里插入图片描述



5.编程学习资料推荐

首先,怎么去学习呢?

(1) 课程知识
关于课堂知识,我的建议是基础理论课程要学扎实(适当划水),而编程实践课程一定要学好(切勿划水),实战编程就是我们今后的饭碗啊!包括C语言、Python、程序设计、Web网站开发、大数据分析、数据库等等,能当组长的可以尝试当组长,编程实战作业一定要独立完成。同时,当我们学习了网页开发、数据库、后台编程语言如JAVA之后,你是否有考虑过独自将它们串联起来,开发一个动态网站呢?你又是否考虑过学习最新的框架如Spring Cloud Spring Boot再去结合这些知识点呢?这种拓展学习的能力很多时候是课堂上没有的,这也是为什么大家学同样的课程,别人家的孩子技术就很强。

(2) 网络学习
随着网络学习资料越来越多,通过网络学习是我非常推荐的方法之一,这里我给出了一些比较好的资源网站。同时,个人不建议大家私下去购买那些非常贵的课程,B站、MOOC等这么多免费视频,它们难道不香吗?还不够你学习吗?

  • MOOC: https://www.icourse163.org/
    中国大学MOOC提供了很多高校的公开视频课程,非常值得大家去学习,跟着老师的进度去完成。比如下图中,我母校BIT的Python语言程序设计就不错,哈哈~等我毕业回去之后,我也会尝试在MOOC上分享几门Python编程课程的,加油!

在这里插入图片描述

  • B站: https://www.bilibili.com/
    B站不仅是二次元的世界,里面还有非常多的学习资源,这里非常、非常推荐大家去搜索学习。比如安全、深度学习的一些课程都非常好,而且还没有广告,下图是我收藏的部分资源。

在这里插入图片描述

  • CSDN: https://blog.csdn.net/Eastmount
    如果是想通过博客学习,我非常推荐CSDN。作为全国最大的编程论坛,不仅仅因为我在这里分享知识,更多的是我在这里学到了很多技术,它让我不断成长。从最早的July大神到Android的郭神、罗神,再到吴老师、许老师这些前辈,金老师、贺老师这些高校教师,以及涛哥、雷神、二哥,还有太多太多大佬和博友,感谢在CSDN遇到的每一位朋友,感谢每一位为CSDN付出和分享的人,有你真好!这里厚着脸皮推荐下我的一篇文章:我与CSDN的这十年——笔耕不辍,青春热血

在这里插入图片描述

  • 网易云课程: https://study.163.com/
    网易云课程也有很多学习资料供大家学习,包括之前我学习的TensorFlow、Python、软件安全等视频,下图是我的学习资源,推荐“莫烦”老师。

在这里插入图片描述

  • Github: https://github.com/
    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。这里能找到非常多的开源代码,这些源码和框架都值得我们学习。

  • coursera: https://www.coursera.org/
    Coursera是大型公开在线课程项目,由美国斯坦福大学两名计算机科学教授创办。旨在同世界顶尖大学合作,在线提供网络公开课程。Coursera的首批合作院校包括斯坦福大学、密歇根大学、普林斯顿大学、宾夕法尼亚大学等美国名校。尤其是机器学习、深度学习等课程非常推荐大家去学习,比如吴恩达老师的。

  • Stack Overflow: https://stackoverflow.com/
    Stack Overflow是一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML。当我们遇到很多编程问题时,这个网站会提供非常多且准确的解决方案。

  • 微信公众号
    个人感觉,微信公众号也是学习的好地方,越来越多的大牛都有自己的公众号,里面包括非常多的高质量文章,它更方便大家用手机浏览。毕业之后,我也弄个公众号玩玩吧!这几年真的很忙。

当然,还有很多学习的网站,比如博客园、开源中国、看雪、阿里云栖社区等等,这里作者不再赘述。



6.作者博客系列推荐

那么,如果是一名初学者,我需要学什么呢?

下面作者结合自己这些年躺过的浑水,给初学者一些学习建议。这十年,感觉自己确实学得太杂,作为高校老师这是好事;但如果是做研究,这还远远不够,所以接下来的博士生涯希望能更深入的学习,加油~

(1) Python学习系列
共计6个系列,近200篇文章。2014年作者攻读硕士研究生,跟着导师从事Web数据挖掘和知识图谱的研究,从零开始系统地学习Python系列知识;2016年作者回到家乡贵州财经大学教书,陆续完成了Python数据挖掘、大数据分析等课程,本系列文章就此而成。它非常适合对Python感兴趣的读者学习,不要担心你的基础,一步一个脚印学就是了。个人建议的学习路线为:先学习Python基础语法,接着深入学习Python爬虫、Python数据分析、Python图像处理、Python人工智能,一定要结合实例编写代码。加油,让我们一起走进Python的世界吧!

为了方便读者阅读,作者给出各系列最新的一篇文章(文中含目录),如下:

在这里插入图片描述


(2) 安全学习系列
共计100篇文章,目前仅1个系列。2019年博士方向又恰好为网络空间安全,故撰写了该专栏的一系列文章,后续会继续深入。涉及包括Web渗透、网站攻防、SQL注入、XSS、SQLMAP、差异备份、Caidao利器、Fiddler工具、数据库安全、加密解密、BurpSuite、CTF实战、IDA Pro、OllyDbg、社会工程学、Nmap、Kali系统、Wireshark等。希望对网络安全的读者有所帮助~

下面作者给出网络安全学习的路线文章和最新的一篇文章,希望对您有所帮助。

在这里插入图片描述


(3) 人工智能学习系列
目前约30篇文章,该专栏涉及人工智能基础知识、实战项目,包括Learning to Rank、TensorFlow、Keras、Theano和Word2vec等,后续希望能深入研究人工智能算法,并带着大家由浅入深分享代码和总结文章。希望该专栏对知识图谱和人工智能感兴趣的读者有帮助~

下面给出文章中含目录的最新博客,希望对您有所帮助。

在这里插入图片描述


(4)知识图谱学习系列
共计20余篇文章,作者硕士研究方向为知识图谱和人工智能,第一篇知识图谱文章是2015年总结的相关会议。该专栏涉及知识图谱的基础知识、实战项目,希望对您有帮助~

下面给出文章中含目录的最新博客,希望对您有所帮助。

在这里插入图片描述

(5) NLP和舆情分析系列
共计20余篇文章,主要围绕NLP和舆情分析进行讲解,涉及内容包括NLP常用工具、实体识别、中文分词、舆情分析、情感分析、YQ舆情分析等。下面给出典型的文章供读者学习:

在这里插入图片描述


(6) Android开发系列
共计19篇文章,作者2012年就计划学习IOS和Android开发,但由于当时的海尔笔记本无法满足环境要求,后来又准备学习Unit 3D游戏开发,也因为电脑问题,最终改为学习C#入门到Python数据挖掘,说来也是有趣。本系列文章是作者硕士研究生的一个项目,如下图所示的类似于微信的随手拍程序。那期间更换了电脑并系统学习了Android开发,五年前的文章希望对你有所帮助。

在这里插入图片描述

下面给出具有代表性的文章。


(7) C#学习系列
共计40余篇,共4个专栏。C#非常适合初学者入门。曾记否,在CSDN创建的最早两个专栏是《C#系统应用》和《C#网络编程》,作者的毕业设计也是采用C#设计,如下图所示的一个类似于360杀毒软件的程序,当时还是挺自豪的。C#编写窗体控件确实有它的优势,推荐初学者学习,它既能提升你的编程兴趣,又能做一些实践的项目,希望这个系列专栏对你有所帮助~

在这里插入图片描述

下面给出具有代表性的文章。


(8) C++和MFC图像处理系列
共计20余篇文章,该专栏主要是由于作者《数字图形处理》课程需要完成一个C++的图像处理软件而总结,里面的图像处理系列还是较为完整且底层的,推荐低年级的同学学习;后续又结合几个MFC项目进行了补充,最后是自己在《计算机图形学》课程中的实验,带着学生们完成。MFC是计算机相关专业学生入门的工具,同时给出Python图像处理系列最为对比,还是挺有意思的,建议一定结合实例去做,希望这些文章对你有所帮助。

在这里插入图片描述

在这里插入图片描述

下面给出具有代表性的文章。


(9) 网站开发系列
该专栏主要是作者读书和教书期间的课程作业,包括HTML基础、JAVA网站开发、PHP网站开发、Python网站开发、数据库知识等,由此可见作者确实学得很杂,更建议同学们深入学习一门语言,学精学通,并结合现在热门的框架学习,比如Spring Cloud等。希望这些基础知识对初学者有所帮助。

在这里插入图片描述

下面给出具有代表性的文章。



二.LATEX入门详解

讲完了第一部分,接下来进入第二部分。这篇文章既然是我科研之路的开启,那么我们就从LATEX入门开始讲解。这一部分对需要撰写论文,正在学习LATEX工具的人比较适用,感兴趣的也可以简单了解下。

LaTeX是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天、甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

LaTeX的工作方式类似网页,它们都是由源文件(.tex or .html)经由引擎(TeX or browser)渲染产生最终效果,从而得到PDF文件或生成页面。两者极其神似,包括语法规则与工作方式。

在这里插入图片描述

安装过程推荐读者阅读TechArtisan6师傅的这篇文章:

官方下载地址如下:

强烈推荐大家直接下载LaTex模块进行修改,这篇文章更多是告诉大家基本语法,安装过程请大家下来去尝试,希望对您有所帮助!

在这里插入图片描述

设置行号如下图所示:

在这里插入图片描述


参考视频:B站-西北农林科技大学信息工程学院耿楠老师



1.基本结构

LaTeX文档分为导言区和正文区(文稿区),在导言区我们可以使用documentclass命令引入一个文档类,也可以有book类、report类、letter类,其中百分号表示注释,不参与文档编译且不作为输出。在正文区用begin和end输入一个环境,如下图所示:

在这里插入图片描述

接着将环境的名称设置为document,一个LaTeX文件有且只能有一个document文件,添加正文内容再编译文档。

在这里插入图片描述

(1) 设置标题
导言区主要用于全局设置,比如文档标题、作者、日期,再通过maketitle显示标题。

% 导言区
documentclass{article}

title{My First Document}
author{Eastmount}
date{today}

% 正文区
begin{document}
	maketitle
	Hello World!
end{document}

显示如下图所示:

在这里插入图片描述

(2) 正文插入公式
如果需要在正文中插入公式,则使用美元符号,表示数学模式,如下所示:

% 导言区
documentclass{article}

title{My First Document}
author{Eastmount}
date{today}

% 正文区
begin{document}
	maketitle
	
	Hello World!
	Let $f(x)$ be defined by the formula $f(x)=3x^2+x-1$.
	
	This feature is usually extracted by calling the sequence $X=left{ {api_1,api_2,...,api_n} right}$ , 
	where $i in L bigcup U $ represents the i sample and n is the number of API functions.
	
end{document}

显示如下图所示,公式后面会详细介绍,这里仅作部分说明。

  • 符号^:表示上标
  • 符号_:表示下标
  • 符号left{:表示左大括号
  • 符号right}:表示右大括号
  • 符号bigcup:表示并集
  • 符号in:表示属于

在这里插入图片描述

(3) 顶格和换行
如果我们想让它换行或定格,怎么解决呢?Latex 换行顶格、不缩进,使用的命令为:

noindent

在顶格的段落前面加上,此命令,就可以。而“” 表示换行,$$表示公式换行,比如:

在这里插入图片描述



2.设置字体

在LaTeX中字体属性包括字体编码、字体族、字体系列、字体形状、字体大小,如下图所示。

在这里插入图片描述

(1) 字体族设置
罗马字体、无衬线字体、打字机字体的两种设置方式如下:

  • textrm{Roman Family} textsf{Sans Serif Family} texttt{Typerwriter Family}
  • rmfamily Roman Family {sffamily Sans Serif Family} {ttfamily Typerwriter Family}

显示结果如下图所示,括号可以限定字体的范围:

% 导言区
documentclass{article}
title{My First Document}
author{Eastmount}
date{today}

% 正文区
begin{document}
	maketitle
	% 字体族设置(罗马字体、无衬线字体、打字机字体)
	textrm{Roman Family} textsf{Sans Serif Family} texttt{Typerwriter Family}
	
	rmfamily Roman Family {sffamily Sans Serif Family} {ttfamily Typerwriter Family}\
	
	Hello World!
	
	% here is my big formula
	sffamily
	Let $f(x)$ be defined by the formula $$f(x)=3x^2+x-1$$ which is a polynomial of degree 2.
	
	{ttfamily
	This feature is usually extracted by calling the sequence $X=left{ {api_1,api_2,...,api_n} right}$.}

	My name is Eastmount!
end{document}

显示如下图所示:

在这里插入图片描述

(2) 字体系列设置
主要包括粗细、宽度。

  • textmd{Medium Series} textbf{Boldface Series}
  • {mdseries Medium Series} {bfseries Boldface Series}

(3) 字体形状设置
主要包括粗体、斜体、伪斜体、小型大写。

  • textup{Upright Shape} textit{Italic Shape} textsl{Slanted Shape} textsc{Small Caps Shape}
  • {upshape Upright Shape} {itshape Italic Shape} {slshape Slanted Shape} {scshape Small Caps Shape}

在这里插入图片描述

(4) 中文字体设置
需要使用ctex包才能调用,在进行相关字体设置。

% 导言区
documentclass{article}

usepackage{ctex}

title{My First Document}
author{Eastmount}
date{today}

% 正文区
begin{document}
	maketitle
	
	% 字体族设置(罗马字体、无衬线字体、打字机字体)
	textrm{Roman Family} textsf{Sans Serif Family} texttt{Typerwriter Family}
	
	rmfamily Roman Family {sffamily Sans Serif Family} {ttfamily Typerwriter Family}\
	
	% 字体系列设置(粗细、宽度)
	textmd{Medium Series} textbf{Boldface Series}
	
	{mdseries Medium Series} {bfseries Boldface Series}\
		
	% 字体形状设置
	textup{Upright Shape} textit{Italic Shape}
	textsl{Slanted Shape} textsc{Small Caps Shape}
	
	{upshape Upright Shape} {itshape Italic Shape}
	{slshape Slanted Shape} {scshape Small Caps Shape}
	
	% 中文字体
	{songti 宋体} quad {heiti 黑体} quad {fangsong 仿宋} quad {kaishu 楷书}\
	
	中文字体的textbf{粗体}与textit{斜体}、underline{下换线}\
	
	Hello World!
	
	% here is my big formula
	sffamily
	Let $f(x)$ be defined by the formula $$f(x)=3x^2+x-1$$ which is a polynomial of degree 2.
	
	{ttfamily
	This feature is usually extracted by calling the sequence $X=left{ {api_1,api_2,...,api_n} right}$.}

	My name is Eastmount!
	
end{document}

显示如下图所示:

在这里插入图片描述

注意,如果你的中文显示是乱码,则需要进行下面的设置,并且调用usepackage{ctex}包即可。
设置默认编辑器为xelatex,编辑器默认字体为UTF-8。
在这里插入图片描述

在这里插入图片描述


(5) 字体大小设置
推荐大家阅读官方帮助文档,查看具体细节。

% 字体大小设置 相对大小
{tiny			Hello}\
{scriptsize	Hello}\
{footnotesize	Hello}\
{small			Hello}\
{normalsize	Hello}\
{large			Hello}\
{Large			Hello}\
{LARGE			Hello}\
{huge			Hello}\
{Huge			Hello}\

%文档大小
documentclass[12pt]{article}

% 中文字体大小
zihao{3} 你好!

需要注意的是,LaTeX建议大家使用newcommand命令定义一个新的命令,以执行字体设置操作,比如:

  • newcommand{myfont}{textit{textbf{textsf{Font Text}}}}

在这里插入图片描述



3.设置篇章结构

学术论文通常包括两种结构,如下图所示,左边表示理论型,右边表示实验型。

在这里插入图片描述

在LaTeX中我们可以通过section定义小结,也可以用subsection定义子小结。同时更推荐大家下载IEEE结构进行修改,后面我也会讲到。

  • section{Section title}
  • label{sec:mysection}
  • subsection{title}
  • subsubsection{title}
  • section*{} unnumbered section
  • appendix

举个示例:

% 导言区
documentclass{article}
usepackage{ctex}

title{My First Document}
author{Eastmount}
date{today}

% 正文区
begin{document}
	maketitle
	
	% 构建文章小结
	section{Introduction}
	section{Related Work}
	section{System Model}
	section{Mathematics and algorithms}
	section{Experiments}
	subsection{Datasets}
	subsubsection{实验条件}
	subsubsection{评价指标}
	subsection{Results}
	section{Acknowledgment}
	
end{document}

在这里插入图片描述

我们还可以使用ctexset命令定义不同标题的格式,如下图所示,具体详情推荐大家阅读官方文档。

在这里插入图片描述



4.插入图片

在LaTeX中插入图片的基本语法如下:

  • 导言区插入:usepackage{graphicx}
  • 语法:includegraphics[ < 选项 > ] { < 文件名 > }
  • 格式:EPS、PDF、PNG、JPEG、BMP

在这里插入图片描述

下面举例说明:

% 导言区
documentclass{article}
usepackage{ctex}
usepackage{graphicx}

% 指定图片在当前目录下figures目录下
graphicspath{{figures/}}

% 正文区
begin{document}
	
	% 插入图片
	includegraphics{fig1}
	% 缩放比例
	includegraphics[scale=0.5]{fig1}
	% 固定图像高度
	includegraphics[height=2cm]{fig1.png}
	% 固定图像宽度
	includegraphics[width=2cm]{fig1.png}
	
	% 图像高度和宽度基于
	includegraphics[height=0.2textheight]{fig1.png}
	includegraphics[width=0.2textwidth]{fig1.png}
	
	% 指定多个参数
	includegraphics[angle=-45,width=0.5textwidth]{fig1.png}
	
end{document}

显示结果如下图所示,scale=0.5是将图片大小缩小为真实大小的一半,[width=0.2textwidth] 将图形缩放到文本的0.2倍。

在这里插入图片描述

横跨两栏
注意,在论文中通常会遇到要横跨两栏的应用场景,此时我们需要这样设置:

  • begin{figure*}
  • end{figure*}
usepackage{stfloats}

begin{figure*}[ht]
	centering
	includegraphics[width=0.80textwidth]{fig4.png}
	caption{Framework of traceability of malicious code attack based on knowledge graph.}
	label{fig4}
end{figure*}

上面代码中,figure* 表示跨双栏,htbp表示的意思是latex会尽量满足排在前面的浮动格式,就是h-t-b-p这个顺序,让排版的效果尽量好。其中,h-here,表示在此处;t-top,表示在顶部,b-bottom,表示底部,p-page,表示在本页。为了防止跨页图片跑到最后一页,我们需要在导言区加入stfloats包,然后设置begin{figure*}[ht] 即可。

在这里插入图片描述

(2) 双图显示
其核心代码如下:

usepackage{caption}
usepackage{subfigure}

begin{figure}[htbp]
	centering    %居中
	subfigure[name of the first figure] %第一张子图
	{
		begin{minipage}[t]{0.4textwidth}
			centering
			includegraphics[scale=0.15]{fig2}
		end{minipage}
	}
	subfigure[name of the second figure] %第二张子图
	{
		begin{minipage}[t]{0.4textwidth}
			centering      
			includegraphics[scale=0.2]{fig3} 
		end{minipage}
	}
	caption{name of the figure}        %大图名称
	label{fig-1}  %图片引用标记
end{figure}

显示如下图所示:

在这里插入图片描述



5.插入表格

在LaTeX中使用tabular生成表格,插入时需要设置对齐方式(l-左对齐、c-居中对齐、r-右对齐),然后插入数据,其中&用于分割每列,\用于换行。

% 导言区
documentclass{article}
usepackage{ctex}

% 正文区
begin{document}
	begin{tabular}{l c c c r} % 左 居中 右对齐
		A & B & C & D & E \
		11 & 12 & 13 & 14 & 15 \
		21 & 22 & 23 & 24 & 25 \
	end{tabular}

end{document}

显示结果如下图所示:

在这里插入图片描述)

然后通

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Eastmount/article/details/106886194
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢