我有一个模块,我想用 l3build 来管理。解压 docstrip 文件会生成一个 tex 文件。 l3build doc
排版生成的 tex 文件。但我不知道如何配置build.lua
以使该过程能够查看应包含的任何图像。
我的 MWE 有四个文件(全部放在一个Github 仓库为方便起见)
文件树
├── build.lua
├── foo.dtx
├── foo.ins
└── support
└── duck.png
foo.dtx
%<*foo>
\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\includegraphics[
width=\textwidth,
%<bar>angle=180,
]{duck}
\end{document}
%</foo>
foo.ins
\input docstrip.tex
\askforoverwritefalse
\generate{\file{bar.tex}{\from{\jobname.dtx}{foo,bar}}}
\endbatchfile
因此bar.tex
有一条额外的线,它可以将图像旋转 180 度。
build.lua
module = "foo"
typesetsuppfiles = {"duck.png"}
typesetfiles = {"foo.dtx","bar.tex"}
鸭子.png
命令:
l3build doc foo
duck.png
复制到typesetdir
foo.dtx
排版为typesetdir
(我认为)- 结果:成功。
foo.pdf
被移入maindir
。
命令:
l3build doc bar
bar.tex
解压到unpackdir
tex
bar.tex
在运行unpackdir
- 结果:由于
duck.png
未找到而失败。
答案1
这应该是你的build.lua
:
module = "foo"
typesetsuppfiles = { "duck.png" }
typesetfiles = {"foo.dtx"}
目录结构应该是:
├── build.lua
├── foo.dtx
├── foo.ins
└── support
└── duck.png
support
是程序支持的官方目录名l3build
。
答案2
以下代码(是的,它很丑陋)适用于您提出的具体情况:
module = "foo"
--typesetsuppfiles = {"duck.png"}
typesetfiles = {"foo.dtx","bar.tex"}
function docinit_hook()
errorlevel = cp("duck.png", "./support", unpackdir)
if errorlevel ~= 0 then
error("** Error!!: Can't copy duck.png from ./support to "..unpackdir)
return errorlevel
end
errorlevel = cp("duck.png", "./support", typesetdir)
if errorlevel ~= 0 then
error("** Error!!: Can't copy duck.png from ./support to "..typesetdir)
return errorlevel
end
return 0
end
答案3
我提交了一个问题到 l3build github 并且已经修复。感谢 Joseph 和 Marcel!