关于LATEX的思考——我们需要学到了什么
起因
偶然登陆了一次人人,发现真是惨不忍睹。谁都有那么一段逗逼一般的岁月,不过呢,还是需要积淀下。
同时整理下当时自己的一些作品,虽然当时 too young 也 sometimes naive, 但是思考还是值得拥有的。
1、前言
想到写这个是因为这么一篇大家都在转发的日志 LaTeX新人教程,30分钟从完全陌生到基本入门
说实话我非常喜欢写这些技术普及文的人,这样的工作需要付出的辛劳完全超乎想象。赞!在这个考完试的晚上,睡不着的时候看完了文章,我想总结总结自己的思考。最近也有学弟学妹问LATEX怎么用。
这里我受到的第二个启发是一本著名的书Linux and the Unix Philosophy相信每个看过的人都会为那些思想所折服。Small is beautiful.还有Make each program do one thing well.都非常经典。
这里我总结一下一些使用LATEX的思想,思想的作用就是让你从更高的角度看问题,不代表就能解决好具体的问题。“臣之所好者,道也,进乎技矣。”具体的问题当然还是需要经验的。但是好的思想可以让你少走弯路。希望你可以在看完第一个那个帖子的文章后,看看这篇文章,作为补充吧。
2、形式与内容分离
闲话少说,我们开始LATEX的思想探讨。在任何的LATEX书上,包括LATEX自己都承认的思想就只有一个“所思即所得”但是这个说法就像“道可道非常道”一样,太高端大气了,用不起。其实这个思想,最最主要的实现方式就是一个——形式与内容分离。
何为形式,何为内容呢?
以Linux and the Unix Philosophy这本书为例:这本书的内容就是Linux使用中的一些精髓思想,比如Make each program do one thing well.但是具体这本书是用什么字体,是不是要加粗,怎么排列的话,就是形式。
LATEX的第一要义就是形式与内容分离。
具体而言在你的写作中你只要指出,这段是section1,这个是 subsection1.1,这个是subsubsection1.1.1,这个是摘要,这个是参考文献等等。事实上,在LATEX中你只要知道自己需要的内容在文章中结构作用。
当然这个也是被广泛称赞的LATEX是结构化文档的典范,其实你可以看出来如果这样你的文章自动该是这样的结构:
title
abstract
keyword
section1
subsection1.1
subsubsection1.1.1
........................................
...........................................
section X
subsection X.1
subsection X.1.1
reference
这样的结构迫使你按照论文的结构进行思考,不然如何写下去?所以LATEX用来写论文是非常合适的。虽然还原论已经破产,但是分治的思想还是大家非常欣赏的。
那么问题来了?
具体的形式怎么控制呢?
答案就是LATEX大家经常说的模板。
所谓的模板就是规定好,比如我的section这个部分要用4号宋体,加粗,倾斜。
那么其实你的section1,section2都会使用这样的形式。
这样的结构就把人从机械地形式调节中解放出来了。LaTeX中的模板设置好了这些形式的具体表现形式。你只要关注你的文章第一部分写什么,第二部分写什么就可以了。
这也就是一般所谓的“所思即所得”。
这个时候你的重点是集中精力在内容上而不是形式上。
这里插一个题外话:
形式与内容分离是现在的普遍公式。比如XML就是这个思想的极致,只规定内容,甚至不指定具体的内容。比如iTunes的歌曲目录就是用xml存储的。那么Apple是怎么表现出这么漂亮的内容的?答案是CSS,XSL这些额外的形式表达手段。包括后面想说的markdown/Wiki等也是形式与内容分离的。这里说说MS有点软,03的word都是内容和形式结合的,但是docx这个格式是基于XML的,不知道有没有试过使用使用压缩软件直接解压docx文件的效果:
然后解压的效果:
打开word那个文件,里面有一个document.xml的文件,打开的效果如下:
这个文档就是标准的xml文件。所以如果没有装07的时候可以使用压缩软件救急。
这个是题外话了。
3、模板的力量
相信如果你理解了LATEX的形式与内容分离的原则,那么你就可以知道LATEX最最有技术含量的部分了——设计模板。什么样的模板直接决定了你出来的效果。
但是这个部分事实上是最最简单的了——因为大家用的模板基本都是对方提供的。比如说Science,PRL这些机构都有提供专门的结构。
而很多的比赛也有很多的人共享自己的模板。比如Ctex自己的网站有很多的内容,从数学建模到比如某个专业杂志基本都有人提供了这样的模板。所以你可以直接拿来使用。
当然到了你可以自己写模板的时候,希望你也可以分享出来啊。
4、Google是最好的老师
这个内容,事实上强调了你要学会google。这里其实你该确定一个观点除非你在做十分前沿的工作,比如CERN写自己的报告,大部分你在生活中遇见的问题都有人已经遇见过了。Google之。这里推荐Google,因为baidu因为某些原因却是不如Google准确,同时必要的时候使用英文去搜索惊喜会更多。这个时候往往会在Ctex或者Stackflow上看到很多例子。
这里其实就是LATEX所属于的GNU等为代表的开源软件的基本特征——折腾!生命不息,折腾不止!每一个开源软件的用户都是有自己的探索欲望的。所以折腾是一种乐趣,当然这个的坏处是——比较耗时间。
当然如果Google不出来的时候,可以去;论坛发言求助,一般很快会有人来解答的。关于LATEX一般中文用户都是去Ctex的论坛发言。
最后的方法如果实在不行,可以重造轮子,自己修改LATEX代码或者重新定义命令吧。
5、美也是生产力
这个是看BBC纪念乔布斯的纪录片得来的一个观点——什么电脑最有价值?——能够吸引用户愿意使用的才是最有价值的。
所以经常有人说,我用word打出公式也很漂亮啊。其实这里关于公式的美观有各种判断标准,但是只能说LATEX代表的数学、物理、计算机等为代表的科技界的主流审美标准。AMSMATH这个包就是美国数学学会为LATEX写的。
美的东西大家都愿意用,愿意看,所以美也是生产力。
当然这点仁者见仁智者见智,mark。
6、内容大于形式
这是在科研中大家经常听到的观点——做好的科研,做好的成果。这点其实就是在强调内容,而不是形式。
其实用什么工具无所谓。我是Linux用户,但是偶尔我也切换到windows下,我相信这个世界该是多姿多彩的,所以用工具是无所谓的,只要合适!
重要的是人,人的成果。
LATEX分离形式和内容的一个重要目的就是把人从形式中解放出来,集中精力在内容上!!!
好的论文内容比用好的工具写的论文重要的多的多,不要本末倒置了。
当然这个貌似和上一条矛盾了。但是这个就是一个问题的两个方面,首先保证的是内容,内容有了的基础上,我更喜欢的工具写论文,不是也很好么?
这里郑重写一段:
为word正名!
其实word也是很强大的,大部分情况下,我们把word当成了文本编辑器使用,我们的计算机基础,至今都在强调怎么做文字环绕。。。OMG。
word在长文档中的使用是有非常巧妙地技巧的。比如版式就是word的核心概念。word的开发工程师说过,不理解版式你就没有真正理解word。
推荐大家看看《word排版的艺术》。如果你希望使用word的话,增加一点效率吧。
其次MS office有一个非常强大的功能叫VBA,曾有同学双眼通红地告诉我他花了一个半天调节好了全系同学个人文档。其实每次的操作都是相同的,调节字体大小,换行距等等,其实这样的重复工作VBA是最最胜任的。
80%的人使用了word大约20%的功能,剩下的那80%其实是非常有利于我们提高效率的。
7、后记
这里写的都是一家之言,如有疏漏,请多多指教。不胜感激!
最后做一下一个宣传:
其实日常的一些小工作,比如列列试验计划什么的,大家使用LATEX,WORD都是比较笨重的。
记事本最找,TXT的格式可以通杀,但是不很美观,也不结构化。
最好的工具是MARKDOWN。
如果有兴趣,可以看看下面的文章:
Markdown写作浅谈: http://www.yangzhiping.com/tech/r-markdown-knitr.html