我想要使用它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 中。