diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/amslatex/amsxport.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/amslatex/amsxport.dtx | 1822 |
1 files changed, 0 insertions, 1822 deletions
diff --git a/Master/texmf-dist/source/latex/amslatex/amsxport.dtx b/Master/texmf-dist/source/latex/amslatex/amsxport.dtx deleted file mode 100644 index 308a8c2698c..00000000000 --- a/Master/texmf-dist/source/latex/amslatex/amsxport.dtx +++ /dev/null @@ -1,1822 +0,0 @@ -%%% ==================================================================== -%%% @BibTeX-source-file{ -%%% filename = "amsxport.dtx", -%%% version = "2.00", -%%% date = "2004/06/28", -%%% time = "14:50:12 EDT", -%%% author = "Michael J Downes", -%%% address = "American Mathematical Society, -%%% Publications Technical Group, -%%% PO Box 6248, -%%% Providence, RI 02940, -%%% USA", -%%% email = "tech-support at ams.org", -%%% URL = "http://www.ams.org/", -%%% abstract = "The BibTeX style file amsxport.bst produces .bbl -%%% entries where most of the database structure is -%%% retained. This is intended for processing by a smart -%%% bibliography package such as the amsrefs package.", -%%% checksum = "40425 1822 6396 51551", -%%% docstring = "The checksum field, produced by Robert Solovay's -%%% checksum utility, gives CRC-16 checksum, lines, -%%% words, and characters.", -%%% } -%%% ==================================================================== -% \iffalse -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\documentclass[draft,oneside]{amsdtx}[1999/11/01] - -\providecommand{\vn}[1]{\emph{#1}}% variable name - -\renewcommand*\descriptionlabel[1]{\hspace\labelsep - \normalfont\bfseries #1:} - -%% Use normal typesize instead of \small for code listings. - -\def\MacroFont{% - \fontencoding\encodingdefault - \fontfamily\ttdefault - \fontseries\mddefault - \upshape -} - -\makeatletter - -%% Don't prepend \ to macro names. - -\def\SpecialIndex@#1#2{% - \@SpecialIndexHelper@#1\@nil - \def\@tempb{ }% - \ifcat \@tempb\@gtempa - \special@index{\quotechar\space\actualchar - \string\verb\quotechar*\verbatimchar - \quotechar\space\verbatimchar#2}% - \else - \def\@tempb##1##2\relax{\ifx\relax##2\relax - \def\@tempc{\special@index{\quotechar##1\actualchar - \string\verb\quotechar*\verbatimchar - \quotechar##1\verbatimchar#2}}% - \else - \def\@tempc{\special@index{##1##2\actualchar - \string\verb\quotechar*\verbatimchar - ##1##2\verbatimchar#2}}% - \fi}% - \expandafter\@tempb\@gtempa\relax - \@tempc - \fi} - -\makeatother - -\PageIndex - -\begin{document} -\title{The AMS Export Bib\TeX{} style [\fn{amsxport}]} -\author{American Mathematical Society\\Michael Downes\\David M. Jones} -\date{Version \fileversion, \filedate} -\hDocInput{amsxport.dtx} -\PrintIndex -\end{document} -%</driver> -% \fi -% -% \MakeShortVerb{\|} -% -% \maketitle -% -% \tableofcontents -% -% \section{Introduction} -% -% \bst{amsxport} is the collective name for a collection of -% \bibtex/ styles that form a bridge between \BibTeX\ and -% \pkg{amsrefs}. It produces output in which the structural -% information of the original \bibtex/ database file is -% retained. No ad hoc visual formatting is introduced that would -% hamper the application of alternative design specifications when -% rendering the information on paper or screen. This makes it -% possible to have \bibtex/ handle only extraction and sorting and -% leave the visual appearance to be controlled entirely by -% \latex/. The process of applying typical bibliography specs to -% exported data is illustrated in the \pkg{amsrefs} package. The -% authoritative description of the export format is in the -% \pkg{amsrefs} documentation, inasmuch as interpreting the format -% is the chief task of the \pkg{amsrefs} package. -% -% Each of the five \fn{.bst} files generated from this file -% corresponds to a combination of \pkg{amsrefs} package options, as -% follows: -% \begin{description} -% -% \item[amsrn] -% -% This is the default style, used when none of the following is -% appropriate. -% -% \item[amsru] -% -% This is used when the \opt{citation-order} option is specified. -% It is identical to \bst{amsrn} except that the bibliography items -% are not sorted. -% -% \item[amsra] -% -% This is when with the \opt{alphabetic} option is specified, byt -% the \opt{y2k} option is \emph{not} also specified. -% -% \item[amsry] -% -% This is used when both the \opt{alphabetic} and \opt{y2k} options -% are specified. -% -% \item[amsrs] -% -% This is used when the \opt{shortalphabetic} option is specified. -% -% \end{description} -% -% Readers may wish to refer also to the standard \bibtex/ -% documentation (\fn{btxdoc.tex}, \fn{btxhak.tex}, \fn{btxbst.doc}) -% for background information. -% -% \StopEventually{} -% -% \section{Implementation} -% -% The list below gives the fields that are expected to occur. (Other -% fields will be discarded without comment.) -% suggested fields. -% \begin{macrocode} -%<*bst> -ENTRY - { - address institution number status - archive isbn organization subtitle - author issn pages title - booktitle journal part translator - chapter key pii type - date language preprint url - edition meeting publisher volume - editor month review xid - eprint mrnumber school year - howpublished note series - } - { } - { label } -% \end{macrocode} -% -% Some comments about specific fields: -% \begin{description} -% \item[archive] The archive that holds the eprint listed in the -% \fn{eprint} field. -% \item[author] \bibtex/ doesn't allow this field (or any field) to be -% used more than once, but in the output its contents will be split -% into a separate key-value pair for each name. Likewise for -% \fn{editor} and \fn{translator}. -% \item[crossref] This is a built-in field type, so it doesn't occur in -% the argument of ENTRY above. -% \item[date] This is a generalization of the \fn{year} and \fn{month} -% fields. Its value should be written in ISO 8601 format, e.g., -% 1987-06-05; but the day and month are omissible, so this can be -% easily be used instead of the \fn{year} field. -% \item[edition] For books. The \bibtex/ documentation suggests that the -% value of this field should be an ordinal word such as \qq{Second}. -% This may be because the \bibtex/ language provides only the weakest -% sort of support for an \emph{is-numeric} test. -% \item[eprint] Electronic preprint information such as for -% \url{www.arXiv.org}. -% \item[institution] What's the difference between an \fn{institution} -% and an \fn{organization}? The \bibtex/ documentation says that -% \fn{institution} should be used for technical reports and -% \fn{organization} for other entry types. -% \item[isbn] International Standard Book Number. -% \item[issn] International Standard Serial Number. See the discussion -% of journal abbreviations. -% \item[language] Language of the work. This is especially desirable -% when the value of the title field is a translation of the true -% title (most often when the original language is one like Arabic or -% Chinese that poses rendering problems for non-native software). -% \item[meeting] Since \bibtex/ doesn't allow a field name to be the -% same as a function name, we have to use \fn{meeting} instead of -% \fn{conference} if we want to give the title of a conference in a -% dedicated field. -% \item[mrnumber] An alias for \fn{review} which we provide because -% MathSciNet has been using it in the \bibtex/ output that it -% provides for a couple of years already. -% \item[organization] See the comment for \fn{institution}. -% \item[pii] Publisher Item Identifier -% \item[part] This is for a long journal article that is published in -% separate issues of the same journal. There should be a separate -% \bibtex/ entry for each part (though all the ones after part 1 -% could crossref the first one). -% -% \item[preprint] It is not possible quite yet to assume that all -% preprints should be classified as eprints. If you have a preprint -% that is not an eprint, use this field to give the \qq{address} -% where the preprint may be found (institution, preprint number, -% etc.). -% -% \item[review] Review numbers or similar pointers, e.g., for -% Mathematical Reviews or Zentralblatt. -% -% \item[school] The analog of \qq{organization}, for a thesis. -% -% \item[status] Typically used for notes such as ``to appear'' or ``in -% preparation'' with journal articles. -% -% \item[subtitle] Typically used with a multipart journal article to -% give a subtitle for each part. -% -% \item[translator] This needs no explanation, surely? Except perhaps to -% note that the standard \bibtex/ styles don't provide it. -% -% \item[url] Universal Resource Locator. -% -% \item[xid] This is used by a cross-referenced item to pass its -% identity to child entries that refer to it. It would not be -% necessary if \bibtex/ left the \fn{crossref} field value -% accessible, but for some reason that I have not found yet (skimming -% in the source code) it is cleared internally before there is any -% opportunity to save it. -% -% Practically speaking: For every \fn{crossref} in your \fn{.bib} -% files, the target should contain a matching \fn{xid} field. -% -% \end{description} -% -% More on extra fields. In the Shelah bibliography, the \fn{author} -% field is given without any accents in the author names, and the -% normal \tex/ version of the author names is given in a separate -% field called \fn{trueauthor}. -% -% Also, for MR reviews: -% \begin{verbatim} -% review = {MR 48:3735}, -%\end{verbatim} -% And for each author a country is indicated with the \fn{fromwhere} -% field, e.g., -% \begin{verbatim} -% fromwhere = {UK, IL}, -%\end{verbatim} -% This means the first author is from the United Kingdom and the -% second one from Israel. -% -% \section{Macros for month names} -% -% \begin{macrocode} -MACRO {jan} {"-01"} -MACRO {feb} {"-02"} -MACRO {mar} {"-03"} -MACRO {apr} {"-04"} -MACRO {may} {"-05"} -MACRO {jun} {"-06"} -MACRO {jul} {"-07"} -MACRO {aug} {"-08"} -MACRO {sep} {"-09"} -MACRO {oct} {"-10"} -MACRO {nov} {"-11"} -MACRO {dec} {"-12"} -% \end{macrocode} -% -% Some scratch variables and global variables. -% \begin{macrocode} -STRINGS { p s t l } -% \end{macrocode} -% -% \begin{macrocode} -INTEGERS { len ptr } -%<bst> -% \end{macrocode} -% -% \begin{footnotesize}\itshape -% Note: \bibtex/ 0.99 requires a blank line in certain contexts, such -% as after the \fn{READ} command, and will choke if it is missing. -% When it is necessary to add a blank line at the boundary of a macro -% code section we use a \verb'<bst>' marker.\par -% \end{footnotesize} -% -% Some utility functions. -% \begin{macrocode} -FUNCTION {NOT} { { #0 } { #1 } if$ } - -FUNCTION {AND} { 'skip$ { pop$ #0 } if$ } - -FUNCTION {OR} { { pop$ #1 } 'skip$ if$ } - -FUNCTION {TRUE} { #1 } - -FUNCTION {FALSE} { #0 } -%<bst> -% \end{macrocode} -% -% \begin{macro}{incr.ptr} -% \begin{macrocode} -FUNCTION {incr.ptr} { ptr #1 + 'ptr := } -%<bst> -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{current.char} -% Returns: first character of STRING -% \begin{macrocode} -FUNCTION {current.char} { ptr #1 substring$ } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{copy.two.chars} -% The function \fn{copy.two.chars} appends the next two characters -% from s to STRING. -% -% Arg: STRING (partial copy of pages string) -% -% Returns: Modified version of STRING -% -% Side effects: advances ptr -% \begin{macrocode} -FUNCTION {copy.two.chars} { t * incr.ptr s current.char * incr.ptr } -%<bst> -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{is.digit} -% \begin{macrocode} -FUNCTION {is.digit} { - chr.to.int$ - duplicate$ - "0" chr.to.int$ #1 - > - swap$ - "9" chr.to.int$ #1 + < - AND -} -%<bst> -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{is.lowercase.letter} -% In a previous implementation the \fn{is.letter} function first -% lowercased the character using \verb'change.case$', then tested it -% against the range a--z. But \verb'change.case$' issues a warning if -% it is applied to a lone brace character. -% \begin{macrocode} -FUNCTION {is.lowercase.letter} { - chr.to.int$ duplicate$ - "a" chr.to.int$ #1 - > - swap$ - "z" chr.to.int$ #1 + < - AND -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{is.uppercase.letter} -% \begin{macrocode} -FUNCTION {is.uppercase.letter} { - chr.to.int$ duplicate$ - "A" chr.to.int$ #1 - > - swap$ - "Z" chr.to.int$ #1 + < - AND -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{is.letter} -% \begin{macrocode} -FUNCTION {is.letter} { - duplicate$ - is.lowercase.letter - { pop$ TRUE } - { is.uppercase.letter } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{skip.accent} -% This implementation of \fn{skip.accent} simply skips ahead one -% character whenever a backslash is found. This handles things like -% \verb'\v', \verb'\u', \verb'\k', \verb'\r'. Although this is overly -% simplistic it is still an improvement over the previous method -% which was to not even make the attempt. [mjd,2001-10-27] -% \begin{macrocode} -FUNCTION {skip.accent} { pop$ incr.ptr } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{strip.label} -% \begin{macrocode} -FUNCTION {strip.label} { - 's := - #1 'ptr := - "" - { s ptr #1 substring$ duplicate$ empty$ NOT } - { duplicate$ is.letter - { * } - { duplicate$ "\" = - { skip.accent } - 'pop$ - if$ - } - if$ - incr.ptr - } - while$ -% \end{macrocode} -% When the loop ends we have an extra empty-string on top of the -% stack to get rid of. -% \begin{macrocode} - pop$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{sortify} -% \begin{macrocode} -FUNCTION {sortify} { - purify$ - "l" change.case$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{rpad} -% Warning: The use of |text.length$| here and in \fn{lpad} -% restricts their use to strings that we know do not contain any -% special characters. Since we only use \fn{lpad} for field names -% and \fn{rpad} for |purify$|ed strings, this is ok. -% -% \<string> \<int> \fn{rpad} -% \begin{macrocode} -FUNCTION {rpad} { - swap$ - 'l := - l text.length$ - 'len := - { len #0 > } - { - l " " * 'l := - len #1 - 'len := - } - while$ - l -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{lpad} -% \<string> \<int> \fn{lpad} -% \begin{macrocode} -FUNCTION {lpad} { - swap$ - 'l := - l text.length$ - 'len := - { len #0 > } - { - " " l * 'l := - len #1 - 'len := - } - while$ - l -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{field.or.null} -% \begin{macrocode} -FUNCTION {field.or.null} { - duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{missing.or.empty} -% \begin{macrocode} -FUNCTION {missing.or.empty} { duplicate$ missing$ swap$ empty$ OR } -%<bst> -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{append.ndash.and.skip.hyphens} -% The function \fn{append.ndash.and.skip.hyphens} adds \verb'\ndash' -% to STRING when a hyphen is found and advances ptr to the next -% non-hyphen character in \fn{s}. -% -% Arg: STRING (partial copy of pages string) -% -% Returns: modified version of STRING -% -% Side effects: advances ptr -% \begin{macrocode} -FUNCTION {append.ndash.and.skip.hyphens} { - "\ndash " * - incr.ptr - { s current.char "-" = } - { incr.ptr } - while$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{n.dashify} -% In the \fn{n.dashify} function we store the given string in \fn{s}, -% push an empty string on the stack, and start examining the -% characters of \fn{s}. For a non-hyphen character, we just append a -% copy of it to the top string. For a hyphen, we append \cs{ndash} to -% the top string and advance the pointer until we reach a non-hyphen -% character. And there is one more exceptional case: for a backslash, -% we copy two characters instead of one. This keeps us from -% erroneously translating \verb'\-' to \verb'\\ndash'. One would -% scarcely expect to see an instance of \verb'\-' in a page number -% field but let's face it, in actual use nearly anything can and does -% happen. -% -% Arg: STRING (value of \fn{pages} field) -% -% Returns: STRING (dashified version of input string) -% \begin{macrocode} -FUNCTION {n.dashify} { - 's := - #1 'ptr := - "" - { s current.char 't := t "" = NOT } - { t "\" = - { copy.two.chars } - { t "-" = - { append.ndash.and.skip.hyphens } - { t * incr.ptr } - if$ - } - if$ - } - while$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{missing.warning} -% Standard warning message for a missing or empty field. For the user -% we call any such field `missing' without respect to the distinction -% made by \bibtex/ between missing and empty. -% \begin{macrocode} -FUNCTION {missing.warning} { - "missing " swap$ * " in " * cite$ * warning$ -} -%<bst> -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{string.length} -% Because \bibtex/ doesn't provide a straightforward -% \fn{string.length} function (\verb'text.length$' counts ``special -% characters'' as a single character), it appears necessary to -% implement one the hard way. -% \begin{macrocode} -INTEGERS { string.ptr } - -FUNCTION {string.length} { - #1 'string.ptr := - { duplicate$ string.ptr #1 substring$ "" = 'FALSE 'TRUE if$ } - { string.ptr #1 + 'string.ptr := } - while$ - pop$ - string.ptr #1 - -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{format.title} -% \begin{macrocode} -FUNCTION {format.title}{ - duplicate$ - missing.or.empty - { pop$ "" } - { "t" change.case$ } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{start.field} -% \begin{macrocode} -FUNCTION {start.field} { - #12 lpad "={" * write$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{fin.field} -% \begin{macrocode} -FUNCTION {fin.field} { "}," write$ newline$ } -%<bst> -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{write.field} -% \begin{macrocode} -FUNCTION {write.field} { - duplicate$ - missing$ - { pop$ missing.warning } - { duplicate$ empty$ - { pop$ missing.warning } - { swap$ start.field write$ fin.field } - if$ - } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{optional.field} -% \begin{macrocode} -FUNCTION {optional.field} { - duplicate$ - missing.or.empty - { pop$ pop$ } - { swap$ start.field write$ fin.field } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{optional.title.field} -% \begin{macrocode} -FUNCTION {optional.title.field} { - duplicate$ - missing.or.empty - { pop$ pop$ } - { format.title swap$ start.field write$ fin.field } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{optional.pages.field} -% \begin{macrocode} -FUNCTION {optional.pages.field} { - duplicate$ - missing.or.empty - { pop$ pop$ } - { swap$ start.field - n.dashify - write$ fin.field - } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{optional.mr.field} -% \begin{macrocode} -FUNCTION {optional.mr.field} { - duplicate$ - missing.or.empty - { pop$ pop$ } - { - swap$ start.field - "\MR{" swap$ * "}" * write$ fin.field - } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{remove.ordinal.suffix} -% \begin{macrocode} -FUNCTION {remove.ordinal.suffix} { - 's := - s string.length 'len := - #1 'ptr := - { ptr len < s ptr #1 substring$ is.digit AND } - 'incr.ptr - while$ - s ptr global.max$ substring$ 'p := - p "st" = - { TRUE } - { p "nd" = - { TRUE } - { p "rd" = - { TRUE } - { p "th" = - { TRUE } - { FALSE } - if$ - } - if$ - } - if$ - } - if$ - { s #1 ptr #1 - substring$ } - { s } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{optional.edition.field} -% \begin{macrocode} -FUNCTION {optional.edition.field} { - duplicate$ missing.or.empty - { pop$ pop$ } - { swap$ start.field - remove.ordinal.suffix - write$ fin.field - } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \section{Formatting author names and editor names} -% -% Take a name list in \bibtex/ form (names separated by the word -% \qq{and}) and output the desired form of each name. -% \begin{macrocode} -INTEGERS { nameptr numnames namesleft } -STRINGS { namelist fieldname } -% \end{macrocode} -% -% \begin{macro}{format.name} -% The \fn{format.name} function operates on a single name, producing -% a string of the form -% \begin{verbatim} -% von Last, First, Jr. -%\end{verbatim} -% -% Args: \vn{namelist}, \vn{index} (top; integer) -% -% Returns: formatted version of the $n$th name in \vn{namelist} where -% integer \vn{index} specifies $n$. -% \begin{macrocode} -FUNCTION {format.name} { "{vv~}{ll}{, ff}{, jj}" format.name$ } -%<bst> -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{optional.name.field} -% The function \fn{optional.name.field} handles the task of splitting -% a multiple-name field value into multiple fields with single -% values. -% -% Args: \vn{fieldname}, \vn{namelist} (top) -% -% Side effects: writes a key/value pair to the output file for each -% name in \vn{namelist}. -% \begin{macrocode} -FUNCTION {optional.name.field}{ - duplicate$ missing.or.empty - { pop$ pop$ } - { swap$ 'fieldname := - duplicate$ num.names$ - 'namesleft := - #1 'ptr := - { namesleft #0 > } - { fieldname start.field -% \end{macrocode} -% Copy the name string before running \fn{format.name} on it. -% \begin{macrocode} - duplicate$ ptr format.name write$ - fin.field - ptr #1 + 'ptr := - namesleft #1 - 'namesleft := - } - while$ -% \end{macrocode} -% At this point we have an extra copy of the name string on the -% stack. -% \begin{macrocode} - pop$ - } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \section{Handling year, month, date} -% -% \begin{macro}{assemble.date.field} -% In the output we produce a \fn{date} field instead of the year and -% month fields normally used in \bibtex/ files. In the date field we -% use ISO date notation (e.g., 1987-06-05) to facilitate switching -% between full and abbreviated month names. The month and day parts -% are frequently absent, making the date field equivalent to a year -% field. -% \begin{macrocode} -FUNCTION {assemble.date.field} -{ date missing$ - { year missing.or.empty - { status missing.or.empty - { "No year or other date information for " - cite$ * warning$ } - 'skip$ - if$ - "status" - } - { year month missing$ { "" } { month } if$ * } - if$ - } - { date } - if$ -% \end{macrocode} -% If the date string is now equal to \qq{status}, it means that we -% have a status field or we already gave a warning about lack of date -% info; in either case omit the date field. -% \begin{macrocode} - duplicate$ "status" = - { pop$ pop$ } - { swap$ start.field write$ fin.field } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \section{Journal abbreviations} -% -% Use of journal abbreviations is recommended to make supplying ISSN -% numbers easier. To use this feature, you need a STRING definition -% of the form -% \begin{verbatim} -% @STRING{cpam="cpam/0010-3640/" -% #"Communications in Pure and Applied Mathematics"} -%\end{verbatim} -% Then when you write -% \begin{verbatim} -% journal=cpam, -%\end{verbatim} -% exporting with \fn{amsxport} will produce -% \begin{verbatim} -% journal={cpam}, -% ISSN={0010-3640}, -%\end{verbatim} -% The text before the ISSN number in the STRING definition is -% preferably a repetition of the abbreviation name (leaving expansion -% to be done on the \latex/ side); or it could be the full journal -% name. -% -% \textbf{Warning:} If you include braces and write -% \verb'journal={cpam},' \bibtex/ will not expand the abbreviation -% but leave it as the field value; and then you will not get -% automatic lookup of the ISSN number. -% -% \begin{macro}{optional.journal.field} -% \begin{macrocode} -FUNCTION {optional.journal.field} { - duplicate$ missing.or.empty - { pop$ pop$ } - { - 's := - start.field - #1 'ptr := - s current.char is.lowercase.letter - { - s "/" * 's := - { s ptr #1 substring$ "/" = NOT } - { incr.ptr } - while$ -% \end{macrocode} -% Journal name started with a lowercase letter, but we couldn't find -% no slash? All right, just let it go through as it is. -% \begin{macrocode} - s ptr #1 + #1 substring$ empty$ - { s #1 ptr #1 - substring$ } -% \end{macrocode} -% But if we did find a slash, then we probably have found us an ISSN -% number that we can write out. -% \begin{macrocode} - { - s #1 ptr #1 - substring$ - write$ - fin.field -% \end{macrocode} -% ISSNs are always nine characters in length (four digits, hyphen, -% four digits). -% \begin{macrocode} - "ISSN" start.field - s ptr #1 + #9 substring$ - } - if$ - } - { s } - if$ - write$ - fin.field - } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \section{Type info} -% -% \begin{macro}{optional.type.field} -% Putz around with the type info a little, for theses mainly. Two -% types here: the type field, and the entry type. -% \begin{macrocode} -FUNCTION {optional.type.field} -{ duplicate$ missing.or.empty - { type$ "mastersthesis" = { "Master's Thesis" } - { type$ "phdthesis" = { "Ph.D. Thesis" } - { "" } if$ } if$ - swap$ pop$ - } - 'skip$ - if$ - duplicate$ empty$ - { pop$ pop$ } - { swap$ start.field write$ fin.field } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \section{Miscellaneous tail-end information} -% -% \begin{macro}{url.note.status.review} -% The following items are common to all entry types are output at -% the tail end of the entry. -% \begin{macrocode} -FUNCTION {url.note.status.review} { - "url" url optional.field - "note" note optional.field - "status" status optional.field -% \end{macrocode} -% The \fn{review} field should perhaps be translated into multiple -% fields like author names, if more than one review is given. -% \begin{macrocode} - "review" review optional.field -% \end{macrocode} -% Data from MathSciNet will have the Math Reviews number in an -% mrnumber field. We assume that a given entry will have a review -% field or an mrnumber field but not both. -% \begin{macrocode} - "review" mrnumber optional.mr.field -} -% \end{macrocode} -% \end{macro} -% -% \section{Wrapper for each entry} -% -% \begin{macro}{start.entry} -% \begin{macrocode} -FUNCTION {start.entry} { - newline$ - "\bib{" cite$ * "}{" * -% \end{macrocode} -% Merge Master's thesis and Ph.D. thesis into a single type. -% \begin{macrocode} - type$ "mastersthesis" = type$ "phdthesis" = OR - { "thesis" } - { type$ } - if$ - * "}{" * write$ - newline$ -%<*debug> - "sort.label" label sortify optional.field - "sort.key" sort.key$ optional.field -%</debug> -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{fin.entry} -% \begin{macrocode} -FUNCTION {fin.entry} { - "}" write$ - newline$ -} -% \end{macrocode} -% \end{macro} -% -% \section{Entry types} -% -% Here are the types of entries that are normally allowed in a -% \bibtex/ file: -% \begin{description} -% -% \item[book] A book with an explicit publisher. -% -% \item[booklet] A work that is printed and bound, but without a named -% publisher or sponsoring institution. -% -% \item[inbook] A part of a book, which may be a chapter (or section or -% whatever) and/or a range of pages. -% -% \item[incollection] A part of a book having its own title. -% -% \item[manual] Technical documentation. -% -% \item[mastersthesis] A Master's thesis. -% -% \item[phdthesis] A PhD thesis. -% -% \item[proceedings] The proceedings of a conference. -% -% \item[techreport] A report published by a school or other institution, -% usually numbered within a series. -% -% \item[article] An article from a journal or magazine. -% -% \item[inproceedings] An article in a conference proceedings. -% -% \item[conference] An alias for \fn{inproceedings}. -% -% \item[unpublished] A document having an author and title, but not -% formally published. -% -% \item[misc] Use this type when nothing else fits. -% -% \end{description} -% -% \begin{macro}{article} -% A journal article differs from an inproceedings article by not -% having booktitle, publisher, editor, and other such info. -% \begin{macrocode} -FUNCTION {article} { - start.entry - "author" author optional.name.field - "translator" translator optional.name.field - "title" title format.title write.field - "subtitle" subtitle optional.title.field - "language" language optional.field - "organization" organization optional.field - "how" howpublished optional.field -% \end{macrocode} -% Construct a date value from date, year, month fields -% \begin{macrocode} - "date" assemble.date.field - "ISSN" issn optional.field - "journal" journal optional.journal.field - "volume" volume optional.field - "number" number optional.field - "pages" pages optional.pages.field - "PII" pii optional.field - "archive" archive optional.field - "eprint" eprint optional.field - "preprint" preprint optional.field - url.note.status.review - fin.entry -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{inproceedings} -% An inproceedings entry may have xid, booktitle, meeting, publisher -% info; it is not expected to have journal, eprint, or preprint info. -% \begin{macrocode} -FUNCTION {inproceedings} { - start.entry - "author" author optional.name.field - "translator" translator optional.name.field - "title" title format.title write.field - "subtitle" subtitle optional.title.field - "language" language optional.field - "organization" organization optional.field - "how" howpublished optional.field -% \end{macrocode} -% Construct a date value from date, year, month fields -% \begin{macrocode} - "date" assemble.date.field - "xid" xid optional.field -% \end{macrocode} -% The following fields might be inherited from the parent of an -% article in a proceedings volume or collection. -% \begin{macrocode} - "conference" meeting optional.field - "booktitle" booktitle optional.title.field -% \end{macrocode} -% Include the edition in case this is an inbook entry. -% \begin{macrocode} - "edition" edition optional.edition.field - "editor" editor optional.name.field - "series" series optional.field - "volume" volume optional.field - "publisher" publisher optional.field - "address" address optional.field - "pages" pages optional.pages.field - url.note.status.review - fin.entry -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{inbook} -% \begin{macrocode} -FUNCTION {inbook} { inproceedings } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{incollection} -% \begin{macrocode} -FUNCTION {incollection} { inproceedings } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{inproceedings} -% \begin{macrocode} -FUNCTION {conference} { inproceedings } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{book} -% The book type includes a meeting field because otherwise we'd have -% to repeat the entire definition for the proceedings type with that -% as the sole difference. -% \begin{macrocode} -FUNCTION {book} { - start.entry - "author" author optional.name.field - "editor" editor optional.name.field - "translator" translator optional.name.field - "title" title missing$ { booktitle } { title } if$ - format.title write.field - "subtitle" subtitle optional.title.field - "type" type optional.type.field - "language" language optional.field - "conference" meeting optional.field - "edition" edition optional.edition.field - "series" series optional.field - "publisher" publisher optional.field - organization missing.or.empty - { "institution" institution optional.field } - { "organization" organization optional.field } - if$ - "address" address optional.field - "how" howpublished optional.field - "date" year write.field - "volume" volume optional.field -% \end{macrocode} -% The number here is intended for a tech report. -% \begin{macrocode} - "number" number optional.field - "ISBN" isbn optional.field - url.note.status.review - fin.entry -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{booklet} -% \begin{macrocode}{booklet} -FUNCTION {booklet} { book } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{manual} -% \begin{macrocode} -FUNCTION {manual} { book } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{mastersthesis} -% \begin{macrocode} -FUNCTION {mastersthesis} { book } - -FUNCTION {phdthesis} { book } - -FUNCTION {proceedings} { book } - -FUNCTION {collection} { book } - -FUNCTION {techreport} { book } - -FUNCTION {unpublished} { book } - -FUNCTION {misc} { book } - -FUNCTION {default.type} { misc } -%<bst> -% \end{macrocode} -% \end{macro} -% -% \bibtex/ 0.99 keels over if READ does not have a blank line after -% it. -% \begin{macrocode} -%<bst> -READ -%<bst> -% \end{macrocode} -% -% \section{Sorting the entries} -% -% Since the final labels will be produced by the \pkg{amsrefs} -% package, we don't need to worry about generating suffixes to -% disambiguate between equal stems. All we have to do is strive to -% generate stems that are identical to the ones that \pkg{amsrefs} -% will generate, so that \bst{amsxport} will sort its output in a -% fashion that will be consistent with the labels. -% -% Overall, this simplifies our job, since we don't have to keep -% track of duplicate labels, so we can process each entry in -% isolation. However, we do have to be more careful about the -% handling of text accents and text symbols in order to maintain -% compatibility with \pkg{amsrefs}. -% -% See (\emph{inter alia}) the sections ``Lexical structure of -% names'' and ``Generating alphabetic lables'' in the -% \pkg{amsrefs} implementation documentation for more information. -% -% \begin{macrocode} -%<*sort> -% \end{macrocode} -% -% \begin{macro}{chop.word} -% \begin{macrocode} -FUNCTION {chop.word} { - 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{sort.format.title} -% \begin{macrocode} -FUNCTION {sort.format.title} { - 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{format.lab.names} -% \begin{macrocode} -%<*alpha|short> -FUNCTION {format.lab.names} { - 's := - s num.names$ 'numnames := - numnames #1 > - { numnames #4 > - { #3 'namesleft := } - { numnames 'namesleft := } - if$ - #1 'nameptr := - "" - { namesleft #0 > } - { nameptr numnames = - { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { "{\etalchar{+}}" * } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #4 > - { "{\etalchar{+}}" * } - 'skip$ - if$ - } - { s #1 "{v{}}{l{}}" format.name$ - duplicate$ text.length$ #2 < -%<alpha> { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } -%<short> { pop$ s #1 "{ll}" format.name$ #1 text.prefix$ } - 'skip$ - if$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.label}{ - type$ "book" = type$ "inbook" = OR - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - strip.label - sortify -%<*alpha> - year field.or.null -%<!y2k> #3 #8 substring$ - purify$ * -%</alpha> - 'label := -} -%</alpha|short> -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{sort.format.names} -% \begin{macrocode} -FUNCTION {sort.format.names} { - 's := - #1 'ptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { ptr #1 > - { " " * } - 'skip$ - if$ - s ptr "{ll}{ ff}{ jj}" format.name$ 't := - ptr numnames = t "others" = AND - { "et al" } - { t sortify } - if$ - #20 rpad * - ptr #1 + 'ptr := - namesleft #1 - 'namesleft := - } - while$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{sort.warning} -% \begin{macrocode} -FUNCTION {sort.warning} { - "to sort, need " swap$ * " or key in " * cite$ * warning$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{author.sort} -% \begin{macrocode} -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "author" sort.warning - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{author.editor.sort} -% \begin{macrocode} -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "author, editor," sort.warning - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{author.organization.sort} -% \begin{macrocode} -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "author, organization," sort.warning - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{editor.organization.sort} -% \begin{macrocode} -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "editor, organization," sort.warning - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{presort} -% \begin{macrocode} -FUNCTION {presort} { -%<*alpha|short> - calc.label - label #20 rpad -%</alpha|short> - type$ "book" = type$ "inbook" = OR type$ "collection" = OR - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ -%<alpha|short> * " " * -%<!alpha|short> year field.or.null sortify #12 rpad * " " * - title field.or.null sort.format.title * - #1 entry.max$ substring$ - 'sort.key$ := -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -ITERATE {presort} - -SORT -% \end{macrocode} -% -% \begin{macrocode} -%</sort> -% \end{macrocode} -% -% \section{Final pass for output} -% -% \begin{macro}{write.with.newlines} -% The \fn{write.with.newlines} functions stores a string in \fn{s} -% and runs through it looking for occurrences of \verb'^^M'; when one -% is found, the substring before it is written out with a newline, -% the remainder is left in \fn{s}, and the cycle begins again. -% \begin{macrocode} -FUNCTION {write.with.newlines} -{ 's := #1 'ptr := - { s ptr #2 + #1 substring$ "" = NOT } - { s ptr #3 substring$ "^^M" = - { s #1 ptr #1 - substring$ write$ newline$ - ptr #3 + 'ptr := - s ptr global.max$ substring$ 's := - #1 'ptr := - } - { incr.ptr } - if$ - } - while$ - s write$ newline$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{begin.bin} -% \begin{macrocode} -FUNCTION {begin.bib} { - preamble$ empty$ - 'skip$ - { preamble$ write.with.newlines } - if$ - "% \bib, bibdiv, biblist are defined by the amsrefs package." - write$ newline$ - "\begin{bibdiv}" write$ newline$ - "\begin{biblist}" write$ newline$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{end.bin} -% \begin{macrocode} -FUNCTION {end.bib} { - newline$ - "\end{biblist}" write$ newline$ - "\end{bibdiv}" write$ newline$ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -EXECUTE {begin.bib} - -ITERATE {call.type$} - -EXECUTE {end.bib} -%</bst> -% \end{macrocode} -% -% \section{Journal abbreviations} -% -% By putting the ISSN into the \latex/ document, we make it easier to -% construct www queries from the bibliography data. These string -% definitions tie together journal abbreviations, ISSN numbers, and -% journal names. -% -% These are the journals that are cited most frequently by American -% Mathematical Society authors at the present time (2000 CE). -% -% The format used here is designed to make it easy for BibTeX -% to retrieve an ISSN number when given a journal abbreviation. -% \begin{macrocode} -%<*abbrevs> -@string{aa="aa/0065-1036/" - #"Acta Arithmetica"} -@string{actamath="actamath/0001-5962/" - #"Acta Mathematica"} -@string{asms="asms/0001-6969/" - #"Acta Scientiarum Mathematicarum"} -@string{advmath="advmath/0001-8708/" - #"Advances in Mathematics"} -@string{ajm="ajm/0002-9327/" - #"American Journal of Mathematics"} -@string{amm="amm/0002-9890/" - #"American Mathematical Monthly"} -@string{aifg="aifg/0373-0956/" - #"Annales de l'Institut Fourier"} -@string{am2="am2/0003-486X/Annals of Mathematics"} -@string{ap="ap/0091-1798/" - #"The Annals of Probability"} -@string{asens4="asens4/0012-9593/" - #"Annales Scientifiques de l'\'{E}cole Normale Sup\'{e}rieure"} -@string{amb="amb/0003-889X/Archiv der Mathematik"} -@string{arma="arma/0003-9527/" - #"Archive for Rational Mechanics and Analysis"} -@string{bamsn="bamsn/0273-0979/" - #"Bulletin (New Series) of the American Mathematical Society"} -@string{bams="bams/0004-9727/" - #"Bulletin of the Australian Mathematical Society"} -@string{blms="blms/0024-6093/" - #"Bulletin of the London Mathematical Society"} -@string{bsmf="bsmf/0037-9484/" - #"Bulletin de la Soci\'{e}t\'{e} Math\'{e}matique de France"} -@string{craspi="craspi/0764-4442/" - #"Comptes Rendus de l'Acad\'{e}mie des Sciences (Paris)" - #" S\'{e}rie I Math\'{e}matique"} -@string{cjm="cjm/0008-414X/Canadian Journal of Mathematics"} -@string{cmb="cmb/0008-4395/" - #"Canadian Mathematical Bulletin"} -@string{colloqmath="colloqmath/0010-1354/" - #"Colloquium Mathematicum"} -@string{commalgebra="commalgebra/0092-7872/" - #"Communications in Algebra"} -@string{cmp="cmp/0010-3616/" - #"Communications in Mathematical Physics"} -@string{cpam="cpam/0010-3640/" - #"Communications on Pure and Applied Mathematics"} -@string{cmh="cmh/0010-2571/" - #"Commentarii Mathematici Helvetici"} -@string{cvta="cvta/0278-1077/" - #"Complex Variables"} -@string{compositiomath="compositiomath/0010-437X/" - #"Compositio Mathematica"} -@string{c="c/0010-485X/Computing"} -@string{constrapprox="constrapprox/0176-4276/" - #"Constructive Approximation"} -@string{dmj="dmj/0012-7094/" - #"Duke Mathematical Journal"} -@string{eraams="eraams/1079-6762/" - #"Electronic Research Announcements" - #" of the American Mathematical Society"} -@string{etds="etds/0143-3857/" - #"Ergodic Theory and Dynamical Systems"} -@string{fm="fm/0016-2736/" - #"Fundamenta Mathematicae"} -@string{gd="gd/0046-5755/" - #"Geometriae Dedicata"} -@string{illinoisjmath="illinoisjmath/0019-2082/" - #"Illinois Journal of Mathematics"} -@string{iumj="iumj/0022-2518/" - #"Indiana University Mathematics"} -@string{im="im/0020-9910/" - #"Inventiones Mathematicae"} -@string{israeljmath="israeljmath/0021-2172/" - #"Israel Journal of Mathematics"} -@string{iansm="iansm/??/" - #"Izvestiya Akademii Nauk SSSR. Seriya Matematicheskaya"} -@string{ja="ja/0021-8693/" - #"Journal of Algebra"} -@string{jams="jams/0894-0347/" - #"Journal of the American Mathematical Society"} -@string{jam="jam/0021-7670/" - #"Journal d'Analyse Math\'{e}matique"} -@string{jamm="jamm/0021-8928/" - #"Journal of Applied Mathematics and Mechanics"} -@string{jat="jat/0021-9045/" - #"Journal of Approximation Theory"} -@string{jamsa="jamsa/0263-6115/" - #"Journal of the Australian Mathematical Society"} -@string{jcta="jcta/0097-3165/" - #"Journal of Combinatorial Theory"} -@string{jde="jde/0022-0396/" - #"Journal of Differential Equations"} -@string{jdg="jdg/0022-040X/Journal of Differential Geometry"} -@string{jfa="jfa/0022-1236/" - #"Journal of Functional Analysis"} -@string{jlms2="jlms2/0024-6107/" - #"Journal of the London Mathematical Society"} -@string{jmaa="jmaa/0022-247X/" - #"Journal of Mathematical Analysis and Applications"} -@string{jmp="jmp/0022-2488/" - #"Journal of Mathematical Physics"} -@string{jmsj="jmsj/0025-5645/" - #"Journal of the Mathematical Society of Japan"} -@string{jnt="jnt/0022-314X/Journal of Number Theory"} -@string{jot="jot/0379-4024/" - #"Journal of Operator Theory"} -@string{jpaa="jpaa/0022-4049/" - #"Journal of Pure and Applied Algebra"} -% Braces instead of quotes, to hide the embedded \" control sequence -@string{jram={jram/0075-4102/} - #{Journal f\"{u}r die Reine und Angewandte Mathematik}} -@string{jsl="jsl/0022-4812/" - #"The Journal of Symbolic Logic"} -@string{laa="laa/0024-3795/" - #"Linear Algebra and its Applications"} -@string{mm="mm/0025-2611/" - #"Manuscripta Mathematica"} -@string{matzametki="matzametki/0025-567X/Matematicheskie Zametki"} -@string{ma="ma/0025-5831/" - #"Mathematische Annalen"} -@string{mc="mc/0025-5718/" - #"Mathematics of Computation"} -@string{mj="mj/0025-5513/" - #"Mathematica Japonica"} -@string{mn="mn/0025-584X/Mathematische Nachrichten"} -@string{mpcps="mpcps/0305-0041/" - #"Mathematical Proceedings of the" - #" Cambridge Philosophical Society"} -@string{mrl="mrl/1073-2780/" - #"Mathematical Research Letters"} -@string{ms="ms/0025-5521/" - #"Mathematica Scandinavica"} -@string{mathz="mathz/0025-5874/" - #"Mathematische Zeitschrift"} -@string{m="m/0025-5793/" - #"Mathematika"} -@string{mmj="mmj/0026-2285/" - #"The Michigan Mathematical Journal"} -@string{nmj="nmj/0027-7630/" - #"Nagoya Mathematical Journal"} -@string{na="na/0362-546X/Nonlinear Analysis"} -@string{nm="nm/0029-599X/Numerische Mathematik"} -@string{ojm="ojm/0030-6126/" - #"Osaka Journal of Mathematics"} -@string{pjm="pjm/0030-8730/" - #"Pacific Journal of Mathematics"} -@string{pams="pams/0002-9939/" - #"Proceedings of the American Mathematical Society"} -@string{pems2="pems2/0013-0915/" - #"Proceedings of the Edinburgh Mathematical Society"} -@string{pjaa="pjaa/0386-2194/" - #"Proceedings of the Japan Academy"} -@string{plms3="plms3/0024-6115/" - #"Proceedings of the London Mathematical Society"} -@string{qjmo2="qjmo2/0033-5606/" - #"The Quarterly Journal of Mathematics"} -@string{rmi="rmi/0213-2230/" - #"Revista Matem\'{a}tica Iberoamericana"} -@string{rmjm="rmjm/0035-7596/" - #"Rocky Mountain Journal of Mathematics"} -@string{sjam="sjam/0036-1399/" - #"SIAM Journal on Applied Mathematics"} -@string{sjc="sjc/0097-5397/" - #"SIAM Journal on Computing"} -@string{sjma="sjma/0036-1410/" - #"SIAM Journal on Mathematical Analysis"} -@string{sjna="sjna/0036-1429/" - #"SIAM Journal on Numerical Analysis"} -@string{sr="sr/0036-1445/" - #"SIAM Review"} -@string{sm="sm/0039-3223/" - #"Studia Mathematica"} -@string{tjm="tjm/0387-3870/" - #"Tokyo Journal of Mathematics"} -@string{ta="ta/0166-8641/" - #"Topology and its Applications"} -@string{t="t/0040-9383/" - #"Topology"} -@string{tams="tams/0002-9947/" - #"Transactions of the American Mathematical Society"} -%</abbrevs> -% \end{macrocode} -% -% \section{To Do} -% -% ---When there is no author or editor info to create a label from: Use -% the initial letters of all the words in the title. Plus the year. -% Maybe year first. -% -% ---Add linelength and indent options to control the output? -% -% ---Discuss apacite "originalfoo" fields etc. -% -% ---Discuss Beebe's work. -% -% ---Add bibliography. -% -% ---Add AUDIO, VIDEO entry types. -% -% ---Add a field for MR subject classification numbers and the like? -% -% ---Write a converter to convert from typical .bib data to preferred -% form. Have to go via perl or something to capture STRING defs and -% PREAMBLE and interspersed comments? Or emacs lisp? Provide .bst -% version as fallback. -% -% ---Alpha labels: add numbers after sorting? subscript option? L3Y2a -% option. -% -% ---Test multi-author articles with ten-plus authors. What happens -% with the alpha labels then? -% -% ---For url field especially, check length and prebreak by hand instead -% of relying on \bibtex/'s slapdash stick-in-a-percent-at-column-72 -% regardless of where it happens to fall. -% -% ---How about a general `contributor' field. -% -% ---Test with a wimpy older version of \bibtex/. -% -% \CheckSum{24} -% \Finale |