summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-05 03:00:39 +0000
committerNorbert Preining <norbert@preining.info>2024-02-05 03:00:39 +0000
commit1343b01ff7a9bf0b93cee0d13ff1b13f2e649252 (patch)
tree25e1802be3817a994cd8ef1b326299eaea4727d6 /support
parent16f68bbec3cca735a695904227872abc2ace1f90 (diff)
CTAN sync 202402050300
Diffstat (limited to 'support')
-rw-r--r--support/crossrefware/README4
-rw-r--r--support/crossrefware/bbl2bib.1120
-rwxr-xr-xsupport/crossrefware/bbl2bib.pl2
-rw-r--r--support/crossrefware/bibdoiadd.1112
-rwxr-xr-xsupport/crossrefware/bibdoiadd.pl2
-rw-r--r--support/crossrefware/bibmradd.1108
-rw-r--r--support/crossrefware/biburl2doi.1108
-rwxr-xr-xsupport/crossrefware/biburl2doi.pl2
-rw-r--r--support/crossrefware/bibzbladd.1108
-rwxr-xr-xsupport/crossrefware/bibzbladd.pl2
-rw-r--r--support/crossrefware/crossrefware.pdfbin233770 -> 234836 bytes
-rw-r--r--support/crossrefware/ltx2crossrefxml.1153
-rwxr-xr-xsupport/crossrefware/ltx2crossrefxml.pl28
13 files changed, 149 insertions, 600 deletions
diff --git a/support/crossrefware/README b/support/crossrefware/README
index a1c9425ea3..05d375253e 100644
--- a/support/crossrefware/README
+++ b/support/crossrefware/README
@@ -1,5 +1,5 @@
Crossrefware Bundle
- version 2022-10-10
+ version 2024-01-31
Scripts useful for working with Crossref, MathSciNet and Zentralblatt MATH.
@@ -30,6 +30,8 @@ Princeton University (Mathematics Department). Thank you!
Changes:
+2024-01-31 - exit with bad status if no \end{thebibliography}.
+
2022-09-11 - add "***" prefix to bib warnings.
2022-07-28 - find dev checkout of bibtexperllibs.
diff --git a/support/crossrefware/bbl2bib.1 b/support/crossrefware/bbl2bib.1
index 1fdd9e8dab..9741875b2c 100644
--- a/support/crossrefware/bbl2bib.1
+++ b/support/crossrefware/bbl2bib.1
@@ -1,4 +1,5 @@
-.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -15,29 +16,12 @@
.ft R
.fi
..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
. ds C`
. ds C'
'br\}
@@ -68,104 +52,42 @@
. \}
.\}
.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "bbl2bib 1"
-.TH bbl2bib 1 "2022-10-18" "" "LATEX CROSSREFWARE"
+.TH bbl2bib 1 2023-08-20 "" "LATEX CROSSREFWARE"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
-.SH "NAME"
+.SH NAME
bbl2bib.pl \- convert thebibliography environment to a bib file
-.SH "SYNOPSIS"
+.SH SYNOPSIS
.IX Header "SYNOPSIS"
bbl2bib.pl [\-d] [\-u] [\fB\-o\fR \fIoutput\fR] \fIfile\fR
-.SH "OPTIONS"
+.SH OPTIONS
.IX Header "OPTIONS"
-.IP "[\-d]" 4
+.IP [\-d] 4
.IX Item "[-d]"
Send debugging output to stdout
.IP "\fB\-o\fR \fIoutput\fR" 4
.IX Item "-o output"
Output file. If this option is not used, the name for the
output file is formed by changing the extension to \f(CW\*(C`.bib\*(C'\fR
-.IP "\fB\-u\fR" 4
+.IP \fB\-u\fR 4
.IX Item "-u"
-Do not clean \s-1URL\s0 fields.
+Do not clean URL fields.
.Sp
-Normally \f(CW\*(C`bbl2bib\*(C'\fR recognizes \s-1URL\s0 fields of the kind
-\&\f(CW\*(C`http://dx.doi.org\*(C'\fR and their variants and converts them to \s-1DOI\s0
+Normally \f(CW\*(C`bbl2bib\*(C'\fR recognizes URL fields of the kind
+\&\f(CW\*(C`http://dx.doi.org\*(C'\fR and their variants and converts them to DOI
fields (see also \fBbiburl2doi\fR\|(1) script). The switch \fB\-u\fR
suppresses this cleanup.
-.SH "DESCRIPTION"
+.SH DESCRIPTION
.IX Header "DESCRIPTION"
The script tries to reconstruct a \f(CW\*(C`bib\*(C'\fR file from the corresponding
\&\f(CW\*(C`thebibliography\*(C'\fR environment. One can argue that this operation is
akin to reconstructing a cow from the steak. The way the script does
-it is searching for the entry in the \s-1MR\s0 database, and
+it is searching for the entry in the MR database, and
creating the corresponding BibTeX fields.
.PP
The script reads a TeX or Bbl file and extracts from it the
@@ -175,7 +97,7 @@ the database.
.SH "INPUT FILE"
.IX Header "INPUT FILE"
We assume some structure of the input file:
-.IP "1." 4
+.IP 1. 4
The bibliography is contained between the lines
.Sp
.Vb 1
@@ -187,27 +109,27 @@ and
.Vb 1
\& \eend{thebibliography}
.Ve
-.IP "2." 4
+.IP 2. 4
Each bibliography item starts from the line
.Sp
.Vb 1
\& \ebibitem[...]{....}
.Ve
-.SH "EXAMPLES"
+.SH EXAMPLES
.IX Header "EXAMPLES"
.Vb 3
\& bbl2bib \-o \- file.tex > result.bib
\& bbl2bib \-o result.bib file.bbl
\& bbl2bib file.tex
.Ve
-.SH "AUTHOR"
+.SH AUTHOR
.IX Header "AUTHOR"
Boris Veytsman
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
-Copyright (C) 2014\-2022 Boris Veytsman
+Copyright (C) 2014\-2021 Boris Veytsman
.PP
This is free software. You may redistribute copies of it under the
-terms of the \s-1GNU\s0 General Public License
-<http://www.gnu.org/licenses/gpl.html>. There is \s-1NO WARRANTY,\s0 to the
+terms of the GNU General Public License
+<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the
extent permitted by law.
diff --git a/support/crossrefware/bbl2bib.pl b/support/crossrefware/bbl2bib.pl
index 2babf10a37..2e3df9b685 100755
--- a/support/crossrefware/bbl2bib.pl
+++ b/support/crossrefware/bbl2bib.pl
@@ -86,7 +86,7 @@ Boris Veytsman
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2014-2022 Boris Veytsman
+Copyright (C) 2014-2021 Boris Veytsman
This is free software. You may redistribute copies of it under the
terms of the GNU General Public License
diff --git a/support/crossrefware/bibdoiadd.1 b/support/crossrefware/bibdoiadd.1
index 90713407aa..737f4f2a4b 100644
--- a/support/crossrefware/bibdoiadd.1
+++ b/support/crossrefware/bibdoiadd.1
@@ -1,4 +1,5 @@
-.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -15,29 +16,12 @@
.ft R
.fi
..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
. ds C`
. ds C'
'br\}
@@ -68,82 +52,20 @@
. \}
.\}
.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "bibdoiadd 1"
-.TH bibdoiadd 1 "2022-10-18" "" "LATEX CROSSREFWARE"
+.TH bibdoiadd 1 2023-08-20 "" "LATEX CROSSREFWARE"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
-.SH "NAME"
+.SH NAME
bibdoiadd.pl \- add DOI numbers to papers in a given bib file
-.SH "SYNOPSIS"
+.SH SYNOPSIS
.IX Header "SYNOPSIS"
bibdoiadd [\fB\-c\fR \fIconfig_file\fR] [\fB\-C\fR 1|0] [\fB\-e\fR 1|0] [\fB\-f\fR] [\fB\-o\fR \fIoutput\fR] \fIbib_file\fR
-.SH "OPTIONS"
+.SH OPTIONS
.IX Header "OPTIONS"
.IP "\fB\-c\fR \fIconfig_file\fR" 4
.IX Item "-c config_file"
@@ -152,23 +74,23 @@ See below for its format.
.IP "\fB\-C\fR 1|0" 4
.IX Item "-C 1|0"
Whether to canonize names in the output (1) or not (0). By default, 1.
-.IP "\fB\-e\fR" 4
+.IP \fB\-e\fR 4
.IX Item "-e"
If 1 (default), add empty doi if a doi cannot be found. This prevents
repeated searches for the same entries if you add new entries to the
file. Calling \f(CW\*(C`\-e 0\*(C'\fR suppresses this behavior.
-.IP "\fB\-f\fR" 4
+.IP \fB\-f\fR 4
.IX Item "-f"
Force checking doi number even if one is present
.IP "\fB\-o\fR \fIoutput\fR" 4
.IX Item "-o output"
Output file. If this option is not used, the name for the
output file is formed by adding \f(CW\*(C`_doi\*(C'\fR to the input file
-.SH "DESCRIPTION"
+.SH DESCRIPTION
.IX Header "DESCRIPTION"
The script reads a BibTeX file. It checks whether the entries have
DOIs. If not, it tries to contact http://www.crossref.org to get the
-corresponding \s-1DOI.\s0 The result is a BibTeX file with the fields
+corresponding DOI. The result is a BibTeX file with the fields
\&\f(CW\*(C`doi=...\*(C'\fR added.
.PP
The name of the output file is either set by the \fB\-o\fR option or
@@ -181,7 +103,7 @@ agreement at
\&\f(CW\*(C`http://www.crossref.org/01company/free_services_agreement.html\*(C'\fR. In
the second case you have a username and password, and can use them for
automatic queries. I am not sure whether the use of this script is
-allowed for the free account holders. Anyway if you try to add \s-1DOI\s0
+allowed for the free account holders. Anyway if you try to add DOI
to a large number of entries, you should register as a paid member.
.SH "CONFIGURATION FILE"
.IX Header "CONFIGURATION FILE"
@@ -195,20 +117,20 @@ The configuration file is mostly self-explanatory: it has comments
The important parameters are \f(CW$mode\fR (\f(CW\*(Aqfree\*(Aq\fR or \f(CW\*(Aqpaid\*(Aq\fR),
\&\f(CW$email\fR (for free users) and \f(CW$username\fR & \f(CW$password\fR for paid
members.
-.SH "EXAMPLES"
+.SH EXAMPLES
.IX Header "EXAMPLES"
.Vb 2
\& bibdoiadd \-c bibdoiadd.cfg \-o \- citations.bib > result.bib
\& bibdoiadd \-c bibdoiadd.cfg \-o result.bib citations.bib
.Ve
-.SH "AUTHOR"
+.SH AUTHOR
.IX Header "AUTHOR"
Boris Veytsman
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
-Copyright (C) 2014\-2022 Boris Veytsman
+Copyright (C) 2014\-2021 Boris Veytsman
.PP
This is free software. You may redistribute copies of it under the
-terms of the \s-1GNU\s0 General Public License
-<http://www.gnu.org/licenses/gpl.html>. There is \s-1NO WARRANTY,\s0 to the
+terms of the GNU General Public License
+<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the
extent permitted by law.
diff --git a/support/crossrefware/bibdoiadd.pl b/support/crossrefware/bibdoiadd.pl
index c41cd31b4f..bace84c000 100755
--- a/support/crossrefware/bibdoiadd.pl
+++ b/support/crossrefware/bibdoiadd.pl
@@ -85,7 +85,7 @@ Boris Veytsman
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2014-2022 Boris Veytsman
+Copyright (C) 2014-2021 Boris Veytsman
This is free software. You may redistribute copies of it under the
terms of the GNU General Public License
diff --git a/support/crossrefware/bibmradd.1 b/support/crossrefware/bibmradd.1
index 1dcbdecfac..ee49fd5238 100644
--- a/support/crossrefware/bibmradd.1
+++ b/support/crossrefware/bibmradd.1
@@ -1,4 +1,5 @@
-.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -15,29 +16,12 @@
.ft R
.fi
..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
. ds C`
. ds C'
'br\}
@@ -68,99 +52,37 @@
. \}
.\}
.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "bibmradd 1"
-.TH bibmradd 1 "2022-10-18" "" "LATEX CROSSREFWARE"
+.TH bibmradd 1 2023-08-20 "" "LATEX CROSSREFWARE"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
-.SH "NAME"
+.SH NAME
bibmradd.pl \- add MR numbers to papers in a given bib file
-.SH "SYNOPSIS"
+.SH SYNOPSIS
.IX Header "SYNOPSIS"
bibmradd [\-d] [\fB\-f\fR] [\fB\-e\fR 1|0] [\fB\-o\fR \fIoutput\fR] \fIbib_file\fR
-.SH "OPTIONS"
+.SH OPTIONS
.IX Header "OPTIONS"
-.IP "\fB\-d\fR" 4
+.IP \fB\-d\fR 4
.IX Item "-d"
Debug mode
-.IP "\fB\-e\fR" 4
+.IP \fB\-e\fR 4
.IX Item "-e"
If 1 (default), add an empty mrnumber if a mr cannot be found. This
prevents repeated searches for the same entries if you add new entries
to the file. Calling \f(CW\*(C`\-e 0\*(C'\fR suppresses this behavior.
-.IP "\fB\-f\fR" 4
+.IP \fB\-f\fR 4
.IX Item "-f"
-Force searching for \s-1MR\s0 numbers even if the entry already has one.
+Force searching for MR numbers even if the entry already has one.
.IP "\fB\-o\fR \fIoutput\fR" 4
.IX Item "-o output"
Output file. If this option is not used, the name for the
output file is formed by adding \f(CW\*(C`_mr\*(C'\fR to the input file
-.SH "DESCRIPTION"
+.SH DESCRIPTION
.IX Header "DESCRIPTION"
The script reads a BibTeX file. It checks whether the entries have
mrnumberss. If not, tries to contact internet to get the numbers. The
@@ -169,7 +91,7 @@ result is a BibTeX file with the fields
.PP
The name of the output file is either set by the \fB\-o\fR option or
is derived by adding the suffix \f(CW\*(C`_mr\*(C'\fR to the output file.
-.SH "AUTHOR"
+.SH AUTHOR
.IX Header "AUTHOR"
Boris Veytsman
.SH "COPYRIGHT AND LICENSE"
@@ -177,6 +99,6 @@ Boris Veytsman
Copyright (C) 2014\-2022 Boris Veytsman
.PP
This is free software. You may redistribute copies of it under the
-terms of the \s-1GNU\s0 General Public License
-<http://www.gnu.org/licenses/gpl.html>. There is \s-1NO WARRANTY,\s0 to the
+terms of the GNU General Public License
+<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the
extent permitted by law.
diff --git a/support/crossrefware/biburl2doi.1 b/support/crossrefware/biburl2doi.1
index 300a43d7b9..272273cbb7 100644
--- a/support/crossrefware/biburl2doi.1
+++ b/support/crossrefware/biburl2doi.1
@@ -1,4 +1,5 @@
-.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -15,29 +16,12 @@
.ft R
.fi
..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
. ds C`
. ds C'
'br\}
@@ -68,103 +52,41 @@
. \}
.\}
.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "biburl2doi 1"
-.TH biburl2doi 1 "2022-10-18" "" "LATEX CROSSREFWARE"
+.TH biburl2doi 1 2023-08-20 "" "LATEX CROSSREFWARE"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
-.SH "NAME"
+.SH NAME
biburl2doi.pl \- convert URLs pointing to doi.org to DOIs
-.SH "SYNOPSIS"
+.SH SYNOPSIS
.IX Header "SYNOPSIS"
biburl2doi [\fB\-D\fR] [\fB\-o\fR \fIoutput\fR] \fIbib_file\fR
-.SH "OPTIONS"
+.SH OPTIONS
.IX Header "OPTIONS"
-.IP "\fB\-D\fR" 4
+.IP \fB\-D\fR 4
.IX Item "-D"
Do not delete URLs converted to DOIs
.IP "\fB\-o\fR \fIoutput\fR" 4
.IX Item "-o output"
Output file. If this option is not used, the name for the
output file is formed by adding \f(CW\*(C`_cleaned\*(C'\fR to the input file
-.SH "DESCRIPTION"
+.SH DESCRIPTION
.IX Header "DESCRIPTION"
-The script recognizes \s-1URL\s0 fields of the kind
-\&\f(CW\*(C`http://dx.doi.org\*(C'\fR and their variants and converts them to \s-1DOI\s0
+The script recognizes URL fields of the kind
+\&\f(CW\*(C`http://dx.doi.org\*(C'\fR and their variants and converts them to DOI
fields.
-.SH "AUTHOR"
+.SH AUTHOR
.IX Header "AUTHOR"
Boris Veytsman
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
-Copyright (C) 2022 Boris Veytsman
+Copyright (C) 2021 Boris Veytsman
.PP
This is free software. You may redistribute copies of it under the
-terms of the \s-1GNU\s0 General Public License
-<http://www.gnu.org/licenses/gpl.html>. There is \s-1NO WARRANTY,\s0 to the
+terms of the GNU General Public License
+<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the
extent permitted by law.
diff --git a/support/crossrefware/biburl2doi.pl b/support/crossrefware/biburl2doi.pl
index 9482ba2931..33f7c67490 100755
--- a/support/crossrefware/biburl2doi.pl
+++ b/support/crossrefware/biburl2doi.pl
@@ -39,7 +39,7 @@ Boris Veytsman
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2022 Boris Veytsman
+Copyright (C) 2021 Boris Veytsman
This is free software. You may redistribute copies of it under the
terms of the GNU General Public License
diff --git a/support/crossrefware/bibzbladd.1 b/support/crossrefware/bibzbladd.1
index a63765869c..755536c73b 100644
--- a/support/crossrefware/bibzbladd.1
+++ b/support/crossrefware/bibzbladd.1
@@ -1,4 +1,5 @@
-.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -15,29 +16,12 @@
.ft R
.fi
..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
. ds C`
. ds C'
'br\}
@@ -68,99 +52,37 @@
. \}
.\}
.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "bibzbladd 1"
-.TH bibzbladd 1 "2022-10-18" "" "LATEX CROSSREFWARE"
+.TH bibzbladd 1 2023-08-20 "" "LATEX CROSSREFWARE"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
-.SH "NAME"
+.SH NAME
bibzbladd.pl \- add Zbl numbers to papers in a given bib file
-.SH "SYNOPSIS"
+.SH SYNOPSIS
.IX Header "SYNOPSIS"
bibzbladd [\-d] [\fB\-f\fR] [\fB\-e\fR 1|0] [\fB\-o\fR \fIoutput\fR] \fIbib_file\fR
-.SH "OPTIONS"
+.SH OPTIONS
.IX Header "OPTIONS"
-.IP "\fB\-d\fR" 4
+.IP \fB\-d\fR 4
.IX Item "-d"
Debug mode
-.IP "\fB\-e\fR" 4
+.IP \fB\-e\fR 4
.IX Item "-e"
If 1 (default), add an empty zblnumber if a zbl cannot be found. This
prevents repeated searches for the same entries if you add new entries
to the file. Calling \f(CW\*(C`\-e 0\*(C'\fR suppresses this behavior.
-.IP "\fB\-f\fR" 4
+.IP \fB\-f\fR 4
.IX Item "-f"
Force searching for Zbl numbers even if the entry already has one.
.IP "\fB\-o\fR \fIoutput\fR" 4
.IX Item "-o output"
Output file. If this option is not used, the name for the
output file is formed by adding \f(CW\*(C`_zbl\*(C'\fR to the input file
-.SH "DESCRIPTION"
+.SH DESCRIPTION
.IX Header "DESCRIPTION"
The script reads a BibTeX file. It checks whether the entries have
Zbls. If not, tries to contact internet to get the numbers. The
@@ -169,14 +91,14 @@ result is a BibTeX file with the fields
.PP
The name of the output file is either set by the \fB\-o\fR option or
is derived by adding the suffix \f(CW\*(C`_zbl\*(C'\fR to the output file.
-.SH "AUTHOR"
+.SH AUTHOR
.IX Header "AUTHOR"
Boris Veytsman
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
-Copyright (C) 2014\-2022 Boris Veytsman
+Copyright (C) 2014\-2021 Boris Veytsman
.PP
This is free software. You may redistribute copies of it under the
-terms of the \s-1GNU\s0 General Public License
-<http://www.gnu.org/licenses/gpl.html>. There is \s-1NO WARRANTY,\s0 to the
+terms of the GNU General Public License
+<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the
extent permitted by law.
diff --git a/support/crossrefware/bibzbladd.pl b/support/crossrefware/bibzbladd.pl
index 4593e7e172..c05a1137f7 100755
--- a/support/crossrefware/bibzbladd.pl
+++ b/support/crossrefware/bibzbladd.pl
@@ -52,7 +52,7 @@ Boris Veytsman
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2014-2022 Boris Veytsman
+Copyright (C) 2014-2021 Boris Veytsman
This is free software. You may redistribute copies of it under the
terms of the GNU General Public License
diff --git a/support/crossrefware/crossrefware.pdf b/support/crossrefware/crossrefware.pdf
index 9d61473a3c..83b8d3e8a3 100644
--- a/support/crossrefware/crossrefware.pdf
+++ b/support/crossrefware/crossrefware.pdf
Binary files differ
diff --git a/support/crossrefware/ltx2crossrefxml.1 b/support/crossrefware/ltx2crossrefxml.1
index b3cb433689..9f6800d8b7 100644
--- a/support/crossrefware/ltx2crossrefxml.1
+++ b/support/crossrefware/ltx2crossrefxml.1
@@ -1,4 +1,5 @@
-.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -15,29 +16,12 @@
.ft R
.fi
..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
. ds C`
. ds C'
'br\}
@@ -68,83 +52,21 @@
. \}
.\}
.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "ltx2crossrefxml 1"
-.TH ltx2crossrefxml 1 "2022-10-18" "" "LATEX CROSSREFWARE"
+.TH ltx2crossrefxml 1 2024-02-03 "" "LATEX CROSSREFWARE"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
-.SH "NAME"
+.SH NAME
ltx2crossrefxml.pl \- create XML files for submitting to crossref.org
-.SH "SYNOPSIS"
+.SH SYNOPSIS
.IX Header "SYNOPSIS"
ltx2crossrefxml [\fB\-c\fR \fIconfig_file\fR] [\fB\-o\fR \fIoutput_file\fR] [\fB\-input\-is\-xml\fR]
\fIlatex_file1\fR \fIlatex_file2\fR ...
-.SH "OPTIONS"
+.SH OPTIONS
.IX Header "OPTIONS"
.IP "\fB\-c\fR \fIconfig_file\fR" 4
.IX Item "-c config_file"
@@ -152,17 +74,17 @@ Configuration file. If this file is absent, defaults are used.
See below for its format.
.IP "\fB\-o\fR \fIoutput_file\fR" 4
.IX Item "-o output_file"
-Output file. If this option is not used, the \s-1XML\s0 is output to stdout.
-.IP "\fB\-rpi\-is\-xml\fR" 4
+Output file. If this option is not used, the XML is output to stdout.
+.IP \fB\-rpi\-is\-xml\fR 4
.IX Item "-rpi-is-xml"
-Do not transform author and title input strings, assume they are valid \s-1XML.\s0
+Do not transform author and title input strings, assume they are valid XML.
.PP
The usual \f(CW\*(C`\-\-help\*(C'\fR and \f(CW\*(C`\-\-version\*(C'\fR options are also supported. Options
can begin with either \f(CW\*(C`\-\*(C'\fR or \f(CW\*(C`\-\-\*(C'\fR, and ordered arbitrarily.
-.SH "DESCRIPTION"
+.SH DESCRIPTION
.IX Header "DESCRIPTION"
For each given \fIlatex_file\fR, this script reads \f(CW\*(C`.rpi\*(C'\fR and (if they
-exist) \f(CW\*(C`.bbl\*(C'\fR files and outputs corresponding \s-1XML\s0 that can be uploaded
+exist) \f(CW\*(C`.bbl\*(C'\fR files and outputs corresponding XML that can be uploaded
to Crossref (<https://crossref.org>). Any extension of \fIlatex_file\fR is
ignored, and \fIlatex_file\fR itself is not read (and need not even exist).
.PP
@@ -173,19 +95,19 @@ package (<https://ctan.org/pkg/resphilosophica>), but (as always) can
also be created by hand or by whatever other method you implement.
.PP
Any \f(CW\*(C`.bbl\*(C'\fR files present are used for the citation information in the
-output \s-1XML.\s0 See the \s-1CITATIONS\s0 section below.
+output XML. See the CITATIONS section below.
.PP
Unless \f(CW\*(C`\-\-rpi\-is\-xml\*(C'\fR is specified, for all text (authors, title,
citations), standard TeX control sequences are replaced with plain text
-or \s-1UTF\-8\s0 or eliminated, as appropriate. The \f(CW\*(C`LaTeX::ToUnicode::convert\*(C'\fR
+or UTF\-8 or eliminated, as appropriate. The \f(CW\*(C`LaTeX::ToUnicode::convert\*(C'\fR
routine is used for this (<https://ctan.org/pkg/bibtexperllibs>).
Tricky TeX control sequences will almost surely not be handled
correctly. If \f(CW\*(C`\-\-rpi\-is\-xml\*(C'\fR is given, the author and title strings
-from the rpi files are output as-is, assuming they are valid \s-1XML\s0; no
+from the rpi files are output as-is, assuming they are valid XML; no
checking is done. Citation text from \f(CW\*(C`.bbl\*(C'\fR files is always converted
from LaTeX to plain text.
.PP
-This script just writes an \s-1XML\s0 file. It's up to you to actually do the
+This script just writes an XML file. It's up to you to actually do the
uploading to Crossref; for example, you can use their Java tool
\&\f(CW\*(C`crossref\-upload\-tool.jar\*(C'\fR
(<https://www.crossref.org/education/member\-setup/direct\-deposit\-xml/https\-post>).
@@ -202,7 +124,7 @@ typically assignments in the form (spaces are optional):
\& $variable = value ;
.Ve
.PP
-Usually the value is a \f(CW"string"\fR enclosed in \s-1ASCII\s0 double-quote or
+Usually the value is a \f(CW"string"\fR enclosed in ASCII double-quote or
single-quote characters, per Perl syntax. The idea is to specify the
user-specific and journal-specific values needed for the Crossref
upload. The variables which are used are these:
@@ -278,9 +200,9 @@ from the given \f(CW\*(C`journal_article\*(C'\fR element.
Each \f(CW\*(C`.rpi\*(C'\fR must contain information for only one article, but multiple
files can be read in a single run. It would not be difficult to support
multiple articles in a single \f(CW\*(C`.rpi\*(C'\fR file, but it makes debugging and
-error correction easier when each uploaded \s-1XML\s0 contains a single
+error correction easier when each uploaded XML contains a single
article.
-.SS "\s-1MORE ABOUT AUTHOR NAMES\s0"
+.SS "MORE ABOUT AUTHOR NAMES"
.IX Subsection "MORE ABOUT AUTHOR NAMES"
The three formats for names recognized are (not coincidentally) the same
as BibTeX:
@@ -312,24 +234,24 @@ Thus: 1) if \f(CW\*(C`|organization|\*(C'\fR is specified, the author name will
as an \f(CW\*(C`organization\*(C'\fR contributor, instead of the usual \f(CW\*(C`person_name\*(C'\fR,
as the Crossref schema requires.
.PP
-2) If \f(CW\*(C`|orcid=\f(CIvalue\f(CW|\*(C'\fR is specified, the \fIvalue\fR is output as an
+2) If \f(CW\*(C`|orcid=\fR\f(CIvalue\fR\f(CW|\*(C'\fR is specified, the \fIvalue\fR is output as an
\&\f(CW\*(C`ORCID\*(C'\fR element for that \f(CW\*(C`person_name\*(C'\fR.
.PP
These two directives, \f(CW\*(C`|organization\*(C'\fR| and \f(CW\*(C`|orcid|\*(C'\fR are mutually
exclusive, because that's how the Crossref schema defines them. The \f(CW\*(C`=\*(C'\fR
sign after \f(CW\*(C`orcid\*(C'\fR is required, while all spaces after the \f(CW\*(C`orcid\*(C'\fR
-keyword are ignored. Other than that, the \s-1ORCID\s0 value is output
-literally. (E.g., the \s-1ORCID\s0 value of \f(CW123\fR above is clearly invalid,
+keyword are ignored. Other than that, the ORCID value is output
+literally. (E.g., the ORCID value of \f(CW123\fR above is clearly invalid,
but it would be output anyway, with no warning.)
.PP
Extra \f(CW\*(C`|\*(C'\fR characters, at the beginning or end of the entire \f(CW%authors\fR
string, or doubled in the middle, are accepted and ignored. Whitespace
is ignored around all \f(CW\*(C`|\*(C'\fR characters.
-.SH "CITATIONS"
+.SH CITATIONS
.IX Header "CITATIONS"
Each \f(CW\*(C`.bbl\*(C'\fR file corresponding to an input \f(CW\*(C`.rpi\*(C'\fR file is read and
used to output a \f(CW\*(C`citation_list\*(C'\fR element for that \f(CW\*(C`journal_article\*(C'\fR in
-the output \s-1XML.\s0 If no \f(CW\*(C`.bbl\*(C'\fR file exists for a given \f(CW\*(C`.rpi\*(C'\fR,
+the output XML. If no \f(CW\*(C`.bbl\*(C'\fR file exists for a given \f(CW\*(C`.rpi\*(C'\fR,
no \f(CW\*(C`citation_list\*(C'\fR is output for that article.
.PP
The \f(CW\*(C`.bbl\*(C'\fR processing is rudimentary: only so-called
@@ -337,20 +259,20 @@ The \f(CW\*(C`.bbl\*(C'\fR processing is rudimentary: only so-called
the contents of the citation (each paragraph in the \f(CW\*(C`.bbl\*(C'\fR) is dumped
as a single flat string without markup.
.PP
-Bibliography text is unconditionally converted from TeX to \s-1XML,\s0 via the
+Bibliography text is unconditionally converted from TeX to XML, via the
method described above. It is not unusual for the conversion to be
incomplete or incorrect. It is up to you to check for this; e.g., if
any backslashes remain in the output, it is most likely an error.
.PP
Furthermore, it is assumed that the \f(CW\*(C`.bbl\*(C'\fR file contains a sequence of
-references, each starting with \f(CW\*(C`\ebibitem{\f(CIKEY\f(CW}\*(C'\fR (which itself must be
+references, each starting with \f(CW\*(C`\ebibitem{\fR\f(CIKEY\fR\f(CW}\*(C'\fR (which itself must be
at the beginning of a line, preceded only by whitespace), and the whole
bibliography ending with \f(CW\*(C`\eend{thebibliography}\*(C'\fR (similarly at the
beginning of a line). A bibliography not following this format will not
produce useful results. Bibliographies can be created by hand, or with
BibTeX, or any other method.
.PP
-The \f(CW\*(C`key\*(C'\fR attribute for the \f(CW\*(C`citation\*(C'\fR element is taken as the \fI\s-1KEY\s0\fR
+The \f(CW\*(C`key\*(C'\fR attribute for the \f(CW\*(C`citation\*(C'\fR element is taken as the \fIKEY\fR
argument to the \f(CW\*(C`\ebibitem\*(C'\fR command. The sequential number of the
citation (1, 2, ...) is appended. The argument to \f(CW\*(C`\ebibitem\*(C'\fR can be
empty (\f(CW\*(C`\ebibitem{}\*(C'\fR, and the sequence number will be used on its own.
@@ -362,9 +284,16 @@ this same format.
.PP
Feature request: if anyone is interested in figuring out how to generate
structured citations
-(<https://data.crossref.org/reports/help/schema_doc/4.4.2/schema_4_4_2.html#citation>)
-instead of these flat text dumps, that would be great.
-.SH "EXAMPLES"
+(<https://data.crossref.org/reports/help/schema_doc/5.3.1/schema_5_3_1.html#citation>)
+instead of these flat text dumps, that would be great. Except the schema
+seems to support much less than described at
+<https://www.crossref.org/documentation/principles\-practices/best\-practices/bibliographic/>?
+Anyway, the most viable approach is probably to change tugboat.bst to
+output no-op TeX commands like \etubibauthor, \etubibtitle, etc. (a la
+biblatex), and use those commands to discern the various crossref field
+values. We can't start from the .bib because then we'd have to
+reimplement Bib(La)TeX.
+.SH EXAMPLES
.IX Header "EXAMPLES"
.Vb 2
\& ltx2crossrefxml.pl ../paper1/paper1.tex ../paper2/paper2.tex \e
@@ -372,14 +301,14 @@ instead of these flat text dumps, that would be great.
\&
\& ltx2crossrefxml.pl \-c myconfig.cfg paper.tex \-o paper.xml
.Ve
-.SH "AUTHOR"
+.SH AUTHOR
.IX Header "AUTHOR"
Boris Veytsman <https://github.com/borisveytsman/crossrefware>
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
-Copyright (C) 2012\-2022 Boris Veytsman
+Copyright (C) 2012\-2024 Boris Veytsman
.PP
This is free software. You may redistribute copies of it under the
-terms of the \s-1GNU\s0 General Public License (any version)
-<https://www.gnu.org/licenses/gpl.html>. There is \s-1NO WARRANTY,\s0 to the
+terms of the GNU General Public License (any version)
+<https://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the
extent permitted by law.
diff --git a/support/crossrefware/ltx2crossrefxml.pl b/support/crossrefware/ltx2crossrefxml.pl
index 76df0427b6..5d8e16b383 100755
--- a/support/crossrefware/ltx2crossrefxml.pl
+++ b/support/crossrefware/ltx2crossrefxml.pl
@@ -230,8 +230,15 @@ this same format.
Feature request: if anyone is interested in figuring out how to generate
structured citations
-(L<https://data.crossref.org/reports/help/schema_doc/4.4.2/schema_4_4_2.html#citation>)
-instead of these flat text dumps, that would be great.
+(L<https://data.crossref.org/reports/help/schema_doc/5.3.1/schema_5_3_1.html#citation>)
+instead of these flat text dumps, that would be great. Except the schema
+seems to support much less than described at
+L<https://www.crossref.org/documentation/principles-practices/best-practices/bibliographic/>?
+Anyway, the most viable approach is probably to change tugboat.bst to
+output no-op TeX commands like \tubibauthor, \tubibtitle, etc. (a la
+biblatex), and use those commands to discern the various crossref field
+values. We can't start from the .bib because then we'd have to
+reimplement Bib(La)TeX.
=head1 EXAMPLES
@@ -246,7 +253,7 @@ Boris Veytsman L<https://github.com/borisveytsman/crossrefware>
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2012-2022 Boris Veytsman
+Copyright (C) 2012-2024 Boris Veytsman
This is free software. You may redistribute copies of it under the
terms of the GNU General Public License (any version)
@@ -318,7 +325,7 @@ the terms of the GNU General Public License
http://www.gnu.org/licenses/gpl.html (any version).
There is NO WARRANTY, to the extent permitted by law.
-Written by Boris Veytsman with many additions by Karl Berry
+Written by Boris Veytsman.
END
use Getopt::Long;
my %opts;
@@ -347,7 +354,7 @@ END
binmode(OUT, ":utf8")
}
-
+ our $ERROR_COUNT = 0;
our $depositorName = 'DEPOSITOR_NAME';
our $depositorEmail = 'DEPOSITOR_EMAIL';
our $registrant = 'REGISTRANT';
@@ -361,7 +368,6 @@ END
# https://data.crossref.org/reports/help/schema_doc/4.4.2/schema_4_4_2.html#doi_batch_id
our $batchId="ltx2crossref-$timestamp-$$";
-
if ($opts{c}) {
if (-r $opts{c}) {
# if config arg is absolute, fine; if not, prepend "./" as slightly
@@ -392,7 +398,7 @@ END
#warn "papers for year=$year, volume=$volume, issue=$issue\n";
# Nice to have the issue.xml in some stable order, so sort
# by starting page. Doesn't matter if it's not perfect.
- foreach my $paper (sort { $a->{startpage} cmp $b->{startpage} }
+ foreach my $paper (sort { $a->{startpage} <=> $b->{startpage} }
@{$paperList}) {
PrintPaper($paper);
}
@@ -401,7 +407,7 @@ END
}
PrintTail();
- exit(0);
+ exit($ERROR_COUNT);
#####################################################
@@ -520,7 +526,8 @@ sub AddBibliography {
#
# allow empty \bibitem key for the sake of handwritten bbls.
# Similarly, might be more stuff on the line when handwritten.
- if (s/^\s*\\bibitem(?:\[.*?\])?+\s*\{(.*?)\}//) {
+ # Ignore a TeX %comment following.
+ if (s/^\s*\\bibitem(?:\[.*?\])?+\s*\{(.*?)\}\s*(%.*$)?//) {
my $newkey = $1;
if ($insidebibliography) {
if ($currpaper) {
@@ -564,10 +571,11 @@ sub AddBibliography {
# We look in the .rpi files too, which will generally have none.
if (@result == 0 && $bibfile =~ /\.bbl$/) {
- warn "$0: *** no \\bibitems found in: $bibfile\n";
+ warn "$0: *** no \\bibitems found in: $bibfile; check if ok\n";
} elsif ($insidebibliography) {
warn "$0: *** no \\end{thebibliography} found in: $bibfile\n";
warn "$0: so the last bib entry is missing!\n";
+ $ERROR_COUNT++;
}
return @result;
}