如何使用变体目录和PDF builder处理中间依赖关系?
我试图用SCON构建一个LaTeX文档,其中PDF目标的一些源是其他构建者的目标。这非常有效,直到我尝试将其与变体目录相结合。看起来,一旦我将variant目录添加到SConscript调用中,所有构建的源代码就不再被正确地扫描到PDF目标的依赖关系树中 在我的最小工作示例中设置这种类型的构建是否有错误如何使用变体目录和PDF builder处理中间依赖关系?,pdf,latex,scons,Pdf,Latex,Scons,我试图用SCON构建一个LaTeX文档,其中PDF目标的一些源是其他构建者的目标。这非常有效,直到我尝试将其与变体目录相结合。看起来,一旦我将variant目录添加到SConscript调用中,所有构建的源代码就不再被正确地扫描到PDF目标的依赖关系树中 在我的最小工作示例中设置这种类型的构建是否有错误 >> scons --version SCons by Steven Knight et al.: script: v2.5.1.rel_2.5.1:3735:9dc6cee
>> scons --version
SCons by Steven Knight et al.:
script: v2.5.1.rel_2.5.1:3735:9dc6cee5c168[MODIFIED], 2016/11/03 14:02:02, by bdbaddog on mongodog
engine: v2.5.1.rel_2.5.1:3735:9dc6cee5c168[MODIFIED], 2016/11/03 14:02:02, by bdbaddog on mongodog
engine path: ['/usr/lib/scons/SCons']
Copyright (c) 2001 - 2016 The SCons Foundation
>> tree
.
├── SConstruct
└── src
├── document.tex
├── foo.in
└── SConscript
1 directory, 4 files
>> cat SConstruct
# SConscript('src/SConscript') # <- Works
SConscript('src/SConscript', variant_dir='build', duplicate=0) # <- Error
>> cat src/foo.in
Bar
>> cat src/document.tex
\documentclass{article}
\begin{document}
\input{foo}
\end{document}
>> cat src/SConscript
Command('foo.tex', 'foo.in', Copy('$TARGET', '$SOURCE'))
PDF('document.tex')
>> scons --tree=prune
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
cd build && pdflatex -interaction=nonstopmode -recorder document.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(/nfs/msdev/users/bellockk/Development/SConsMakoTeX/SOQ/src/document.tex
LaTeX2e <2016/03/31>
Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) (./document.aux)
! LaTeX Error: File `foo.tex' not found.
Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: tex)
Enter file name:
! Emergency stop.
<read *>
l.3 \input{foo}
^^M
! ==> Fatal error occurred, no output PDF file produced!
Transcript written on document.log.
pdflatex returned an error, check the log file
scons: *** [build/document.pdf] Error 1
+-.
+-SConstruct
+-build
| +-src/SConscript
| +-build/document.acn
| | +-build/document.pdf
| | +-src/document.tex
| +-build/document.acr
| | +-[build/document.pdf]
| +-build/document.alg
| | +-[build/document.pdf]
| +-build/document.aux
| | +-[build/document.pdf]
| +-build/document.bbl
| | +-[build/document.pdf]
| +-build/document.bcf
| | +-[build/document.pdf]
| +-build/document.blg
| | +-[build/document.pdf]
| +-build/document.fls
| | +-[build/document.pdf]
| +-build/document.glg
| | +-[build/document.pdf]
| +-build/document.glo
| | +-[build/document.pdf]
| +-build/document.gls
| | +-[build/document.pdf]
| +-build/document.idx
| | +-[build/document.pdf]
| +-build/document.ilg
| | +-[build/document.pdf]
| +-build/document.ind
| | +-[build/document.pdf]
| +-build/document.lof
| | +-[build/document.pdf]
| +-build/document.log
| | +-[build/document.pdf]
| +-build/document.lot
| | +-[build/document.pdf]
| +-build/document.nav
| | +-[build/document.pdf]
| +-build/document.nlg
| | +-[build/document.pdf]
| +-build/document.nlo
| | +-[build/document.pdf]
| +-build/document.nls
| | +-[build/document.pdf]
| +-build/document.out
| | +-[build/document.pdf]
| +-[build/document.pdf]
| +-build/document.snm
| | +-[build/document.pdf]
| +-build/document.synctex.gz
| | +-[build/document.pdf]
| +-src/document.tex
| +-build/document.toc
| | +-[build/document.pdf]
| +-src/foo.in
| +-build/foo.tex
| +-src/foo.in
+-src
+-src/SConscript
+-src/document.tex
+-src/foo.in
scons: building terminated because of errors.
>scons--版本
史蒂文·奈特等人的烤饼:
脚本:v2.5.1.rel_2.5.1:3735:9dc6cee5c168[修改],2016/11/03 14:02:02,由bdbaddog在mongodog发布
引擎:v2.5.1.rel_2.5.1:3735:9dc6cee5c168[修改],2016/11/03 14:02:02,由bdbaddog在mongodog发布
引擎路径:['/usr/lib/scons/scons']
版权所有(C)2001—2016 SCONS基金会
>>树
.
├── SConstruct
└── src
├── document.tex
├── 福因
└── 讽刺
1个目录,4个文件
>>cat结构
#SConscript('src/SConscript')#cat src/foo.in
酒吧
>>cat src/document.tex
\documentclass{article}
\开始{document}
\输入{foo}
\结束{document}
>>cat src/SConscript
命令('foo.tex','foo.in',Copy('$TARGET','$SOURCE'))
PDF('document.tex')
>>烤饼——树=修剪
scons:正在读取SConscript文件。。。
scons:已完成读取SConscript文件。
斯科恩:建立目标。。。
cd build&&pdflatex-interaction=nonstopmode-recorder document.tex
这是pdfTeX,版本3.14159265-2.6-1.40.17(TeX Live 2016)(预加载格式=pdflatex)
受限\已启用写18。
进入扩展模式
(/nfs/msdev/users/bellock/Development/SConsMakoTeX/SOQ/src/document.tex
迟到的
加载3种语言的巴别塔和断字模式。
(/usr/share/texlive/texmf dist/tex/latex/base/article.cls
文件类别:第2014/09/29条v1.4h标准乳胶文件类别
(/usr/share/texlive/texmf dist/tex/latex/base/size10.clo))(/document.aux)
!LaTeX错误:找不到文件'foo.tex'。
键入X退出或继续,
或输入新名称。(默认扩展名:tex)
输入文件名:
紧急停车。
l、 3\输入{foo}
^^M
!=>发生致命错误,未生成输出PDF文件!
记录在document.log上。
pdflatex返回错误,请检查日志文件
scons:**[build/document.pdf]错误1
+-.
+-SConstruct
+-建造
|+-src/SConscript
|+-build/document.acn
||+-build/document.pdf
||+-src/document.tex
|+-build/document.acr
||+-[build/document.pdf]
|+-build/document.alg
||+-[build/document.pdf]
|+-build/document.aux
||+-[build/document.pdf]
|+-build/document.bbl
||+-[build/document.pdf]
|+-build/document.bcf
||+-[build/document.pdf]
|+-build/document.blg
||+-[build/document.pdf]
|+-build/document.fls
||+-[build/document.pdf]
|+-build/document.glg
||+-[build/document.pdf]
|+-build/document.glo
||+-[build/document.pdf]
|+-build/document.gls
||+-[build/document.pdf]
|+-build/document.idx
||+-[build/document.pdf]
|+-build/document.ilg
||+-[build/document.pdf]
|+-build/document.ind
||+-[build/document.pdf]
|+-build/document.lof
||+-[build/document.pdf]
|+-build/document.log
||+-[build/document.pdf]
|+-build/document.lot
||+-[build/document.pdf]
|+-build/document.nav
||+-[build/document.pdf]
|+-build/document.nlg
||+-[build/document.pdf]
|+-build/document.nlo
||+-[build/document.pdf]
|+-build/document.nls
||+-[build/document.pdf]
|+-build/document.out
||+-[build/document.pdf]
|+-[build/document.pdf]
|+-build/document.snm
||+-[build/document.pdf]
|+-build/document.synctex.gz
||+-[build/document.pdf]
|+-src/document.tex
|+-build/document.toc
||+-[build/document.pdf]
|+-src/foo.in
|+-build/foo.tex
|+-src/foo.in
+-src
+-src/SConscript
+-src/document.tex
+-src/foo.in
scons:由于错误而终止生成。
你能用duplicate=1试试吗?根本的问题是,LaTeX builder“cd”是的,它可以使用duplicate=1,但我真的更愿意关闭它。我必须处理PDF生成器的另一个问题,如果我将duplicate=1设置为1,它将无法运行pdflatex正确的次数来生成目录。我很好奇为什么build命令中的“将cd放入tex文件的文件夹”会影响依赖项扫描。