mirror of
https://github.com/ElegantLaTeX/ElegantBook.git
synced 2026-03-28 02:04:36 +08:00
1. 注意.gitignore 要把 build 文件夹加进来
2. 类似 `\LaTeX{} ` 的 hologo 替换为 `\LaTeX\ `
3. lua 中, 由于使用了 `latexmk`, 则需要设置 `typesetruns` 为 1, 否则默认他给你跑三遍, 浪费时间; `l3build` 官方提供了 specialtypesetting 用户接口, 无需用 `string.match` 这种内部命令; description 等不要断行, 否则 CTAN 收到的也是断行版, 虽然他们会人工干预阻止这一行为.
103 lines
3.3 KiB
Lua
103 lines
3.3 KiB
Lua
--[==========================================[--
|
|
L3BUILD FILE FOR ELEGANTBOOK
|
|
Check PDF File & Directory After Build
|
|
--]==========================================]--
|
|
|
|
--[==========================================[--
|
|
Basic Information
|
|
Do Check Before Upload
|
|
--]==========================================]--
|
|
module = "elegantbook"
|
|
version = "2.60"
|
|
maintainer = "Ran Wang"
|
|
uploader = maintainer
|
|
maintainid = "ElegantLaTeX"
|
|
email = "ranwang.osbert@outlook.com"
|
|
repository = "https://github.com/" .. maintainid .. "/" .. module
|
|
announcement = ""
|
|
note = ""
|
|
summary = "Elegant LaTeX Template for Books"
|
|
description = [[ElegantBook is designed for writing Books. This template is based on the standard LaTeX book class. The goal of this template is to make the writing process more elegant.]]
|
|
|
|
--[==========================================[--
|
|
Build, Pack and Upload To CTAN
|
|
Do not Modify Unless Necessary
|
|
--]==========================================]--
|
|
ctanzip = module
|
|
excludefiles = {"*~"}
|
|
textfiles = {"*.md", "LICENSE", "*.lua", "*.cls", "*.bib"}
|
|
typesetexe = "latexmk -pdf"
|
|
typesetfiles = {module .. "-cn.tex", module .. "-en.tex"}
|
|
typesetopts = "-interaction=nonstopmode"
|
|
typesetsuppfiles = {"*.cls", "*.bib"}
|
|
typesetruns = 1
|
|
imagesuppdir = "image"
|
|
figuresuppdir = "figure"
|
|
specialtypesetting = specialtypesetting or {}
|
|
specialtypesetting[module .. "-cn.tex"] = {cmd = "latexmk -xelatex"}
|
|
|
|
uploadconfig = {
|
|
pkg = module,
|
|
version = version,
|
|
author = maintainer,
|
|
uploader = uploader,
|
|
email = email,
|
|
summary = summary,
|
|
description = description,
|
|
announcement = announcement,
|
|
note = note,
|
|
license = "lppl1.3c",
|
|
ctanPath = "/macros/latex/contrib/" .. module .. "/",
|
|
home = repository,
|
|
support = repository .. "/issues",
|
|
bugtracker = repository .. "/issues",
|
|
repository = repository,
|
|
development = "https://github.com/" .. maintainid,
|
|
update = true
|
|
}
|
|
|
|
function tex(file, dir, cmd)
|
|
dir = dir or "."
|
|
cmd = cmd or typesetexe .. " " .. typesetopts
|
|
return run(dir, cmd .. " " .. file)
|
|
end
|
|
|
|
-- Copy required files into the typeset build dir
|
|
function docinit_hook()
|
|
-- Copy .cls, .bib support files
|
|
for _, glob in pairs(typesetsuppfiles) do
|
|
cp(glob, currentdir, typesetdir)
|
|
end
|
|
-- Copy image subdirectory
|
|
for _, subdir in pairs({imagesuppdir, figuresuppdir}) do
|
|
local dest = typesetdir .. "/" .. subdir
|
|
mkdir(dest)
|
|
cp("*", subdir, dest)
|
|
end
|
|
-- Copy tex source files
|
|
for _, texfile in pairs(typesetfiles) do
|
|
cp(texfile, currentdir, typesetdir)
|
|
end
|
|
return 0
|
|
end
|
|
|
|
-- Pack CTAN directory: cls, bib, tex sources, PDFs, and asset subdirs
|
|
function copyctan()
|
|
local pkgdir = ctandir .. "/" .. ctanpkg
|
|
mkdir(pkgdir)
|
|
for _, glob in pairs(typesetsuppfiles) do
|
|
cp(glob, currentdir, pkgdir)
|
|
end
|
|
for _, texfile in pairs(typesetfiles) do
|
|
cp(texfile, currentdir, pkgdir)
|
|
end
|
|
for _, glob in pairs(pdffiles or {"*.pdf"}) do
|
|
cp(glob, typesetdir, pkgdir)
|
|
end
|
|
for _, subdir in pairs({imagesuppdir, figuresuppdir}) do
|
|
local dest = pkgdir .. "/" .. subdir
|
|
mkdir(dest)
|
|
cp("*", subdir, dest)
|
|
end
|
|
end
|