如果承认了文档有语义,也就承认了文档是可交互的活动体。以前文档的交互对象是人,而从现在开始,我们力图要让文档能够与机器交互。所以把含有语义的文档看作是一个程序,也不是太异想天开。于是,用LaTeX编写文档,就好比用一种程序设计语言在编写程序!既然是编写程序,那也就有正确的编写方法和错误的编写方法之分,不能只看程序的运行结果对就可以了。比如,你要编写两个数x和y相加的程序,你写下表达式(x+a)+(y-a)。程序的最终结果似乎是对的,但是,你的程序却是百分之百地错了!
LaTeX只是一个工具,不要因为这个工具能够做出好东西,就认为任何使用这个工具的人都能做出好东西。同样反过来说,不能因为Word的用户大多做不出好东西而认为Word不是一个好工具(大部分外文科技杂志和顶级学术会议逐渐提供并支持word文档了,并非清一色只要LaTeX文档)。关键还是看工具的使用者对工具的掌握理解和应用。这就是Garbage in Garbage out的含义。如果Garbage in Treasure out,那么这个工具了得!如果Treasure in Garbage out,那么砸烂那个工具。理想状态是Treasure in Treasure out,LaTeX用户应该向这个方向努力。
如果我们把用LaTeX编写文档当作写程序,那么,这个最终程序的对错,不仅取决于这个程序的最终体现结果(当然,首先要通过编译这一关。),还取决于程序代码是否有逻辑错误。所以,不正确的逻辑,即使出来视觉上正确的结果,也是相当危险的,应该纠正的。
使用LaTeX最容易犯的错误之一是:应该间接引用的地方却偷懒成直接引用。例如,所有caption命令 会产生图号、表号等等从属于上层环境的编号,如果在正文中需要引用,那么,就应该在
\caption
的下一行用label命令 来定义一个标签,在需要引用处,再用ref命令 来引用,哪怕这里产生的编号只有1 和2之类很小,hardcode起来负担也不大。
不正确地使用LaTeX(包括Word)的用户,往往认为反正就那么一次引用,文档也是一次性的用途,所以,即使hardcode也无所谓。持有这种侥幸心理的用户往往认为,他们这些文档只是一次性的使用,将来不会被复用。但是,设想这样hardcode的LaTeX代码将来某个时候会被挪到另外一个文档环境中,或者编号换一种形式表示?
再如,参考文献的引用和本身的表示形式。正确的LaTeX手法是用cite命令 来引用,用bibtex记录描写完整的参考文献条目内容(注意:这里完全不涉及参考文献的表现形式)。这样积累起来的bib文件就是treasure。我因为做博士论文而化时间整理了bib文件,到现在积累了几百条记录,以后写其它的相关文档,引用这些文献绝对是效率很高的过程。
小结下来,LaTeX用户不能仅仅因为使用了LaTeX而沾沾自喜、高人一等,关键是要正确使用(包括LaTeX的适用场合),否则,你的LaTeX文档就成了garbage天书了。