文件布局

文件布局

我想要使​​用它l3build来构建和打包 TrueType/OpenType 字体的支持包。

文件布局

truetype/MyFont.ttf
build.lua
my-font-package.dtx
my-font-package.ins

文件内容

build.lua

-- Identify the bundle and module
bundle = ""
module = "my-font-package"

-- Typeset only the .tex files
typesetfile = {"*.tex"}

-- Sources files
sourcefiles =
  {
    "my-font-package.dtx",
    "my-font-package.ins",
    "truetype/MyFont.ttf",
  }

installfiles = {"*.sty", "*.ttf"}

-- Use LuaLaTeX for compiling
typesetexe = "lualatex"

my-font-package.dtx

% \iffalse meta-comment
%
% My font package
%
%<*driver>
\documentclass{l3doc}
\begin{document}
  \DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
%
% \title{^^A
%   \pkg{my-font-package}^^A
% }
%
% \author{^^A
%   Stephan Lukasczyk^^A
% }
%
% \begin{documentation}
%
% \end{documentation}
%
% \clearpage
%
% \begin{implementation}
%
% Start the \pkg{DocStrip} guards.
%    \begin{macrocode}
%<*package>
%    \end{macrocode}
% Identify the package and give the overall version information.
%    \begin{macrocode}
\ProvidesExplPackage {my-font-package} {2023-09-08} {0.1}
  {My font package}
%    \end{macrocode}
%
%    \begin{macrocode}
%</package>
%    \end{macrocode}
%
% \end{implementation}
%
% \PrintIndex

my-font-package.ins

\iffalse meta-comment

My font package

\fi

\input docstrip.tex
\askforoverwritefalse

\preamble

My font package

\endpreamble
\nopostamble

\keepsilent

\generate
  {%
    \file{my-font-package.sty}
      {%
        \from{my-font-package.dtx}{package}
      }
  }

\endbatchfile

truetype/MyFont.ttf

的内容truetype/MyFont.ttf并不重要,只需要文件和文件夹存在,因此,执行mkdir truetype; touch truetype/MyFont.ttf就足以在 Linux/macOS 机器上创建它。

问题/疑问

当我运行l3build(例如使用l3build ctan)时,它会为文件夹内的包和文档产生不错的结果build,正如人们所期望的那样。但是,MyFont.ttf不是该树的一部分。

因此,我的问题是,我如何配置l3build以将*.ttf文件包含到构建中并放入适当的位置,以便我可以将包发送到 CTAN 或使用它在本地安装l3build install

编辑:虽然回答@Niranjan 为我提供了一种将*.ttf文件包含到构建结果中的方法,我更希望以某种符合 TDS 的方式拥有它,即文件应该导致某个fonts目录(也许fonts/truetype/my-font-package/*.ttf,如果我正确理解了 TDS)。 l3build install例如,还应该将它们安装在正确的位置。

答案1

开箱即用,l3build了解一些常见的 TDS 位置。您可以使用表格添加更多位置tdslocations,例如

tdslocations =
  {
    "fonts/truetype/my-font-package/*.ttf"
  }

或者如果你想让它更通用:

tdslocations =
  {
    "fonts/truetype/" .. module .. "/" .. "*.ttf"
  }

sourcefiles和的标准设置installfiles不包含*.ttf,因此这里还需要或其某些变体(以处理附加目录)。

答案2

需要使用docfiles参数,可以添加如下内容:

docfiles     = { "truetype/*.ttf" }

这会将 .ttf 文件正确地添加到 zip 中。

相关内容