\documentclass[11pt]{ltxdoc} \newcommand\package[1]{\texttt{#1}} \usepackage{longtable} \usepackage{tabularx} \newenvironment{changelog}{\longtable{@{} l p{30em}}}{\endlongtable} \newcommand\change[2]{#1 & #2\\} \title{The \texttt{ctanbib} package} \author{Michal Hoftich\\\href{mailto:michal.h21@gmail.com}{michal.h21@gmail.com}} \date{\gitdate, version \gitversion} \usepackage{hyperref} \usepackage{fontspec} \setmainfont{TeX Gyre Schola} \setmonofont[Scale=MatchLowercase]{Inconsolatazi4} \usepackage{microtype} \begin{document} \maketitle \section{Introduction} This package provides script named \package{ctanbib} which can be used for retrieving of the bibliographic information for packages hosted on CTAN. It looks up the Catalogue entry for each PKGNAME on CTAN (at \url{https://ctan.org/xml/2.0/pkg/PKGNAME}), and convert relevant information to a BibTeX entry. By default, the url field in the output entry is the package's home field value if that is specified in the Catalogue entry; if it isn't, \url{https://ctan.org/pkg/PKGNAME is used}. \section{Usage} It can be used in the following way: \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. \section{Available options} \begin{description} \item[-c,-\/-ctan] always use CTAN /pkg/ url instead of the package homepage \item[-C,-\/-ctanpath] use the package's CTAN path as url (e.g.: /support/ctanbib) \item[-e,-\/-entrypoint] explicitly set the Bib\TeX\ entry type. \item[-h,-\/-help] print the help message. \item[-p,-\/-pkgname] wrap the package name in a \verb|\ctanbibpkgname| command. \item[-v,-\/-version] print the version info. \end{description} \section{Examples} \begin{verbatim} ctanbib latex \end{verbatim} \noindent This invocation will print data in the Bib(La)\TeX\ format to the standard output: \begin{verbatim} @manual{latex, title = {The latex package}, subtitle = {A TeX macro package that defines LaTeX}, author = {{The LaTeX Team} and Lamport, Leslie}, url = {http://www.latex-project.org/}, urldate = {2021-06-26}, date = {}, version = {2021-06-01}, } \end{verbatim} \noindent The \texttt{--ctan} option: \begin{verbatim} ctanbib -c latex \end{verbatim} \noindent This produces a bib record that uses the CTAN package entry for the URL, instead of the original package URL. \begin{verbatim} @manual{latex, title = {The latex package}, ... url = {https://ctan.org/pkg/latex}, ... } \end{verbatim} \noindent The \texttt{--ctanpath} option: \begin{verbatim} ctanbib -C biblatex \end{verbatim} \noindent This produces a bib record that uses the CTAN package tree location for the URL. \begin{verbatim} @manual{biblatex, ... url = {/macros/latex/contrib/biblatex}, ... } \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} \noindent The \texttt{--pkgname} option: \begin{verbatim} ctanbib -p latex \end{verbatim} \noindent Puts the package name into the \verb|\ctanbibpkgname| command, which can be redefined by user to produce a special formatting of the name: \begin{verbatim} @preamble{ "\providecommand\ctanbibpkgname[1]{\textsl{#1}}" } @manual{latex, title = {The \ctanbibpkgname{latex} package}, ... } \end{verbatim} \section{License} Permission is granted to copy, distribute and/or modify this software under the terms of the \LaTeX\ Project Public License, version 1.3. \section{Acknowledgements} This package was created thanks to TeX.sx user Daniel\footnote{\url{https://tex.stackexchange.com/users/3751/daniel}}. Lukas C.~Bossert had useful comments which led to update of the original script and it's eventual release on CTAN. Herbert Voss added the \verb|--CTAN| option. Karl Berry and Boris Veytsman suggested addition of the \verb|--pkgname| option and leaving package names uncapitalized. \newpage \section{Changelog} \begin{changelog} \change{2023-10-25}{Version 0.2d released} \change{2023-10-20}{Sort authors alphabetically} \change{2023-10-19}{Updated the \verb|--help| message} \change{2023-10-16}{Use larger font in the documentation} \change{2023-10-16}{Indent the Bib\TeX\ entry by two spaces} \change{2023-10-08}{Get date from the copyright field if we cannot retrieve it from version} \change{2023-09-18}{Version 0.2c released} \change{2023-09-14}{Renamed the \verb|--tugboat| option to \verb|--pkgname|} \change{2023-09-12}{Don't capitalize package names} \change{2023-09-12}{Added the \verb|--tugboat| option for creation of records suitable for the TUGboat journal} \change{2023-02-20}{Verson 0.2b released} \change{2023-02-20}{Use \verb|--ssl-no-revoke| option for Curl, to prevent SSL certificate errors} \change{2023-02-20}{Better handling of errors in package info downloading} \change{2023-02-20}{Fixed link to the author mail address} \change{2021-06-29}{Version 0.2a released} \change{2021-06-29}{Added the \verb|--ctanpath| option.} \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} \change{2019-09-21}{Try to find the author in full CTAN author list if the author cannot be found in the package info} \change{2019-09-16}{Use the CTAN API 2.0 to fetch the package info} \change{2019-05-04}{Version 0.1c released} \change{2019-05-04}{Use the \texttt{curl} command to download the package info} \change{2019-05-04}{Added information about the need to have the \texttt{curl} command installed} \change{2019-03-11}{Version 0.1b released} \change{2018-09-10}{Added support for institutional names} \change{2018-09-10}{Escape TeX commands in the title and subtitle} \change{2018-08-29}{Added man page} \change{2018-08-27}{Added --ctan option} \change{2018-08-23}{Version 0.1 released.} \change{2018-08-23}{Created documentation.} \change{2018-08-21}{Rewrote the script to use the DOM api provided by LuaXML. This provides greater flexibility in the XML processing.} \change{2018-08-20}{Fixed the script for the current XML format provided by CTAN.} \change{2014-09-12}{Initial version of the script have been released in answer on TeX.sx\footnote{\url{https://tex.stackexchange.com/a/200856/2891}}.} \end{changelog} \end{document}