摘要:本文介绍了一种Latex入门学习方法,该方法应用了程序猿在程序设计时使用的自顶向下,分层细化的思维方式来学习Latex文档撰写工具。在文中,我会介绍如何利用自顶向下的思维来学习latex,介绍如何使用思维导图工具来实现Latex各个模块的学习,以及介绍如何通过在线搜索方式来查询模块的特定功能。
引言
Latex作为一种文档编辑工具,以其开源的文档编译环境(免费)和易于编码的形式构造各种类型的投稿模板,被各大国外期刊以及各领域的科研工作者所认可。换句话说,就是不会在调整文档格式上浪费太多的功夫,只要根据期刊给出Latex模板把相关文字输入到模板中,然后进行微调,可以轻松完成论文格式修改。实际上,在Latex的学习初期,很多新手都会因为看不懂许多Latex的入门教程(《LATEX入门》,《
安装Latex编译环境
选择一个Latex编译工具,这里我不对各种Latex编译工具的优劣进行描述,因为我也不懂。我选择的是CTEX编译环境(http://www.ctex.org/CTeXDownload/),因为该编译工具界面友好,Latex宏包(宏包:Latex模块功能实现时所调用指令所属的文件)的下载、安装、更新都方便比较方便,特别适合新手使用。
![c5c69b4ce0dc202aabb058308991b332.png](https://i-blog.csdnimg.cn/blog_migrate/0a1567c223535a021699e6d473054f0a.jpeg)
寻找Latex的简化模板
学习任何跟编程的相关东西时,请不要读书(比如,Visio 2016学习完以后,哥们还是只会print hello word!,这么多指令,记得住个屁)。书就是"越薄越精华;越厚越shit",等你把后面读完了,前面也就忘了(我有个哥们喜欢读红楼,读完以后仍然只记得贾宝玉,薛宝钗,林黛玉罢了)。同样,也不要找一个复杂的Latex模板作为学习模板,同样的原因,也是一坨"shit"。如果有人给我们说:"老兄,Latex你就按我给你的模板写就好了"。这句话本身没有什么问题,不过是给你一个数码相机的快门让你照相而已,如果你想拍出自己想要的照片是不太可能的,你需要的仍然是单反相机。所以,我们选择Latex模板时,只需要包含了一些主要的功能的简化模板,这有利于我们保持最高的兴趣很快学会Latex。
Latex模板分析
找到一个简化的Latex模板后,可以下载刘海洋老师编撰的《LATEX入门》pdf版本文档作为模板分析工具书(其他的也可以,只要自己用的习惯都行),如下图所示;
![66e4c4f012f832f4218e50ec6820f254.png](https://i-blog.csdnimg.cn/blog_migrate/28e53a9c6ac6fd1b174436ae76108b5a.jpeg)
接着,找到Latex模板中的某一个主要功能模块,例如列表环境模块(enumerate),
![3c9621b0625aa0ea578f8695b7f2df82.png](https://i-blog.csdnimg.cn/blog_migrate/b38b9f5ac23e549f1f1dbe6e51e3a28b.png)
最后,在《LATEX入门》那本书中找到相关模块的功能解析,例如:如果如果要分析列表环境模块,便对列表环境那一章节进行阅读和初步学习,并用思维导图列出相关学习重点,以备后面查询。
![3a589814027d59d9eb8f95df61f0dc22.png](https://i-blog.csdnimg.cn/blog_migrate/3f1ac349223866d2e8af80ba1bd5713f.jpeg)
另外,如果要学习如何编写出自己需要的模块,最好的方式是了解相关模块调用的相关宏包(例如:enumerate模块调用了enumitem包)具有那些可以调用的参数,如下图所示
![9027b164e646a518915ee49fb1c5f77d.png](https://i-blog.csdnimg.cn/blog_migrate/0356528f20af463cb3fe4b1526f9e5a1.png)
利用思维导图列出要点
很多人在使用思维导图时,用的方法明显不对,他们总喜欢将所有的东西记录到导出中,这样费时又费力很浪费时间,然后就觉得这个东西不好用。其实,思维导图是一种启发式思维模式,不需要记录所有的东西,而是记录关键性东西,软件主要是引导记忆。首先,我们要理清楚Latex文档撰写需要什么(例如,标题,摘要,正文,参考文献)等;然后,对每一部分需要什么进行细化,并将关键词记录到思维导图里面。其实,小学的时候,老师就是这样教我们写作文的,这就是启发式思维模式,只是当时没有这样的软件罢了。下面,我给出自己用思维导图记录Latex学习时的例子,来解释上面我的论述。
![9a3f6b28d30a81dfd7397dde4b48b6cb.png](https://i-blog.csdnimg.cn/blog_migrate/cc689f96b9718367856bf34e6ef86ef4.jpeg)
调用包分析
如同C、C++、python等程序源码撰写一样,Latex的某些功能实现也会使用到外部宏包(Latex中会在.tex文档首部写入你需要的外部宏包),如何更好地使用外部宏包来实现自己想要的模块功能?举个例子,如果要自定义enumerate模块,需要如下参数
![cfe4fb4699a6ac2e561c0f5709f99a9a.png](https://i-blog.csdnimg.cn/blog_migrate/e3e4bf87da920fa34a4649db11b89112.png)
但是,初学者却不知道别人如何选择上述参数,搜索半天以后也只是找的到一些高手实现过的功能(如果初学者想要通过这种方式想要超越他们,几乎没可能)。其实这些参数写在一个名为enumitem.sty的文件中,初学只需要者需要通过查看enumitem.sty文件的帮助文档,就可以找到自己想要的模块功能,如下图所示:
![ed5eeb63edc686ada8e1afbbc9cf87be.png](https://i-blog.csdnimg.cn/blog_migrate/bc5e0d9225e33bd054e11aed354df1cb.jpeg)
学会搜索
搜索分为三类,包帮助文档查看,特定功能搜索,和论坛询问。在帮助文档查看方面,我用的是CTEX包下载地址:https://www.ctan.org/pkg/ctex,该网址可以直接下载相关包,官方给出的宏包自然有帮助文档,如下图所示(Package ducumention中放的就是enumitem的帮助文档):
![580bc48604cd5832b726ea970c96c3b4.png](https://i-blog.csdnimg.cn/blog_migrate/51988e23a2efad9a56af6d29bd05c85b.jpeg)
特定功能搜索方面,可以用搜索引擎。最优搜索用Google,次等搜索用Biying,最后搜索用百度等;最好学学搜说引擎的高级搜索方法,这对于提高搜索效率很有帮助,特别是用那些很优先弹出广告的搜索引擎时。
在论坛询问方面,可以通过各种Latex论坛进行询问。我知道论坛目前只有CTex中文论坛,由于CTex中文论坛不能用了,临时论坛网址为https://github.com/CTeX-org/forum。但我一般不用论坛询问的方式进行咨询,毕竟很多问题前面两种方法都能解决掉,怕问出来的问题太傻。
结论
Latex的入门和程序入门学习原理是一样的,找一个例子然后不断分析和学习。我觉得也许这个方法可以扩展到很多专业领域的学习,从而提高我们的学习效率。最后,同时希望学习Latex的经验对Latex初学者有所帮助。