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

posted @ 2021-01-23 22:19  叕叒双又  阅读(611)  评论(0编辑  收藏  举报