diff options
author | Norbert Preining <norbert@preining.info> | 2021-11-30 03:00:43 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-11-30 03:00:43 +0000 |
commit | 37729ddea335ca0dfe40ada381d05bde37c5ea61 (patch) | |
tree | 960423718ed6c697613f41ab202a79966fef5bf2 /macros/latex/contrib | |
parent | 5bfa628a501938d7d9540f3597b39cb4c2d16d8a (diff) |
CTAN sync 202111300300
Diffstat (limited to 'macros/latex/contrib')
18 files changed, 97 insertions, 46 deletions
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index 2e13fa3db6..c4e52d8a91 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -15,7 +15,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2021/11/28}{1.41A} +\ProvidesExplClass{easybook}{2021/11/28}{1.41B} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -325,7 +325,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2021/11/28}{1.41A} +\ProvidesExplPackage{easybase}{2021/11/28}{1.41B} {Typeset Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -1288,9 +1288,9 @@ lolskip .initial:n = 10pt, main-voffset .skip_set:N = \l__eb_toc_main_voffset_skip, main-voffset .initial:n = \bool_if:NTF \l__eb_class_book_bool { 1pc } { 0.2pc }, - line-align .bool_set:N = \l__eb_toc_line_align_bool, - line-align .default:n = true, - line-align .initial:n = true, + dotalign .bool_set:N = \l__eb_toc_dot_align_bool, + dotalign .default:n = true, + dotalign .initial:n = true, hang .bool_set:N = \eb@titletoc@hang@fix@bool, hang .default:n = true, hang .initial:n = false, @@ -1304,7 +1304,7 @@ \IfBooleanTF{#1} {\thecontentspage} { - \bool_if:NTF \l__eb_toc_line_align_bool + \bool_if:NTF \l__eb_toc_dot_align_bool { \contentspage } { \thecontentspage } } @@ -1513,7 +1513,8 @@ \keys_define:nn { eb/listoc } { section .code:n = \tl_set:Nn \l__eb_toc_type_tl { section }, - chapter .code:n = { }, + chapter .code:n = \tl_set:Nn \l__eb_toc_type_tl { chapter }, + none .code:n = \tl_set:Nn \l__eb_toc_type_tl { none }, article .meta:n = section, book .meta:n = chapter, multoc .int_set:N = \l__eb_toc_columns_int, @@ -1536,31 +1537,40 @@ { \tl_set:Nn \eb@bitoc@title {#2} } } -\cs_new_protected:Npn \eb_title_mark_intoc:n #1 +\cs_new_protected:Npn \eb_toc_type_section_initial: { - \tl_if_eq:NnTF \l__eb_toc_type_tl { chapter } - { \bichapter*{#1}{\eb@bitoc@title} } - { \bisection*{#1}{\eb@bitoc@title} } + \bool_if:NF \l__eb_class_book_bool + { + \tl_if_eq:NnT \l__eb_toc_type_tl { chapter } + { \tl_set:Nn \l__eb_toc_type_tl { section } } + } } -\cs_new_protected:Npn \eb_title_mark_notoc:n #1 +\cs_new_protected:Npn \eb_title_mark_intoc:n #1 { - \tl_if_eq:NnTF \l__eb_toc_type_tl { chapter } + \str_case:Vn \l__eb_toc_type_tl { - \chapter*{\phantomsection #1} - \chaptermark{#1} + { chapter } { \bichapter*{#1}{\eb@bitoc@title} } + { section } { \bisection*{#1}{\eb@bitoc@title} } } + } +\cs_new_protected:Npn \eb_title_mark_notoc:n #1 + { + \str_case:Vn \l__eb_toc_type_tl { - \section*{\phantomsection #1} - \sectionmark{#1} + { chapter } { \chapter*{\phantomsection #1}\chaptermark{#1} } + { section } { \section*{\phantomsection #1}\sectionmark{#1} } } } \cs_new_protected:Npn \eb_title_number_intoc_spec:nn #1#2 { + \eb_toc_type_section_initial: \IfBooleanTF{#1} { - \tl_if_eq:NnTF \l__eb_toc_type_tl { chapter } - { \bichapter{\eb@toc@title}{\eb@bitoc@title} } - { \bisection{\eb@toc@title}{\eb@bitoc@title} } + \str_case:Vn \l__eb_toc_type_tl + { + { chapter } { \bichapter{\eb@toc@title}{\eb@bitoc@title} } + { section } { \bisection{\eb@toc@title}{\eb@bitoc@title} } + } }{ \IfBooleanTF{#2} {\eb_title_mark_notoc:n { \eb@toc@title }} @@ -1584,13 +1594,18 @@ } { \@starttoc{#1} } } +\cs_new_protected:Npn \eb_toc_if_title_voffset:n #1 + { + \tl_if_eq:NnF \l__eb_toc_type_tl { none } + { \vspace*{-\dim_use:c { l__eb_toc_#1_voffset_skip }} } + } \cs_new_protected:Npn \eb_toc_list_parse:nnnnn #1#2#3#4#5 { \group_begin: \tl_set_eq:Nc \eb@toc@title { list#4name } \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}} \eb_title_number_intoc_spec:nn {#2} {#1} - \vspace*{-\dim_use:c { l__eb_toc_#4_voffset_skip }} + \eb_toc_if_title_voffset:n {#4} \eb_toc_start_multi_column_ext:n {#5} \group_end: } @@ -1613,13 +1628,14 @@ \tl_set_eq:NN \eb@toc@title \contentsname \tl_set:Nn \eb@bitoc@title { Contents } \IfValueT{#2}{\keys_set:nn { eb/listoc } {#2}} + \eb_toc_type_section_initial: \eb_title_mark_notoc:n { \eb@toc@title } - \vspace*{-\dim_use:N \l__eb_toc_main_voffset_skip} + \eb_toc_if_title_voffset:n { main } \eb_toc_start_multi_column_ext:n { toc }#3 \IfBooleanT{#1} { \eb_title_mark_notoc:n { \eb@bitoc@title } - \vspace*{-\dim_use:N \l__eb_toc_main_voffset_skip} + \eb_toc_if_title_voffset:n { main } \eb_toc_start_multi_column_ext:n { tec } } \group_end: @@ -2381,7 +2397,7 @@ } %</package> %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2021/11/28}{1.41A} +\ProvidesExplFile{eb-tcolorbox.cfg}{2021/11/28}{1.41B} {Customization of tcolorbox for easybook} \cs_set_protected:Npn \setexercise #1 diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf Binary files differindex 9ef9511eae..45d99e1141 100644 --- a/macros/latex/contrib/easybook/easybook.pdf +++ b/macros/latex/contrib/easybook/easybook.pdf diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex index 1289434785..168e49d8e4 100644 --- a/macros/latex/contrib/easybook/easybook.tex +++ b/macros/latex/contrib/easybook/easybook.tex @@ -20,7 +20,7 @@ name = easybook, color-scheme = blue, title = EASYBOOK 使用手册, - version = v1.41A, + version = v1.41B, date = 2021/11/28, authors = 瞿毅, info = 排版简体中文学位论文和书籍, @@ -305,6 +305,8 @@ 使当前目录标题按照 \code{chapter} 章级别输出。 \opt{section}\Default! 使当前目录标题按照 \code{section} 节级别输出。 + \opt{none}\Default! + 使当前目录没有 \code{chapter} 或 \code{section} 级别的标题,仅输出目录原始内容。 \keyval-{multoc}{整数}\Default{2} 与 \module*{style} 模块的 \option{multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同类型目录的排版栏数。\meta{整数} 为目录栏数,不指定栏数值则默认为双栏。 \kvsplit{title}{中文目录标题,英文目录标题}\newline @@ -826,8 +828,8 @@ 图片、表格或代码目录标题下方的间距补偿,一般为正值,用于抵消目录中首行的额外垂直间距。路径为 \module*{figure}、\module*{table} 和 \module*{lstlisting},或者用 \module*{list} 路径统一设置。 \keyval-{main-voffset}{弹性长度} 文档主目录标题下方的间距补偿,一般为正值,用于抵消目录中首行的额外垂直间距。 - \keybool{line-align}\Default{true} - 引导线选项 \option{line-align} 可以使目录引导线右边对齐并与页码保持一定间隙,否则会与页码连接。 + \keybool{dotalign}\Default{true} + 引导线选项 \option{dotalign} 可以使目录引导线右边对齐并与页码保持一定间隙,否则会与页码连接。 \keyval-{tocafter-all}{距离命令}\Default{\cs*{hspace}\Carg{1em}} 统一设置所有级别在目录中标签与标题间的代码。 \keyval-{tocindent-all}{刚性长度} diff --git a/macros/latex/contrib/l3build/CHANGELOG.md b/macros/latex/contrib/l3build/CHANGELOG.md index 5834851339..edb288f555 100644 --- a/macros/latex/contrib/l3build/CHANGELOG.md +++ b/macros/latex/contrib/l3build/CHANGELOG.md @@ -7,8 +7,25 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2021-11-29] + +### Changed +- Documentation improvements +- Use `checkengines[1]` as the default for `stdengine` +- Add sanity check for `TEXMFHOME` value +- Double \ when writing the curl options, so that \ + does not need to be doubled in note and announcement texts. + +### Fixed +- Installation of files when using MiKTeX (see #125) +- Incorrect line in `manifest` target (see #195) +- Placement of PDF files in subdirectory locations (issue #209) +- Detection of engine-specific tlg files for non-standard LuaTeX based engines (issues #214) + ## [2021-11-24] +- Always typeset in `typesetdir` (fixes #210) + ## [2021-11-12] ### Changed @@ -521,7 +538,8 @@ this project uses date-based 'snapshot' version identifiers. - Rationalise short option names: removed `-d`, `-E`, `-r` - Target `cmdcheck`: specific to LaTeX kernel work -[Unreleased]: https://github.com/latex3/l3build/compare/2021-11-24...HEAD +[Unreleased]: https://github.com/latex3/l3build/compare/2021-11-29...HEAD +[2021-11-29]: https://github.com/latex3/l3build/compare/2021-11-24...2021-11-29 [2021-11-24]: https://github.com/latex3/l3build/compare/2021-11-12...2021-11-24 [2021-11-12]: https://github.com/latex3/l3build/compare/2021-08-28...2021-11-12 [2021-08-28]: https://github.com/latex3/l3build/compare/2021-08-27...2021-08-28 diff --git a/macros/latex/contrib/l3build/README.md b/macros/latex/contrib/l3build/README.md index de540162dd..ef9f7e9b24 100644 --- a/macros/latex/contrib/l3build/README.md +++ b/macros/latex/contrib/l3build/README.md @@ -1,7 +1,7 @@ l3build: a testing and building system for LaTeX ================================================= -Release 2021-11-24 +Release 2021-11-29 Overview -------- diff --git a/macros/latex/contrib/l3build/l3build-arguments.lua b/macros/latex/contrib/l3build/l3build-arguments.lua index 470290db56..fdabb9d949 100644 --- a/macros/latex/contrib/l3build/l3build-arguments.lua +++ b/macros/latex/contrib/l3build/l3build-arguments.lua @@ -136,7 +136,7 @@ option_list = }, ["show-log-on-error"] = { - desc = "If 'halt-on-error' stops, show the full log of the failure", + desc = "Show the full log of the failure with 'halt-on-error'", type = "boolean" }, ["show-saves"] = diff --git a/macros/latex/contrib/l3build/l3build-check.lua b/macros/latex/contrib/l3build/l3build-check.lua index 3e8089970a..249b22164a 100644 --- a/macros/latex/contrib/l3build/l3build-check.lua +++ b/macros/latex/contrib/l3build/l3build-check.lua @@ -684,9 +684,9 @@ function compare_tlg(difffile, tlgfile, logfile, cleanup, name, engine) local errorlevel local testname = name .. "." .. engine -- Do additional log formatting if the engine is LuaTeX, there is no - -- LuaTeX-specific .tlg file and the default engine is not LuaTeX + -- engine-specific .tlg file and the default engine is not LuaTeX if (match(engine,"^lua") or match(engine,"^harf")) - and not match(tlgfile, "%.luatex" .. "%" .. tlgext) + and not match(tlgfile, "%." .. engine .. "%" .. tlgext) and not match(stdengine,"^lua") then local lualogfile = logfile diff --git a/macros/latex/contrib/l3build/l3build-file-functions.lua b/macros/latex/contrib/l3build/l3build-file-functions.lua index 1fc9e1d47a..4aa591dd50 100644 --- a/macros/latex/contrib/l3build/l3build-file-functions.lua +++ b/macros/latex/contrib/l3build/l3build-file-functions.lua @@ -177,7 +177,7 @@ function abspath(path) if ok then local result = currentdir() chdir(oldpwd) - return escapepath(gsub(result, "\\", "/")) + return escapepath(gsub(gsub(result,"^\\\\%?\\",""), "\\", "/")) end error(msg) end diff --git a/macros/latex/contrib/l3build/l3build-help.lua b/macros/latex/contrib/l3build/l3build-help.lua index 2e7d776a73..137fc040c5 100644 --- a/macros/latex/contrib/l3build/l3build-help.lua +++ b/macros/latex/contrib/l3build/l3build-help.lua @@ -32,7 +32,7 @@ function version() "\n" .. "l3build: A testing and building system for LaTeX\n\n" .. "Release " .. release_date .. "\n" .. - "Copyright (C) 2014-2020 The LaTeX Project" + "Copyright (C) 2014-2021 The LaTeX Project" ) end diff --git a/macros/latex/contrib/l3build/l3build-install.lua b/macros/latex/contrib/l3build/l3build-install.lua index 21257aad0d..78fe2d4b2f 100644 --- a/macros/latex/contrib/l3build/l3build-install.lua +++ b/macros/latex/contrib/l3build/l3build-install.lua @@ -38,6 +38,10 @@ local insert = table.insert local function gethome() set_program("latex") local result = options["texmfhome"] or var_value("TEXMFHOME") + if not result or result == "" or match(result, os_pathsep) then + print("Ambiguous TEXMFHOME setting: please use the --texmfhome option") + os.exit(1) + end mkdir(result) return abspath(result) end diff --git a/macros/latex/contrib/l3build/l3build-manifest-setup.lua b/macros/latex/contrib/l3build/l3build-manifest-setup.lua index f7051dac5c..e74e667394 100644 --- a/macros/latex/contrib/l3build/l3build-manifest-setup.lua +++ b/macros/latex/contrib/l3build/l3build-manifest-setup.lua @@ -243,7 +243,7 @@ function manifest_write_opening(filehandle) filehandle:write("# Manifest for " .. module .. "\n\n") filehandle:write([[ This file is a listing of all files considered to be part of this package. -It is automatically generated with `texlua build.lua manifest`. +It is automatically generated with `l3build manifest`. ]]) end diff --git a/macros/latex/contrib/l3build/l3build-typesetting.lua b/macros/latex/contrib/l3build/l3build-typesetting.lua index 1d44a2bc08..d6d3981d7b 100644 --- a/macros/latex/contrib/l3build/l3build-typesetting.lua +++ b/macros/latex/contrib/l3build/l3build-typesetting.lua @@ -141,9 +141,7 @@ local function typesetpdf(file,dir) print(" ! Compilation failed") return errorlevel end - local pdfname = name .. pdfext - rm(docfiledir,pdfname) - return cp(pdfname,dir,docfiledir) + return 0 end function typeset(file,dir,exe) @@ -211,7 +209,8 @@ function doc(files) local done = {} for _,typesetfiles in ipairs({typesetdemofiles,typesetfiles}) do for _,glob in pairs(typesetfiles) do - for _,p in ipairs(tree(typesetdir,glob)) do + local destpath,globstub = splitpath(glob) + for _,p in ipairs(tree(typesetdir,globstub)) do local path,srcname = splitpath(p.cwd) local name = jobname(srcname) if not done[name] then @@ -233,6 +232,9 @@ function doc(files) return errorlevel else done[name] = true + local pdfname = jobname(srcname) .. pdfext + rm(pdfname,destpath) + cp(pdfname,path,destpath) end end end diff --git a/macros/latex/contrib/l3build/l3build-upload.lua b/macros/latex/contrib/l3build/l3build-upload.lua index be814ce5ae..4b3aa7aea6 100644 --- a/macros/latex/contrib/l3build/l3build-upload.lua +++ b/macros/latex/contrib/l3build/l3build-upload.lua @@ -319,6 +319,7 @@ function ctan_single_field(fname,fvalue,max,desc,mandatory) if (max > 0 and len(vs) > max) then error("The field " .. fname .. " is longer than " .. max) end + vs = vs:gsub('\\','\\\\') vs = vs:gsub('"','\\"') vs = vs:gsub('`','\\`') vs = vs:gsub('\n','\\n') diff --git a/macros/latex/contrib/l3build/l3build-variables.lua b/macros/latex/contrib/l3build/l3build-variables.lua index 9f2b25b8d2..d78c39c92f 100644 --- a/macros/latex/contrib/l3build/l3build-variables.lua +++ b/macros/latex/contrib/l3build/l3build-variables.lua @@ -133,7 +133,7 @@ if not string.find(status.banner,"2019") then {luatex = {binary="luahbtex",format = "lualatex-dev"}} end -stdengine = stdengine or "pdftex" +stdengine = stdengine or checkengines[1] or "pdftex" -- The tests themselves includetests = includetests or {"*"} diff --git a/macros/latex/contrib/l3build/l3build.1 b/macros/latex/contrib/l3build/l3build.1 index 5cf404fdf0..48aa33a92e 100644 --- a/macros/latex/contrib/l3build/l3build.1 +++ b/macros/latex/contrib/l3build/l3build.1 @@ -1,4 +1,4 @@ -.TH l3build 1 "2021-11-24" +.TH l3build 1 "2021-11-29" .SH NAME l3build \- Checking and building packages .SH SYNOPSIS diff --git a/macros/latex/contrib/l3build/l3build.dtx b/macros/latex/contrib/l3build/l3build.dtx index 88cb82e0d4..cf3ebd8cd5 100644 --- a/macros/latex/contrib/l3build/l3build.dtx +++ b/macros/latex/contrib/l3build/l3build.dtx @@ -236,7 +236,7 @@ % }^^A % } % -% \date{Released 2021-11-24} +% \date{Released 2021-11-29} % % \maketitle % \tableofcontents @@ -1525,7 +1525,8 @@ % \meta{package}|-ctan.curlopt|. This is then passed to curl using its % |--config| commandline option. (Using an intermediate file helps % keep \pkg{l3build} portable between systems using different -% commandline quoting conventions.) +% commandline quoting conventions. Any backslashes are doubled when writing +% to this file, so they do not need to be doubled in announcement and note texts.) % % By default the file is written into the current directory alongside % the zip file to be uploaded. You may wish to specify that this file @@ -1858,7 +1859,7 @@ % % \subsection{Typesetting functions} % -% All typetting functions return $0$ on a successful completion. +% All typesetting functions return $0$ on a successful completion. % % \begin{function}{biber()} % \begin{syntax} @@ -1905,7 +1906,7 @@ % when creating non-standard typesetting steps. % \end{function} % -% \subsection{Customising the target list} +% \subsection{Customising the target and option lists} % % The targets known to \pkg{l3build} are stored in the global table % |target_list|. Each entry should have at least a |func|, pointing to the @@ -1924,6 +1925,13 @@ % \end{itemize} % The functions |func|, |bundle_func| and |pre| must return 0 on success. % +% The list of options (switches) is controlled by the |option_list| table. +% The name of each entry in the table is the \enquote{long} version of the +% option. Each entry requires a |type|, one of |boolean|, |string| or +% |table|. As for targets, each entry should have a |desc| to construct +% the |help()|. It is also possible to provide a |short| name for the option: +% this should be a single letter. +% % \subsection{Customising the manifest file} % \label{sec:manifest} % diff --git a/macros/latex/contrib/l3build/l3build.lua b/macros/latex/contrib/l3build/l3build.lua index 993e5863a9..09a70942c6 100755 --- a/macros/latex/contrib/l3build/l3build.lua +++ b/macros/latex/contrib/l3build/l3build.lua @@ -25,7 +25,7 @@ for those people who are interested. --]] -- Version information -release_date = "2021-11-24" +release_date = "2021-11-29" -- File operations are aided by the LuaFileSystem module local lfs = require("lfs") diff --git a/macros/latex/contrib/l3build/l3build.pdf b/macros/latex/contrib/l3build/l3build.pdf Binary files differindex 06ff54ce90..a5795862b5 100644 --- a/macros/latex/contrib/l3build/l3build.pdf +++ b/macros/latex/contrib/l3build/l3build.pdf |