在 l3build 构建的文档中包含已编译的 PDF

在 l3build 构建的文档中包含已编译的 PDF

我正在建立一个项目l3build。我想在文档中展示一些示例,展示它们的源代码,并注释文档条,以及它们用来\includegraphics提取从提取的示例源代码生成的 PDF 的输出。它们看起来大致如下:

  • examples.dtx

    %    \begin{macrocode}
    \documentclass[a8paper]{scrartcl}
    \begin{document}
    %<*italic>
    %    \end{macrocode}
    % Here is some italic text.
    %    \begin{macrocode}
    \textit{Lorem ipsum}
    %    \end{macrocode}
    %    \begin{macrocode}
    %</italic>
    %<*bold>
    %    \end{macrocode}
    % And here is some bold text.
    %    \begin{macrocode}
    \textbf{Lorem ipsum}
    %</bold>
    %    \end{macrocode}
    % That is all.
    %    \begin{macrocode}
    \end{document}
    %    \end{macrocode}
    
  • examples.ins

    \input docstrip.tex
    \generate{\file{italic.tex}{\from{examples.dtx}{italic}}}
    \generate{\file{bold.tex}{\from{examples.dtx}{bold}}}
    \endbatchfile
    
  • documentation.drv

    \documentclass{ltxdoc}
    \usepackage{graphicx}
    \begin{document}
    Let me present some examples.
    \DocInput{examples.dtx}
    This is how the examples look when compiled. \\
    \includegraphics{italic.pdf} \\
    \includegraphics{bold.pdf}
    \end{document}
    
  • build.lua

    #!/usr/bin/env texlua
    -- build.lua - not working
    module = "example"
    typesetfiles = {"documentation.drv"}
    kpse.set_program_name("kpsewhich")
    dofile(kpse.lookup("l3build.lua"))
    
  • shell 命令执行预期build.lua要做的事情(typeset.sh):

    tex *.ins
    for doc in *.tex
    do
      pdflatex "$doc"
    done
    pdflatex *.drv
    

我将这些文件放在 GitHub 上,以便您快速下载和测试。

我甚至想到了一些相当激烈的措施,比如重新定义函数typesetarara但我似乎无法配置 l3build 来正确编译文档。示例不需要在任何 TDS 或 中分发 *.zip,但必须在排版文档之前解压并编译它们。这可以用 l3build 来完成吗?

相关内容