shell脚本的简单过程可能是这样的:
1 #!/bin/sh
2
3 latex --verbose manual.tex
4 dvips manual.dvi
5 ps2pdf manual.ps
6 rm manual.{aux,log,ps,dvi}
从.tex转换为pdf有3个步骤:
.tex -> .dvi -> .ps -> .pdf
使用Makefile
我试过的是什么?
1 FILENAME = manual
2 $(FILENAME).pdf: $(FILENAME).ps
3 ps2pdf $(FILENAME).ps
4
5 $(FILENAME).ps: $(FILENAME).dvi
6 dvips $(FILENAME).dvi
7
8 $(FILENAME).dvi: $(FILENAME).tex
9 latex --verbose $(FILENAME).tex
当我第一次运行Makefile
我将获得这些文件时,此make
无法成功
manual.aux ,manual.dvi, manual.log
并且错误消息是
...
l.36 \includegraphics[width=4in]{a.eps} // this error from latex
...
make: *** [manual.dvi] Error 1 // this error from Makefile
...
如果我再次运行它,我将获得.ps
和.pdf
。
请注意,只有一个Makefile
可以正常运行的案例是我必须先修复latex
的错误,然后再运行make
。通过这种方式我可以得到.pdf
没有任何错误。
对Makefile
的进一步请求我还希望清除其余文件.tex
和.pdf
的所有文件,但尚未实施。
请帮我改进我的代码。
答案 0 :(得分:1)
从我所看到的情况来看,latex
有一个良性错误。为了处理这种情况,GNU Make在配方行前面使用-
前缀:
-latex --verbose $(FILENAME).tex
现在原始错误将被忽略,并且整个过程应该有效。