如何正确设置 l3build

如何正确设置 l3build

我目前正在尝试编写一个包,l3build这似乎是一个相当有用的工具。我已经阅读了如何编写.ins.dtx文件以及的文档l3build。据我所知,新包的最低设置将是一个包含以下三个文件的文件夹。

  • testpackage.dtx

    % \iffalse meta-comment
    %
    % Some notes about the package.
    % See for example siunitx.dtx for an example.
    %
    %<*driver>
    \documentclass{l3doc}
    % The next line is needed so that \GetFileInfo will be able to pick up
    % version data
    \usepackage{testpackage}
    \begin{document}
      \DocInput{\jobname.dtx}
    \end{document}
    %</driver>
    % \fi
    %
    % \GetFileInfo{testpackage.sty}
    %
    % \title{^^A
    %   \pkg{testpackage} -- Just for testing purposes!^^A
    %   \thanks{This file describes \fileversion,
    %     last revised \filedate.}^^A
    % }
    %
    % \author{^^A
    %  Someone^^A
    %  \thanks{^^A
    %    E-mail:
    %    \href{mailto:[email protected]}
    %      {[email protected]}^^A
    %   }^^A
    % }
    %
    % \date{Released \filedate}
    %
    % \maketitle
    %
    % \begin{documentation}
    %
    % \section{\cs{foo} is a function}
    % \begin{function}{\foo}
    %   \begin{syntax}
    %     |\foo| \marg{input}
    %   \end{syntax}
    %   Something about \cs{foo}.
    %   |\foo{bar}| will produce `\foo{bar}'.
    % \end{function}
    %
    % \end{documentation}
    %
    % \begin{implementation}
    %
    % \section{Implementation}
    %
    %    \begin{macrocode}
    %<*package>
    %    \end{macrocode}
    %
    %    \begin{macrocode}
    %<@@=testpackage>
    %    \end{macrocode}
    %
    %    \begin{macrocode}
    \RequirePackage{xparse}
    \ProvidesExplPackage {testpackage} {2019-06-23} {0.1.0}
                     {Just for testing purposes!}
    %    \end{macrocode}
    %
    % \begin{macro}{\foo}
    %   \begin{arguments}
    %     \item Some input
    %   \end{arguments}
    %   Some description of \cs{foo}
    %    \begin{macrocode}
    \NewDocumentCommand \foo { m }
      {
        I~saw~#1!
      }
    %    \end{macrocode}
    % \end{macro}
    %
    %    \begin{macrocode}
    %</package>
    %    \end{macrocode}
    %
    % \end{implementation}
    %
    % \PrintIndex
    
  • testpackage.ins

    \iffalse meta-comment
    
    Info about the package.
    
    \fi
    
    \input l3docstrip.tex
    \askforoverwritefalse
    \keepsilent
    
    \preamble
    This is the preamble!
    \endpreamble
    \postamble
    This is the postamble!
    \endpostamble
    
    \generate
      {%
        \file{testpackage.sty}
          {%
            \from{testpackage.dtx}{package}
          }%
      }
    
    \endbatchfile
    
  • build.lua

    -- Build script for the testpackage package.
    
    -- Identify the module.
    module = "testpackage"
    

运行l3build unpack似乎工作正常,并创建了一些包含解压.sty文件的文件夹。但是,尝试运行l3build doc会导致错误消息

! LaTeX Error: File `testpackage.sty' not found.
  • 我需要在设置中进行哪些更改才能使用来生成文档l3build
  • 为了避免l3build以后使用其他(特别是checkctan)时出现类似的问题,我是否应该在此设置中包含其他明显的步骤?
  • 假设我想要一个测试文档(不是的测试文件l3build),在其中我可以试用包的当前开发状态​​(无需将其安装在我的 texmf 树中;不相关的文档应该不是找到软件包的开发版本)。有没有方便的方法可以做到这一点?还是我必须手动将解压后的.sty文件复制到某个单独的文件夹中才能以这种方式进行测试?

答案1

分为三个部分

  • 您的设置应该是正确的l3build,至少对于您拥有的最小来源来说

  • 所有步骤都l3build使用相同的数据,因此一旦目标doc完成,结果check就会ctan相同

  • 您有几个测试文档选项。您可以简单地将其放在工作文件夹中,然后将其添加到typesetfilestypesetdemofiles。您可以使用选项来使用自定义安装位置:如果您使用或设置其他输入--texmfhome,则效果最佳。或者您可以像您所说的那样简单地解压然后手动复制。TEXINPUTSauxtrees

相关内容