diff options
Diffstat (limited to 'Master/texmf-dist')
39 files changed, 4561 insertions, 109 deletions
diff --git a/Master/texmf-dist/doc/latex/amsrefs/amsrdoc.pdf b/Master/texmf-dist/doc/latex/amsrefs/amsrdoc.pdf Binary files differindex 43a62b84eb3..2e2bc1ba6f4 100644 --- a/Master/texmf-dist/doc/latex/amsrefs/amsrdoc.pdf +++ b/Master/texmf-dist/doc/latex/amsrefs/amsrdoc.pdf diff --git a/Master/texmf-dist/source/latex/amsrefs/amsrefs.faq b/Master/texmf-dist/doc/latex/amsrefs/amsrefs.faq index 5df8c651b32..699436c83b7 100644 --- a/Master/texmf-dist/source/latex/amsrefs/amsrefs.faq +++ b/Master/texmf-dist/doc/latex/amsrefs/amsrefs.faq @@ -1,4 +1,4 @@ -amsrefs.faq [2007/10/01] American Mathematical Society +amsrefs.faq [2007/10/16] American Mathematical Society Frequently asked questions about the amsrefs package and its companion packages. @@ -19,10 +19,24 @@ For information on customizing the formatting of references, see amsrefs.pdf, especially sections 4, 6.10 and 6.27. 3) I'm trying to use amsrefs with hyperref, but various bad things -are happening. + are happening. Unlike most packages, which must be loaded before hyperref, amsrefs must be loaded *after* hyperref: \usepackage{hyperref} \usepackage{amsrefs} + +4) When I put + + review={MR0113214 (22 \#4052)}, + + in a \bib, there is no space between the review number and the + preceding period in the printed output. + +You must use the \MR macro to mark MR reviews: + + review={\MR{0113214 (22 \#4052)}}, + +This will ensure the spacing is correct and also allow you to use the +msc-links option. diff --git a/Master/texmf-dist/doc/latex/amsrefs/amsrefs.pdf b/Master/texmf-dist/doc/latex/amsrefs/amsrefs.pdf Binary files differindex d3a9eb86c22..5ada18cfbe7 100644 --- a/Master/texmf-dist/doc/latex/amsrefs/amsrefs.pdf +++ b/Master/texmf-dist/doc/latex/amsrefs/amsrefs.pdf diff --git a/Master/texmf-dist/doc/latex/amsrefs/amsxport.pdf b/Master/texmf-dist/doc/latex/amsrefs/amsxport.pdf Binary files differindex 85e29862bf9..473ce764fb0 100644 --- a/Master/texmf-dist/doc/latex/amsrefs/amsxport.pdf +++ b/Master/texmf-dist/doc/latex/amsrefs/amsxport.pdf diff --git a/Master/texmf-dist/doc/latex/amsrefs/changes.pdf b/Master/texmf-dist/doc/latex/amsrefs/changes.pdf Binary files differindex 52f3f0cab9a..d4d72824f70 100644 --- a/Master/texmf-dist/doc/latex/amsrefs/changes.pdf +++ b/Master/texmf-dist/doc/latex/amsrefs/changes.pdf diff --git a/Master/texmf-dist/doc/latex/amsrefs/cite-xa.pdf b/Master/texmf-dist/doc/latex/amsrefs/cite-xa.pdf Binary files differnew file mode 100644 index 00000000000..085306162a1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/amsrefs/cite-xa.pdf diff --git a/Master/texmf-dist/source/latex/amsrefs/cite-xa.tex b/Master/texmf-dist/doc/latex/amsrefs/cite-xa.tex index d6930f7cbf1..d6930f7cbf1 100644 --- a/Master/texmf-dist/source/latex/amsrefs/cite-xa.tex +++ b/Master/texmf-dist/doc/latex/amsrefs/cite-xa.tex diff --git a/Master/texmf-dist/doc/latex/amsrefs/cite-xb.pdf b/Master/texmf-dist/doc/latex/amsrefs/cite-xb.pdf Binary files differnew file mode 100644 index 00000000000..5b843877d82 --- /dev/null +++ b/Master/texmf-dist/doc/latex/amsrefs/cite-xb.pdf diff --git a/Master/texmf-dist/source/latex/amsrefs/cite-xb.tex b/Master/texmf-dist/doc/latex/amsrefs/cite-xb.tex index 5b7aa30f8d2..5b7aa30f8d2 100644 --- a/Master/texmf-dist/source/latex/amsrefs/cite-xb.tex +++ b/Master/texmf-dist/doc/latex/amsrefs/cite-xb.tex diff --git a/Master/texmf-dist/doc/latex/amsrefs/cite-xh.pdf b/Master/texmf-dist/doc/latex/amsrefs/cite-xh.pdf Binary files differnew file mode 100644 index 00000000000..2e4b3973349 --- /dev/null +++ b/Master/texmf-dist/doc/latex/amsrefs/cite-xh.pdf diff --git a/Master/texmf-dist/source/latex/amsrefs/cite-xh.tex b/Master/texmf-dist/doc/latex/amsrefs/cite-xh.tex index a40c04d88ea..a40c04d88ea 100644 --- a/Master/texmf-dist/source/latex/amsrefs/cite-xh.tex +++ b/Master/texmf-dist/doc/latex/amsrefs/cite-xh.tex diff --git a/Master/texmf-dist/doc/latex/amsrefs/cite-xs.pdf b/Master/texmf-dist/doc/latex/amsrefs/cite-xs.pdf Binary files differnew file mode 100644 index 00000000000..314d66acfda --- /dev/null +++ b/Master/texmf-dist/doc/latex/amsrefs/cite-xs.pdf diff --git a/Master/texmf-dist/source/latex/amsrefs/cite-xs.tex b/Master/texmf-dist/doc/latex/amsrefs/cite-xs.tex index 15167b3b9f1..15167b3b9f1 100644 --- a/Master/texmf-dist/source/latex/amsrefs/cite-xs.tex +++ b/Master/texmf-dist/doc/latex/amsrefs/cite-xs.tex diff --git a/Master/texmf-dist/source/latex/amsrefs/gktest.ltb b/Master/texmf-dist/doc/latex/amsrefs/gktest.ltb index 4236749372b..4236749372b 100644 --- a/Master/texmf-dist/source/latex/amsrefs/gktest.ltb +++ b/Master/texmf-dist/doc/latex/amsrefs/gktest.ltb diff --git a/Master/texmf-dist/doc/latex/amsrefs/ifoption.pdf b/Master/texmf-dist/doc/latex/amsrefs/ifoption.pdf Binary files differindex ea542b8e0f7..f891c6e6339 100644 --- a/Master/texmf-dist/doc/latex/amsrefs/ifoption.pdf +++ b/Master/texmf-dist/doc/latex/amsrefs/ifoption.pdf diff --git a/Master/texmf-dist/source/latex/amsrefs/jr.bib b/Master/texmf-dist/doc/latex/amsrefs/jr.bib index fdfc83c5689..fdfc83c5689 100644 --- a/Master/texmf-dist/source/latex/amsrefs/jr.bib +++ b/Master/texmf-dist/doc/latex/amsrefs/jr.bib diff --git a/Master/texmf-dist/doc/latex/amsrefs/mathscinet.pdf b/Master/texmf-dist/doc/latex/amsrefs/mathscinet.pdf Binary files differindex 8a8fa1f96d3..07b002a60e9 100644 --- a/Master/texmf-dist/doc/latex/amsrefs/mathscinet.pdf +++ b/Master/texmf-dist/doc/latex/amsrefs/mathscinet.pdf diff --git a/Master/texmf-dist/doc/latex/amsrefs/pcatcode.pdf b/Master/texmf-dist/doc/latex/amsrefs/pcatcode.pdf Binary files differindex e6acc823925..0b3759a6463 100644 --- a/Master/texmf-dist/doc/latex/amsrefs/pcatcode.pdf +++ b/Master/texmf-dist/doc/latex/amsrefs/pcatcode.pdf diff --git a/Master/texmf-dist/doc/latex/amsrefs/rkeyval.pdf b/Master/texmf-dist/doc/latex/amsrefs/rkeyval.pdf Binary files differindex b43cb81e5f0..96229e1508c 100644 --- a/Master/texmf-dist/doc/latex/amsrefs/rkeyval.pdf +++ b/Master/texmf-dist/doc/latex/amsrefs/rkeyval.pdf diff --git a/Master/texmf-dist/doc/latex/amsrefs/textcmds.pdf b/Master/texmf-dist/doc/latex/amsrefs/textcmds.pdf Binary files differindex a6a1bd6b201..ebde0a9ff40 100644 --- a/Master/texmf-dist/doc/latex/amsrefs/textcmds.pdf +++ b/Master/texmf-dist/doc/latex/amsrefs/textcmds.pdf diff --git a/Master/texmf-dist/source/latex/amsrefs/00readme.txt b/Master/texmf-dist/source/latex/amsrefs/00readme.txt index 824654406e4..137a4ec01ea 100644 --- a/Master/texmf-dist/source/latex/amsrefs/00readme.txt +++ b/Master/texmf-dist/source/latex/amsrefs/00readme.txt @@ -1,4 +1,7 @@ -00readme.txt for amsrefs 2.02 [2007/10/01] +00readme.txt for amsrefs 2.03 [2007/10/22] + +See section III (REMARKS ON THIS RELEASE) for notes on the +compatibility of this release with previous releases. See also install.txt. There is a history of changes at the end of this file. @@ -124,9 +127,38 @@ II. GETTING STARTED ======================================================================== III. REMARKS ON THIS RELEASE -This is a bug-fix release. No new features have been implemented and, -except for bug fixes, this version should be backwards compatible with -version 2.0. +In brief, this release fixes a few bugs and implements one new +feature, the msc-links package option (see amsrdoc.pdf for more +information). + +In addition, there are two incompatibilities with previous releases: + +1) The backrefs option no longer automatically loads the hyperref + package. This change was made so that you can use the backrefs + feature without having to also enable hyperref links in your + document. If you wish both backrefs and hyperlinks, you must load + the hyperref package explicitly: + + \usepackage{hyperref} + \usepackage[backrefs]{amsrefs} + +2) In articles from journals that have an issue number but no volume + number, the issue number is now treated as a volume. This means + that articles that used to appear as, for example + + Inst. Hautes Itudes Sci. Publ. Math. (1997), no. 85, 97--191, + + will now be formatted as + + Inst. Hautes Itudes Sci. Publ. Math. \textbf{85} (1997), 97--191, + + in accordance with AMS house style. + +Other than that, except for bug fixes, this version should be +backwards compatible with version 2.0 and version 2.02. + +See section IV (CHANGE LOG) for a complete list of user-visible +changes. ======================================================================== IV. CHANGE LOG @@ -155,3 +187,28 @@ IV. CHANGE LOG * amsxport.dtx 2.01: -- Fixed bug in sort order of references. + +2007-10-22 amsrefs.dtx 2.03 + + -- .sty files now unpack into tex/latex/amsrefs instead of + tex/latex/amscls. + + * amsrefs.dtx 2.03: + -- Added the msc-links option. + -- \nocite no longer produces a back reference with the backrefs + option. + -- The backrefs option no longer automatically loads hyperref. + -- Fixed support for showkeys (not showlabels, as incorrectly + stated in the release notes for 2.02) and the showkeys + notcite option. + -- Modified the bibdiv, bibchapter and bibsection environments + to set the page headings correctly for non-AMS document + classes. + -- For journals with issue numbers but no volumes, the issue + number is now treated as a volume number, per AMS house + style. + -- \cite and related commands can now be used within the fields + of a \bib item, for example, note={See also \cite{SokalB1998}} + + * textcmds.dtx 1.06: + -- Added \q for symmetry with \qq. diff --git a/Master/texmf-dist/source/latex/amsrefs/ams-r1.ins b/Master/texmf-dist/source/latex/amsrefs/ams-r1.ins deleted file mode 100644 index c4a552ebcba..00000000000 --- a/Master/texmf-dist/source/latex/amsrefs/ams-r1.ins +++ /dev/null @@ -1,43 +0,0 @@ -%%% ==================================================================== -%%% @LaTeX-file{ -%%% filename = "ams-r1.ins", -%%% version = "1.04", -%%% date = "2001/12/24", -%%% time = "12:50:14 EST", -%%% author = "Michael J Downes", -%%% address = "American Mathematical Society, -%%% Publications Technical Group, -%%% PO Box 6248, -%%% Providence, RI 02940, -%%% USA", -%%% email = "tech-support@ams.org", -%%% URL = "http://www.ams.org/", -%%% abstract = "A docstrip batch file for the amsrefs package", -%%% checksum = "21160 39 121 1555", -%%% docstring = "The checksum field, produced by Robert Solovay's -%%% checksum utility, gives CRC-16 checksum, lines, -%%% words, and characters.", -%%% } -%%% ==================================================================== -\def\batchfile{ams-r1.ins} -\input docstrip.tex -\preamble -\endpreamble -\keepsilent -\generateFile{pcatcode.sty}{f}{\from{pcatcode.dtx}{}} -\generateFile{ifoption.sty}{f}{\from{ifoption.dtx}{}} -\generateFile{rkeyval.sty}{f}{\from{rkeyval.dtx}{}} -\generateFile{amsrefs.sty}{f}{\from{amsrefs.dtx}{pkg}} -\generateFile{textcmds.sty}{f}{\from{textcmds.dtx}{pkg}} -\generateFile{mathscinet.sty}{f}{\from{mathscinet.dtx}{}} -%\generateFile{amsjpa.sty}{f}{\from{amsjpa.dtx}{}} -% Remove \endinput from postamble -\postamble -\endpostamble -\generateFile{amsrn.bst}{f}{\from{amsxport.dtx}{bst,sort,plain}} -\generateFile{amsru.bst}{f}{\from{amsxport.dtx}{bst,plain}} -\generateFile{amsra.bst}{f}{\from{amsxport.dtx}{bst,sort,alpha}} -\generateFile{amsry.bst}{f}{\from{amsxport.dtx}{bst,sort,alpha,y2k}} -\generateFile{amsrs.bst}{f}{\from{amsxport.dtx}{bst,sort,short}} -%\generateFile{amsj.bib}{f}{\from{amsxport.dtx}{abbrevs}} -\endinput diff --git a/Master/texmf-dist/source/latex/amsrefs/amsrdoc.tex b/Master/texmf-dist/source/latex/amsrefs/amsrdoc.tex index dd6256e88a7..32e80465a12 100644 --- a/Master/texmf-dist/source/latex/amsrefs/amsrdoc.tex +++ b/Master/texmf-dist/source/latex/amsrefs/amsrdoc.tex @@ -1,9 +1,9 @@ %%% ==================================================================== %%% @TeX-file{ %%% filename = "amsrdoc.tex", -%%% version = "1.01", -%%% date = "01 October 2007", -%%% time = "15:45:17 EDT", +%%% version = "1.02", +%%% date = "16 October 2007", +%%% time = "20:07:41 EDT", %%% author = "David M. Jones", %%% email = "tech-support@ams.org", %%% URL = "http://www.ams.org/", @@ -15,7 +15,7 @@ %%% supported = "yes", %%% abstract = "User's documentation for the amsrefs %%% package", -%%% checksum = "02179 1718 7071 56725", +%%% checksum = "13620 1724 7095 56900", %%% docstring = "The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word @@ -65,7 +65,7 @@ \title{User's Guide to the \pkg{amsrefs} Package} \author{David M. Jones\\American Mathematical Society} -\date{October 1, 2007} +\date{October 16, 2007} \begin{document} @@ -1305,6 +1305,12 @@ case). \end{description} +\item[msc-links] + +Redefine the \cn{MR} command to create hypertext links to the +MathSciNet database. This option will work only if the \pkg{hyperref} +package is installed. + \item[nobysame] If two or more consecutive bibliography items have the same authors, diff --git a/Master/texmf-dist/source/latex/amsrefs/amsrefs.dtx b/Master/texmf-dist/source/latex/amsrefs/amsrefs.dtx index 8882bafc2ee..56d623f7015 100644 --- a/Master/texmf-dist/source/latex/amsrefs/amsrefs.dtx +++ b/Master/texmf-dist/source/latex/amsrefs/amsrefs.dtx @@ -1,9 +1,9 @@ %%% ==================================================================== %%% @LaTeX-doc-source-file{ %%% filename = "amsrefs.dtx", -%%% version = "2.02", -%%% date = "2006/10/25", -%%% time = "11:13:05 EDT", +%%% version = "2.03", +%%% date = "2007/10/22", +%%% time = "10:22:13 EDT", %%% author = "Michael J Downes and David M. Jones", %%% address = "American Mathematical Society, %%% Publications Technical Group, @@ -17,13 +17,13 @@ %%% instead of being determined chiefly by the BibTeX %%% style file.", %%% copyright = "Copyright 2001, 2004, 2006, 2007 American -%%% Mathematical Society.", +%%% Mathematical Society.", %%% license = "Unlimited copying and redistribution of this file %%% are permitted as long as this file is not %%% modified. Modifications, and distribution of %%% modified versions, are permitted, but only if %%% the resulting file is renamed.", -%%% checksum = "24451 8100 25457 244022", +%%% checksum = "57935 8186 25806 247374", %%% docstring = "The checksum field, produced by Robert Solovay's %%% checksum utility, gives CRC-16 checksum, lines, %%% words, and characters.", @@ -861,7 +861,7 @@ % Standard declaration of package name and date. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{amsrefs}[2006/10/25 v2.02] +\ProvidesPackage{amsrefs}[2007/10/22 v2.03] % \end{macrocode} % % \begin{macro}{\amsrefs@warning@nl} @@ -1284,6 +1284,10 @@ % \end{macrocode} % % \begin{macrocode} +\DeclareBooleanOption{msc-links} +% \end{macrocode} +% +% \begin{macrocode} \ExecuteOptions{numeric,traditional-quotes,sorted-cites,compressed-cites} \ProcessOptions\relax @@ -1293,19 +1297,27 @@ % % \begin{macrocode} \IfOption{backrefs}{% - \IfFileExists{hyperref.sty}{% - \RequirePackage{hyperref}[1999/07/08] - }{}% \IfFileExists{backref.sty}{% \RequirePackage{backref}[1999/05/30] - }{}% + }{% + \amsrefs@warning@nl{The backrefs option cannot be used^^J% + unless the backref package is also installed.^^J% + (backref is part of the hyperref package)}% + }% +}{} + +\IfOption{msc-links}{% + \IfFileExists{hyperref.sty}{% + \RequirePackage{hyperref}[1999/07/08] + }{ + \amsrefs@warning@nl{The msc-links option cannot be used^^J% + unless the hyperref package is installed}% + }% }{} % \end{macrocode} % % \subsubsection{The \opt{?} option} % -% Note that in the following auxiliary package list, \pkg{getwidth} -% is not (yet) included. % \begin{macrocode} \IfOption{?}{% \typeout{^^J% @@ -2662,6 +2674,10 @@ % \end{macro} % % \begin{macro}{\bib@field@patches} +% Depending on your point of view, this macro either puts the +% bibitem into a canonical form or, alternatively, it fudges the +% data to fit our model. Either way, it simplifies formatting the +% bibliography. % \begin{macrocode} \def\bib@field@patches{% \ifx\bib'author\@empty @@ -2707,6 +2723,18 @@ \let\bib'date\@empty \fi % \end{macrocode} +% Some journals have ``numbers'' but no ``volumes''. AMS house +% style is to treat the number as volume. +% \begin{macrocode} + \ifx\setbib@@\setbib@article + \ifx\bib'volume\@empty + \ifx\bib'number\@empty\else + \let\bib'volume\bib'number + \let\bib'number\@empty + \fi + \fi + \fi +% \end{macrocode} % \cs{bib'language} is used for producing the printed rendition of % the language. \cs{bib@language} needs to be in the form required by % \cn{selectlanguage}. @@ -3001,8 +3029,10 @@ % \begin{macrocode} \def\bibcite@write#1{% \if@filesw - \let\citesel\citesel@write - \csname b@#1\endcsname + \begingroup + \let\citesel\citesel@write + \csname b@#1\endcsname + \endgroup \fi } % \end{macrocode} @@ -3011,10 +3041,8 @@ % \begin{macro}{\citesel@write} % \begin{macrocode} \def\citesel@write#1#2#3#4#5{% - \begingroup - \toks@{{#3}{#4}}% - \immediate\write\@auxout{\string\bibcite{\CurrentBib}{\the\toks@}}% - \endgroup + \toks@{{#3}{#4}}% + \immediate\write\@auxout{\string\bibcite{\CurrentBib}{\the\toks@}}% } % \end{macrocode} % \end{macro} @@ -3039,13 +3067,38 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\bib@div@mark} +% The AMS document classes automatically take care of the page +% marks for \cn{section*} and \cn{chapter*}, but for the standard +% classes, we need to make sure that \cn{@mkboth} gets invoked. +% \begin{macrocode} +\let\bib@div@mark\@gobble +% \end{macrocode} +% This is verbose, but probably safer than any alternative. +% \begin{macrocode} +\@ifclassloaded{amsbook}{}{% + \@ifclassloaded{amsart}{}{% + \@ifclassloaded{amsproc}{}{% + \def\bib@div@mark#1{% + \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}% + }% + }% + }% +} +% \end{macrocode} +% \end{macro} +% % \begin{environment}{bibchapter} % We need to take a little extra trouble here to pre-expand the % \cn{bibname}. % \begin{macrocode} \newenvironment{bibchapter}[1][\bibname]{% \begingroup - \protected@edef\@{\endgroup\protect\chapter*{#1}}% + \protected@edef\@{% + \endgroup + \protect\chapter*{#1}% + \protect\bib@div@mark{#1}% + }% \@ }{\par} % \end{macrocode} @@ -3056,7 +3109,11 @@ % \begin{macrocode} \newenvironment{bibsection}[1][\refname]{% \begingroup - \protected@edef\@{\endgroup\protect\section*{#1}}% + \protected@edef\@{% + \endgroup + \protect\section*{#1}% + \protect\bib@div@mark{#1}% + }% \@ }{\par} % \end{macrocode} @@ -3888,6 +3945,7 @@ % \begin{macrocode} \newcommand{\othercites}[1]{% \cite@begingroup + \let\BackCite\@gobble \let\cite@endgroup\@empty \def\citelist{\othercitelist}% \cites{#1}% @@ -4484,7 +4542,11 @@ \let\hyper@anchorstart\@gobble \let\hyper@anchorend\relax }% - \@ifpackageloaded{showlabels}{}{% + \@ifpackageloaded{showkeys}{% + \@ifpackagewith{showkeys}{notcite}{% + \let\ar@SK@cite\@gobble + }{} + }{% \let\ar@SK@cite\@gobble \let\SK@@label\@gobble \let\SK@\@gobbletwo @@ -6893,7 +6955,7 @@ % % \begin{macro}{\@scanforMR} % \begin{macrocode} -\def\@scanforMR#1#2#3#4\@nil{% +\def\strip@MRprefix#1#2#3#4\@nil{% \def\@tempa{#1#2#3#4}% \if#1M% \if#2R% @@ -6909,7 +6971,7 @@ \def\MR#1{% \relax\ifhmode\unskip\spacefactor3000 \space\fi \begingroup - \@scanforMR#1\@nil + \strip@MRprefix#1\@nil \edef\@tempa{MR\@nx\MRhref{\@tempa}{\@tempa}}% \@xp\endgroup \@tempa @@ -7285,21 +7347,34 @@ % \end{macrocode} % % \subsubsection{The \opt{backrefs} option} -% +% Rather than checking for the \opt{backrefs} option \emph{per se}, +% we check to see if the \pkg{backref} package is loaded. This +% accomodates authors who load the \pkg{backref} package explicitly +% but do not pass the \opt{backrefs} option to \pkg{amsrefs}. % \begin{macrocode} -\IfOption{backrefs}{% - \let\PrintBackRefs\print@backrefs - \@ifundefined{Hy@backout}{% - \amsrefs@warning{backref option requires hyperref package}% - }{% +\AtBeginDocument{% + \@ifpackageloaded{backref}{% + \let\PrintBackRefs\print@backrefs \let\BackCite\back@cite - \AtBeginDocument{% - \let\ams@saved@toc\tableofcontents - \@starttoc{brf}{}% - \let\tableofcontents\ams@saved@toc - }% - }% -}{% +% \end{macrocode} +% The \pkg{backref} package uses \cn{@starttoc} inside +% \cn{thebibliography} to open and read the \fn{.brf} file. We +% could do something similar with \cn{biblist}, but it seems +% cleaner to use \cn{AtBeginDocument}. Unfortunately, \cls{amsart} +% redefines \cn{@starttoc} in a way that interacts badly with this +% use. So, we inline the relevant parts of \cn{@starttoc} here. +% (The group and \cn{makeatletter} are unnecessary at present, but +% I'll leave them in as future-proofing.) +% \begin{macrocode} + \begingroup + \makeatletter + \@input{\jobname.brf}% + \if@filesw + \newwrite\tf@brf + \immediate\openout\tf@brf \jobname.brf\relax + \fi + \endgroup + }{}% } % \end{macrocode} % @@ -7309,7 +7384,7 @@ \IfOption{citation-order}{% \IfOption{alphabetic}{% \amsrefs@warning@nl{% - The 'citation-order' and 'alphabetic' options are + The citation-order and alphabetic options are incompatible% }% }{ @@ -7432,8 +7507,8 @@ \def\bibtex@style{amsry}% }{% \amsrefs@warning@nl{% - The 'y2k' option can only be used with the^^J% - 'alphabetic' option% + The y2k option can only be used with the^^J% + alphabetic option% }% } }{} @@ -7447,6 +7522,36 @@ }{} % \end{macrocode} % +% \subsubsection{The \opt{msc-links} option} +% +% \begin{macrocode} +\IfOption{msc-links}{% +% \end{macrocode} +% Unless you're using pdf\TeX, links cannot be broken across +% lines, which causes problems for long-form MR numbers such as +% ``MR2149145 (2006d:01012)''. To mitigate the problem, we +% manually break such numbers into two separate links. +% \begin{macrocode} + \@ifundefined{href}{}{% + \def\parse@MR#1 (#2)#3\@nil{% + \def\MR@url{http://www.ams.org/mathscinet-getitem?mr=#1}% + \def\@tempd{#1}% + \def\@tempe{#2}% + }% + \def\MRhref#1#2{% + \begingroup + \parse@MR#1 ()\@empty\@nil% + \href{\MR@url}{\@tempd\vphantom{()}}% + \ifx\@tempe\@empty + \else + \ \href{\MR@url}{(\@tempe)}% + \fi + \endgroup + }% + }{} +}{} +% \end{macrocode} +% % \subsubsection{The \opt{author-year} option} % % Here ends the \pkg{amsrefs} package, unless the \opt{author-year} @@ -8077,5 +8182,5 @@ \endinput % \end{macrocode} % -% \CheckSum{5058} +% \CheckSum{5139} % \Finale diff --git a/Master/texmf-dist/source/latex/amsrefs/amsrefs.ins b/Master/texmf-dist/source/latex/amsrefs/amsrefs.ins index b7fa56abc72..39575a39617 100644 --- a/Master/texmf-dist/source/latex/amsrefs/amsrefs.ins +++ b/Master/texmf-dist/source/latex/amsrefs/amsrefs.ins @@ -7,7 +7,7 @@ \preamble \endpreamble -\usedir{tex/latex/amscls} +\usedir{tex/latex/amsrefs} \generate{% \file{amsrefs.sty}{\from{amsrefs.dtx}{pkg}} diff --git a/Master/texmf-dist/source/latex/amsrefs/ifoption.ins b/Master/texmf-dist/source/latex/amsrefs/ifoption.ins index b649b11c0b1..aa12c5f076d 100644 --- a/Master/texmf-dist/source/latex/amsrefs/ifoption.ins +++ b/Master/texmf-dist/source/latex/amsrefs/ifoption.ins @@ -7,7 +7,7 @@ \preamble \endpreamble -\usedir{tex/latex/amscls} +\usedir{tex/latex/amsrefs} \generate{ \file{ifoption.sty}{\from{ifoption.dtx}{}} diff --git a/Master/texmf-dist/source/latex/amsrefs/manifest.txt b/Master/texmf-dist/source/latex/amsrefs/manifest.txt index 99b1f162b71..b557eed8cfd 100644 --- a/Master/texmf-dist/source/latex/amsrefs/manifest.txt +++ b/Master/texmf-dist/source/latex/amsrefs/manifest.txt @@ -79,9 +79,9 @@ tex: latex tex/latex: -amscls +amsrefs -tex/latex/amscls: +tex/latex/amsrefs: amsbst.sty amsrefs.sty ifoption.sty diff --git a/Master/texmf-dist/source/latex/amsrefs/mathscinet.ins b/Master/texmf-dist/source/latex/amsrefs/mathscinet.ins index 0708049548a..f41a6946ccd 100644 --- a/Master/texmf-dist/source/latex/amsrefs/mathscinet.ins +++ b/Master/texmf-dist/source/latex/amsrefs/mathscinet.ins @@ -7,7 +7,7 @@ \preamble \endpreamble -\usedir{tex/latex/amscls} +\usedir{tex/latex/amsrefs} \generate{ \file{mathscinet.sty}{\from{mathscinet.dtx}{}} diff --git a/Master/texmf-dist/source/latex/amsrefs/pcatcode.ins b/Master/texmf-dist/source/latex/amsrefs/pcatcode.ins index c4a40fd45a6..a709b165e41 100644 --- a/Master/texmf-dist/source/latex/amsrefs/pcatcode.ins +++ b/Master/texmf-dist/source/latex/amsrefs/pcatcode.ins @@ -7,7 +7,7 @@ \preamble \endpreamble -\usedir{tex/latex/amscls} +\usedir{tex/latex/amsrefs} \generate{ \file{pcatcode.sty}{\from{pcatcode.dtx}{}} diff --git a/Master/texmf-dist/source/latex/amsrefs/rkeyval.ins b/Master/texmf-dist/source/latex/amsrefs/rkeyval.ins index ee5108e2ab8..6f4debec772 100644 --- a/Master/texmf-dist/source/latex/amsrefs/rkeyval.ins +++ b/Master/texmf-dist/source/latex/amsrefs/rkeyval.ins @@ -7,7 +7,7 @@ \preamble \endpreamble -\usedir{tex/latex/amscls} +\usedir{tex/latex/amsrefs} \generate{ \file{rkeyval.sty}{\from{rkeyval.dtx}{}} diff --git a/Master/texmf-dist/source/latex/amsrefs/textcmds.dtx b/Master/texmf-dist/source/latex/amsrefs/textcmds.dtx index 842c76a8e41..bdf3c8c48cc 100644 --- a/Master/texmf-dist/source/latex/amsrefs/textcmds.dtx +++ b/Master/texmf-dist/source/latex/amsrefs/textcmds.dtx @@ -1,9 +1,9 @@ %%% ==================================================================== %%% @LaTeX-doc-source-file{ %%% filename = "textcmds.dtx", -%%% version = "1.05", -%%% date = "2002/04/16", -%%% time = "08:47:47 EDT", +%%% version = "1.06", +%%% date = "2007/10/19", +%%% time = "14:12:53 EDT", %%% author = "Michael J Downes", %%% address = "American Mathematical Society, %%% Publications Technical Group, @@ -21,7 +21,7 @@ %%% modified. Modifications, and distribution of %%% modified versions, are permitted, but only if %%% the resulting file is renamed.", -%%% checksum = "55773 283 1136 10227", +%%% checksum = "63388 295 1197 10750", %%% docstring = "The checksum field, produced by Robert Solovay's %%% checksum utility, gives CRC-16 checksum, lines, %%% words, and characters.", @@ -109,7 +109,8 @@ % \begin{center} % \begin{tabular}{lll} % \textbf{Example}& \textbf{Definition}& \textbf{Result}\\ -% \verb'\qq{some text}'& \verb'\ldq#1\rdq'& \qq{some text}\\ +% \verb'\qq{some text}'& \verb'\ldq#1\/\rdq'& \qq{some text}\\ +% \verb'\q{some text}'& \verb'\lq#1\/\rq'& \q{some text}\\ % \verb'\lara{some text}'& \verb'\textlangle#1\textrangle'& % \lara{some text}\\ % \verb'Jello\tsup{TM}'& \textit{raise .9ex}\verb'{\supsize#1}'& @@ -131,7 +132,7 @@ % % Package name, date, version number. % \begin{macrocode} -\ProvidesPackage{textcmds}[2002/04/16 v1.05] +\ProvidesPackage{textcmds}[2007/10/19 v1.06] % \end{macrocode} % % Dashes and inverted beginning-of-sentence punctuation. @@ -166,6 +167,11 @@ \providecommand{\qq}[1]{\ldq#1\/\rdq} % \end{macrocode} % +% +% \begin{macrocode} +\providecommand{\q}[1]{\lq#1\/\rq} +% \end{macrocode} +% % Unlike \cs{textsuperscript} and \cs{textsubscript}, these do not % use math mode at all. The difference between \cn{scriptsize} and % \cn{supsize} is that the former is fixed at a single constant size @@ -285,5 +291,5 @@ a left quote." </emacs> % \end{macrocode} % -% \CheckSum{133} +% \CheckSum{138} % \Finale diff --git a/Master/texmf-dist/source/latex/amsrefs/textcmds.ins b/Master/texmf-dist/source/latex/amsrefs/textcmds.ins index 17679c43c39..df31e7d8616 100644 --- a/Master/texmf-dist/source/latex/amsrefs/textcmds.ins +++ b/Master/texmf-dist/source/latex/amsrefs/textcmds.ins @@ -7,7 +7,7 @@ \preamble \endpreamble -\usedir{tex/latex/amscls} +\usedir{tex/latex/amsrefs} \generate{ \file{textcmds.sty}{\from{textcmds.dtx}{pkg}} diff --git a/Master/texmf-dist/tex/latex/amsrefs/amsbst.sty b/Master/texmf-dist/tex/latex/amsrefs/amsbst.sty new file mode 100644 index 00000000000..4bb16de82a1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsrefs/amsbst.sty @@ -0,0 +1,178 @@ +%% +%% This is file `amsbst.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsrefs.dtx (with options: `bst') +%% +%%% ==================================================================== +%%% @LaTeX-doc-source-file{ +%%% filename = "amsrefs.dtx", +%%% version = "2.03", +%%% date = "2007/10/22", +%%% time = "10:22:13 EDT", +%%% author = "Michael J Downes and David M. Jones", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support@ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "A LaTeX package that permits bibliography style +%%% to be controlled completely from the LaTeX side +%%% instead of being determined chiefly by the BibTeX +%%% style file.", +%%% copyright = "Copyright 2001, 2004, 2006, 2007 American +%%% Mathematical Society.", +%%% license = "Unlimited copying and redistribution of this file +%%% are permitted as long as this file is not +%%% modified. Modifications, and distribution of +%%% modified versions, are permitted, but only if +%%% the resulting file is renamed.", +%%% checksum = "57935 8186 25806 247374", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{amsbst}[2004/03/29 v1.68] +\BibSpec{article}{% + +{} {\PrintAuthors} {author} + +{.} { } {title} + +{.} { } {part} + +{:} { } {subtitle} + +{.} { \PrintContributions} {contribution} + +{.} { \PrintPartials} {partial} + +{.} { \emph} {journal} + +{} { } {volume} + +{} { \parenthesize} {number} + +{:} {} {pages} + +{,} { \PrintDateB} {date} + +{,} { } {status} + +{.} { \PrintTranslation} {translation} + +{.} { Reprinted in \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} +} + +\BibSpec{partial}{% + +{} {} {part} + +{:} { } {subtitle} + +{.} { \PrintContributions} {contribution} + +{.} { \emph} {journal} + +{} { } {volume} + +{} { \parenthesize} {number} + +{:} {} {pages} + +{,} { \PrintDateB} {date} +} + +\BibSpec{book}{% + +{} {\PrintPrimary} {transition} + +{.} { \emph} {title} + +{.} { } {part} + +{:} { \emph} {subtitle} + +{.} { } {series} + +{,} { \voltext} {volume} + +{.} { Edited by \PrintNameList} {editor} + +{.} { Translated by \PrintNameList}{translator} + +{.} { \PrintContributions} {contribution} + +{.} { } {publisher} + +{.} { } {organization} + +{,} { } {address} + +{,} { \PrintEdition} {edition} + +{,} { \PrintDateB} {date} + +{.} { } {note} + +{.} {} {transition} + +{.} { \PrintTranslation} {translation} + +{.} { Reprinted in \PrintReprint} {reprint} + +{.} {} {transition} +} + +\BibSpec{collection.article}{% + +{} {\PrintAuthors} {author} + +{.} { } {title} + +{.} { } {part} + +{:} { } {subtitle} + +{.} { \PrintContributions} {contribution} + +{.} { \PrintConference} {conference} + +{.} { \PrintBook} {book} + +{.} { In } {booktitle} + +{,} { pages~} {pages} + +{.} { \PrintDateB} {date} + +{.} { \PrintTranslation} {translation} + +{.} { Reprinted in \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} +} + +\BibSpec{conference}{% + +{} {} {title} + +{} {\PrintConferenceDetails} {transition} +} + +\BibSpec{innerbook}{% + +{.} { \emph} {title} + +{.} { } {part} + +{:} { \emph} {subtitle} + +{.} { } {series} + +{,} { \voltext} {volume} + +{.} { Edited by \PrintNameList} {editor} + +{.} { Translated by \PrintNameList}{translator} + +{.} { \PrintContributions} {contribution} + +{.} { } {publisher} + +{.} { } {organization} + +{,} { } {address} + +{,} { \PrintEdition} {edition} + +{,} { \PrintDateB} {date} + +{.} { } {note} + +{.} {} {transition} +} + +\BibSpec{report}{% + +{} {\PrintPrimary} {transition} + +{.} { \emph} {title} + +{.} { } {part} + +{:} { \emph} {subtitle} + +{.} { \PrintContributions} {contribution} + +{.} { Technical Report } {number} + +{,} { } {series} + +{.} { } {organization} + +{,} { } {address} + +{,} { \PrintDateB} {date} + +{.} { \PrintTranslation} {translation} + +{.} { Reprinted in \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} +} + +\BibSpec{thesis}{% + +{} {\PrintAuthors} {author} + +{,} { \emph} {title} + +{:} { \emph} {subtitle} + +{.} { \PrintThesisType} {type} + +{.} { } {organization} + +{,} { } {address} + +{,} { \PrintDateB} {date} + +{.} { \PrintTranslation} {translation} + +{.} { Reprinted in \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} +} +\renewcommand{\PrintEditorsA}[1]{% + \def\current@bibfield{\bib'editor}% + \PrintNames{}{, editor\Plural{s})}{#1}% + \erase@field\bib'editor +} +\renewcommand{\PrintTranslatorsA}[1]{% + \def\current@bibfield{\bib'translator}% + \PrintNames{}{, translator\Plural{s}}{#1}% + \erase@field\bib'translator +} +\endinput +%% +%% End of file `amsbst.sty'. diff --git a/Master/texmf-dist/tex/latex/amsrefs/amsrefs.sty b/Master/texmf-dist/tex/latex/amsrefs/amsrefs.sty new file mode 100644 index 00000000000..486dd178992 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsrefs/amsrefs.sty @@ -0,0 +1,3100 @@ +%% +%% This is file `amsrefs.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsrefs.dtx (with options: `pkg') +%% +%%% ==================================================================== +%%% @LaTeX-doc-source-file{ +%%% filename = "amsrefs.dtx", +%%% version = "2.03", +%%% date = "2007/10/22", +%%% time = "10:22:13 EDT", +%%% author = "Michael J Downes and David M. Jones", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support@ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "A LaTeX package that permits bibliography style +%%% to be controlled completely from the LaTeX side +%%% instead of being determined chiefly by the BibTeX +%%% style file.", +%%% copyright = "Copyright 2001, 2004, 2006, 2007 American +%%% Mathematical Society.", +%%% license = "Unlimited copying and redistribution of this file +%%% are permitted as long as this file is not +%%% modified. Modifications, and distribution of +%%% modified versions, are permitted, but only if +%%% the resulting file is renamed.", +%%% checksum = "57935 8186 25806 247374", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{amsrefs}[2007/10/22 v2.03] +\def\amsrefs@warning@nl{\PackageWarningNoLine{amsrefs}} +\@ifpackagewith{amsrefs}{beta}{% + \amsrefs@warning@nl{The beta option is obsolete}% +}{} +\@ifpackagewith{amsrefs}{jpa}{% + \amsrefs@warning@nl{The jpa option is obsolete}% +}{} +\IfFileExists{url.sty}{% + \RequirePackage{url}\relax + \@gobble +}{% + \@firstofone +} +{ + \DeclareRobustCommand{\url}[1]{% + \def\@tempa{#1}% + \texttt{\@urlsetup $\expandafter\strip@prefix\meaning\@tempa$}% + }% + \def\@urlsetup{% + \check@mathfonts \textfont\@ne\the\font \textfont\z@\the\font + \@apply\@urlfix{\do\+\do\=\do\:\do\-\do\.\do\,\do\;}% + \@apply\@urlbreak{\do\&\do\/\do\?}% + }% + \def\@urlbreak#1{% + \mathcode`#1="8000 + \begingroup \lccode`\~=`#1 \lowercase{\endgroup \edef~}% + {\mathchar\number`#1\penalty\hyphenpenalty}% + }% + \def\@urlfix#1{% + \mathcode`#1=`#1\relax + }% +} +\@ifundefined{NormalCatcodes}{\RequirePackage{pcatcode}\relax}{} +\PushCatcodes\NormalCatcodes +%% WARNING WARNING WARNING: Catcode of apostrophe ' is letter +%% throughout this file. +\catcode`\'=11 % letter +\def\after@deleting@token#1{% + \afterassignment#1% + \let\@let@token= % Don't delete this space! +} +\long\def\@ifempty#1{\@xifempty#1@@..\@nil} + +\long\def\@xifempty#1#2@#3#4#5\@nil{% + \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi +} + +\long\def\@ifnotempty#1{\@ifempty{#1}{}} +\def\macrotext{\expandafter\strip@prefix\meaning} +\def\vdef#1#2{% + \def#1{#2}% + \edef#1{\macrotext#1}% +} +\def\auto@protect#1{\def#1{\@nx#1}} +\def\g@undef#1{\global\let#1\relax} +\def\@concat#1#2{\edef#1{#1#2}} +\def\add@toks@{\addto@hook\toks@} +\def\@lappend#1#2{% + \begingroup + \def\do{\@nx\do\@nx}% + \edef\@tempa{\def\@nx#1{#1\do#2}}% + \@xp\endgroup + \@tempa +} +\def\@apply#1#2{% + \let\do#1% + #2% +} +\def\get@numberof#1#2#3{% + \begingroup + \def#2{\advance\@tempcnta\@ne \@gobble}% + \@tempcnta\z@ + #3\relax + \edef\@tempb{#1=\the\@tempcnta\relax}% + \@xp\endgroup + \@tempb +} +\def\safe@set#1#2{% + \afterassignment\@nilgobble + #1=0#2\relax\@nil +} +\def\@chomp#1#2{% + \begingroup + \toks@\@emptytoks + \def\@chomper##1##2#2\@empty##3\@nil{% + \ifx\@let@token\bgroup + \toks@{{##1}##2}% + \else + \toks@{##1##2}% + \fi + }% + \@xp\chomp@ #1\@empty#2\@empty\@nil + \edef\@tempa{\def\@nx#1\@xp{\the\toks@}}% + \@xp\endgroup + \@tempa +} +\def\chomp@{% + \futurelet\@let@token + \@chomper +} +\def\amsrefs@warning{\PackageWarning{amsrefs}} +\def\amsrefs@error{\PackageError{amsrefs}} +\def\MessageBreakNS{\MessageBreak\romannumeral`\^^@} +\@ifundefined{@addpunct}{% + \def\@addpunct#1{% + \relax\ifhmode + \ifnum\spacefactor>\@m \else#1\fi + \fi + } + \def\frenchspacing{% + \sfcode`\.1006 + \sfcode`\?1005 + \sfcode`\!1004 + \sfcode`\:1003 + \sfcode`\;1002 + \sfcode`\,1001\relax + } +}{} +\providecommand{\nopunct}{\spacefactor \@nopunctsfcode} +\def\@nopunctsfcode{1007 } +\RequirePackage{ifoption}[2000/02/15] +\DeclareExclusiveOptions{sorted,citation-order} +\DeclareExclusiveOptions{alphabetic,shortalphabetic,author-year,numeric} +\DeclareBooleanOption{y2k} +\DeclareBooleanOption{nobysame} +\DeclareBooleanOption{short-journals} +\DeclareBooleanOption{short-publishers} +\DeclareBooleanOption{short-months} +\DeclareBooleanOption{initials} +\DeclareOption{abbrev}{% + \@pass@ptions + \@currext + {initials,short-months,short-journals,short-publishers}% + \@currname +} +\DeclareExclusiveOptions{traditional-quotes,logical-quotes} +\DeclareExclusiveOptions{sorted-cites,non-sorted-cites} +\DeclareExclusiveOptions{non-compressed-cites,compressed-cites} +\DeclareBooleanOption{backrefs} +\DeclareBooleanOption{?} +\DeclareBooleanOption{lite} +\DeclareBooleanOption{beta} +\DeclareBooleanOption{bibtex-style} +\DeclareBooleanOption{msc-links} +\ExecuteOptions{numeric,traditional-quotes,sorted-cites,compressed-cites} + +\ProcessOptions\relax + +\ProcessExclusiveOptions +\IfOption{backrefs}{% + \IfFileExists{backref.sty}{% + \RequirePackage{backref}[1999/05/30] + }{% + \amsrefs@warning@nl{The backrefs option cannot be used^^J% + unless the backref package is also installed.^^J% + (backref is part of the hyperref package)}% + }% +}{} + +\IfOption{msc-links}{% + \IfFileExists{hyperref.sty}{% + \RequirePackage{hyperref}[1999/07/08] + }{ + \amsrefs@warning@nl{The msc-links option cannot be used^^J% + unless the hyperref package is installed}% + }% +}{} +\IfOption{?}{% + \typeout{^^J% + Documentation for the amsrefs package is found in amsrdoc.dvi^^J% + (or .pdf or .tex). + ^^J% + }% +}{}% +\RequirePackage{rkeyval}[2001/12/22] +\IfOption{lite}{% True? Then don't load the next two packages. +}{% False? OK, let's load them: + \RequirePackage{textcmds}[2001/12/14] + \RequirePackage{mathscinet}[2002/01/01] +} +\newcommand{\BibField}[1]{\csname bib'#1\endcsname} +\newcommand{\IfEmptyBibField}{\rkvIfEmpty{bib}} +\let\fld@elt=? +\let\name=? +\DefineAdditiveKey{bib}{author}{\name} +\DefineAdditiveKey{bib}{editor}{\name} +\DefineAdditiveKey{bib}{translator}{\name} +\DefineAdditiveKey{bib}{contribution}{\fld@elt} +\DefineAdditiveKey{bib}{isbn}{\fld@elt} +\DefineAdditiveKey{bib}{issn}{\fld@elt} +\DefineAdditiveKey{bib}{review}{\fld@elt} +\DefineAdditiveKey{bib}{partial}{\fld@elt} +\DefineSimpleKey{bib}{address} +\DefineSimpleKey{bib}{book} +\DefineSimpleKey{bib}{booktitle} +\DefineSimpleKey{bib}{conference} +\DefineSimpleKey{bib}{copula} +\DefineSimpleKey{bib}{date} +\DefineSimpleKey{bib}{doi} +\DefineSimpleKey{bib}{edition} +\DefineSimpleKey{bib}{eprint} +\DefineSimpleKey{bib}{fulljournal} +\DefineSimpleKey{bib}{hyphenation} +\DefineSimpleKey{bib}{institution} +\DefineSimpleKey{bib}{journal} +\DefineSimpleKey{bib}{label} +\DefineSimpleKey{bib}{language} +\DefineSimpleKey{bib}{name} +\DefineSimpleKey{bib}{note} +\DefineSimpleKey{bib}{number} +\DefineSimpleKey{bib}{organization} +\DefineSimpleKey{bib}{pages} +\DefineSimpleKey{bib}{part} +\DefineSimpleKey{bib}{place} +\DefineSimpleKey{bib}{publisher} +\DefineSimpleKey{bib}{reprint} +\DefineSimpleKey{bib}{school} +\DefineSimpleKey{bib}{series} +\DefineSimpleKey{bib}{setup} +\DefineSimpleKey{bib}{status} +\DefineSimpleKey{bib}{subtitle} +\DefineSimpleKey{bib}{title} +\DefineSimpleKey{bib}{translation} +\DefineSimpleKey{bib}{type} +\DefineSimpleKey{bib}{url} +\DefineSimpleKey{bib}{volume} +\DefineSimpleKey{bib}{xref} +\DefineSimpleKey{bib}{year} +\DefineDummyKey{bib}{transition} +\DefineSimpleKey{prop}{inverted} +\DefineSimpleKey{prop}{language} +\newcommand{\BibSpec}[2]{% + \toks@\@emptytoks + \@ifnotempty{#2}{% + \@ifnextchar{+}{\@xp\bibspec@scan\@gobble}{\bibspec@scan}% + #2\@empty\@empty\@empty\@empty + }% + \@xp\edef\csname setbib@#1\endcsname{\the\toks@}% +} +\def\bibspec@scan#1#2#3#4{% + \add@toks@{\bib@append{#1}{#2}}% + \edef\@tempa{% + \toks@{\the\toks@ \@xp\@nx\csname bib'#3\endcsname}% + }% + \@tempa + \ifx\@empty#4% + \@xp\@gobble % end the recursion + \else + \ifx +#4\else\bibspec@scan@error\fi + \fi + \bibspec@scan +} +\def\bibspec@scan@error{\amsrefs@error{Bad BibSpec: Expected '+'}} +\def\bib@append#1#2#3{% + \ifx\@empty#3% + \else + \ifx\relax#3% + \errmessage{#3=\relax}% + \else + \begingroup + \series@index\m@ne + \def\current@bibfield{#3}% + \@ifempty{#1}{% + \@temptokena{\ifnum\lastkern=\@ne\ignorespaces\fi #2}% + }{% + \@temptokena{\SwapBreak{#1}#2}% + }% + \toks@\@xp{#3}% + \edef\@tempa{\the\@temptokena{\the\toks@}}% + \rkvIfAdditive#3{}{% + \get@current@properties + \select@auxlanguage + }% + \@tempa + \endgroup + \fi + \fi +} +\def\select@auxlanguage{% + \ifx\prop'language\@empty + \else + \@xp\selectlanguage\@xp{\prop'language}% + \fi +} +\def\erase@field#1{% + \aftergroup\let\aftergroup#1\aftergroup\@empty +} +\def\get@current@properties{% + \begingroup + \@xp\get@nth@property\@xp\@tempa\current@bibfield\series@index + \edef\@tempa{% + \@nx\RestrictedSetKeys{}{prop}{% + \def\@nx\@tempa{\@nx\prop@reset \@nx\the\@nx\rsk@toks}% + }{\@tempa}% + }% + \@tempa + \@xp\endgroup + \@tempa +} +\newcommand{\BibSpecAlias}[2]{% + \@xp\def\@xp\@tempa\@xp{\csname setbib@#1\@xp\endcsname}% + \@xp\ifx\csname setbib@#2\endcsname\@tempa + \amsrefs@error{% + Mirror alias #1->#2 not allowed (infinite loop)}\@ehc + \else + \@xp\def\csname setbib@#1\@xp\endcsname + \@xp{\csname setbib@#2\endcsname}% + \fi +} +\BibSpec{article}{% + +{} {\PrintAuthors} {author} + +{,} { \textit} {title} + +{.} { } {part} + +{:} { \textit} {subtitle} + +{,} { \PrintContributions} {contribution} + +{.} { \PrintPartials} {partial} + +{,} { } {journal} + +{} { \textbf} {volume} + +{} { \PrintDatePV} {date} + +{,} { \issuetext} {number} + +{,} { \eprintpages} {pages} + +{,} { } {status} + +{,} { \PrintDOI} {doi} + +{,} { available at \eprint} {eprint} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} + +\BibSpec{partial}{% + +{} {} {part} + +{:} { \textit} {subtitle} + +{,} { \PrintContributions} {contribution} + +{,} { } {journal} + +{} { \textbf} {volume} + +{} { \PrintDatePV} {date} + +{,} { \issuetext} {number} + +{,} { \eprintpages} {pages} +} + +\BibSpec{contribution}{% + +{} {} {type} + +{} { by \PrintNameList} {author} +} + +\BibSpec{book}{% + +{} {\PrintPrimary} {transition} + +{,} { \textit} {title} + +{.} { } {part} + +{:} { \textit} {subtitle} + +{,} { \PrintEdition} {edition} + +{} { \PrintEditorsB} {editor} + +{,} { \PrintTranslatorsC} {translator} + +{,} { \PrintContributions} {contribution} + +{,} { } {series} + +{,} { \voltext} {volume} + +{,} { } {publisher} + +{,} { } {organization} + +{,} { } {address} + +{,} { \PrintDateB} {date} + +{,} { } {status} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} + +\BibSpec{collection.article}{% + +{} {\PrintAuthors} {author} + +{,} { \textit} {title} + +{.} { } {part} + +{:} { \textit} {subtitle} + +{,} { \PrintContributions} {contribution} + +{,} { \PrintConference} {conference} + +{} {\PrintBook} {book} + +{,} { } {booktitle} + +{,} { \PrintDateB} {date} + +{,} { pp.~} {pages} + +{,} { } {status} + +{,} { \PrintDOI} {doi} + +{,} { available at \eprint} {eprint} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} + +\BibSpec{conference}{% + +{} {} {title} + +{} {\PrintConferenceDetails} {transition} +} + +\BibSpec{innerbook}{% + +{,} { } {title} + +{.} { } {part} + +{:} { } {subtitle} + +{,} { \PrintEdition} {edition} + +{} { \PrintEditorsB} {editor} + +{,} { \PrintTranslatorsC} {translator} + +{,} { \PrintContributions} {contribution} + +{,} { } {series} + +{,} { \voltext} {volume} + +{,} { } {publisher} + +{,} { } {organization} + +{,} { } {address} + +{,} { \PrintDateB} {date} + +{.} { } {note} +} + +\BibSpec{report}{% + +{} {\PrintPrimary} {transition} + +{,} { \textit} {title} + +{.} { } {part} + +{:} { \textit} {subtitle} + +{,} { \PrintEdition} {edition} + +{,} { \PrintContributions} {contribution} + +{,} { Technical Report } {number} + +{,} { } {series} + +{,} { } {organization} + +{,} { } {address} + +{,} { \PrintDateB} {date} + +{,} { \eprint} {eprint} + +{,} { } {status} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} + +\BibSpec{thesis}{% + +{} {\PrintAuthors} {author} + +{,} { \textit} {title} + +{:} { \textit} {subtitle} + +{,} { \PrintThesisType} {type} + +{,} { } {organization} + +{,} { } {address} + +{,} { \PrintDateB} {date} + +{,} { \eprint} {eprint} + +{,} { } {status} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} +\BibSpecAlias{periodical}{book} +\BibSpecAlias{collection}{book} +\BibSpecAlias{proceedings}{book} +\BibSpecAlias{manual}{book} +\BibSpecAlias{miscellaneous}{book} +\BibSpecAlias{misc}{miscellaneous} +\BibSpecAlias{unpublished}{book} +\BibSpecAlias{proceedings.article}{collection.article} +\BibSpecAlias{techreport}{report} +\edef\setbib@incollection{% + \@xp\@nx\csname setbib@collection.article\endcsname +} +\edef\setbib@inproceedings{% + \@xp\@nx\csname setbib@collection.article\endcsname +} +\BibSpec{name}{% + +{} {\PrintAuthors} {name} +} + +\BibSpec{publisher}{% + +{,} { } {publisher} + +{,} { } {address} +} +\newcounter{bib} +\newenvironment{biblist}{% + \setcounter{bib}\z@ + \@biblist +}{% + \@endbiblist +} +\newenvironment{biblist*}{% + \@biblist +}{% + \@endbiblist +} +\newcommand\@biblist[1][]{% + \stepcounter{bib@env} + \normalfont + \footnotesize + \labelsep .5em\relax + \list{\BibLabel}{% + \restore@labelwidth + \@maxlabelwidth\z@ + \@nmbrlisttrue + \def\@listctr{bib}% + \let\makelabel\bib@mklab + #1\relax + }% + \sloppy + \interlinepenalty\@m + \clubpenalty\@M + \widowpenalty\clubpenalty + \frenchspacing + \ResetCapSFCodes +} +\def\@endbiblist{% + \save@labelwidth + \def\@noitemerr{\@latex@warning{Empty bibliography list}}% + \endlist +} +\newdimen\@maxlabelwidth +\def\bib@mklab#1{% + \settowidth\@tempdima{#1}% + \ifdim \@tempdima > \@maxlabelwidth + \global\@maxlabelwidth\@tempdima + \fi + #1\hfil +} +\newcounter{bib@env} +\def\save@labelwidth{% + \if@filesw + \immediate\write\@auxout{% + \string\newlabel{[bibenv:\the\c@bib@env]}{\the\@maxlabelwidth}% + }% + \fi +} +\def\restore@labelwidth{% + \@xp\ifx \csname r@[bibenv:\the\c@bib@env]\endcsname \relax + \resetbiblist{00}% + \else + \@xp\labelwidth\csname r@[bibenv:\the\c@bib@env]\endcsname + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \fi +} +\providecommand{\ResetCapSFCodes}{% + \count@=`\A + \def\@tempa{% + \sfcode\count@=\@m + \advance\count@\@ne + \ifnum\count@>`\Z\relax \expandafter\@gobble \fi + \@tempa + }% + \@tempa +} +\def\CurrentBib{??} +\newcommand{\BibLabel}{% + [\hyper@anchorstart{cite.\CurrentBib}\relax\thebib\hyper@anchorend]% +} +\newcommand{\resetbiblist}[1]{% + \settowidth\labelwidth{\def\thebib{#1}\BibLabel}% + \leftmargin\labelwidth + \ifdim\labelwidth=\z@ + \leftmargin=1em + \itemindent=-\leftmargin + \else + \advance\leftmargin\labelsep + \fi +} +\newcommand{\bib}{% + \begingroup + \@ifstar{% + \@tempswatrue + \let\@bibdef\star@bibdef + \BibItem + }{% + \@tempswafalse + \BibItem + }% +} +\newcommand{\BibItem}[2]{% + \def\@tempa{#1}% + \edef\@tempb{% + \@nx\@bibdef\@xp\@nx\csname setbib@#2\endcsname{#2}% + {\macrotext\@tempa}% + }% + \@tempb +} +\AtBeginDocument{\let\@bibdef\normal@bibdef} +\AtBeginDocument{\let\bib@exec\bib@print} +\def\normal@bibdef#1#2#3{% + \def\CurrentBibType{#2}% + \ifx\relax#1% + \amsrefs@error{Undefined entry type: #2}\@ehc + \let#1\setbib@misc + \fi + \RestrictedSetKeys{}{bib}% + {\bib@exec{#3}{\the\rsk@toks}{#1}\endgroup}% +} + +\let\@bibdef\normal@bibdef +\def\star@bibdef{% + \let\bib@exec\bib@store + \normal@bibdef +} +\def\copy@bibdef{% + \if@tempswa + \@xp\defer@bibdef + \else + \@xp\copy@bibdef@a + \fi +} +\def\copy@bibdef@a#1#2#3#4{% + \@open@bbl@file + \process@xrefs{#4}% + \bbl@write{% + \string\bib\if@tempswa*\fi{#3}{#2}\string{\iffalse}\fi + }% + \RestrictedSetKeys{\global\let\rsk@set\bbl@copy}\@empty + {\bbl@write{\iffalse{\fi\string}^^J}% + \endgroup}{#4}% +} +\catcode`\:=11 + +\def\modify@xref@fields{% + \let\set:bib'author\output@xref@a + \let\set:bib'editor\output@xref@a + \let\set:bib'translator\output@xref@a + \let\set:bib'journal\output@xref@a + \let\set:bib'publisher\output@xref@a + \def\set:bib'xref##1##2{\output@xref@{##1}\@empty}% + \def\set:bib'book##1##2{\output@inner@xref@{##1}\@empty}% + \let\set:bib'conference\set:bib'book + \let\set:bib'partial\set:bib'book + \let\set:bib'reprint\set:bib'book + \let\set:bib'translation\set:bib'book +} + +\catcode`\:=12 + +\def\process@xrefs#1{% + \begingroup + \RestrictedSetKeys{\modify@xref@fields}{bib}{\the\rsk@toks}{#1}% + \endgroup +} + +\def\output@xref@a#1#2{% + \def\@tempa{#1}% + \lowercase{\def\@tempb{#1}}% + \ifx\@tempa\@tempb + \output@xref@{#1}% + \fi +} + +\def\output@xref@#1{% + \@ifnotempty{#1}{% + \@ifundefined{bi@#1}{}{% + \begingroup + \let\star@bibdef\copy@bibdef@a + \csname bi@#1\endcsname + \endgroup + }% + \@xp\g@undef\csname bi@#1\endcsname + }% +} + +\def\output@inner@xref@#1{% + \in@={#1}% + \ifin@\else + \output@xref@{#1}% + \fi +} +\def\bbl@copy#1\endcsname#2{% + \begingroup + \def\@tempa{#1}% + \toks@{{#2}}% + \star@{\bbl@copy@a}{}% +} +\def\bbl@copy@a#1{% + \@ifnotempty{#1}{% + \add@toks@{*{#1}}% + }% + \bbl@write{ \space\@tempa=\the\toks@,}% + \endgroup + \rsk@resume +} +\def\selective@bibdef#1#2#3{% + \@xp\selbibdef@a\csname b@#3\endcsname{#1}{#2}{#3}% +} +\def\selbibdef@a#1{% + \def\@tempa{\endgroup\@gobblefour}% + \ifx\relax#1\else \@xp\selbibdef@b#1\@nil \fi + \@tempa +} +\def\selbibdef@b#1#2#3\@nil{% + \ifx 1#2\let\@tempa\copy@bibdef\fi +} +\def\defer@bibdef#1#2#3#4{% + \@xp\gdef\csname bi@#3\endcsname{% + \bib*{#3}{#2}{#4}% + }% + \@xp\addto@defer@list \csname bi@#3\endcsname + \endgroup +} +\let\bibdefer@list\@empty +\def\addto@defer@list#1{% + \begingroup + \def\do{\@nx\do\@nx}% + \xdef\bibdefer@list{\bibdefer@list\do#1}% + \endgroup +} +\def\bib@store#1{% + \afterassignment\@gobble + \@xp\xdef\csname bi@#1\endcsname +} +\def\numeric@refs{00} +\def\bib@print#1#2#3{% + \bib@start{#1}% + \let\setbib@@#3% + #2\relax % execute definitions locally + \bib@resolve@xrefs + \bib@field@patches + \bib@selectlanguage + \generate@label + \bib'setup + \bib@cite{#1}% + \kern\@ne sp + \ifx\setbib@@\setbib@article + \ifx\bib'booktitle\@empty + \ifx\bib'book\@empty + \ifx\bib'conference\@empty + \else + \let\setbib@@\setbib@incollection + \fi + \else + \let\setbib@@\setbib@incollection + \fi + \else + \let\setbib@@\setbib@incollection + \fi + \fi + \setbib@@ + \bib@end +} +\def\bib@print@inner#1#2{% + \begingroup + #2\relax % execute definitions locally + \bib@resolve@xrefs + \bib@field@patches + \bib'setup + #1% + \endgroup +} +\let\current@citekey\@empty +\let\prev@citekey\@empty +\def\bib@start#1{% + \begingroup + \def\current@citekey{#1}% +} +\def\bib@end{% + \relax + \@xp\PrintBackRefs\@xp{\CurrentBib}% + \par + \save@primary + \global\let\prev@citekey\current@citekey + \endgroup +} +\def\bib@resolve@xrefs{% + \xref@check@c\bib'xref + \xref@check@a\bib'author + \xref@check@a\bib'editor + \xref@check@a\bib'translator + \xref@check@b\bib'journal + \xref@check@b\bib'publisher +} +\def\xref@check@a#1{% + \ifx\@empty#1\relax + \else + \begingroup + \toks@\@emptytoks + \@temptokenb\@emptytoks + \series@index\z@ + \def\name{\xref@check@aa#1}% + #1\relax + \edef\@tempa{% + \def\@nx#1{\the\toks@}% + \the\@temptokenb + }% + \@xp\endgroup + \@tempa + \fi +} +\def\xref@check@aa#1#2{% + \advance\series@index\@ne + \def\@tempa{#2}% + \lowercase{\def\@tempb{#2}}% + \ifx\@tempa\@tempb + \ifx\@tempa\@empty + \add@toks@{\name{}}% + \else + \@ifundefined{bi@#2}{% + \BibAbbrevWarning{#2}% + \add@toks@{\name{#2}}% + }{% + \xref@check@ab#1{#2}% + }% + \fi + \else + \add@toks@{\name{#2}}% + \fi +} +\def\xref@check@ab#1#2{% + \csname bi@#2\endcsname + \ifx\@empty\bib'name + \@temptokena{#2}% + \else + \@temptokena\@xp{\bib'name}% + \get@property\@tempa\bib'name + \edef\@tempa{% + \@nx\addto@hook\@temptokenb{% + \@nx\reset@nth@property\@nx#1\the\series@index{\@tempa}% + }% + }% + \@tempa + \fi + \edef\@tempa{\@nx\add@toks@{\@nx\name{\the\@temptokena}}}% + \@tempa +} +\def\xref@check@b#1{% + \ifx\@empty#1% + \else + \toks@\@xp{#1}% + \edef\@tempb{\lowercase{\def\@nx\@tempa{\the\toks@}}}% + \@tempb + \ifx\@tempa#1\relax % all lowercase + \@ifundefined{bi@#1}{% + \BibAbbrevWarning{#1}% + }{% + \let#1\@empty + \xref@check@c\@tempa + }% + \fi + \fi +} +\def\xref@check@c#1{% + \ifx#1\@empty + \else + \begingroup + \@apply\auto@protect\amsrefs@textsymbols + \@apply\auto@protect\amsrefs@textaccents + \let\DSK@def\xref@add@toks + \let\DSK@append\xref@append + \toks@\@emptytoks + \let\bib@reset\@empty + \@for\xref@ID:=#1\do{% + \@ifundefined{bi@\xref@ID}{% + \XRefWarning{\xref@ID}% + }{% + \csname bi@\xref@ID\endcsname + }% + }% + \edef\@tempa{\endgroup\the\toks@}% + \@tempa + \fi +} +\def\xref@add@toks#1#2#3{% + \ifx#1\@empty + \edef\@tempa{% + \@nx\add@toks@{\@xp\@nx\csname\rkv@setter#1\endcsname{#2}{#3}}% + }% + \@tempa + \else + \in@\bib'title{#1}% + \ifin@ + \ifx\bib'booktitle\@empty + \edef\@tempa{% + \@nx\add@toks@{% + \@xp\@nx\csname set:bib'booktitle\endcsname + }% + }% + \@tempa + \add@toks@{{#2}{#3}}% + \fi + \fi + \fi +} +\def\xref@append#1#2#3#4{% + \edef\@tempa{% + \@nx\add@toks@{\@xp\@nx\csname\rkv@setter#2\endcsname{#3}{#4}}% + }% + \@tempa +} +\def\BibAbbrevWarning#1{\amsrefs@warning{Abbreviation '#1' undefined}} +\def\XRefWarning#1{\amsrefs@warning{Xref '#1' undefined}} +\let\current@primary\@empty +\let\previous@primary\@empty +\IfOption{nobysame}{% + \let\save@primary\@empty +}{% + \def\save@primary{% + \global\let\previous@primary\current@primary + }% +} +\def\bib@field@patches{% + \ifx\bib'author\@empty + \ifx\bib'editor\@empty + \let\current@primary\bib'translator + \let\print@primary\PrintTranslatorsA + \else + \let\current@primary\bib'editor + \let\print@primary\PrintEditorsA + \fi + \else + \let\current@primary\bib'author + \let\print@primary\PrintAuthors + \fi + \ifx\bib'address\@empty + \let\bib'address\bib'place + \fi + \ifx\bib'organization\@empty + \ifx\bib'institution\@empty + \let\bib'organization\bib'school + \else + \let\bib'organization\bib'institution + \fi + \fi + \ifx\bib'date\@empty + \ifx\bib'year\@empty + \let\bib@year\bib'status + \else + \bib@parsedate\bib'year + \fi + \else + \bib@parsedate\bib'date + \fi + \def\@tempa{year}% + \ifx\bib'volume\@tempa + \let\bib'volume\bib@year + \let\bib'date\@empty + \fi + \ifx\setbib@@\setbib@article + \ifx\bib'volume\@empty + \ifx\bib'number\@empty\else + \let\bib'volume\bib'number + \let\bib'number\@empty + \fi + \fi + \fi + \bib@language@fixup +} +\let\bib@year\@empty +\let\bib@month\@empty +\let\bib@day\@empty +\def\bib@parsedate#1{% + \@xp\bib@parsedate@a#1---\@nil +} +\def\bib@parsedate@a#1-#2-#3-#4\@nil{% + \def\bib@year{#1}% + \def\bib@month{#2}% + \def\bib@day{#3}% + \ifx\@empty\bib@day + \ifx\@empty\bib@month + \let\bib'date\bib@year + \else + \def\bib'date{#1-#2}% + \fi + \else + \def\bib'date{#1-#2-#3}% + \fi +} +\def\bib@language@fixup{% + \ifx\bib'hyphenation\@empty + \ifx\bib'language\@empty + \let\bib@language\biblanguagedefault + \else + \let\bib@language\bib'language + \fi + \else + \let\bib@language\bib'hyphenation + \fi + \def\@tempa##1 ##2\@nil{\lowercase{\def\bib@language{##1}}}% + \@firstofone{\@xp\@tempa\bib@language} \@nil +} +\def\bib@selectlanguage{% + \@ifsame@patterns{\languagename}{\bib@language}{}{% + \@ifundefined{date\bib@language}{}{% + \@xp\selectlanguage\@xp{\bib@language}% + }% + }% +} +\def\@ifsame@patterns#1#2{% + \@xp\@ifsamepat\csname l@#1\@xp\endcsname\csname l@#2\endcsname +} +\def\@ifsamepat#1#2{% + \ifnum \ifx\relax#1\m@ne\else#1\fi = \ifx\relax#2\m@ne\else#2\fi + \@xp\@firstoftwo + \else + \@xp\@secondoftwo + \fi +} +\providecommand{\languagename}{english} +\def\biblanguageEnglish{english} +\let\biblanguagedefault\biblanguageEnglish +\let\bib@language\@empty +\let\generate@label\relax +\def\cite@label{\@currentlabel} +\let\alpha@label\relax +\def\bib@cite#1{% + \def\CurrentBib{#1}% + \alpha@label % modify \thebib if necessary + \item\leavevmode + \SK@\SK@@label{#1}% + \@xp\bib@cite@a\csname b@#1\endcsname + \bibcite@write{#1}% +} +\def\bib@cite@a#1{% + \ifx\relax#1% + \begingroup + \auto@protect\etaltext + \protected@edef\@tempa{% + \gdef\@nx#1{% + \@nx\citesel 01{\cite@label}{\bib@label@year}{}% + }% + }% + \@xp\endgroup + \@tempa + \else + \@xp\bib@cite@check\@xp#1#1\@empty\@empty\@empty\@empty\@empty + \fi +} +\def\bib@cite@check#1#2#3#4#5#6#7{% + \ifx 1#4\relax + \DuplicateBibKeyWarning + \else + \begingroup + \auto@protect\etaltext + \@apply\auto@protect\amsrefs@textsymbols + \@apply\auto@protect\amsrefs@textaccents + \@tempswafalse + \in@\CitePrintUndefined{#5}% + \ifin@ + \let\@tempa\@empty + \else + \def\@tempa{#5}% + \fi + \ifx\@tempa\@empty + \else + \@xp\ifx\@xp\@currentlabel\cite@label + \edef\@tempb{\cite@label}% + \else + \let\@tempb\cite@label + \fi + \ifx\@tempa\@tempb + \def\@tempa{#6}% + \ifx\@tempa\bib@label@year + \else + \@tempswatrue + \fi + \else + \@tempswatrue + \fi + \fi + \if@tempswa + \@ifempty{#6}{% + \def\@tempa{#5}% + \let\@tempb\cite@label + }{% + \def\@tempa{#5, #6}% + \def\@tempb{\cite@label, \bib@label@year}% + }% + \amsrefs@warning{Citation label for \extr@cite#1 is + changing from `\@tempa ' to `\@tempb '}% + \fi + \protected@edef\@tempa{% + \gdef\@nx#1{% + \@nx\citesel #31{\cite@label}{\bib@label@year}{#7}% + }% + }% + \@xp\endgroup + \@tempa + \fi +} +\let\bib@label@year\@empty +\def\DuplicateBibKeyWarning{% + \amsrefs@warning{% + Duplicate \protect\bib\space key + `\CurrentBib ' detected\MessageBreakNS}% +} +\def\bibcite@write#1{% + \if@filesw + \begingroup + \let\citesel\citesel@write + \csname b@#1\endcsname + \endgroup + \fi +} +\def\citesel@write#1#2#3#4#5{% + \toks@{{#3}{#4}}% + \immediate\write\@auxout{\string\bibcite{\CurrentBib}{\the\toks@}}% +} +\AtEndDocument{\let\bibcite\@gobbletwo} +\providecommand{\bibname}{Bibliography} +\providecommand{\refname}{References} +\let\bib@div@mark\@gobble +\@ifclassloaded{amsbook}{}{% + \@ifclassloaded{amsart}{}{% + \@ifclassloaded{amsproc}{}{% + \def\bib@div@mark#1{% + \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}% + }% + }% + }% +} +\newenvironment{bibchapter}[1][\bibname]{% + \begingroup + \protected@edef\@{% + \endgroup + \protect\chapter*{#1}% + \protect\bib@div@mark{#1}% + }% + \@ +}{\par} +\newenvironment{bibsection}[1][\refname]{% + \begingroup + \protected@edef\@{% + \endgroup + \protect\section*{#1}% + \protect\bib@div@mark{#1}% + }% + \@ +}{\par} +\@ifundefined{chapter}{% + \newenvironment{bibdiv}{\bibsection}{\endbibsection} +}{% + \newenvironment{bibdiv}{\bibchapter}{\endbibchapter} +} +\renewenvironment{thebibliography}[1]{% + \bibdiv + \biblist[\resetbiblist{#1}]% +}{% + \endbiblist + \endbibdiv +} +\newcommand{\DefineName}[2]{% + \bib*{#1}{name}{name={#2}}% +} +\newcommand{\DefineJournal}[4]{% + \bib*{#1}{periodical}{ + issn={#2}, + journal={#4} + }% +} +\newcommand{\DefinePublisher}[4]{% + \bib*{#1}{publisher}{% + publisher={#3}, + address={#4} + }% +} +\newcommand{\bibselect}{% + \@ifstar{% + \let\@bibdef\copy@bibdef + \BibSelect + }{% + \let\@bibdef\selective@bibdef + \BibSelect + }% +} +\newcommand{\BibSelect}[2][\bblname]{% + \if@filesw + \typeout{Trying to create bbl file `#1.bbl' ...}% + \def\bibselect@msg{% + \typeout{ ... rats. Unable to create bbl file.}% + }% + \let\@open@bbl@file\OpenBBLFile + \@for\@tempa:=#2\do{\ReadBibData{\@tempa}}% + \fi + \@close@bbl@file + \@apply\g@undef\bibdefer@list + \global\let\bibdefer@list\@empty + \let\@bibdef\normal@bibdef + \@input@{#1.bbl}% + \let\BibSelect\MultipleBibSelectWarning +} +\newcommand\MultipleBibSelectWarning[2][]{% + \amsrefs@warning{% + Multiple \string\bibselect 's found (only one + \string\bibselect\space per biblist environment is allowed)% + }% +} +\def\bblname{\jobname} +\newread\bib@dbfile +\newcommand{\ReadBibData}[1]{% + \IfFileExists{#1.ltb}{% + \openin\bib@dbfile=\@filef@und \relax + }{% + \IfFileExists{#1.ltx}{% + \openin\bib@dbfile=\@filef@und \relax + }{% + \IfFileExists{#1.tex}{% + \openin\bib@dbfile=\@filef@und \relax + }{% + \begingroup + \NoBibDBFile{#1}% + \let\ReadBibData@a\endgroup + }% + }% + }% + \ReadBibData@a +} +\def\NoBibDBFile#1{% + \amsrefs@warning{No data file #1.ltb (.ltx, .tex) found}% +} +\def\ReadBibData@a{% + \ProvidesFile{\@filef@und}\relax + \begingroup + \let\star@bibdef\defer@bibdef + \ReadBibLoop + \endgroup + \closein\bib@dbfile +} +\def\ReadBibLoop{% + \ifeof\bib@dbfile + \@xp\@gobble + \else + \read\bib@dbfile to\CurLine + \@xp\ReadBibLoop@a\CurLine\@empty\@nil + \fi + \ReadBibLoop +} +\long\def\ReadBibLoop@a#1#2\@nil{% + \ifx\bib#1% + \CurLine % just exec it + \else + \ifx\endinput#1% + \let\ReadBibLoop\@empty + \else + \@xp\ReadBibLoop@b#1#2\@empty\@nil + \fi + \fi +} +\long\def\ReadBibLoop@b#1#2\@nil{% + \ifx\bib#1% + \CurLine % just exec it + \fi +} +\let\bbl@out=\relax +\let\bbl@write\@gobble +\let\@open@bbl@file\relax +\let\@close@bbl@file\relax +\def\OpenBBLFile{% + \if@filesw + % Just use the next unused output stream + \count@\count17 + \advance\count@\@ne + \ifnum\count@<\sixt@@n + \global\chardef\bbl@out=\count@ + \immediate\openout\bbl@out=\bblname.bbl\relax + \global\let\@close@bbl@file\CloseBBLFile + \gdef\bbl@write{\immediate\write\bbl@out}% + \else + \ch@ck\count@\sixt@@n\write + \fi + \fi + \global\let\@open@bbl@file\relax +} +\def\CloseBBLFile{% + \immediate\closeout\bbl@out\relax + \global\let\@close@bbl@file\relax + \global\let\bbl@write\@gobble + \global\let\bbl@out\relax +} +\def\citesel@update#1#2#3#4#5#6{% + \gdef#6{\citesel 1#2{#3}{#4}{#5}}% +} +\def\citesel@number#1#2#3#4#5{#3} +\def\citesel@year#1#2#3#4#5{#4} +\let\citesel\citesel@number +\expandafter\let\csname cite \endcsname\relax +\renewcommand{\cite}[2][]{% + \if\cite@single#2,\@gobble \else\MultipleCiteKeyWarning{#2}{#1}\fi + \@ifempty{#1}{% + \cites@o{#2}% + }{% + \ObsoleteCiteOptionWarning + \cites@a{*{#1}}{#2}% + }% +} +\def\MultipleCiteKeyWarning#1#2{% + \amsrefs@warning{% + Use of \string\cites\space is recommended instead of % + \string\cite\space\MessageBreak + for multiple cites '#1'}% + \@ifnotempty{#2}{% + \amsrefs@warning{Star option requires \string\citelist\space here}% + }% + \global\let\MultipleCiteKeyWarning\@gobbletwo +} +\def\ObsoleteCiteOptionWarning{% + \amsrefs@warning{% + The form \string\cite{...}*{...} is recommended\MessageBreak + instead of \string\cite[...]{...}}% + \global\let\ObsoleteCiteOptionWarning\@empty +} +\edef\cite@single#1,#2{\iffalse{\fi\iffalse{\fi\string}#2.\string}} +\def\cites@o#1{\star@{\cites@oo{#1}}{}} +\def\cites@oo#1#2{\@ifempty{#2}{\cites@a{}{#1}}{\cites@a{*{#2}}{#1}}} +\def\cites@a#1#2{% + \begingroup + \toks@{\endgroup \cites@b{#1}}% + \vdef\@tempa{#2}% + \edef\@tempa{% + \the\toks@ \@firstofone{\@xp\zap@space\@tempa} \@empty + }% + \@tempa,\@empty + \edef\@tempa{\endgroup\@nx\citelist{\the\toks@}}% + \@tempa +} +\def\cites@b#1#2,#3{% + \begingroup + \toks@{\InnerCite{#2}#1}% + \ifx\@empty#3\@xp\@gobble\fi + \cites@c#3% +} +\def\cites@c#1,#2{% + \add@toks@{\InnerCite{#1}}% + \ifx\@empty#2\@xp\@gobble\fi + \cites@c#2% +} +\def\citeleft{[} +\def\citeright{]} +\def\citemid{,\penalty9999 \space} +\def\citepunct{,\penalty9999 \hskip.13em plus.1em minus.05em\relax} +\def\citeAltPunct{;\ } +\providecommand{\citeform}{\@firstofone} +\DeclareRobustCommand{\citelist}{\@citelist} +\def\@citelist#1{% + \leavevmode + \begingroup + \@citestyle + \citeleft\nopunct % suppress first \citepunct + \cite@begingroup + \in@*{#1}% + \ifin@ + \let\citepunct\citeAltPunct + \fi + \let\cite@endgroup\@empty + \cites@init + \def\citeleft{\@addpunct{\citepunct}}% + \let\citeright\ignorespaces + \def\cite{\InnerCite}% + \process@citelist{#1}% + \endgroup + \citeright + \endgroup +} +\providecommand{\@citestyle}{\m@th\upshape\mdseries} +\def\cite@begingroup{\begingroup\let\cite@begingroup\relax} +\let\cite@endgroup\endgroup +\def\cites@init{% + \gdef\prev@names{???}% + \let\cites@init\@empty +} +\newcommand{\InnerCite}[1]{\star@{\cite@a\citesel{#1}}{}} +\def\cite@a#1#2{% + \BackCite{#2}% + \cite@begingroup + \cites@init + \let\citesel#1\relax + \ifx\citesel\citesel@author + \let\citeleft\@empty + \let\citeright\@empty + \fi + \begingroup + \toks@{\endgroup \cite@b}% + \vdef\@tempa{#2}% + \edef\@tempa{% + \the\toks@{\@firstofone{\@xp\zap@space\@tempa} \@empty}% + }% + \@tempa +} +\def\cite@b#1#2{% + \@xp\cite@bc\csname b@#1\@xp\endcsname {#1}{#2}% +} +\def\cite@bc#1#2{% + \ifx#1\@@undefined \global\let#1\relax \fi + \ifx#1\relax \global\let#1\empty@cite \fi + \@xp\cite@nobib@test#1{}{}{}{}\@nil#1% + \cite@cj#1% +} +\def\empty@cite{\citesel 00{}{}{}} +\def\cite@nobib@test#1#2#3#4#5\@nil#6{% + \@ifempty{#4}{% + \G@refundefinedtrue + \UndefinedCiteWarning#6% + \xdef#6{\@nx\citesel #2#3{% + \@nx\CitePrintUndefined{\extr@cite#6}}{}{}}% + }{}% +} +\def\UndefinedCiteWarning#1{% + \@latex@warning{% + Citation `\extr@cite#1' on page \thepage\space undefined}% +} +\DeclareRobustCommand{\CitePrintUndefined}[1]{% + \begingroup\fontshape{n}\fontseries\mddefault \ttfamily ?#1\endgroup +} +\let\CPU@normal\CitePrintUndefined +\def\cite@cj#1#2{% + \leavevmode + \begingroup + \cite@cb#1% write info to aux file + \ar@SK@cite#1% + \@citeleft + \ar@hyperlink{#1}% + \@ifnotempty{#2}{\citemid{#2}}% + \citeright + \endgroup + \ignorespaces % ignore spaces inside \citelist + \cite@endgroup +} +\def\@citeleft{\citeleft} +\def\cite@cb#1{% + \if@filesw + \immediate\write\@auxout{\string\citation{\extr@cite#1}}% + \fi + \begingroup + \let\citesel\citesel@update + #1#1% + \endgroup +} +\def\extr@cite{\@xp\@gobblethree\string} +\DeclareRobustCommand{\cites}{\cites@a{}} +\providecommand{\citen}{\ocite} +\def\ycite{\cite} +\let\ycites\cites +\let\ocite\ycite +\let\ocites\cites +\let\fullcite\cite +\let\fullocite\ocite +\let\citeauthor\ycite +\let\citeauthory\ycite +\renewcommand{\nocite}[1]{\othercites{#1}} +\newcommand{\othercites}[1]{% + \cite@begingroup + \let\BackCite\@gobble + \let\cite@endgroup\@empty + \def\citelist{\othercitelist}% + \cites{#1}% +} +\newcommand{\othercitelist}[1]{% + \cite@begingroup + \let\cite@endgroup\@empty + \cites@init + \let\citeleft\relax + \let\citeright\ignorespaces + \def\InnerCite{\OtherCite}% + \def\cite@cj ##1##2{% + \begingroup + \@xp\citesel##1% + \cite@cb ##1% + \endgroup + \@xp\ifx\csname b@*\endcsname ##1% + \global\let\selective@bibdef\copy@bibdef + \fi + \ignorespaces + \cite@endgroup + }% + #1\relax + \endgroup +} +\def\OtherCite#1{\cite@a\citesel@other{#1}{}{}} +\def\citesel@other#1#2#3#4#5#6{} +\@namedef{b@*}{\citesel 11{*}{*}{*}} +\def\process@citelist@sorted#1{% + \ifx\citesel\citesel@number + \cite@sorted@s #1\cite@sorted@e + \else + \NonNumericCiteWarning + \process@citelist@unsorted{#1}% + \fi +} +\def\NonNumericCiteWarning{% + \amsrefs@warning{% + Unable to confirm that cite keys are numeric: not sorting% + }% +} +\def\process@citelist@unsorted#1{% + \ignorespaces#1\relax +} +\let\process@citelist\process@citelist@sorted +\def\CPU@sort#1{2147483647} +\def\cite@sorted@s{% + \begingroup + \let\CitePrintUndefined\CPU@sort + \let\cite@cjs\cite@cj + \let\cite@cj\cite@compress + \begingroup + \toks@\@emptytoks + \let\cite@cj\cite@sort + \ignorespaces +} +\def\cite@sorted@e{% + \@xp\endgroup + \the\toks@ + \cite@dash + \prev@cite + \endgroup +} +\def\cite@sort#1#2{% + \safe@set\@tempcnta#1% highest number so far + \toks@{\cite@cj#1{#2}}% + \@temptokena\toks@ + \let\cite@cj\cite@sort@a + \ignorespaces +} +\def\cite@sort@a#1#2{% + \safe@set\@tempcntb#1% + \ifnum\@tempcntb > \@tempcnta + \add@toks@{\cite@cj#1{#2}}% + \@tempcnta\@tempcntb + \else + \let\cite@cj\cite@sort@b + \toks@\@emptytoks + \def\@tempb{\add@toks@{\cite@cj#1{#2}}}% + \the\@temptokena + \@tempb + \let\cite@cj\cite@sort@a + \fi + \@temptokena\toks@ + \ignorespaces +} +\def\cite@sort@b#1#2{% + \safe@set\count@#1% + \ifnum\@tempcntb < \count@ + \@tempb + \let\@tempb\@empty + \fi + \add@toks@{\cite@cj#1{#2}}% + \ignorespaces +} +\let\prev@cite\@empty +\def\prev@cite@cb{% + \ifx\@prev@cite\@empty + \else + \begingroup + \def\cite@print##1##2{% + \cite@cb##1% + }% + \prev@cite + \endgroup + \fi +} +\def\cite@print#1#2{% + \begingroup + \let\CitePrintUndefined\CPU@normal + \cite@cjs#1{#2}% + \endgroup +} +\let\cite@dash\@empty +\def\print@one@dash{% + \textendash \nopunct + \let\cite@dash\@empty +} +\def\cite@compress#1#2{% + \cite@print#1{#2}% + \@ifempty{#2}{% + \safe@set\@tempcnta#1% + \let\cite@cj\cite@compress@a + }{}% +} +\def\cite@compress@a#1#2{% + \@ifempty{#2}{% + \advance\@tempcnta\@ne + \safe@set\@tempcntb#1% + \ifnum\@tempcnta=\@tempcntb + \def\prev@cite{\cite@print#1{}}% + \let\cite@cj\cite@compress@b + \else + \cite@print#1{}% + \@tempcnta\@tempcntb + \fi + }{% + \cite@print#1{#2}% + \let\cite@cj\cite@compress + }% +} +\def\cite@compress@b#1#2{% + \@ifempty{#2}{% + \advance\@tempcnta\@ne + \safe@set\@tempcntb#1% + \ifnum\@tempcnta=\@tempcntb + \let\cite@dash\print@one@dash + \prev@cite@cb + \def\prev@cite{\cite@print#1{}}% + \else + \cite@dash + \prev@cite + \let\prev@cite\@empty + \cite@print#1{}% + \@tempcnta\@tempcntb + \let\cite@cj\cite@compress@a + \fi + }{% + \cite@dash + \prev@cite + \let\prev@cite\@empty + \cite@print#1{#2}% + \let\cite@cj\cite@compress + }% +} +\def\amsrefs@bibcite#1{\@xp\bibcite@a\csname b@#1\endcsname} +\AtBeginDocument{% + \if@filesw + \immediate\write\@auxout{% + \string\@ifundefined{amsrefs@bibcite}{}{% + \string\let\string\bibcite\string\amsrefs@bibcite + }% + }% + \fi + \let\bibcite\amsrefs@bibcite +} +\def\bibcite@a#1#2{% + \ifx\relax#1% + \gdef#1{\citesel 00#2{}}% + \else + \begingroup + \@xp\bibcite@b\@xp#1#1{#2}% + \endgroup + \fi +} +\def\bibcite@b#1#2#3#4#5#6#7#8{\gdef#1{\citesel#3#4#8{#7}}} +\newcommand{\citedest}[1]{\@xp\cite@dest\csname b@#1\endcsname} +\def\cite@dest#1{% + \ifx\relax#1% + \gdef#1{\citesel 00{}{}{}}% + \fi + \@xp\cite@dest@b\@xp#1#1% +} +\def\cite@dest@b#1#2#3#4#5#6#7#8{% + \@ifempty{#7}{% + \def#1{\citesel #3#4{#5}{#6}{{#8}}}% + }{% + \gdef#1{\citesel #3#4{#5}{#6}{#7,{#8}}}% + }% +} +\@ifundefined{ifBR@verbose}{\let\ifBR@verbose\iffalse \let\fi\fi}{}% +\let\BackCite\@gobble +\def\back@cite#1{% + \ifBR@verbose + \PackageInfo{backref}{back cite \string `\extr@cite#1'}% + \fi + \Hy@backout{#1}% +} +\def\print@backrefs#1{% + \space\SentenceSpace$\uparrow$\csname br@#1\endcsname +} +\let\PrintBackRefs\@gobble +\newcommand{\shade@cite}{\overshadebox{shaderef-gray}} +\def\ar@hyperlink#1{% + \hyper@@link [cite]{}{cite.\extr@cite#1}{\shade@cite{#1}}% +} +\def\ar@SK@cite#1{\@bsphack\@xp\SK@\@xp\SK@@ref\@xp{\extr@cite#1}\@esphack} +\AtBeginDocument{% + \@ifpackageloaded{shaderef}{}{% + \let\shade@cite\@empty + }% + \@ifpackageloaded{hyperref}{}{% + \let\ar@hyperlink\shade@cite + \let\hyper@anchorstart\@gobble + \let\hyper@anchorend\relax + }% + \@ifpackageloaded{showkeys}{% + \@ifpackagewith{showkeys}{notcite}{% + \let\ar@SK@cite\@gobble + }{} + }{% + \let\ar@SK@cite\@gobble + \let\SK@@label\@gobble + \let\SK@\@gobbletwo + }% +} +\let\amsrefs@textaccents\@empty +\def\DeclareNameAccent{% + \@lappend\amsrefs@textaccents +} +\DeclareNameAccent\" +\DeclareNameAccent\' +\DeclareNameAccent\. +\DeclareNameAccent\= +\DeclareNameAccent\^ +\DeclareNameAccent\` +\DeclareNameAccent\~% +\DeclareNameAccent\b +\DeclareNameAccent\c +\DeclareNameAccent\d +\DeclareNameAccent\H +\DeclareNameAccent\k +\DeclareNameAccent\r +\DeclareNameAccent\t +\DeclareNameAccent\u +\DeclareNameAccent\v +\DeclareNameAccent\utilde +\DeclareNameAccent\uarc +\DeclareNameAccent\dudot +\DeclareNameAccent\lfhook +\DeclareNameAccent\udot +\DeclareNameAccent\polhk +\DeclareNameAccent\soft +\DeclareNameAccent\etalchar +\let\amsrefs@textsymbols\@empty +\def\DeclareNameSymbol#1#2{% + \@lappend\amsrefs@textsymbols#1% + \@lappend\amsrefs@textsymbols#2% + \ifx#1#2\else + \@lappend\amsrefs@textsymbols#2% + \@lappend\amsrefs@textsymbols#2% + \fi +} +\DeclareNameSymbol\i\i +\DeclareNameSymbol\j\j +\DeclareNameSymbol\AE\ae +\DeclareNameSymbol\OE\oe +\DeclareNameSymbol\O\o +\DeclareNameSymbol\DH\dh +\DeclareNameSymbol\DJ\dj +\DeclareNameSymbol\L\l +\DeclareNameSymbol\NG\ng +\DeclareNameSymbol\SS\ss +\DeclareNameSymbol\TH\th +\DeclareNameSymbol\Dbar\dbar +\DeclareNameSymbol\lasp\lasp +\DeclareNameSymbol\rasp\rasp +\DeclareNameSymbol\cprime\cprime +\DeclareNameSymbol\cdprime\cdprime +\DeclareNameSymbol\bud\bud +\DeclareNameSymbol\cydot\cydot +\DeclareNameSymbol~~% +\def\normalize@edef#1#2{% + \begingroup + \@apply\auto@protect\amsrefs@textsymbols + \@apply\wrap@accent\amsrefs@textaccents + \let\@tabacckludge\use@accent + \let~\space + \edef\@tempa{\def\@nx#1{#2}}% + \@xp\endgroup + \@tempa +} +\def\use@accent#1{\csname\string#1\endcsname} +\def\wrap@accent#1{% + \def#1##1{{\@nx#1##1}}% +} +\def\lc@edef#1#2{% + \begingroup + \let\@tabacckludge\use@accent %%?? + \@apply\auto@protect\amsrefs@textaccents + \@apply\lc@do\amsrefs@textsymbols + \edef\@tempa{\lowercase{\def\@nx#1{#2}}}% + \@xp\endgroup + \@tempa +} +\def\lc@do#1\do#2{% + \ifx#1#2% + \auto@protect#1% + \else + \def#1{#2}% + \fi +} +\def\purge@edef#1#2{% + \begingroup + \@apply\auto@protect\amsrefs@textsymbols + \let~\space + \@apply\purge@accent\amsrefs@textaccents + \let\@tabacckludge\@gobble + \def\i{i}% + \def\j{j}% + \edef\@tempa{#2}% + \toks@\@emptytoks + \@xp\purge@edef@ \@tempa \@nil + \edef\@tempa{\def\@nx#1{\the\toks@}}% + \@xp\endgroup + \@tempa +} +\def\purge@edef@{% + \futurelet\@let@token + \purge@edef@a +} +\def\purge@edef@a#1{% + \ifx\@let@token\@nil + \let\@tempa\@empty + \else + \ifx\@let@token\bgroup + \def\@tempa{% + \purge@edef@ #1\@nil + \purge@edef@ + }% + \else + \add@toks@{#1}% + \let\@tempa\purge@edef@ + \fi + \fi + \@tempa +} +\def\purge@accent#1{% + \def#1##1{##1}% +} +\def\name@split{% + \get@namepart\bib'surname\name@split@given +} +\def\name@split@given{% + \get@namepart\bib'given\name@split@jr +} +\def\name@split@jr{% + \get@namepart\bib'jr\name@split@finish +} +\def\name@split@finish{% + \ifx\bib'surname\@empty \EmptyNameWarning \fi +%% \ifx\@empty\bib'given +%% \NameCheck \bib'surname ??\@nil +%% \else + \extract@initials\bib'given +%% \fi + \@nilgobble +} +\def\get@namepart#1#2{% + \toks@{#1}% + \@temptokena{#2}% + \get@namepart@a +} +\def\get@namepart@a{% + \futurelet\@let@token + \get@namepart@b +} +\def\get@namepart@b{% + \ifx\@let@token\@sptoken + \@xp\get@namepart@c + \else + \@xp\get@namepart@d + \fi +} +\def\get@namepart@c{% + \after@deleting@token\get@namepart@a +} +\def\get@namepart@d{% + \futurelet\@let@token + \get@namepart@e +} +\def\get@namepart@e{% + \ifx\@let@token,% + \@xp\let\the\toks@\@empty + \edef\@tempa{% + \@nx\after@deleting@token\the\@temptokena + }% + \@xp\@tempa + \else + \@xp\get@namepart@f + \fi +} +\def\get@namepart@f#1#2,{% + \ifx\@let@token\bgroup + \@xp\def\the\toks@{{#1}#2}% + \else + \@xp\def\the\toks@{#1#2}% + \fi + \the\@temptokena +} +\def\EmptyNameWarning{\amsrefs@warning{Empty contributor name}} +\def\extract@initials#1{% + \begingroup + \auto@protect\ini@hyphen + \auto@protect\nobreakspace + \let~\relax + \@apply\auto@protect\amsrefs@textsymbols + \@apply\auto@protect\amsrefs@textaccents + \normalize@edef\@tempa{#1}% + \ifx\@tempa\@empty + \else + \process@hyphens\@tempa + \process@dots\@tempa + \process@names\@tempa + \@chomp\@tempa{~}% + \fi + \edef\@tempa{\def\@nx\bib'initials{\@tempa}}% + \@xp\endgroup + \@tempa +} +\def\ini@hyphen{\unskip-\nobreak} +\def\process@hyphens#1{% + \begingroup + \toks@\@emptytoks + \@xp\process@one@hyphen #1-\@nil + \edef\@tempa{\the\toks@}% + \@chomp\@tempa{ \ini@hyphen\space}% + \edef\@tempa{\def\@nx#1{\@tempa}}% + \@xp\endgroup + \@tempa +} +\def\process@one@hyphen{% + \futurelet\@let@token + \process@one@hyphen@a +} +\def\process@one@hyphen@a{% + \ifx\@let@token\@nil + \let\fsa@n\@gobble + \else + \ifx\@let@token -% + \TrailingHyphenWarning + \let\fsa@n\process@one@hyphen@b + \else + \ifx\@let@token\@sptoken + \let\fsa@n\process@one@hyphen@b + \else + \let\fsa@n\process@one@hyphen@c + \fi + \fi + \fi + \fsa@n +} +\def\process@one@hyphen@b{% + \after@deleting@token\process@one@hyphen +} +\def\process@one@hyphen@c#1#2-{% + \ifx\bgroup\@let@token + \add@toks@{{#1}#2 \ini@hyphen\space}% + \else + \add@toks@{#1#2 \ini@hyphen\space}% + \fi + \futurelet\@let@token + \process@one@hyphen@d +} +\def\process@one@hyphen@d{% + \ifx\@let@token\@nil + \@xp\@gobble + \else + \@xp\process@one@hyphen + \fi +} +\def\TrailingHyphenWarning{% + \amsrefs@warning{Trailing hyphen deleted from name}% +} +\def\process@dots#1{% + \begingroup + \toks@\@emptytoks + \@xp\process@one@dot #1.\@nil + \edef\@tempa{\the\toks@}% + \@chomp\@tempa{. }% + \@chomp\@tempa{ }% + \edef\@tempa{\def\@nx#1{\@tempa}}% + \@xp\endgroup + \@tempa +} +\def\process@one@dot{% + \futurelet\@let@token + \process@one@dot@a +} +\def\process@one@dot@a{% + \ifx\@let@token .% + \def\fsa@n{\after@deleting@token\process@bare@dot}% + \else + \ifx\@let@token\@sptoken + \let\fsa@n\process@one@dot@b + \else + \let\fsa@n\process@one@dot@c + \fi + \fi + \fsa@n +} +\def\process@bare@dot{% + \add@toks@{. }% + \futurelet\@let@token + \process@one@dot@d +} +\def\process@one@dot@b{% + \after@deleting@token\process@one@dot +} +\def\process@one@dot@c#1#2.{% + \ifx\bgroup\@let@token + \add@toks@{{#1}#2. }% + \else + \add@toks@{#1#2. }% + \fi + \futurelet\@let@token + \process@one@dot@d +} +\def\process@one@dot@d{% + \ifx\@let@token\@nil + \@xp\@gobble + \else + \@xp\process@one@dot + \fi +} +\def\process@names#1{% + \begingroup + \toks@\@emptytoks + \@xp\extract@initial #1 \@nil + \edef\@tempa{\def\@nx#1{\the\toks@}}% + \@xp\endgroup + \@tempa +} +\def\extract@initial{% + \futurelet\@let@token + \extract@initial@a +} +\def\extract@initial@a{% + \ifx\@let@token\@nil + \let\fsa@n\@gobble + \else + \ifx\@let@token\@sptoken + \let\fsa@n\extract@initial@b + \else + \let\fsa@n\extract@initial@c + \fi + \fi + \fsa@n +} +\def\extract@initial@b{% + \after@deleting@token\extract@initial +} +\def\extract@initial@c#1#2 {% + \ifx\@let@token\bgroup + \@extract@initial {{#1}}#2\@nil + \else + \@extract@initial #1#2\@nil + \fi + \futurelet\@let@token + \extract@initial@d +} +\def\extract@initial@d{% + \ifx\@let@token\@nil + \@xp\@gobble + \else + \@xp\extract@initial + \fi +} +\def\@extract@initial#1#2\@nil{% + \ifx\ini@hyphen#1% + \add@toks@{\ini@hyphen}% + \else + \in@{.\@nil}{#1#2\@nil}% Look for a period at the end of the name + \ifin@ + \add@toks@{#1#2~}% + \else + \count@chars\@tempcnta{#1#2}% + \ifnum\@tempcnta > \@ne + \add@toks@{#1.~}% + \else + \add@toks@{#1~}% + \fi + \fi + \fi +} +\def\count@chars#1#2{% + \begingroup + \@tempcnta\z@ + \@count@chars#2\@nil + \edef\@tempb{#1=\the\@tempcnta\relax}% + \@xp\endgroup + \@tempb +} +\def\@count@chars#1{% + \ifx #1\@nil + \else + \advance\@tempcnta\@ne + \@xp\@count@chars + \fi +} +\let\previous@stem\@empty +\let\current@stem\@empty +\let\previous@year\@empty +\let\current@year\@empty +\def\append@to@stem{\global\@concat\current@stem} +\def\generate@alphalabel{% + \ifx\bib'label\@empty + \begingroup + \global\let\previous@stem\current@stem + \global\let\current@stem\@empty + \@apply\auto@protect\amsrefs@textsymbols + \@apply\auto@protect\amsrefs@textaccents + \auto@protect\name + \auto@protect\etaltext + \normalize@edef\@tempa\current@primary + \get@numberof\@tempcnta\name\@tempa + \calc@author@part + \append@label@year + \calc@alpha@suffix + \edef\@tempa{% + \def\@nx\bib'label{% + \current@stem + \alpha@label@suffix + }% + }% + \@xp\endgroup + \@tempa + \fi +} +\def\calc@author@part{% + \ifnum \@tempcnta = 1 + \@xp\@oneauthorlabel\@xp{\@tempa}% + \else + \@xp\@multiauthorlabel\@xp{\@tempa}% + \fi +} +\def\@firstone#1{\@car#1\@empty\@nil} +\def\@firstthree#1{\@carcube#1\@empty\@empty\@empty\@nil} +\let\@nametoken\@firstone +\def\hyph@to@space#1-{#1 \hyph@to@space} +\def\@marknames#1{% + \@ifnotempty{#1}{\surround@names#1 ' }% +} +\def\surround@names#1 {% + \ifx '#1% + \else + \@nx\@nametoken{#1}% + \@xp\surround@names + \fi +} +\def\extract@surnames#1#2{% + \get@namepart\@tempb\@nilgobble #2,\@nil + \edef\@tempb{\@nx\@marknames{\@xp\hyph@to@space\@tempb\@gobble-}}% + \edef#1{\@tempb}% +} +\newcommand{\@oneauthorlabel}[1]{% + \def\name##1{% + \extract@surnames\@tempa{##1}% + \get@numberof\@tempcnta\@nametoken\@tempa + \ifnum \@tempcnta = 1 + \let\@nametoken\@firstthree + \fi + \append@to@stem{\@tempa}% + }% + #1% +} +\def\@threeauthors\name#1\name#2\name#3#4\@empty{% + \name{#1}\name{#2}\name{#3}% + \append@to@stem{\etalchar{+}}% +} +\newcommand{\@multiauthorlabel}[1]{% + \def\name##1{% + \ifx\etaltext ##1% + \def\@tempa{\@nx\etalchar{+}}% + \let\name\@gobble + \else + \extract@surnames\@tempa{##1}% + \fi + \append@to@stem{\@tempa}% + }% + \ifnum \@tempcnta > 4 \@xp \@threeauthors \fi + #1\@empty +} +\newcommand{\etalchar}[1]{$^{#1}$} +\def\year@short#1#2#3#4\@nil{#3#4} +\def\append@label@year{% + \safe@set\@tempcnta\bib@year + \edef\bib@citeyear{\the\@tempcnta}% + \append@to@stem{% + \ifx\bib@year\@empty + \else + \@xp\year@short \bib@citeyear \@nil + \fi + }% +} +\let\alpha@label@suffix\@empty + +\newcount\alpha@suffix +\alpha@suffix\@ne +\let\@suffix@format\@alph +\def\calc@alpha@suffix{% + \@tempswafalse + \compare@stems\previous@stem\current@stem + \ifsame@stems + \ifx\previous@year\current@year + \@tempswatrue + \fi + \fi + \if@tempswa + \global\advance\alpha@suffix\@ne + \edef\alpha@label@suffix{\@suffix@format\alpha@suffix}% + \ifnum\alpha@suffix=\tw@ + \immediate\write\@auxout{% + \string\ModifyBibLabel{\prev@citekey}% + }% + \fi + \else + \let\alpha@label@suffix\@empty + \global\alpha@suffix\@ne + \@xp\ifx \csname b@\current@citekey @suffix\endcsname \relax + \else + \edef\alpha@label@suffix{\@suffix@format\alpha@suffix}% + \fi + \fi +} +\newif\ifsame@stems +\def\compare@stems#1#2{% + \begingroup + \purge@edef\@tempa{#1}% + \purge@edef\@tempb{#2}% + \lc@edef\@tempa{\@tempa}% + \lc@edef\@tempb{\@tempb}% + \ifx\@tempa\@tempb + \def\@tempa{\same@stemstrue}% + \else + \def\@tempa{\same@stemsfalse}% + \fi + \@xp\endgroup + \@tempa +} +\def\ModifyBibLabel#1{% + \global\@xp\let\csname b@#1@suffix\endcsname\@empty +} +\newcount\series@index +\def\PrintSeries#1#2#3#4#5#6#7#8{% + \begingroup + \def\series@add@a{#2}% + \def\series@add@b{\SwapBreak{#3}#4}% + \def\series@add@c{\SwapBreak{#5}#6}% + \def\series@add@d{\SwapBreak{#7}#8}% + \def\series@add@e{\SwapBreak{#7}}% + \PrintSeries@a{#1}% +} +\def\PrintSeries@a#1#2#3#4{% + \get@numberof\@tempcnta#1{#3}% + \chardef\series@total=\@tempcnta + \ifnum\series@total=\@ne + \let\SingularPlural\@firstoftwo + \else + \let\SingularPlural\@secondoftwo + \fi + \series@index=\z@ + \let#1\series@add + #2#3#4\relax + \endgroup +} +\def\series@add#1{% + \advance\series@index\@ne + \ifx\etaltext#1\relax + \ifnum\series@index=\tw@ + \def\@tempa{\space\SubEtal}% + \else + \def\@tempa{\series@add@e\space\SubEtal}% + \fi + \series@index\@MM + \else + \ifcase\series@index + \or + \let\@tempa\series@add@a + \or + \ifnum\series@total<\thr@@ + \let\@tempa\series@add@b + \else + \let\@tempa\series@add@c + \fi + \else + \ifnum\series@index=\series@total + \let\@tempa\series@add@d + \else + \ifnum\series@index<\series@total + \let\@tempa\series@add@c + \else + \let\@tempa\@gobble + \fi + \fi + \fi + \fi + \@tempa{#1}% +} +\def\SwapBreak#1{% + \relax\ifvmode\leavevmode\fi + \@tempcnta\@MM + \toks@{#1}% + \unskip + \ifnum \lastkern>\@ne \unkern \fi + \ifnum\lastpenalty=\z@ + \else + \@tempcnta\lastpenalty + \unpenalty + \fi + \edef\@tempa{% + \@nx\deferredquoteslogical + \ifnum\lastkern=\@ne + \else + \ifnum\spacefactor=\sfcode\@xp\@xp\@xp`\@xp\@car\string#1)\@nil + \else + \ifnum\spacefactor=\@nopunctsfcode + \else + \the\toks@ + \fi + \fi + \fi + \@nx\deferredquotes + \ifnum\@tempcnta=\@MM \else \penalty\number\@tempcnta\space \fi + \ifnum\lastkern=\@ne \ignorespaces \fi + }% + \@tempa +} +\newcommand{\SingularPlural}[2]{#1} +\newcommand{\Plural}{\SingularPlural{}} +\BibSpec{nameLE}{ + +{}{}{given} + +{}{\IfEmptyBibField{given}{}{ }}{surname} + +{}{ }{jr} +} +\BibSpec{nameBE}{ + +{}{}{surname} + +{}{ }{given} +} +\BibSpec{nameinverted}{ + +{} {} {surname} + +{,}{ } {given} + +{,}{ } {jr} +} +\newcommand{\PrintNames}{% + \@ifstar{\PrintNames@a\set@othername}{\PrintNames@a\set@firstname}% +} +\newcommand{\PrintNames@a}[4]{% + \PrintSeries{\name} + {#1} + {}{ and \set@othername} + {,}{ \set@othername} + {,}{ and \set@othername} + {#2}{#4}{#3}% +} +\def\set@firstname#1{% + \set@name{#1}\setbib@nameLE +} +\def\set@othername#1{% + \set@name{#1}\setbib@nameLE +} +\def\set@name#1{% + \name@split#1,,,\@nil + \set@name@a +} +\def\set@name@a#1{% + \begingroup + \get@current@properties + \select@auxlanguage + \def\@tempa{yes}% + \ifx\@tempa\prop'inverted + \setbib@nameBE + \else + #1% + \fi + \endgroup +} +\def\PrintPrimary{% + \ifx\current@primary\@empty + \EmptyPrimaryWarning + \else + \print@primary\current@primary + \fi +} +\def\EmptyPrimaryWarning{% + \amsrefs@warning{No authors, editors or translators}% +} +\newcommand{\PrintAuthors}[1]{% + \ifx\previous@primary\current@primary + \sameauthors\@empty + \else + \def\current@bibfield{\bib'author}% + \PrintNames{}{}{#1}% + \fi +} +\newcommand{\sameauthors}[1]{\bysame#1} +\def\bysame{% + \leavevmode\hbox to3em{\hrulefill}\thinspace + \kern\z@ +} +\newcommand{\PrintNameList}{\PrintNames{}{}} +\newcommand{\PrintEditorsC}[1]{% + \PrintNames{Edited by }{}{#1}% +} +\newcommand{\PrintEditorsA}[1]{% + \ifx\previous@primary\current@primary + \sameauthors{(ed\Plural{s}.)}% + \else + \def\current@bibfield{\bib'editor}% + \PrintNames{}{ (ed\Plural{s}.)}{#1}% + \fi + \erase@field\bib'editor +} +\newcommand{\PrintEditorsB}{% + \PrintNames*{(}{\SwapBreak{,}~ed\Plural{s}.)}% +} +\newcommand{\PrintContributions}[1]{% + \PrintSeries + {\fld@elt} + {\print@contribution} + {}{ and \print@contribution} + {,}{ \print@contribution} + {,}{ and \print@contribution}{}{#1}{}% +} +\newcommand{\print@contribution}[1]{% + \in@={#1}% + \ifin@ + \ifnum\series@index=\@ne with \fi + \RestrictedSetKeys{}{bib}{% + \bib@print@inner\setbib@contribution{\the\rsk@toks}% + }{#1}% + \else + #1% + \fi +} +\def\resolve@inner#1#2{% + \in@={#2}% + \ifin@ + \RestrictedSetKeys{}{bib}{#1{\the\rsk@toks}}{#2}% + \else + \@ifundefined{bi@#2}{% + \XRefWarning{#2}% + }{% + #1{\csname bi@#2\endcsname}% + }% + \fi +} +\def\PrintConference{% + \resolve@inner{\bib@print@inner\setbib@conference} +} +\def\PrintConferenceDetails#1{% + \ifx\@empty\bib'address + \ifx\@empty\bib'date + \else + \PrintConferenceDetails@ + \fi + \else + \PrintConferenceDetails@ + \fi +} +\def\PrintConferenceDetails@{% + \ifnum\lastkern=\@ne\else\space\fi(\kern 1sp + \ifx\@empty\bib'address + \else + \bib'address + \fi + \ifx\@empty\bib'date + \else + \SwapBreak{,}\space + \print@date + \fi + )%\spacefactor\sfcode`\,% +} +\def\PrintBook{% + \resolve@inner{\bib@print@inner\setbib@innerbook} +} +\def\PrintReprint{% + \resolve@inner{\bib@reprint} +} +\def\bib@reprint#1{% + \begingroup + #1\relax % execute definitions locally + \bib@resolve@xrefs + \bib@field@patches + \bib'setup + \IfEmptyBibField{copula}{reprinted in}{\bib'copula} \nopunct + \let\bib'language\@empty + \setbib@book + \endgroup +} +\def\PrintTranslation{% + \resolve@inner{\bib@translation} +} +\def\bib@translation#1{% + \begingroup + #1\relax % execute definitions locally + \bib@resolve@xrefs + \bib@field@patches + \bib'setup + \let\PrintPrimary\@empty + \bib@append{;}{ % keep this space! + \IfEmptyBibField{language}{English}{\bib'language} transl.% + \IfEmptyBibField{pages}{ in \kern\@ne sp}{, }% + }\bib'transition + \let\bib'language\@empty + \setbib@@ + \endgroup +} +\newcommand{\PrintTranslatorsC}[1]{% + \PrintNames{translated by }{}{#1}% +} +\newcommand{\PrintTranslatorsA}[1]{% + \ifx\previous@primary\current@primary + \sameauthors{(trans.)}% + \else + \def\current@bibfield{\bib'translator}% + \PrintNames{}{ (trans.)}{#1}% + \fi + \erase@field\bib'translator +} +\newcommand{\PrintTranslatorsB}[1]{ + \PrintNames*{(}{\SwapBreak{,}~tran\Plural{s}.)}% +} +\DefineName{alii}{\etaltext} +\DefineName{others}{\etaltext} +\newcommand{\etaltext}{et al.} +\newcommand{\SubEtal}[1]{\etaltext} +\newcommand{\print@partial}{% + \resolve@inner{\bib@print@inner\setbib@partial} +} +\newcommand{\parenthesize}[1]{% + \leavevmode\push@bracket)\upn{(}#1\pop@bracket +} +\providecommand{\upn}[1]{#1} +\let\bracket@stack\@empty + +\def\push@bracket#1{% + \xdef\bracket@stack{#1\bracket@stack}% +} + +\def\pop@bracket{% + \iffalse{\fi + \@xp\pop@bracket@a\bracket@stack \@empty}% +} + +\def\pop@bracket@a#1{% + \leavevmode\/\upn{#1}% + \xdef\bracket@stack{\iffalse}\fi +} +\newcommand{\bibquotes}[1]{% + \textquotedblleft#1% + \gdef\deferredquotes{% + \global\let\deferredquotes\@empty + \textquotedblright + }% +} +\providecommand{\mdash}{\textemdash} +\providecommand{\ndash}{\textendash} +\def\strip@MRprefix#1#2#3#4\@nil{% + \def\@tempa{#1#2#3#4}% + \if#1M% + \if#2R% + \def\@tempa{#3#4}% + \fi + \fi +} +\def\MR#1{% + \relax\ifhmode\unskip\spacefactor3000 \space\fi + \begingroup + \strip@MRprefix#1\@nil + \edef\@tempa{MR\@nx\MRhref{\@tempa}{\@tempa}}% + \@xp\endgroup + \@tempa +} +\providecommand{\MRhref}[2]{#1} +\newcommand{\PrintReviews}[1]{% + \PrintSeries{\fld@elt}{}{,}{ }{,}{ }{,}{ }{}{#1}{}% +} +\newcommand{\PrintPartials}[1]{% + \PrintSeries + {\fld@elt} + {\print@partial} + {;}{ \print@partial} + {;}{ \print@partial} + {;}{ \print@partial}{}{#1}{}% +} +\newcommand{\PrintISBNs}[1]{% + \PrintSeries{\fld@elt}{}{,}{ }{,}{ }{,}{ }{ISBN }{#1}{}% +} +\newcommand{\voltext}{\IfEmptyBibField{series}{Vol.~}{vol.~}} +\newcommand{\issuetext}{no.~} +\newcommand{\DashPages}[1]{% + p\pp@scan@a#1@\ndash p@\ndash{\pp@scan#1@-p@-{}\@nil}\@nil.~#1% +} + +\def\pp@scan#1-#2@-#3#4\@nil{#3} + +\def\pp@scan@a#1\ndash#2@\ndash#3#4\@nil{#3} +\newcommand{\eprintpages}[1]{% + #1\IfEmptyBibField{eprint}{}{\IfEmptyBibField{journal}{ pp.}{}}% +} +\def\PrintThesisType#1{% + \thesis@type#1?\@nil{#1}% +} + +\def\thesis@type#1#2\@nil#3{% + \ifx p#1% + Ph.D. Thesis% + \else + \ifx m#1% + Master's Thesis% + \else + #3% + \fi + \fi +} +\newcommand{\PrintDOI}[1]{% + DOI #1% + \IfEmptyBibField{volume}{, (to appear in print)}{}% +} +\newcommand{\PrintDatePV}[1]{% + \IfEmptyBibField{doi}{% + \let\@tempa\PrintDate + }{% + \IfEmptyBibField{volume}{% + \let\@tempa\PrintDatePosted + }{% + \let\@tempa\PrintDate + }% + }% + \@tempa{#1}% +} +\newcommand{\PrintDate}[1]{(\print@date)} +\newcommand{\PrintDateB}[1]{\print@date} +\def\print@date{% + \ifx\bib@month\@empty + \else + \print@month@day + \fi + \bib@year +} +\def\print@month@day{% + \bib@monthname + \ifx\@empty\bib@day \else \nobreakspace\number 0\bib@day,\fi + \space +} +\newcommand{\bib@monthname}{% + \ifcase 0\bib@month + \or January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\or + Winter\or Spring\or Summer\or Fall\else Unknown Month% + \fi +} +\newcommand{\PrintYear}[1]{\bib@year} +\newcommand{\PrintDatePosted}[1]{\unskip, posted on \print@date} +\newcommand{\PrintEdition}[1]{% + \afterassignment\print@edition + \count@ 0#1\relax\@nil +} +\def\print@edition#1#2\@nil{% + \ifx\relax#1\relax + \ifnum\count@>\z@ + \CardinalNumeric\count@ + \else + ??th% + \fi + \ \editiontext + \else + \ifnum \count@>\z@ \number\count@ \fi + #1#2\relax + \fi +} +\newcommand{\editiontext}{ed.} +\newcommand{\CardinalNumeric}[1]{% + \number#1\relax + \if + \ifnum#1<14 + \ifnum#1>\thr@@ T\else F\fi + \else + F% + \fi + T% + th% + \else + \@xp\keep@last@digit\@xp#1\number#1\relax + \ifcase#1th\or st\or nd\or rd\else th\fi + \fi +} +\def\keep@last@digit#1#2{% + \ifx\relax#2% + \@xp\@gobbletwo + \else + #1=#2\relax + \fi + \keep@last@digit#1% +} +\newcommand{\SentenceSpace}{\relax\ifhmode\spacefactor`\. \fi} +\newcommand{\eprint}[1]{\url{#1}} +\let\bibliographystyle\@gobble +\def\bibtex@style{amsrn} +\AtBeginDocument{ + \if@filesw + \immediate\write\@auxout{\string\bibstyle{\bibtex@style}}% + \fi +} +\IfOption{alphabetic}{% + \def\bibtex@style{amsra}% + \def\alpha@label{% + \ifx\@empty\bib'label + \def\thebib{\CurrentBib}% + \else + \let\thebib\bib'label + \fi + }% + \let\generate@label\generate@alphalabel + \let\process@citelist\process@citelist@unsorted + \def\numeric@refs{01}% +}{} +\IfOption{shortalphabetic}{% + \def\bibtex@style{amsrs}% + \def\alpha@label{% + \ifx\@empty\bib'label + \def\thebib{\CurrentBib}% + \else + \let\thebib\bib'label + \fi + }% + \let\@suffix@format\@arabic + \def\calc@author@part{% + \@xp\@multiauthorlabel\@xp{\@tempa}% + }% + \let\append@label@year\@empty + \let\generate@label\generate@alphalabel + \let\process@citelist\process@citelist@unsorted + \def\numeric@refs{01}% +}{} +\AtBeginDocument{% + \@ifpackageloaded{backref}{% + \let\PrintBackRefs\print@backrefs + \let\BackCite\back@cite + \begingroup + \makeatletter + \@input{\jobname.brf}% + \if@filesw + \newwrite\tf@brf + \immediate\openout\tf@brf \jobname.brf\relax + \fi + \endgroup + }{}% +} +\IfOption{citation-order}{% + \IfOption{alphabetic}{% + \amsrefs@warning@nl{% + The citation-order and alphabetic options are + incompatible% + }% + }{ + \def\bibtex@style{amsru}% + } +}{} +\IfOption{initials}{% TRUE: + \BibSpec{nameLE}{ + +{}{}{initials} + +{}{\IfEmptyBibField{initials}{}{ }}{surname} + +{}{ }{jr} + } + + \BibSpec{nameBE}{ + +{}{}{surname} + +{}{ }{initials} + % +{}{ }{jr} + } + + \BibSpec{nameinverted}{ + +{} {} {surname} + +{,}{ } {initials} + +{,}{ } {jr} + } +}{% initials? FALSE: +} % end conditional code for initials option +\let\deferredquotes\@empty +\IfOption{logical-quotes}{% + \def\deferredquoteslogical{\deferredquotes}% +}{% + \let\deferredquoteslogical\relax +} +\IfOption{non-compressed-cites}{% + \let\cite@compress\cite@print +}{} +\IfOption{non-sorted-cites}{% + \let\process@citelist\process@citelist@unsorted +}{} +\IfOption{short-journals}{% + \renewcommand{\DefineJournal}[4]{% + \bib*{#1}{periodical}{ + issn={#2}, + journal={#3}, + }% + } +}{} +\IfOption{short-publishers}{% + \renewcommand{\DefinePublisher}[4]{% + \bib*{#1}{publisher}{% + publisher={#2},% + address={#4}, + }% + }% +}{} +\IfOption{short-months}{% + \renewcommand{\bib@monthname}{% + \ifcase 0\bib@month + \or Jan.\or Feb.\or Mar.\or Apr.\or May\or June\or + July\or Aug.\or Sep.\or Oct.\or Nov.\or Dec.\or + Winter\or Spring\or Summer\or Fall\else Unknown Month% + \fi + }% +}{} +\IfOption{y2k}{% + \IfOption{alphabetic}{% + \def\year@short#1\@nil{#1}% + \def\bibtex@style{amsry}% + }{% + \amsrefs@warning@nl{% + The y2k option can only be used with the^^J% + alphabetic option% + }% +} +}{} +\IfOption{bibtex-style}{% + \RequirePackage{amsbst} +}{} +\IfOption{msc-links}{% + \@ifundefined{href}{}{% + \def\parse@MR#1 (#2)#3\@nil{% + \def\MR@url{http://www.ams.org/mathscinet-getitem?mr=#1}% + \def\@tempd{#1}% + \def\@tempe{#2}% + }% + \def\MRhref#1#2{% + \begingroup + \parse@MR#1 ()\@empty\@nil% + \href{\MR@url}{\@tempd\vphantom{()}}% + \ifx\@tempe\@empty + \else + \ \href{\MR@url}{(\@tempe)}% + \fi + \endgroup + }% + }{} +}{} +\IfOption{author-year}{}{\PopCatcodes \endinput} +\def\generate@label{% + \ifx\bib'label\@empty + \begingroup + \global\let\previous@stem\current@stem + \global\let\current@stem\@empty + \global\let\previous@year\current@year + \global\let\current@year\bib@year + \@apply\auto@protect\amsrefs@textsymbols + \@apply\auto@protect\amsrefs@textaccents + \def\name##1{\@nx\name{\lnscan@a##1,\@nil}}% + \auto@protect\etaltext + \normalize@edef\current@stem{\current@primary}% + \xdef\current@stem{\current@stem}% + \calc@alpha@suffix + \edef\@tempa{% + \def\@nx\cite@label{\current@stem}% + \def\@nx\bib@label@year{% + \current@year + \alpha@label@suffix + }% + } + \@xp\endgroup + \@tempa + \fi +} +\def\lnscan@a#1,#2\@nil{#1} +\def\citesel@author#1#2#3#4#5{\PrintCiteNames{#3}} +\def\citesel@authoryear#1#2#3#4#5{\PrintCNY{#3}{#4}} +\def\citesel@object#1#2#3#4#5{\PrintCiteNames{#3} \citeleft#4} +\let\citesel\citesel@authoryear +\def\numeric@refs{01}% +\def\citeleft{(}% +\def\citeright{)}% +\def\@citeleft{\ifx\citesel\citesel@object\else\citeleft\fi}% +\def\citepunct{; } +\def\BibLabel{% + \hyper@anchorstart{cite.\CurrentBib}\relax\hyper@anchorend +} +\let\process@citelist\process@citelist@unsorted +\DeclareRobustCommand{\ycite}[1]{% + \star@{\cite@a\citesel@year{#1}}{}% +} +\DeclareRobustCommand{\ycites}[1]{% + \begingroup + \def\citepunct{, }% + \let\citesel\citesel@year + \cites{#1}% + \endgroup +} +\DeclareRobustCommand{\ocite}[1]{% + \star@{\cite@a\citesel@object{#1}}{}% +} +\DeclareRobustCommand{\ocites}[1]{% + \begingroup + \let\@citelist\@ocitelist + \cites{#1}% + \endgroup +} +\def\@ocitelist#1{% + \PrintSeries{\InnerCite}% + {\ocite}% + {}{ and \ocite}% + {,}{ \ocite}% + {,}{ and \ocite}% + {}% + {#1}% + {}% +} +\DeclareRobustCommand{\citeauthor}[1]{% + \star@{\cite@a\citesel@author{#1}}{}% +} +\DeclareRobustCommand{\citeauthory}[1]{% + \citeauthor{#1} \ycite{#1}% +} +\DeclareRobustCommand{\fullcite}[1]{% + \begingroup + \let\print@citenames\CiteNamesFull + \star@{\cite@a\citesel@authoryear{#1}}{}% + \endgroup +} +\DeclareRobustCommand{\fullocite}[1]{% + \begingroup + \let\print@citenames\CiteNamesFull + \star@{\cite@a\citesel@object{#1}}{}% + \endgroup +} +\def\set@firstname#1{% + \set@name{#1}\setbib@nameinverted +} +\def\PrintCNY#1#2{% + \PrintCiteNames{#1}% + \@ifnotempty{#2}{\@addpunct{,} #2}% +} +\def\PrintCiteNames#1{% + \leavevmode + \def\@tempa{#1}% + \ifx\@tempa\prev@names + \else + \gdef\prev@names{#1}% + \@xp\ifx\@car#1.\@nil\CitePrintUndefined + #1\relax + \else + \print@citenames{#1}% + \fi + \fi +} +\newcommand{\CiteNames}[1]{% + \PrintSeries{\name}% + {}% + {}{ and }% + {}{\@gobble}% + {}{ \etaltext\@\@gobble}% + {}% + {#1}% + {}% +} +\let\print@citenames\CiteNames +\newcommand{\CiteNamesFull}[1]{% + \PrintSeries{\name}% + {}% + {}{ and }% + {,}{ }% + {,}{ and }% + {}% + {#1}% + {}% +} +\renewcommand{\PrintDate}[1]{\bib@label@year} +\def\print@date{% + \IfEmptyBibField{date}{% + \IfEmptyBibField{year}{\BibField{status}}{\bib@year}% + }{% + \bib@year + }% +} +\BibSpec{article}{% + +{} {\PrintAuthors} {author} + +{.} { \PrintDate} {date} + +{.} { \textit} {title} + +{.} { } {part} + +{:} { \textit} {subtitle} + +{,} { \PrintContributions} {contribution} + +{.} { \PrintPartials} {partial} + +{,} { } {journal} + +{} { \textbf} {volume} + +{,} { \issuetext} {number} + +{,} { \eprintpages} {pages} + +{,} { } {status} + +{,} { \PrintDOI} {doi} + +{,} { available at \eprint} {eprint} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} + +\BibSpec{book}{% + +{} {\PrintPrimary} {transition} + +{.} { \PrintDate} {date} + +{.} { \textit} {title} + +{.} { } {part} + +{:} { \textit} {subtitle} + +{,} { \PrintEdition} {edition} + +{} { \PrintEditorsB} {editor} + +{,} { \PrintTranslatorsC} {translator} + +{,} { \PrintContributions} {contribution} + +{,} { } {series} + +{,} { \voltext} {volume} + +{,} { } {publisher} + +{,} { } {organization} + +{,} { } {address} + +{,} { } {status} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} + +\BibSpec{collection.article}{% + +{} {\PrintAuthors} {author} + +{.} { \PrintDate} {date} + +{.} { \textit} {title} + +{.} { } {part} + +{:} { \textit} {subtitle} + +{,} { \PrintContributions} {contribution} + +{,} { \PrintConference} {conference} + +{} {\PrintBook} {book} + +{,} { } {booktitle} + +{,} { pp.~} {pages} + +{,} { } {status} + +{,} { \PrintDOI} {doi} + +{,} { available at \eprint} {eprint} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} + +\BibSpec{report}{% + +{} {\PrintPrimary} {transition} + +{.} { \PrintDate} {date} + +{.} { \textit} {title} + +{.} { } {part} + +{:} { \textit} {subtitle} + +{,} { \PrintEdition} {edition} + +{,} { \PrintContributions} {contribution} + +{,} { Technical Report } {number} + +{,} { } {series} + +{,} { } {organization} + +{,} { } {address} + +{,} { \eprint} {eprint} + +{,} { } {status} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} + +\BibSpec{thesis}{% + +{} {\PrintAuthors} {author} + +{.} { \PrintDate} {date} + +{.} { \textit} {title} + +{:} { \textit} {subtitle} + +{,} { \PrintThesisType} {type} + +{,} { } {organization} + +{,} { } {address} + +{,} { \eprint} {eprint} + +{,} { } {status} + +{} { \parenthesize} {language} + +{} { \PrintTranslation} {translation} + +{;} { \PrintReprint} {reprint} + +{.} { } {note} + +{.} {} {transition} + +{} {\SentenceSpace \PrintReviews} {review} +} +\PopCatcodes +\endinput +%% +%% End of file `amsrefs.sty'. diff --git a/Master/texmf-dist/tex/latex/amsrefs/ifoption.sty b/Master/texmf-dist/tex/latex/amsrefs/ifoption.sty new file mode 100644 index 00000000000..2052a7547fe --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsrefs/ifoption.sty @@ -0,0 +1,85 @@ +%% +%% This is file `ifoption.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ifoption.dtx +%% +%%% ==================================================================== +%%% @LaTeX-doc-source-file{ +%%% filename = "ifoption.dtx", +%%% version = "1.02", +%%% date = "2002/03/04", +%%% time = "16:33:16 EST", +%%% author = "Michael J Downes", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support@ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "", +%%% copyright = "Copyright 2001 American Mathematical Society.", +%%% license = "Unlimited copying and redistribution of this file +%%% are permitted as long as this file is not +%%% modified. Modifications, and distribution of +%%% modified versions, are permitted, but only if +%%% the resulting file is renamed.", +%%% checksum = "06695 170 563 5432", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{ifoption}[2002/03/04 v1.02] +\let\@xp\expandafter \let\@nx\noexpand +\def\@True{00} +\def\@False{01} +\def\CurrentPackage{\@currname} +\let\CurrentClass\CurrentPackage +\newcommand{\IfOption}{} +\def\IfPackageOption{\@ifpackagewith} +\def\IfClassOption{\@ifclasswith} +\def\IfOption{% + \ifx\@currext\@pkgextension \@xp\IfPackageOption + \else \@xp\IfClassOption + \fi + \@currname +} +\newcommand{\DeclareExclusiveOptions}[1]{% + \xdef\@declaredoptions{\@declaredoptions,#1}% + \gdef\ProcessExclusiveOptions{\relax}% + \@for\CurrOption:=#1\do{% + \@xp\deo@a\csname ds@\CurrOption\@xp\endcsname\@xp{\CurrOption}{#1}% + }% +} +\def\DeclareBooleanOption{\DeclareExclusiveOptions} +\def\deo@a#1#2#3{% + \def#1{% + \g@addto@macro\ProcessExclusiveOptions{\OptionsFalseTrue{#3}{#2}}% + }% +} +\def\cull@options#1,{% + \@xp\ifx\csname ds@#1\@gobble\@percentchar\@empty\endcsname\@False + \else #1,\fi + \cull@options +} + +\newcommand{\OptionsFalseTrue}[2]{% + \begingroup + \@for\CurrentOption:=#1\do{% + \@xp\let\csname ds@\CurrentOption\endcsname\@False + }% + \let\ds@\@False + \@xp\xdef\csname opt@\@currname.\@currext\endcsname{% + \@xp\@xp\@xp\cull@options\csname opt@\@currname.\@currext\endcsname + ,\@firstoftwo\@firstoftwo,#2% + }% + \endgroup +} +\endinput +%% +%% End of file `ifoption.sty'. diff --git a/Master/texmf-dist/tex/latex/amsrefs/mathscinet.sty b/Master/texmf-dist/tex/latex/amsrefs/mathscinet.sty new file mode 100644 index 00000000000..86466787f53 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsrefs/mathscinet.sty @@ -0,0 +1,184 @@ +%% +%% This is file `mathscinet.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mathscinet.dtx +%% +%%% ==================================================================== +%%% @LaTeX-doc-source-file{ +%%% filename = "mathscinet.dtx", +%%% version = "2.01", +%%% date = "2004/06/30", +%%% time = "12:00:17 EDT", +%%% author = "Michael J Downes and David M. Jones", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support@ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "", +%%% copyright = "Copyright 2001 American Mathematical Society.", +%%% license = "Unlimited copying and redistribution of this file +%%% are permitted as long as this file is not +%%% modified. Modifications, and distribution of +%%% modified versions, are permitted, but only if +%%% the resulting file is renamed.", +%%% checksum = "34681 595 2175 20194", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +%%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{mathscinet}[2002/04/17 v1.05] +\RequirePackage{textcmds}\relax +\providecommand\setboxz@h{\setbox\z@\hbox} +\providecommand{\bold}{\mathbf} +\providecommand{\scr}{\mathcal} +\AtBeginDocument{% + \@ifundefined{mathfrak}{% + \providecommand{\germ}{% + \PackageError{mathscinet}{To use the \string\germ\space + command, please load the amsfonts package}\@ehc + }% + }{% + \providecommand{\germ}{\mathfrak}% + }% +} +\providecommand{\romsup}{\tsup} +\providecommand{\asup}{\tsup} +\AtBeginDocument{\providecommand{\hslash}{\hbar}} +\ProvideTextCommandDefault{\rasp}{\leavevmode\raise.45ex\hbox{$\rhook$}} +\ProvideTextCommandDefault{\lasp}{\leavevmode\raise.45ex\hbox{$\lhook$}} +\ProvideTextCommand{\Dbar}{T1}{\DJ} + +\ProvideTextCommandDefault{\Dbar}{% + \leavevmode\lower.5ex\rlap{\hskip-.07em\accent"16}D% +} +\ProvideTextCommand{\dbar}{T1}{\dj} +\ProvideTextCommandDefault{\dbar}{% + \begingroup + \edef\@tempa{\scdefault}% + \ifx\@tempa\f@shape + \dimen@-.75ex + \dimen@i-.08em + \else + \dimen@.02ex + \dimen@i.1em + \fi + \leavevmode\raise\dimen@\rlap{\hskip\dimen@i\char"16}d% + \endgroup +} +\ProvideTextCommandDefault{\cprime}{\tprime} +\ProvideTextCommandDefault{\cdprime}{\tprime\tprime} +\ProvideTextCommandDefault{\bud}{\cdprime} +\ProvideTextCommandDefault{\cydot}{\leavevmode\raise.4ex\hbox{.}} +\def\save@sf{% + \ifmmode\else\global\mathchardef\accent@spacefactor\spacefactor\fi +} +\def\restore@sf{\ifmmode\else\spacefactor\accent@spacefactor\fi} +\def\@underaccent#1#2#3{% + \leavevmode + \begingroup + \ifmmode\let\@mathtoggle$\else\let\@mathtoggle\relax\fi + \setboxz@h{\@mathtoggle#3\save@sf\@mathtoggle}% + \setbox\@ne\hb@xt@\wd\z@{% + \hss\fontshape\updefault\rmfamily#1\char#2\hss + }% + \dimen@\ht\@ne + \advance\dimen@\dp\z@ + \advance\dimen@.2ex + \setboxz@h{\lower\dimen@\rlap{\copy\@ne}\unhbox\z@}% + \ifdim\ht\@ne>1ex + \advance\dimen@-1.2ex + \dp\z@\dimen@ + \fi + \box\z@ + \restore@sf + \endgroup +} +\DeclareTextCommandDefault{\utilde}{\@underaccent\@empty{`\~}} +\DeclareTextCommandDefault{\uarc}{\@underaccent\@empty{'025}} +\DeclareTextCommandDefault{\lfhook}{\@underaccent\supsize{`\,}} +\DeclareTextCommandDefault{\dudot}{\@underaccent\@empty{'177}} +\DeclareTextCommandDefault{\udot}{\d} +\DeclareTextCommand{\polhk}{OT4}{\k} +\DeclareTextCommand{\polhk}{T1}{\k} +\DeclareTextCommand{\polhk}{OT1}[1]{\TextSymbolUnavailable{\k{#1}}#1} +\DeclareTextCompositeCommand{\polhk}{OT1}{a}{\msc@ogonek {.6}{.07} a} +\DeclareTextCompositeCommand{\polhk}{OT1}{A}{\msc@ogonek {.6}{.07} A} +\DeclareTextCompositeCommand{\polhk}{OT1}{e}{\msc@ogonek 0 {.06} e} +\DeclareTextCompositeCommand{\polhk}{OT1}{E}{\msc@ogonek{.35}{.07} E} +\DeclareTextCompositeCommand{\polhk}{OT1}{i}{\msc@ogonek {.2}{.07} i} +\DeclareTextCompositeCommand{\polhk}{OT1}{I}{\msc@ogonek {.2}{.07} I} +\DeclareTextCompositeCommand{\polhk}{OT1}{u}{\msc@ogonek {.6}{.07} u} +\DeclareTextCompositeCommand{\polhk}{OT1}{U}{\msc@ogonek 0 {.05} U} +\DeclareTextCompositeCommand{\polhk}{OT1}{o}{\msc@ogonek 0 {.07} o} +\DeclareTextCompositeCommand{\polhk}{OT1}{O}{\msc@ogonek 0 {.05} O} +\DeclareTextCompositeCommand{\polhk}{T1}{i}{\msc@ogonek@a 0 i} +\DeclareTextCompositeCommand{\polhk}{T1}{I}{\msc@ogonek@a 0 I} +\DeclareTextCompositeCommand{\polhk}{T1}{u}{\msc@ogonek@a {.6} u} +\DeclareTextCompositeCommand{\polhk}{T1}{U}{\msc@ogonek@a 0 U} +\DeclareTextCompositeCommand{\polhk}{T1}{o}{\msc@ogonek@a 0 o} +\DeclareTextCompositeCommand{\polhk}{T1}{O}{\msc@ogonek@a 0 O} +\DeclareTextCompositeCommand{\polhk}{OT4}{i}{\msc@ogonek {.2}{.07} i} +\DeclareTextCompositeCommand{\polhk}{OT4}{I}{\msc@ogonek {.2}{.07} I} +\DeclareTextCompositeCommand{\polhk}{OT4}{u}{\msc@ogonek {.6}{.07} u} +\DeclareTextCompositeCommand{\polhk}{OT4}{U}{\msc@ogonek 0 {.05} U} +\DeclareTextCompositeCommand{\polhk}{OT4}{o}{\msc@ogonek 0 {.07} o} +\DeclareTextCompositeCommand{\polhk}{OT4}{O}{\msc@ogonek 0 {.05} O} +\def\msc@ogonek#1#2#3{% + \begingroup + \setboxz@h{#3\save@sf}% + \dimen@\wd\z@ + \ooalign{% + \unhbox\z@\crcr + \hidewidth + \setboxz@h{\kern#1\dimen@\supsize$\lhook$}% + \dimen@\ht\z@ + \advance\dimen@-#2ex\relax + \lower\dimen@\box\z@ + \hidewidth + }% + \restore@sf + \endgroup +} +\def\msc@ogonek@a#1#2{% + \begingroup + \ooalign{% + #2\save@sf\crcr + \hidewidth + \raise0.02ex\hbox{\kern#1ex\char'014}% + \hidewidth + }% + \restore@sf + \endgroup +} +\DeclareTextCommand{\soft}{OT4}{\v} +\DeclareTextCommand{\soft}{T1}{\v} +\DeclareTextCommand{\soft}{OT1}{\v} + +\DeclareTextCompositeCommand{\soft}{OT1}{t}{\msc@soft{t}\@ne{.5ex}} +\DeclareTextCompositeCommand{\soft}{OT1}{d}{\msc@soft{d}{.925}{.95ex}} +\DeclareTextCompositeCommand{\soft}{OT1}{l}{\msc@soft{l}{.95}{.4ex}} +\DeclareTextCompositeCommand{\soft}{OT1}{L}{\msc@soft{L}{.975}{.8ex}} + +\DeclareTextCompositeCommand{\soft}{OT4}{t}{\msc@soft{t}\@ne{.5ex}} +\DeclareTextCompositeCommand{\soft}{OT4}{d}{\msc@soft{d}{.925}{.95ex}} +\DeclareTextCompositeCommand{\soft}{OT4}{l}{\msc@soft{l}{.95}{.4ex}} +\DeclareTextCompositeCommand{\soft}{OT4}{L}{\msc@soft{L}{.975}{.8ex}} +\def\msc@soft#1#2#3{% + \leavevmode + \begingroup + \setboxz@h{#1}% + \raise#2\ht\z@\rlap{\kern#3\supsize,}\unhbox\z@ + \endgroup +} +\endinput +%% +%% End of file `mathscinet.sty'. diff --git a/Master/texmf-dist/tex/latex/amsrefs/pcatcode.sty b/Master/texmf-dist/tex/latex/amsrefs/pcatcode.sty new file mode 100644 index 00000000000..92a4c2d01b5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsrefs/pcatcode.sty @@ -0,0 +1,170 @@ +%% +%% This is file `pcatcode.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pcatcode.dtx +%% +%%% ==================================================================== +%%% @LaTeX-doc-source-file{ +%%% filename = "pcatcode.dtx", +%%% version = "1.04b", +%%% date = "2007/08/17", +%%% time = "14:48:23 EDT", +%%% author = "Michael J Downes", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support@ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "The pcatcode package changes LaTeX package loading +%%% internals so that all subsequently loaded packages +%%% can rely on having normal catcodes in effect.", +%%% copyright = "Copyright 2001 American Mathematical Society.", +%%% license = "Unlimited copying and redistribution of this file +%%% are permitted as long as this file is not +%%% modified. Modifications, and distribution of +%%% modified versions, are permitted, but only if +%%% the resulting file is renamed.", +%%% checksum = "42248 378 1601 14362", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +\begingroup\let\e\endlinechar\iffalse\ +\fi\chardef\E\e\e13\chardef\n\catcode\e\catcode\e5\relax\relax +\chardef\s\catcode32\chardef\t10\catcode32\t +\chardef\c\catcode37 \catcode37 14 % percent +\chardef\=\catcode61 \catcode61 12 % equal sign +\chardef\l=\catcode123 \catcode123=1 % left brace +\chardef\r=\catcode125 \catcode125=2 % right brace +\chardef\[=\catcode91 \catcode91=12 % left bracket +\chardef\]=\catcode93 \catcode93=12 % right bracket +\chardef\^=\catcode94 \catcode94=7 % hat +\chardef\.=\catcode46 \catcode46=12 % period +\chardef\/=\catcode47 \catcode47=12 % slash +\edef\c{% + \endgroup + \def\noexpand\pcat@restore{% + \catcode\number\e=\number\n \catcode32=\number\s + \catcode123=\number\l \catcode125=\number\r + \catcode37=\number\c \catcode61=\number\=% + \catcode91=\number\[\catcode93=\number\]\catcode94=\number\^% + \catcode46=\number\.\catcode47=\number\/% + \endlinechar=\number\E \relax + }% +} +\c +\endlinechar13\catcode13\string=5\relax\relax +\catcode32\string=10 \catcode37 14\relax\relax +\catcode61 12\catcode123=1\catcode125=2\catcode91=12\catcode93=12\relax +\catcode46=12\catcode47=12\catcode94=7\relax +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{pcatcode}[2002/04/16 v1.04] +\def\NormalCatcodes{% + \endlinechar=13% + \catcode33=12\catcode34=12\catcode35=6\catcode36=3\catcode37=14% + \catcode38=4\catcode39=12\catcode40=12\catcode41=12\catcode42=12% + \catcode43=12\catcode44=12\catcode45=12\catcode46=12\catcode47=12% + \catcode58=12\catcode59=12\catcode60=12\catcode61=12\catcode62=12% + \catcode63=12\catcode91=12\catcode92=0\catcode93=12\catcode94=7% + \catcode95=8\catcode96=12\catcode123=1\catcode124=12\catcode125=2% + \catcode126=13\catcode32=10\catcode13=5\catcode9=10\catcode10=12% + \relax +} +\def\CatcodeStack{} +\begingroup \escapechar=\m@ne \let\s\string +\xdef\pcat@otherchars{% + \s\!\s\"\s\#\s\$\s\%\s\&\s\'\s\(\s\)\s\*\s +\s\,\s\-\s\.\s\/\s\:% + \s\;\s\<\s\=\s\>\s\?\s\[\s\\\s\]\s\^\s\_\s\`\s\{\s\|\s\}\s\~% +} +\endgroup +\gdef\PushCatcodes{% + \xdef\CatcodeStack{% + \expandafter\PushCat@a\pcat@otherchars\ \ + \^^I\^^J{T \@gobbletwo}\@empty + \relax + {\CatcodeStack}}% +} +\def\PushCat@a#1{\catcode\number`#1=\number\catcode`#1 \PushCat@a} +\PushCatcodes \NormalCatcodes +\def\PopCatcodes{\expandafter\PopCat@a\CatcodeStack} +\def\PopCat@a#1#{#1\xdef\CatcodeStack} +\def\CCSdo#1{ (\string#1\@iden{:\number\catcode`#1)\CCSdo}} +\def\CurrentCatcodesSubset{% + \romannumeral 0\CCSdo\^^I\^^J\^^L\^^M\ \!\"\#\$\%\&\'\(\)\*+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}{\~\@gobbletwo}:\number\catcode`\~)% +} +\begingroup\pcat@restore +\begingroup +\catcode`\3="3 \catcode`\4="4 \catcode`\7="7 \catcode`\8="8 +\catcode`\A="A \catcode`\B="B \catcode`\C="C \catcode`\D="D +\gdef\fls@let#1#2{% + \ifx\@@undefined#1\else\errmessage{\string#1 already defined}\fi + \begingroup + \lccode`\3=`#2\lccode`\7=`#2\lccode`\8=`#2% + \lccode`\B=`#2\lccode`\C=`#2\lccode`\D=`#2\relax + \ifnum\catcode`#2=\active + \def\do##1{\noexpand\do\noexpand##1\noexpand}% + \lowercase{% + \xdef\fls@active@characters{% + \fls@active@characters + \do#1D}% + }% + \fi + \aftergroup\global \aftergroup\let \aftergroup#1\aftergroup=% + \lowercase{\aftergroup} % + \lowercase{\expandafter\endgroup + \ifcase\catcode`#2 % + 0\or \bgroup\or \egroup\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or + \@sptoken\or B\or C\else D\fi + }% +} +\endgroup +\gdef\FutureLetSetup{% + \gdef\fls@active@characters{}% + \fls@let\dl@@space\ % + \fls@let\dl@@exclam\!% + \fls@let\dl@@dblquote\"% + \fls@let\dl@@hash\#% + \fls@let\dl@@dollar\$% + \fls@let\dl@@ampersand\&% + \fls@let\dl@@rquote\'% + \fls@let\dl@@lparen\(% + \fls@let\dl@@rparen\)% + \fls@let\dl@@star\*% + \fls@let\dl@@plus\+% + \fls@let\dl@@comma\,% + \fls@let\dl@@hyphen\-% + \fls@let\dl@@period\.% + \fls@let\dl@@slash\/% + \fls@let\dl@@colon\:% + \fls@let\dl@@semicolon\;% + \fls@let\dl@@less\<% + \fls@let\dl@@equal\=% + \fls@let\dl@@greater\>% + \fls@let\dl@@question\?% + \fls@let\dl@@lbracket\[% + \fls@let\dl@@rbracket\]% + \fls@let\dl@@hat\^% + \fls@let\dl@@underscore\_% + \fls@let\dl@@lquote\`% + \fls@let\dl@@lbrace\{% + \fls@let\dl@@vert\|% + \fls@let\dl@@rbrace\}% + \fls@let\dl@@tilde\~% +} +\AtBeginDocument{\FutureLetSetup} +\gdef\FutureLetReset{% + \def\do##1##2{\let##1= ##2}% + \fls@active@characters + \let\do\relax +} +\endgroup +\endinput \PopCatcodes\pcat@restore +\endinput +%% +%% End of file `pcatcode.sty'. diff --git a/Master/texmf-dist/tex/latex/amsrefs/rkeyval.sty b/Master/texmf-dist/tex/latex/amsrefs/rkeyval.sty new file mode 100644 index 00000000000..c7306c9d11b --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsrefs/rkeyval.sty @@ -0,0 +1,460 @@ +%% +%% This is file `rkeyval.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rkeyval.dtx +%% +%%% ==================================================================== +%%% @LaTeX-doc-source-file{ +%%% filename = "rkeyval.dtx", +%%% version = "2.00", +%%% date = "2004/06/28", +%%% time = "15:19:29 EDT", +%%% author = "Michael J Downes and David M. Jones", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support@ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "Key-value scanning functions with more restrictive +%%% syntax than the standard keyval package. This permits +%%% some improvements in the error-checking.", +%%% copyright = "Copyright 2001 American Mathematical Society.", +%%% license = "Unlimited copying and redistribution of this file +%%% are permitted as long as this file is not +%%% modified. Modifications, and distribution of +%%% modified versions, are permitted, but only if +%%% the resulting file is renamed.", +%%% checksum = "44721 1116 3178 30537", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{rkeyval}[2004/05/05 v1.08] +\let\@xp\expandafter +\let\@nx\noexpand +\long\def\@gobblethree#1#2#3{} +\long\def\@nilgobble#1\@nil{} +\@ifundefined{@emptytoks}{\csname newtoks\endcsname\@emptytoks}{} +\@ifundefined{@temptokenb}{\csname newtoks\endcsname\@temptokenb}{} +\def\@append#1#2#3{\@xp\def\@xp#2\@xp{#2#1{#3}}} +\def\star@#1#2{% + \def\star@a##1{#1}% + \def\star@b{#1{#2}}% + \futurelet\@let@token\star@test +} + +\def\star@test{\ifx*\@let@token \let\star@b\star@a\fi \star@b} +\@ifundefined{NormalCatcodes}{\RequirePackage{pcatcode}\relax}{} +\PushCatcodes\NormalCatcodes +\def\extract@group#1{% + \@xp\extract@group@a\string#1\@nil +} +\def\extract@group@a#1#2'{#2\@nilgobble} +\def\set@property#1{% + \begingroup + \edef\@tempa{\extract@group#1}% + \edef\@tempa{% + \@nx\@append\@nx#1\@xp\@nx\csname \@tempa,aux\endcsname + }% + \@xp\endgroup + \@tempa +} +\def\get@property#1#2{% + \get@nth@property#1#2\m@ne +} +\def\get@nth@property#1#2#3{% + \begingroup + \edef\@tempa{\extract@group#2}% + \@tempcnta#3\relax + \@tempcntb\z@ + \@xp\scan@properties\@xp#2\csname \@tempa,aux\endcsname + \edef\@tempa{\def\@nx#1{\@tempa}}% + \@xp\endgroup + \@tempa +} +\def\scan@properties#1#2{% + \begingroup + \def\@tempa{#1}% + \let\@tempc\@empty + \@xp\find@property #2 \@nil\@nil + \edef\@tempa{\def\@nx\@tempa{\@tempc}}% + \@xp\endgroup + \@tempa +} +\def\find@property#1#2{% + \ifx\@nil#1% + \else + \def\@tempb{#1}% + \ifx\@tempa\@tempb + \ifnum\@tempcnta<\z@ + \def\@tempc{#2}% + \else + \advance\@tempcntb\@ne + \ifnum\@tempcntb=\@tempcnta + \def\@tempc{#2}% + \fi + \fi + \fi + \@xp\find@property + \fi +} +\def\reset@property#1#2{% + \reset@nth@property#1\m@ne{#2}% +} +\def\reset@nth@property#1#2#3{% + \begingroup + \edef\@tempa{\extract@group#1}% + \@tempcnta#2\relax + \@temptokena{#3}% + \toks@\@emptytoks + \@tempcntb\z@ + \@xp\reset@scan\@xp#1\csname \@tempa,aux\endcsname + \edef\@tempa{% + \def\@xp\@nx\csname \@tempa,aux\endcsname{\the\toks@}% + }% + \@xp\endgroup + \@tempa +} +\def\reset@scan#1#2{% + \begingroup + \def\@tempa{#1}% + \@xp\reset@scan@a #2 \@nil\@nil + \edef\@tempa{\toks@{\the\toks@}}% + \@xp\endgroup + \@tempa +} +\def\reset@scan@a#1#2{% + \ifx\@nil#1% + \else + \def\@tempb{#1}% + \ifx\@tempa\@tempb + \ifnum\@tempcnta<\z@ + \@temptokenb\@temptokena + \else + \advance\@tempcntb\@ne + \ifnum\@tempcntb=\@tempcnta + \@temptokenb\@temptokena + \fi + \fi + \else + \@temptokenb{#2}% + \fi + \edef\@tempb{% + \toks@{\the\toks@ \@nx#1{\the\@temptokenb}}% + }% + \@tempb + \@xp\reset@scan@a + \fi +} +\def\fsa@l{\futurelet\@let@token\fsa@t} +\def\fsa@b{\afterassignment\fsa@l \let\@let@token= } +\def\fsa@c#1{\aftergroup#1\fsa@l} +\let\fsa@n\@empty +\let\fsa@t\@empty +\newtoks\rsk@toks +\def\rkvIfEmpty#1#2{% + \@xp\ifx\csname#1'#2\endcsname\@empty + \@xp\@firstoftwo + \else + \@xp\@secondoftwo + \fi +} +\def\rkvIfAdditive#1{% + \@xp\let\@xp\@let@token \csname \rkv@setter#1\endcsname + \afterassignment\@nilgobble + \@xp\let\@xp\@let@token \@let@token \@empty\@empty\@nil + \ifx\@let@token\DSK@append + \@xp\@firstoftwo + \else + \@xp\@secondoftwo + \fi +} +\def\rkv@setter#1{set:\@xp\@gobble\string#1} +\def\rkv@DSAK#1#2{% + \addto@group@reset#1{\let#1\@empty}% + \edef\@tempa{\def\csname \rkv@setter#1\endcsname}% + \@tempa{#2#1}% +} +\def\rkv@DDK#1{% + \addto@group@reset#1{\def#1{\@empty}}% + \@xp\let\csname \rkv@setter#1\endcsname\@gobble +} +\def\DSK@def#1{% + \ifx#1\@empty\else + \PackageWarningNoLine{rkeyval}% + {Key \string#1 should not be repeated}% + \fi + \DSK@redef#1% +} +\def\DSK@redef#1#2{% + \@ifempty{#2}{\@gobble}{% + \def#1{#2}% + \set@property#1 + }% +} +\def\init@group@reset#1{% + \begingroup + \edef\@tempb{\@xp\@nx\csname #1@reset\endcsname}% + \@xp\ifx\@tempb\relax + \@xp\xdef\@tempb{\let \csname #1,aux\endcsname\@nx\@empty} + \fi + \endgroup +} +\def\addto@group@reset#1{% + \begingroup + \edef\@tempa{\extract@group#1}% + \init@group@reset\@tempa + \edef\@tempa{% + \@nx\g@addto@macro\@xp\@nx\csname\@tempa @reset\endcsname + }% + \@xp\endgroup + \@tempa +} +\newcommand{\DefineSimpleKey}[2]{% + \@xp\rkv@DSAK + \csname #1'#2\endcsname + {\DSK@def}% +} +\newcommand{\DefineSupersedingKey}[2]{% + \@xp\rkv@DSAK + \csname #1'#2\endcsname + {\DSK@redef}% +} +\newcommand{\DefineAdditiveKey}[3]{% + \@xp\rkv@DSAK + \csname #1'#2\endcsname + {\DSK@append#3}% +} +\def\DSK@append#1#2#3{% + \@ifempty{#3}{\@gobble}{% + \@append#1#2{#3}% + \set@property#2 + }% +} +\newcommand{\DefineDummyKey}[2]{% + \@xp\rkv@DDK \csname #1'#2\endcsname +} +\newcommand{\RestrictedSetKeys}[3]{% + \global\rsk@toks\@xp{\csname #2@reset\endcsname}% + \def\rsk@finish{#3}% + \gdef\rsk@set{\@xp\rsk@set@a\csname#2'}% + #1\relax + \begingroup + \rsk@changecase + \aftergroup\rsk@set + \let\fsa@t\rsk@z + \fsa@l +} +\def\rsk@unknown@key#1{% + \PackageWarning{rkeyval}{Unknown key: \string#1}% + \@xp\def\csname\rkv@setter#1\endcsname {\DSK@redef#1}% +} +\def\rsk@z{% + \ifx\bgroup\@let@token + \let\fsa@t\rsk@b + \let\fsa@n\fsa@b + \else + \ifx\@sptoken\@let@token + \let\fsa@n\fsa@b + \else + \rsk@errf + \fi + \fi + \fsa@n +} +\def\rsk@a{% + \ifx\@let@token\@sptoken + \let\fsa@n\fsa@b + \else + \ifx\@let@token\par + \let\fsa@n\fsa@b + \else + \ifx,\@let@token + \endgroup + \let\fsa@t\rsk@b + \let\fsa@n\fsa@b + \else + \ifx\egroup\@let@token + \endgroup + \let\fsa@n\rsk@end + \else + \endgroup + \let\fsa@n\rsk@erraa + \fi + \fi + \fi + \fi + \fsa@n +} +\def\rsk@b{% + \ifcat\@nx\@let@token A% + \let\fsa@t\rsk@c + \let\fsa@n\fsa@c + \else + \ifx\@sptoken\@let@token + \let\fsa@n\fsa@b + \else + \rsk@bb + \fi + \fi + \fsa@n +} +\def\rsk@bb{% + \ifx,\@let@token + \let\fsa@n\fsa@b + \else + \ifx\bgroup\@let@token + \let\fsa@n\rsk@errb + \else + \ifx\egroup\@let@token + \let\fsa@n\rsk@end + \else + \ifx\par\@let@token + \let\fsa@n\fsa@b + \else + \let\fsa@n\rsk@errc + \fi + \fi + \fi + \fi +} +\def\rsk@c{% + \ifcat\@nx\@let@token A% + \let\fsa@n\fsa@c + \else + \ifx\@sptoken\@let@token + \let\fsa@t\rsk@d + \let\fsa@n\fsa@b + \else + \ifx=\@let@token + \let\saw@equal T% + \let\fsa@t\rsk@d + \let\fsa@n\fsa@b + \else + \rsk@cb + \fi + \fi + \fi + \fsa@n +} +\def\rsk@cb{% + \ifx,\@let@token + \let\fsa@n\rsk@errc + \else + \ifcat\@nx\@let@token .% + \let\fsa@n\fsa@c + \else + \ifx\bgroup\@let@token + \let\fsa@n\rsk@noequal + \else + \ifx\egroup\@let@token + \let\fsa@n\rsk@noequal + \else + \let\fsa@n\rsk@errc + \fi + \fi + \fi + \fi +} +\let\saw@equal=F +\def\rsk@d{% + \ifx\bgroup\@let@token + \ifx\saw@equal T% + \aftergroup\endcsname + \rsk@endcase + \let\fsa@n\endgroup + \else + \let\saw@equal T% + \let\fsa@n\rsk@noequal + \fi + \else + \ifx\@sptoken\@let@token + \let\fsa@n\fsa@b + \else + \ifx=\@let@token + \let\saw@equal T% + \let\fsa@n\fsa@b + \else + \let\fsa@n\rsk@erre + \fi + \fi + \fi + \fsa@n +} +\def\rsk@casesensitive{% + \let\rsk@changecase\@empty + \let\rsk@endcase\@empty +} +\def\rsk@startlc{\aftergroup\lowercase\aftergroup{\iffalse}\fi} +\def\rsk@endlc{\iffalse{\fi\aftergroup}} +\def\rsk@lowercase{% + \let\rsk@changecase\rsk@startlc + \let\rsk@endcase\rsk@endlc +} +\rsk@lowercase +\def\rsk@resume{% + \begingroup + \rsk@changecase + \aftergroup\rsk@set + \let\fsa@t\rsk@a + \begingroup + \catcode\endlinechar=\active + \lccode`\~=\endlinechar + \lowercase{\let~\par}% + \fsa@l +} +\def\rsk@set@a#1#2{% + \star@{\rsk@set@b#1{#2}}{}% +} +\def\rsk@set@b#1#2#3{% + \@xp\ifx \csname\rkv@setter#1\endcsname \relax + \rsk@unknown@key#1% + \fi + \edef\@tempa{\@xp\@nx\csname \rkv@setter#1\endcsname}% + \toks@\@xp{\@tempa{#2}{#3}}% + \edef\@tempa{% + \global\rsk@toks{\the\rsk@toks \the\toks@}% + }% + \@tempa + \rsk@resume +} +\def\rsk@end{% + \global\let\rsk@set\rsk@terminate + \rsk@endcase + \endgroup + \endcsname + \afterassignment\rsk@finish + \toks@\bgroup +} +\def\rsk@terminate{\@xp\@gobble\csname} +\def\NoCommaWarning{\PackageWarning{rkeyval}{Missing comma}}% +%% % \begin{macro}{\NoCommaError} +%% % \begin{macrocode} +%% \def\NoCommaError{\rsk@err{Missing comma}\@ehc} +%% % \end{macrocode} +%% % \end{macro} +\def\rsk@nocomma{\NoCommaWarning} +\def\rsk@err{\PackageError{rkeyval}} +\def\rsk@errf{\rsk@err{Missing open brace}\@ehc\rsk@b} +\long\def\rsk@erraa{\rsk@nocomma \let\fsa@t\rsk@b \fsa@l} +\def\rsk@errb{\rsk@err{Missing key name}\@ehc\rsk@d} +\def\rsk@errc{\rsk@err{Invalid key name character}\@ehc\fsa@b} +\def\rsk@noequal{\rsk@err{Missing equal sign}\@ehc\rsk@d} +\def\rsk@erre#1,{% + \rsk@err{Missing open brace for key value}\@ehc + \iffalse{\fi + \endgroup + \endcsname + \rsk@endcase }{#1},% +} +\PopCatcodes +\endinput +%% +%% End of file `rkeyval.sty'. diff --git a/Master/texmf-dist/tex/latex/amsrefs/textcmds.sty b/Master/texmf-dist/tex/latex/amsrefs/textcmds.sty new file mode 100644 index 00000000000..28214f4c7e7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsrefs/textcmds.sty @@ -0,0 +1,130 @@ +%% +%% This is file `textcmds.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% textcmds.dtx (with options: `pkg') +%% +%%% ==================================================================== +%%% @LaTeX-doc-source-file{ +%%% filename = "textcmds.dtx", +%%% version = "1.06", +%%% date = "2007/10/19", +%%% time = "14:12:53 EDT", +%%% author = "Michael J Downes", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support@ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "Short forms for textemdash and the other LaTeX +%%% commands that correspond to ligatures of +%%% convenience.", +%%% copyright = "Copyright 2001 American Mathematical Society.", +%%% license = "Unlimited copying and redistribution of this file +%%% are permitted as long as this file is not +%%% modified. Modifications, and distribution of +%%% modified versions, are permitted, but only if +%%% the resulting file is renamed.", +%%% checksum = "63388 295 1197 10750", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +\ProvidesPackage{textcmds}[2007/10/19 v1.06] +\providecommand{\mdash}{\textemdash\penalty\exhyphenpenalty} +\providecommand{\ndash}{\textendash\penalty\exhyphenpenalty} +\newcommand{\qd}{\textquestiondown} +\newcommand{\xd}{\textexclamdown} +\newcommand{\ldq}{\textquotedblleft} +\newcommand{\rdq}{\textquotedblright} +\newcommand{\lsq}{\textquoteleft} +\newcommand{\rsq}{\textquoteright} +\newcommand{\bul}{\textbullet}% +\newcommand{\vsp}{\textvisiblespace}% +\newcommand{\pdc}{\textperiodcentered}% +\newcommand{\vrt}{\textbar}% +\newcommand{\cir}{\textasciicircum}% +\newcommand{\til}{\textasciitilde}% +\newcommand{\bsl}{\textbackslash}% +\newcommand{\cwm}{\textcompwordmark}% +\providecommand{\qq}[1]{\ldq#1\/\rdq} +\providecommand{\q}[1]{\lq#1\/\rq} +\newcommand{\supsize}{% + \expandafter\ifx\csname S@\f@size\endcsname\relax + \calculate@math@sizes + \fi + \csname S@\f@size\endcsname + \fontsize\sf@size\z@\selectfont +} +\DeclareRobustCommand{\tsup}[1]{% + \leavevmode\raise.9ex\hbox{\supsize #1}% +} +\DeclareRobustCommand{\tsub}[1]{% + \leavevmode\lower.6ex\hbox{\supsize #1}% +} +\DeclareTextSymbolDefault{\textprimechar}{OMS} +\DeclareTextSymbol{\textprimechar}{OMS}{48} +\DeclareRobustCommand{\tprime}{\tsup{\textprimechar}} +\@ifundefined{textlangle}{% + \DeclareTextSymbolDefault{\textlangle}{OMS} + \DeclareTextSymbolDefault{\textrangle}{OMS} +}{} +\DeclareTextSymbol{\textlangle}{OMS}{"68} +\DeclareTextSymbol{\textrangle}{OMS}{"69} +\DeclareRobustCommand{\lara}[1]{\textlangle#1\/\textrangle} +\csname endinput\endcsname +<*emacs> +(defvar latex-ndash-command "\\ndash" + "*String to insert for an n-dash in LaTeX mode.") + +(defvar latex-mdash-command "\\mdash" + "*String to insert for an m-dash in LaTeX mode.") + +(defvar latex-quote-command "\\qq" + "*String to insert for quotes in LaTeX mode.") + +(defun latex-maybe-start-quotes (arg) + "Insert the beginning of a \\qq{...} structure if the preceding char is +a left quote." + (interactive "*p") + (if (= (preceding-char) ?\`) + (progn + (delete-backward-char 1) + (insert-and-inherit (concat latex-quote-command "\{"))) + (self-insert-command arg))) + +(defun latex-maybe-end-quotes (arg) + "Insert the end of a \\qq{...} structure if appropriate." + (interactive "*p") + (if (= (preceding-char) ?\') + (progn + (delete-backward-char 1) + (insert-and-inherit "\}")) + (self-insert-command arg))) + +(defun latex-maybe-dash (arg) + "Convert two or three hyphens to \\mdash or \\ndash." + (interactive "*p") + (cond + ((re-search-backward + (concat (regexp-quote latex-ndash-command) " *\\=") nil t) + (replace-match (concat (regexp-quote latex-mdash-command) " "))) + ((= (preceding-char) ?-) + (delete-backward-char 1) + (insert-and-inherit (concat latex-ndash-command " "))) + (t (self-insert-command arg)))) + +(add-hook 'TeX-mode-hook + '(lambda + (define-key LaTeX-mode-map "\`" 'latex-maybe-start-quotes) + (define-key LaTeX-mode-map "\'" 'latex-maybe-end-quotes) + (define-key LaTeX-mode-map "-" 'latex-maybe-dash))) +</emacs> +\endinput +%% +%% End of file `textcmds.sty'. |