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,完美,手工!

人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。
原文地址:https://www.cnblogs.com/guochaoxxl/p/14319302.html