0

我有一个包含以下文件的目录

➜  hrrep git:(master) ✗ ls -l
total 1000
drwxrwxrwx  22 zmjones  staff    748 May 28 23:28 data
-rw-rw-rw-   1 zmjones  staff   7180 May 20 16:17 data.R
drwxrwxrwx   9 zmjones  staff    306 May 28 23:38 figures
-rw-r--r--   1 zmjones  staff  85841 May 28 23:23 hill_jones_hr.bib
-rw-r--r--   1 zmjones  staff  29193 May 28 22:23 hill_jones_hr.tex
-rw-r--r--   1 zmjones  staff    572 May 28 23:46 makefile
-rw-rw-rw-   1 zmjones  staff   9588 May 28 22:47 models.R
drwxrwxrwx   3 zmjones  staff    102 May 28 23:28 papers
drwxrwxrwx   9 zmjones  staff    306 May 28 23:28 tex
-rw-r--r--   1 zmjones  staff   1483 May 20 12:58 un_data.py

这些文件由 makefile 描述(使用 GNU Make 3.81)

all: ./data/cat_un_data.csv ./data/rep.csv ./figures/*.png ./hj-hr.pdf

./data/cat_un_data.csv: un_data.py #refreshing one will refresh all
        python un_data.py

./data/rep.csv: data.R ./data/cat_un_data.csv
        R CMD BATCH --no-save --no-restore data.R

./figures/*.png: models.R ./data/rep.csv
        R CMD BATCH --no-save --no-restore models.R

TEXMCD := pdflatex -interaction=batchmode

hill_jones_hr.pdf: hill_jones_hr.tex ./figures/*.png
    $(TEXCMD) $<
    ]bibtex *.aux
    $(TEXCMD) $<
    $(TEXCMD) $<
    find . | egrep ".*((\.(aux|log|blg|bbl|out|Rout|Rhistory|DS_Store))|~)$$" | xargs rm
    rm -rf auto

makefile 似乎工作正常,直到它到达 hll_jones_hr.pdf 目标,在那里它失败并出现错误:

hill_jones_hr.tex
make: hill_jones_hr.tex: No such file or directory
make: *** [hill_jones_hr.pdf] Error 1

我不明白问题是什么。当我手动执行时pdflatex,该文档编译得很好。bibtex我尝试添加忽略错误标志无济于事。我认为这是我正在犯的一些愚蠢的错误。如果这有什么不同的话,这个文件夹就在 Dropbox 中。我还尝试将./前缀添加到.tex文件和.pdf目标;错误是一样的。

4

2 回答 2

3

问题是$(TEXCMD)变量没有定义,所以你的命令:

$(TEXCMD) $<

正在扩展为只是$<或只是文件名,这本身不是合法的命令。

于 2013-05-29T13:16:59.517 回答
0

使用./hill_jones_hr.tex代替hill_jones_hr.tex,然后重试。

于 2013-05-29T04:36:24.387 回答