我有一个包含许多 lyx 文件的文件夹。哪个 makefile 会自动从 abc.lyx 构建 abc.pdf?我更喜欢一种模式,这样我就可以分别处理每个 pdf 目标。我在网上没有找到可行的示例。
答案1
以下是完整的 Makefile:
abc.pdf: abc.lyx
.SUFFIXES: .lyx .pdf
# if lyx command fails, remove pdf
.lyx.pdf:
lyx -e pdf4 "$<"
ret_lyx=$$? ;\
if [ "$$ret_lyx" != "0" ]; then \
[ -f "$*.pdf" ] && rm "$*.pdf" ;\
fi ;\
exit $$ret_lyx
为了测试它,将上述内容放入文件“Makefile”中,并将其放入包含文件“abc.lyx”的目录中,然后运行“make”。以下输出说明了它的工作原理:
$ ls
abc.lyx Makefile
$ make
lyx -e pdf4 "abc.lyx"
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019) (preloaded format=xelatex)
restricted \write18 enabled.
entering extended mode
(./abc.tex
LaTeX2e <2019-10-01> patch level 1
ret_lyx=$? ;\
if [ "$ret_lyx" != "0" ]; then \
[ -f "abc.pdf" ] && rm "abc.pdf" ;\
fi ;\
exit $ret_lyx
$ make
make: 'abc.pdf' is up to date.
$ touch abc.lyx
$ make
lyx -e pdf4 "abc.lyx"
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019) (preloaded format=xelatex)
restricted \write18 enabled.
entering extended mode
(./abc.tex
LaTeX2e <2019-10-01> patch level 1
ret_lyx=$? ;\
if [ "$ret_lyx" != "0" ]; then \
[ -f "abc.pdf" ] && rm "abc.pdf" ;\
fi ;\
exit $ret_lyx
$