make在latex中的妙用
最近在学习latex,每次编译完源码后,都想看下效果,有人觉得可以装软件,装插件,简单的学习,觉得实在没必要折腾。看下了就只有两条命令:
latex hello.tex
dvipdfm hello.dvi
make最擅长做这种机械化的事情了,只要吧Makefile文件写好,一切都很容易,说做就做:
1、Makefile(version1)
1 hello.pdf:hello.dvi 2 dvipdfm $^ -o $@ 3 hello.dvi:hello.tex 4 latex $^ 5 clean: 6 rm hello.log 7 rm hello.dvi 8 rm hello.pdf 9 rm hello.aux 10 mv hello.tex src/
直接make就可以生成了pdf文档,make clean可以将中间文件删除,并将源码归类到src目录。优点就是非常容易理解,缺点就是灵活性远远不够,每次换个文件都需要在文件里更改文件。
2、Makefile(version2)
1 FILENAME=hello 2 ${FILENAME}.pdf:${FILENAME}.dvi 3 dvipdfm $^ -o $@ 4 ${FILENAME}.dvi:${FILENAME}.tex 5 latex $^ 6 clean: 7 rm ${FILENAME}.log 8 rm ${FILENAME}.dvi 9 rm ${FILENAME}.pdf 10 rm ${FILENAME}.aux 11 mv ${FILENAME}.tex src/ 12 echo 'clean fnished!'
这个make前只要更改一个参数即可,缺点就是make clean时,有输出:
rm hello.log rm hello.dvi rm hello.pdf rm hello.aux mv hello.tex src/ echo 'clean fnished!' clean fnished!
3、Makefile(version3)
1 #FILENAME=hello 2 ${FILENAME}.pdf:${FILENAME}.dvi 3 dvipdfm $^ -o $@ 4 ${FILENAME}.dvi:${FILENAME}.tex 5 latex $^ 6 clean: 7 @rm ${FILENAME}.log 8 @rm ${FILENAME}.dvi 9 @rm ${FILENAME}.pdf 10 @rm ${FILENAME}.aux 11 @mv ${FILENAME}.tex src/ 12 @echo clean fnished!
这个版本就好多了,只需要在make是加上参数即可,无需修改文件,就可以,并且,clean时只显示必要的信息。
make FILENAME=hello //完成编译
make FILENAME=hello clean //完成清理
OK,完美,手工!
人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。