summaryrefslogtreecommitdiff
path: root/support/ctanbib/ctanbib-doc.tex
blob: c13d62564befcae84620767d6142b0155fcec04d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
\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/<pkgname>| 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}