【发布时间】:2021-02-28 23:21:33
【问题描述】:
我正在尝试使用 Makefile 创建 LaTeX 项目。我似乎无法让操作顺序正常工作
DISSERTATION = Dissertation
TEX = pdflatex -synctex=1 -interaction=nonstopmode --shell-escape
BIBTOOL = biber
OPEN = open -a Skim.app
RESOURCES = ${DISSERTATION}.pdf
###### Targets #####
# compile the LaTeX document
tex:
${TEX} ${DISSERTATION}
# create bibliography file for LaTeX
bib:
${BIBTOOL} ${DISSERTATION}
# Order of operations (LaTeX --> biber --> LaTeX --> LaTeX)
order: tex bib tex tex
# Second attempt
file:
${TEX} ${DISSERTATION}
${BIBTOOL} ${DISSERTATION}
${TEX} ${DISSERTATION}
${TEX} ${DISSERTATION}
clean:
rm -rf auto *_minted-* *.log *.aux *.synctex.gz *.out *.toc *.run *.bcf *.lof *.lot *.tdo *.run.xml *.pdf *.bbl *.blg
release:
rm -rf Release
mkdir Release
cp *.pdf Release
make clean
我目前在终端中输入make order,它只编译一次tex文件并退出。它不会调用 biber 来创建用于重新排序引用的引用。
我还尝试了命令make file,它只是将它们整理好,它做同样的事情。在第一个命令 ${TEX} ${DISSERTATION} 之后退出。
这里是相关的终端错误信息:
(see the transcript file for additional information){/usr/share/texlive/texmf-d
ist/fonts/enc/dvips/base/8r.enc}</usr/share/texlive/texmf-dist/fonts/type1/publ
ic/amsfonts/cm/cmex10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/ams
fonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/
cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy
10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/mathpazo/fplmr.pfb></u
sr/share/texlive/texmf-dist/fonts/type1/public/mathpazo/fplmri.pfb></usr/share/
texlive/texmf-dist/fonts/type1/urw/palatino/uplb8a.pfb></usr/share/texlive/texm
f-dist/fonts/type1/urw/palatino/uplr8a.pfb></usr/share/texlive/texmf-dist/fonts
/type1/urw/palatino/uplri8a.pfb>
Output written on Dissertation.pdf (70 pages, 9452807 bytes).
SyncTeX written on Dissertation.synctex.gz.
Transcript written on Dissertation.log.
make: *** [Makefile:14: tex] Error 1
但是,当我单独执行命令时,这确实有效!即make tex --> make bib --> make tex --> make tex。
make release 和 make clean 命令完美运行。
我不确定我在这里做错了什么。由于我对 Linux 的了解有限,我很难过。如果有人知道,请告诉我。谢谢!
【问题讨论】:
-
Makefile 的编写方式存在一些基本问题,但即使我们要解决这些问题,由于需要运行多次传递,为 LaTeX 项目获取正确的 Makefile 仍然很棘手的某些命令。我想您可能想通读this question 的答案,其中会更详细地探讨这一切。
-
感谢您的帮助!我使用他们答案中的参考资料之一更新了我的 Makefile。希望我写得正确。我会把它作为这个问题的答案发布。如果您对如何正确编写它有任何建议,那就太好了。