Я пытаюсь написать Makefile для pandoc. Я хочу, чтобы иметь возможность вводить make filename.ext
, и Makefile будет автоматически компилироваться с filename.txt
до filename.ext
. Имя файла может быть любым именем .txt. Эта часть проста. например У меня есть набор правил, как:Makefile для pandoc с файлом ссылок
%.pdf: %.txt
pandoc -s --smart -f markdown -o [email protected] $<
%.html: %.txt
pandoc -s --smart --bibliography $(bib) -f markdown -t html --standalone -o [email protected] $<
%.docx: %.txt
pandoc -s --smart --bibliography references.bib -f markdown -t docx -o [email protected] $<
%.tex: %.txt
pandoc -s --smart --bibliography references.bib -o [email protected] $<
Однако, я также хочу, чтобы добавить цитаты из того же файла под названием filename.bib
. Итак, если я наберу make fudge.pdf
, pandoc преобразует файл fudge.txt в fudge.pdf, введя ссылки bibtex из fudge.bib. Как мне это сделать? Командная строка что-то вроде
pandoc -s --smart --bibliography filename.bib -f markdown -o [email protected] $<
... но я не могу понять, как получить fudge.bib от fudge.txt, не делая что-то вроде этого:
pandoc -s --smart --bibliography $(subst .txt,.bib,$<) -f markdown -o [email protected] $<
Это будет работать, но я хочу сначала выполнить предварительную обработку файла * .bib (а именно, генерировать его и добавить недостающие ссылки), и b) нуждаться в этом макросе в каждой строке. Есть ли что-нибудь более элегантное?
Отлично, спасибо! – Puzzled79