From a090105758cdab68b58246a8aea7cb79dc168501 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 27 Jun 2021 03:01:41 +0000 Subject: CTAN sync 202106270301 --- support/arara/README.md | 2 +- support/arara/doc/arara-manual.pdf | Bin 1962631 -> 1976977 bytes support/arara/doc/arara-quickstart.pdf | Bin 245754 -> 253135 bytes support/arara/doc/arara.1 | 2 +- support/arara/doc/version.tex | 2 +- support/ctanbib/README.md | 2 +- support/ctanbib/ctanbib | 110 ++++++++++++++++++--------------- support/ctanbib/ctanbib-doc.pdf | Bin 35575 -> 35307 bytes support/ctanbib/ctanbib-doc.tex | 62 +++++++++++++------ 9 files changed, 107 insertions(+), 73 deletions(-) (limited to 'support') diff --git a/support/arara/README.md b/support/arara/README.md index 2f86065827..41675e89a9 100644 --- a/support/arara/README.md +++ b/support/arara/README.md @@ -1,6 +1,6 @@ ![arara](https://i.stack.imgur.com/hjUsN.png) -# arara v6.1.0 +# arara v6.1.1 ![Language: Kotlin](https://img.shields.io/badge/Language-Kotlin-blue.svg?style=flat-square) ![Minimum JRE: 8.0](https://img.shields.io/badge/Minimum_JRE-8-blue.svg?style=flat-square) diff --git a/support/arara/doc/arara-manual.pdf b/support/arara/doc/arara-manual.pdf index 342ebace9d..650404820f 100644 Binary files a/support/arara/doc/arara-manual.pdf and b/support/arara/doc/arara-manual.pdf differ diff --git a/support/arara/doc/arara-quickstart.pdf b/support/arara/doc/arara-quickstart.pdf index 315dc0d4fa..f6ced644cb 100644 Binary files a/support/arara/doc/arara-quickstart.pdf and b/support/arara/doc/arara-quickstart.pdf differ diff --git a/support/arara/doc/arara.1 b/support/arara/doc/arara.1 index 08960a6576..ac6c678ec2 100644 --- a/support/arara/doc/arara.1 +++ b/support/arara/doc/arara.1 @@ -1,4 +1,4 @@ -.TH ARARA 1 "04 April 2021" "v6.1.0" +.TH ARARA 1 "26 June 2021" "v6.1.1" .SH NAME arara \- a TeX automation tool based on rules and directives. .SH SYNOPSIS diff --git a/support/arara/doc/version.tex b/support/arara/doc/version.tex index 358e78e607..132c6def58 100644 --- a/support/arara/doc/version.tex +++ b/support/arara/doc/version.tex @@ -1 +1 @@ -6.1.0 \ No newline at end of file +6.1.1 \ No newline at end of file diff --git a/support/ctanbib/README.md b/support/ctanbib/README.md index 263cd82a1a..a6147f125d 100644 --- a/support/ctanbib/README.md +++ b/support/ctanbib/README.md @@ -10,7 +10,7 @@ This script can generate BibTeX records for LaTeX packages hosted on CTAN. More details can be found on [TeX.sx](https://tex.stackexchange.com/a/200856/2891) -Copyright: 2019 Michal Hoftich +Copyright: 2021 Michal Hoftich This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 diff --git a/support/ctanbib/ctanbib b/support/ctanbib/ctanbib index a16976acdc..f54e1691ca 100755 --- a/support/ctanbib/ctanbib +++ b/support/ctanbib/ctanbib @@ -1,7 +1,7 @@ #!/usr/bin/env texlua kpse.set_program_name("luatex") -- ctanbib -- export ctan entries to bib format --- Copyright: Michal Hoftich (2014-2018) +-- Copyright: Michal Hoftich (2014-2021) -- -- This work may be distributed and/or modified under the -- conditions of the LaTeX Project Public License, either version 1.3 @@ -15,40 +15,48 @@ kpse.set_program_name("luatex") -- -- The Current Maintainer of this work is Michal Hoftich +local lapp = require "lapp-mk4" + local bibtype = "manual" local pkgurl = false -if #arg < 1 or arg[1]=="--help" or arg[1]=="-h" then - print([[ctanbib - convert ctan package information to bibtex format +local msg = [[ctanbib - convert ctan package information to bibtex format Usage: -ctanbib [options] +ctanbib [options] name1 name2 ... Available options: - -c,--ctan Use @ctan type instead of @manual and long url - -C,--CTAN Use @ctan type and short ... /pkg/url + -c,--ctan Use CTAN URL instead of the package homepage + -e,--entrytype (default manual) Change entry type -h,--help Print this message -v,--version Print version info - ]]) + ]] +local args = lapp(msg) +if args.help then + print(msg) os.exit(0) -elseif arg[1]=="--version" or arg[1]=="-v" then - print "ctanbib version 0.1e" +elseif args.version then + print "ctanbib version 0.2" os.exit(0) -elseif arg[1]=="--ctan" or arg[1]=="-c" then - table.remove(arg, 1) - bibtype = "ctan" -elseif arg[1]=="--CTAN" or arg[1]=="-C" then - table.remove(arg, 1) - bibtype = "ctan" +elseif args.ctan then pkgurl = true end -local pkgname = arg[1] +-- manual is set by default in --entrytype, we don't want it to override the --ctan option +if args.entrytype~="manual" then + bibtype = args.entrytype +end + + + + +local pkgname = args[1] if not pkgname then print "[ctanbib] Error: missing package name" + print(msg) os.exit(1) end -local url = "https://ctan.org/xml/2.0/pkg/" .. pkgname .. "?author-name=true" local authors_url = "https://ctan.org/xml/2.0/authors" +local license_url = "http://www.ctan.org/xml/2.0/licenses" -- change that for different title scheme local titleformat = "The %s package" @@ -61,7 +69,7 @@ author = {$author}, url = {$url}, urldate = {$urldate}, date = {$date}, -version = {$version} +version = {$version}, } ]] @@ -77,7 +85,7 @@ local load_xml = function(url) if string.len(info) == 0 then return false end - return dom.parse(info) + return dom.parse(info ), info end local bibtex_escape = function(a) @@ -149,8 +157,13 @@ local get_title = function(record) return string.format(titleformat, bibtex_escape(title)) end +local function verify_record(record) + -- verify that we found a package + if not record then return false end + return #record:query_selector("name") > 0 +end -local get_url = function(record) +local get_url = function(record,pkgname) local home = record:query_selector("home")[1] if home then return home:get_attribute("href") end return "https://ctan.org/pkg/"..pkgname @@ -169,12 +182,8 @@ local get_version = function(record) end end -local ctan_url = function(record) - local ctan = record:query_selector("ctan")[1] - -- some package don't contain the CTAN path - if not ctan then return get_url(record) end - local path = ctan:get_attribute("path") - return path +local ctan_url = function(record, pkgname) + return "https://ctan.org/pkg/"..pkgname end @@ -184,32 +193,35 @@ local compile = function(template, records) end) end -local record = load_xml(url) +for _, pkgname in ipairs(args) do + local url = "https://ctan.org/xml/2.0/pkg/" .. pkgname .. "?author-name=true" + local record, info = load_xml(url) -if not record then - print("Cannot find entry for package "..pkgname) - os.exit(1) -end + if not verify_record(record) then + print("% Cannot find entry for package "..pkgname) + break + end --- root element is also saved, so we use this trick --- local record = entry.entry + -- root element is also saved, so we use this trick + -- local record = entry.entry -local e = {} + local e = {} -e.author = get_authors(record:query_selector("authorref")) -e.package = pkgname -e.title = get_title(record) -e.subtitle = get_caption(record) -e.url = get_url(record) --- use the CTAN path as url for the CTAN type -if (bibtype == "ctan") and not pkgurl then - e.url = ctan_url(record) -end -e.version, e.date = get_version(record) -e.urldate = os.date("%Y-%m-%d") + e.author = get_authors(record:query_selector("authorref")) + e.package = pkgname + e.title = get_title(record) + e.subtitle = get_caption(record) + e.url = get_url(record, pkgname) + -- use the CTAN path as url for the CTAN type + if pkgurl then + e.url = ctan_url(record, pkgname) + end + e.version, e.date = get_version(record) + e.urldate = os.date("%Y-%m-%d") -local result = compile(bibtexformat, e) --- update the bibliography type -result = result:gsub("^@manual", "@" .. bibtype) + local result = compile(bibtexformat, e) + -- update the bibliography type + result = result:gsub("^@manual", "@" .. bibtype) -print(result) + print(result) +end diff --git a/support/ctanbib/ctanbib-doc.pdf b/support/ctanbib/ctanbib-doc.pdf index ec58084d27..1fb514277c 100644 Binary files a/support/ctanbib/ctanbib-doc.pdf and b/support/ctanbib/ctanbib-doc.pdf differ diff --git a/support/ctanbib/ctanbib-doc.tex b/support/ctanbib/ctanbib-doc.tex index 89b99279b5..c9d2a96abe 100644 --- a/support/ctanbib/ctanbib-doc.tex +++ b/support/ctanbib/ctanbib-doc.tex @@ -25,7 +25,11 @@ This package provides script named \package{ctanbib} which can be used for retri It can be used in the following way: -\noindent\package{ctanbib [options] $\langle$packagename$\rangle$ > filename.bib} +\medskip + +\noindent\package{ctanbib [options] $\langle$packagename1$\rangle$ \ldots\ $\langle$packagenameX$\rangle$ > filename.bib} + +\medskip The \texttt{curl} utility needs to be installed on the user's system in order to support the package info download. @@ -33,10 +37,8 @@ The \texttt{curl} utility needs to be installed on the user's system in order to \section{Available options} \begin{description} - \item[-c,-\/-ctan] use the \texttt{@ctan} type instead of \texttt{@manual}. - The difference between the two is that the url field contains packages CTAN - path, instead of a link to the package. - \item[-C,-\/-CTAN] like \verb|--ctan| option, but use original url instead of CTAN path. + \item[-c,-\/-ctan] use the CTAN package entry as package URL instead of URL provided by the package. + \item[-e,-\/-entrypoint] explicitly set the Bib\TeX\ entry type. \item[-h,-\/-help] print the help message. \item[-v,-\/-version] print the version info. \end{description} @@ -55,31 +57,44 @@ ctanbib latex @manual{latex, title = {The Latex package}, subtitle = {A TeX macro package that defines LaTeX}, -author = {Lamport, Leslie and The LaTeX Team}, +author = {{The LaTeX Team} and Lamport, Leslie}, url = {http://www.latex-project.org/}, -urldate = {2018-08-23}, -date = {2018-04-01}, -version = {PL 5} +urldate = {2021-06-26}, +date = {}, +version = {2021-06-01}, } \end{verbatim} -The \texttt{--ctan} option: +\noindent The \texttt{--ctan} option: \begin{verbatim} -ctanbib -c hyperref +ctanbib -c latex \end{verbatim} -\noindent This produces a bib record with the \texttt{@ctan} type: +\noindent This produces a bib record that uses the CTAN package entry for the URL, +instead of the original package URL. + \begin{verbatim} -@ctan{hyperref, -title = {The Hyperref package}, -subtitle = {Extensive support for hypertext in LaTeX}, -author = {Rahtz, Sebastian and Oberdiek, Heiko}, -url = {/macros/latex/contrib/hyperref}, -urldate = {2018-08-27}, -date = {}, -version = {6.86b} +@manual{latex, +title = {The Latex package}, +... +url = {https://ctan.org/pkg/latex}, +... +} +\end{verbatim} + +\noindent The \texttt{--entrytype} option: + +\begin{verbatim} +ctanbib -e ctan latex +\end{verbatim} + +\noindent It selects different entry type for the record: + +\begin{verbatim} +@ctan{latex, +... } \end{verbatim} @@ -100,6 +115,13 @@ it's eventual release on CTAN. Herbert Voss added the \verb|--CTAN| option. \section{Changelog} \begin{changelog} + \change{2021-06-26}{Version 0.2 released} + \change{2021-06-26}{Removed the \verb|--CTAN| option, entry type can be set using \verb|--entrytype| and CTAN URL is requested using \verb|--ctan|} + \change{2021-06-26}{Added \verb|--entrytype| option for explicit specification of the Bib\TeX\ entry type} + \change{2021-06-26}{Fixed package name verification} + \change{2021-06-26}{Added support for multiple package names} + \change{2021-06-26}{Print \verb|https://www.ctan.org/pkg/| with the \texttt{-c} option} + \change{2021-06-20}{Version 0.1e released} \change{2021-06-20}{Added \verb|--CTAN| option, thanks to Herbert Voss} \change{2019-12-23}{Don't return non-zero exit codes for non-error runs} \change{2019-12-23}{Test for the packagename with the \texttt{-c} option} -- cgit v1.2.3