diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:03:17 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:03:17 +0000 |
commit | ecf966f305f6aeff2bbdf42c82d8425921aa9eda (patch) | |
tree | db606a57e3619610e4c35cae849d41cf4e0937d5 /Master/texmf-dist/source/latex/babelbib/babelbib.dtx | |
parent | ac3c55a3216b5988f0e48ba9414ddb059f19a699 (diff) |
source 1
git-svn-id: svn://tug.org/texlive/trunk@105 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/babelbib/babelbib.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/babelbib/babelbib.dtx | 6966 |
1 files changed, 6966 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/babelbib/babelbib.dtx b/Master/texmf-dist/source/latex/babelbib/babelbib.dtx new file mode 100644 index 00000000000..ab7715223c9 --- /dev/null +++ b/Master/texmf-dist/source/latex/babelbib/babelbib.dtx @@ -0,0 +1,6966 @@ +% \iffalse meta comment +% File: babelbib.dtx Copyright (C) 2003--2005 Harald Harders +% \fi +% +% \iffalse +% +%<*driver> +\documentclass{ltxdoc} +\usepackage[T1]{fontenc} +\usepackage[ngerman,english]{babel} +%\usepackage{url} +\usepackage{array} +\usepackage{hyperref} +\IfFileExists{booktabs.sty}% + {\usepackage{booktabs}}% + {\let\toprule\hline + \let\midrule\hline + \let\bottomrule\hline} +\IfFileExists{babelbib.sty}{\usepackage{babelbib} + \let\babelbibSTYfound\active}{\GenericWarning{babelbib.dtx}{Package + file babelbib.sty not found (Documentation will be messed up!^^J^^A + Generate babelbib.sty by LaTeXing babelbib.ins, process + babelbib.dtx again)^^J}\stop} +\GetFileInfo{babelbib.sty} +\title{Multilingual bibliographies: The \texttt{babelbib} package} +\author{Harald Harders\\\texttt{h.harders@tu-bs.de}} +\date{Version \fileversion, \filedate, printed \today} +\newlength{\tempdima}% +\makeatletter +\renewenvironment{table}[1][]{% + \@float{table}[#1]% + \centering% + \setlength{\tempdima}{\abovecaptionskip}% + \setlength{\abovecaptionskip}{\belowcaptionskip}% + \setlength{\belowcaptionskip}{\tempdima}% + }{% +\end@float +} +\makeatother +\def\AmS{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox + {$\mathcal{M}$}\kern-.125em$\mathcal{S}$} +\EnableCrossrefs +\CodelineIndex +\DoNotIndex{\def,\edef,\let,\newcommand,\newenvironment,\newcounter} +\DoNotIndex{\setcounter,\space,\",\@empty,\begin,\end,\iffalse,\fi,\extras} +\DoNotIndex{\bibs,\ifx,\else,\fi,\ ,\ae,\emph,\input} +\CodelineNumbered +\RecordChanges +\CheckSum{7995} +\hyphenation{bib-lio-gra-phy} +\begin{document} + \DocInput{babelbib.dtx} +\end{document} +%</driver> +% \fi +% +% \changes{0.1}{2003/04/11}{Total new version}% +% \changes{0.2}{2003/04/20}{Rewritten in main parts}% +% \changes{0.42}{2003/11/09}{Use unique version strings for all files +% of the bundle}% +% \changes{0.42}{2003/11/09}{Reorganise docstrip code}% +% \changes{0.43}{2004/01/06}{Document the problem using +% \texttt{frenchle.sty} when using \texttt{french} language with +% some babel versions}% +% \changes{0.44}{2004/01/06}{Improved spacings in documentation}% +% \changes{0.44a}{2004/02/12}{Adapted Makefile for \TeX Live}% +% \changes{0.46}{2004/06/28}{Enable to switch off printout of language +% name with \texttt{babamspl} style}% +% \changes{1.00}{2005/02/16}{Rewritten warning about \texttt{frenchle.sty} +% package}% +% \changes{1.00}{2005/02/16}{Shorten version string}% +% \changes{1.00}{2005/02/16}{Added \texttt{urldate} to all \BibTeX\ +% styles}% +% \changes{1.01}{2005/04/11}{Added space after the \cs{btx}\ldots\ +% commands in the \texttt{bst} files to avoid line-breaking problem}% +% \changes{1.02}{2005/04/15}{Language Portuguese completed}% +% \changes{1.10}{2005/05/24}{Allow different ordering of forenames and +% lastnames}% +% \changes{1.10}{2005/05/24}{Protect the \cs{foreignlanguage} calls +% (avoids problems with natbib)}% +% \changes{1.11}{2005/06/12}{Avoid some additional line breaks in +% author and editor names}% +% \changes{1.11}{2005/06/12}{Switch ISBN and ISSN in bibliographies on +% and off (does not work for \AmS\ style)}% +% \changes{1.11}{2005/06/12}{Remove space after \cs{btxurlfont} +% because a linebreak between \cs{url} and the argument breaks +% \texttt{hyperref.sty} (which is a pity because this can lead to +% line-break problems with long arguments)}% +% \changes{1.12}{2005/06/19}{Correct \cs{btxlanguagenameenglish}, +% \cs{btxmastthesis}, and \cs{btxmonaugshort} in +% \texttt{french.bdf}}% +% \changes{1.13}{2005/06/27}{Apply corrections to and complete Italian +% language}% +% \changes{1.14}{2005/07/11}{Complete and correct catalan}% +% +% \maketitle +% \begin{abstract} +% \noindent +% This package enables to generate multilingual bibliographies in +% cooperation with |babel|. +% Two approaches are possible: +% Each citation may be written in another language, or the whole +% bibliography can be typeset in a language chosen by the user. +% +% In addition, the package supports commands to change the typography +% of the bibliographies. +% +% The current version supports Afrikaans, Catalan, Danish, Dutch, +% English, Esperanto, Finnish, French,\footnote{Babelbib does not work +% with \texttt{frenchle} prior V5,987. Please update the frenchle +% package or use the native babel support for French, instead.} +% German, Italian, Norwegian, Portuguese, Spanish, and Swedish. +% Please help me to add more languages. +% +% Many of the standard and extended bibliography styles are available. +% Please read section~\ref{sec:styles}. +% +% \textbf{If you have used version 0.1 of this package: +% The mechanism to change fonts have changed, please read +% section~\ref{sec:typography}.} +% +% Have a look to \texttt{tugboat-babelbib.pdf} which includes detailed +% descriptions how to use and extend the babelbib bundle. +% \end{abstract} +% +% \tableofcontents +% +% \section*{Copyright} +% Copyright 2003--2005 Harald Harders. +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% \section{Introduction} +% +% This package is a replacement for |bibgerm.sty| \cite{germbib} with the +% aim to be extendable to other languages more easily. +% In addition, |babelbib| provides a more flexible typography of +% bibliographies without the need to change |bst| files. +% But there are two shortcomings: This package needs +% |babel.sty|~\cite{babel} (thus, it does not work with |german.sty| +% or |ngerman.sty|), and it is written for \LaTeXe\ and does not work +% with plain \TeX. +% +% The current version supports Afrikaans, Danish, Dutch, English, +% Esperanto, Finnish, French,\footnote{Babelbib does not work with +% \texttt{frenchle} prior V5,987. Please update the frenchle package +% or use the native babel support for French, instead.} +% German, Italian, Norwegian, Portuguese, Spanish, and Swedish. +% +% If you have used version 0.1 of this package: +% The mechanism to change fonts have changed, please read +% section~\ref{sec:typography}. +% +% \section{Usage}% +% \label{sec:usage}% +% +% To use this package place +% \begin{verbatim} +%\usepackage{babelbib}\end{verbatim} +% into the preamble of your document. +% The package loads all necessary language definitions for all files +% it knows that are loaded by |babel|. +% +% By default, the language of the bibliographic keywords (``editor'', +% ``page'', etc.) switches for each item to the language of the cited +% document. +% If all citations shall be written in the same language, add the +% option\index{fixlanguage=\texttt{fixlanguage}|usage} |fixlanguage| +% to the package call. +% Then, all bibliographies are typeset in the document's main +% language. +% To change the bibliography's language, use +% \DescribeMacro{\selectbiblanguage} +% |\selectbiblanguage{|$\langle$language$\rangle$|}|. +% This command only has an effect, if |fixlanguage| is set. +% +% |babelbib| supports the \BibTeX\ styles |babplain|, |babplai3|, +% |babalpha|, |babunsrt|, |bababbrv|, and |bababbr3| that correspond +% to the standard |bst| files, but include international support as +% well as flexible typography.\footnote{The versions with the +% \texttt{3} in the filenames replace the second and later authors by +% \emph{et al.}, if more than three authors are given.} +% As usual, you select the style using +% \DescribeMacro{\bibliographystyle} +% |\bibliographystyle{|$\langle$filename$\rangle$|}|. +% In addition, the package supports the \BibTeX\ style |babamspl| +% which corresponds to |amsplain| by the \AmS. +% \changes{0.2}{2003/04/20}{Added option \texttt{languagenames} to +% define commands for language names}% +% \index{languagenames=\texttt{languagenames}|usage}% +% If you want to use this style, you have to add the option +% |languagenames| to the call of the package. +% +% \DescribeMacro{\declarebtxcommands}% +% If you don't like some of the keywords provided by |babelbib|, or if +% you want to use new ones, you are able to get these using the +% command \cs{declarebtxcommands}. +% It takes two arguments, where the first is the language for which +% you want to add or change keywords, and the second is the list of +% command definitions. +% It seems to be best to show that for an example. +% You may want to change the definitions for Ph.D.\ theses for English +% and German with new orthography (the defaults are ``PhD thesis'' resp.\ +% \foreignlanguage{ngerman}{"`Dissertation"'}). +% You can reach a change by the following code: +% \begin{verbatim} +%\declarebtxcommands{english}{% +% \def\btxphdthesis#1{\protect\foreignlanguage{english}{Ph.D.\ thesis}}% +%} +%\declarebtxcommands{ngerman}{% +% \def\btxphdthesis#1{\protect\foreignlanguage{ngerman}{Doktorarbeit}}% +%}\end{verbatim} +% You may change more than one command in one |\setbtxcommand| +% command. +% You just have to add more of the |\def|\ldots\ lines. +% But please don't forget the percent sign at the end of the lines in +% order to avoid unwanted spaces in the output. +% The \AmS\ \BibTeX\ style |amsplain| uses ``Ph.D.\ thesis'' instead +% of the default ``PhD thesis'' for |babamspl|. +% If you want the same keyword as in the \AmS\ original, you can use +% the |\declarebtxcommands| line shown above. +% +% \section{Preparing the \texttt{bib} files} +% +% In order to use the feature of multilingual bibliographies, add the +% field |language| to every entry in your |bib| files. +% This field gives the language of the cited document, e.\,g. +% \begin{verbatim} +%@InBook{dieter1997a, +% editor = {Dieter, George~E. and others}, +% title = {Materials Selection and Design}, +% chapter = {Effects of Composition, Processing, and Structure on +% Properties of Engineering Plastics}, +% publisher = {ASM International}, +% year = 1997, +% volume = 20, +% series = {ASM Handbook}, +% pages = {434--456}, +% language = {english}, +% isbn = {0-87170-386-6} +%}\end{verbatim} +% Then, the output of the document data (title, authors, series, etc.) +% is typeset with correct hyphenation patterns. +% Wheather also the keywords (``edition'', ``pages'', etc.) are +% switched to the citation language, depends on wheather |fixlanguage| +% has been used. +% All languages that appear in the bibliography have to be loaded by +% |babel|. +% +% \DescribeMacro{\setbtxfallbacklanguage} +% If the field |language| is missing, the citation is typeset using a +% fall-back language. +% By default, the document's main language (that one that is active at +% \cs{begin\{document\}}) is used. +% You can change the fall-back language by using +% \cs{setbtxfallbacklanguage\marg{language}}, e.\,g., +% \begin{verbatim} +%\setbtxfallbacklanguage{ngerman}\end{verbatim} +% +% |babelbib| supports four additional fields: +% |ISBN|, |ISSN|, |URL|, and |URLDATE|. +% |ISBN| and |ISSN| take the ISBN or ISSN respectively. +% |URL| is the address of a WWW page while |URLDATE| is the date when +% the WWW page has been visited. +% The field |URL| is typeset using the command |\url| if available, +% e.\,g., if the user has loaded |url.sty|. +% Otherwise, |babelbib| defines a |\url| command which just calls +% |\texttt|. +% +% \DescribeMacro{\biblanguage}% +% If you want to use language-dependent commands as \cs{alsoname} in a +% bibliography that was produced with |fixlanguage| you will be +% surprised that the commands change the output depending on the +% language of the citation. +% If you want to write a field with the keyword language, you can use +% the command \cs{biblanguage}, e.g., +% \begin{verbatim} +%@Article{abinger1988a, +% author = {Abinger, R. and Hammer, F. and Leopold, J. and others}, +% title = {Gro"sschaden an einem 300"=MW"=Dampfturbosatz}, +% journal = {Der Maschinenschaden}, +% year = 1988, +% volume = 61, +% number = 2, +% pages = {58--60}, +% language = {ngerman}, +% note = {\biblanguage{\alsoname~\cite{abinger1990a}}} +%}\end{verbatim} +% This will give the note ``\alsoname~[\ldots]'' instead of +% ``{\selectlanguage{ngerman}\alsoname~[\ldots]}'' when the +% bibliography uses English keywords. +% +% +% \section{Available bibliography styles}% +% \label{sec:styles}% +% +% The |babelbib| bundle contains adapted versions of the standard +% bibliography styles |plain|, |unsrt|, |abbrv|, and |alpha|. +% They are called |babplain|, |babunsrt|, |bababbrv|, and |babalpha|, +% respectively. +% All variants write names in a special manner when more than one +% author is given. +% The first author ist written ``Lastname, Forename'' while all other +% authors are written ``Forename Lastname''. +% This is done to emphesize the ordering by the lastname. +% +% If you don't want this behaviour you can use additional variants +% that use the same notation for all names. +% By appending |-fl| to the style name, e.\,g., |babalpha-fl|, all names +% are written ``Forename Lastname''. +% By appending |-lf|, e.\,g., |babalpha-lf|, all names are written +% ``Lastname, Forename''. +% +% The style |babamspl| is the |babelbib| equivalent to |amsplain|. +% +% +% \section{Customisation of the bibliography's typography} +% \label{sec:typography}% +% +% In constrast to the standard and |germbib| |bst| files, the +% appearance of the different data types is not fixed for |bab*.bst|. +% There are commands for some data fields that determine the used +% font. +% +% \DescribeMacro{\setbibliographyfont}% +% You can change some font specifications in the bibliography using +% the command +% \cs{setbibliographyfont\{\textrm{\meta{element}}\}\{\textrm{\meta{font command}}\}}, +% where \meta{element} is a typographic element, listed in +% table~\ref{tab:elements}. +% \begin{table}[tp] +% \centering +% \caption{Default values for the fonts in bibliographies. +% If no value is given, the standard font (normally upright roman) +% is used.} +% \label{tab:elements} +% \begin{tabular}{llll} +% \toprule +% Element& Data types& \multicolumn{2}{c}{Default value for +% \BibTeX\ style} \\ +% && |bababbrv|, |babalpha|& |babamspl| \\ +% && |babplain|, |babunsrt|& \\ +% \midrule +% name& Authors, editors& & \\ +% lastname& Lastnames of Authors, editors& & \\ +% title& All kinds of titles& \cs{emph}& \cs{emph}\\ +% etal& ``\emph{et al.}''& \cs{emph}& \\ +% journal& Journal title& & \\ +% volume& Volume (journal)& & \cs{textbf} \\ +% ISBN& ISBN& \cs{MakeUppercase}& \cs{MakeUppercase} \\ +% ISSN& ISSN& \cs{MakeUppercase}& \cs{MakeUppercase} \\ +% url& URL& \cs{url}& \cs{url} \\ +% urldate& visiting date of URL& & \\ +% \bottomrule +% \end{tabular} +% \end{table} +% \meta{font command} is a command that takes one argument, e.\,g.\ +% |\textbf|, |\emph|, or |\textsc|. +% If no suitable command is available, you have to define one, first. +% For example, you can get a bold italic font as follows: +% \begin{verbatim} +%\newcommand\textitbf[1]{{\bfseries\itshape #1\/}}% +%\setbibliographyfont{title}{\textitbf}%\end{verbatim} +% As it can be seen in this example, the argument of the used font +% command mustn't be specified in |\setbibliographyfont|. +% +% The \meta{element} |name| changes the whole name of the author, +% including forename and lastname. +% If |lastname| is also specified, it changes the lastname within the +% font for the name. +% For example, +% \begin{verbatim} +%\setbibliographyfont{name}{\emph} +%\setbibliographyfont{lastname}{\MakeUppercase}\end{verbatim} +% leads to |\emph{Harald \MakeUppercase{Harders}}| resp.\ +% ``\emph{Harald \MakeUppercase{Harders}}''. +% +% The font definition for |urldate| can also be used not to change the +% font but to provide a command that writes the date in the correct +% language, e.\,g., using the |isodate| package: +% \begin{verbatim} +%\usepackage[short]{isodate} +%\setbibliographyfont{urldate}{\printdate}\end{verbatim} +% +% \DescribeMacro{\btxISBN}% +% \DescribeMacro{\btxISSN}% +% There are two additional commands, \cs{btxISBN} and \cs{btxISSN}. +% They generate the strings ``ISBN'' and ``ISSN'' in bibliographies. +% By default, they do it without a change of the font. +% For example, if using oldstyle digits, it could be worth to change +% them e.\,g.\ to +% \begin{verbatim} +%\renewcommand\btxISBN{\textsc{isbn}} +%\renewcommand\btxISSN{\textsc{issn}}\end{verbatim} +% +% \DescribeMacro{\btxprintISBN}% +% \DescribeMacro{\btxprintISSN}% +% By default, the ISBN resp.\ ISSN is printed if present in the data +% base. +% You can switch this behaviour off by using \cs{btxprintISBN\{false\}} +% resp.\ \cs{btxprintISSN\{false\}}. +% Similarly, printing is switched on by \cs{btxprintISBN\{true\}} +% resp.\ \cs{btxprintISSN\{true\}}. +% This, however, only works for the "`standard"' styles, i.\,e., not for +% the \AmS\ style |babamspl|. +% +% If you are using |babamspl|, the language names of the citations are +% printed by default, as the original \AmS\ style does it. +% You can avoid this by adding following line to your preamble: +% \begin{verbatim} +%\newcommand\btxprintamslanguage[1]{}\end{verbatim} +% +% +% \section{How to add new languages} +% +% The language definitions are placed in special files with the +% extension |.bdf|. +% If you want to add a new language to the |babelbib| system, you +% should copy one of the existing |bdf| files and change the new +% file. +% +% Since |babelbib.sty| contains a list of known languages, it will not +% find the new language definition file, automatically. +% Then, you can give the name of the new file without extension as an +% option when loading |babelbib|. +% For example, to load |mylang.bdf|, you have to load the package as +% follows: +% \begin{verbatim} +%\usepackage[mylang]{babelbib}\end{verbatim} +% +% If you have developed a new |bdf| file, please send it to +% |h.harders@tu-bs.de|. +% Then, I will add it to the |babelbib| system. +% +% \section{Problems and Incompatibilities} +% +% \begin{itemize} +% \item Babelbib does not work together with old versions of the +% |frenchle| package prior V5,987. +% Please update the frenchle package or use the native babel support +% for the French language, instead. +% \end{itemize} +% +% \section{To Do} +% +% \begin{itemize} +% \item Add more languages. +% \item Complete Dutch. +% \item Add the possibility to switch off ISBN and ISSN to |babasmpl|. +% \end{itemize} +% +% +% \section*{Acknowledgements} +% +% Danie Els, \url{dnjels@sun.ac.za} (Afrikaans); +% Taneli Huuskonen, \url{huuskone@cc.helsinki.fi} (Esperanto, Finnish); +% V\'\i ctor Lua\~na, \url{victor@fluor.quimica.uniovi.es} (Spanish); +% Hans Fredrik Nordhaug, \url{hansfn@mi.uib.no} (Norwegian, Swedish); +% Robert Fuster, \url{rfuster@imm.upv.es} (Catalan); +% Markus Kohm, \url{komascript@gmx.info} (Different schemes for writing names); +% Matthias D. Eisner, \url{matthias.eisner@ethz.ch} (protect +% \cs{foreignlanguage} calls); +% Daniel Winkelmann, \url{daniel.winkelmann@club-internet.fr} +% (idea for different formatting of forenames and lastnames); +% Jan Steffan, \url{me@jansteffan.de} (\cs{setbtxfallbacklanguage}); +% Philip Ratcliffe, \url{philip.ratcliffe@email.it} (corrections for +% Italian); Angel Tsankov, \url{bigman@abv.bg} (bugfix with +% \cs{bbbb\meta{\cs{CurrentOption}}loaded}). +% +% +%\begin{thebibliography}{1} +% \providebibliographyfont{name}{}% +% \providebibliographyfont{title}{\emph}% +% \providebibliographyfont{etal}{\emph}% +% \providebibliographyfont{volume}{}% +% \providebibliographyfont{ISBN}{\MakeUppercase}% +% \providebibliographyfont{ISSN}{\MakeUppercase}% +% \providebibliographyfont{url}{\url}% +% +%\selectlanguage{\english} +%\bibitem{babel} +%\btxnamefont{Braams, Johannes}: \btxtitlefont{Babel, a multilingual package +% for use with \LaTeX's standard document classes}, 2002. +%\newblock \btxurlfont{CTAN:macros/latex/required/babel/}. +% +%\selectlanguage{\english} +%\bibitem{germbib} +%\btxnamefont{Wallmeier, M.}, A.~Scherer\btxandcomma{} \btxandlong{}\ +% \btxnamefont{H.~Harders}: \btxtitlefont{Macros for german {\BibTeX}ing}, +% 2000. +%\newblock \btxurlfont{CTAN:biblio/bibtex/contrib/germbib/}. +% +%\end{thebibliography} +% +% \StopEventually{\PrintChanges \PrintIndex} +% +% +% \section{The implementation} +% +% Source lines that look like \texttt{$\langle$*...$\rangle$} or +% \texttt{$\langle$/...$\rangle$} where \texttt{...} is arbitrary text +% are not written into the output files. +% If a source line starts with \texttt{$\langle$...$\rangle$}, this +% part of the line is omitted. +% +% \subsection{Headings of the files} +% +% Heading of the package and the other files: +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e}[1998/06/01] +\ProvidesPackage{babelbib} +%</package> +% \end{macrocode} +% File heads of the |bdf| files: +% \begin{macrocode} +%<afrikaans>%% Language definitions for Afrikaans by +%<afrikaans>%% Danie Els, dnjels@sun.ac.za +%<afrikaans>\ProvidesFile{afrikaans.bdf} +%<catalan>%% Language definitions for Catalan by +%<catalan>%% Robert Fuster, rfuster@imm.upv.es +%<catalan>\ProvidesFile{catalan.bdf} +%<danish>\ProvidesFile{danish.bdf} +%<dutch>\ProvidesFile{dutch.bdf} +%<english>\ProvidesFile{english.bdf} +%<esperanto>%% Language definitions for Esperanto by +%<esperanto>%% Taneli Huuskonen, huuskone@cc.helsinki.fi +%<esperanto>\ProvidesFile{esperanto.bdf} +%<portuguese>%% Language definitions for Portuguese by +%<portuguese>%% Jos\'e Carlos Santos, jcsantos@fc.up.pt +%<portuguese>\ProvidesFile{portuguese.bdf} +%<finnish>%% Language definitions for Finnish by +%<finnish>%% Taneli Huuskonen, huuskone@cc.helsinki.fi +%<finnish>\ProvidesFile{finnish.bdf} +%<french>\ProvidesFile{french.bdf} +%<german>\ProvidesFile{german.bdf} +%<italian>\ProvidesFile{italian.bdf} +%<norsk>%% Language definitions for Norwegian by +%<norsk>%% Hans Fredrik Nordhaug <hansfn@mi.uib.no> +%<norsk>\ProvidesFile{norsk.bdf} +%<spanish>%% Language definitions for spanish by +%<spanish>%% V{\'\i}ctor Lua{\~n}a, victor@fluor.quimica.uniovi.es +%<spanish>\ProvidesFile{spanish.bdf} +%<swedish>%% Language definitions for Swedish by +%<swedish>%% Hans Fredrik Nordhaug <hansfn@mi.uib.no> +%<swedish>\ProvidesFile{swedish.bdf} +% \end{macrocode} +% Version information unique for all generated files: +% \begin{macrocode} +%<latex> [2005/09/01 v1.15 babelbib: multilingual bibliographies (HH)] +%<bst>%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +% \end{macrocode} +% +% \subsection{The package itself} +% +% \index{fixlanguage=\texttt{fixlanguage}|main}% +% Define an option which fixes the language in the bibliography to the +% main language of the document. +% \begin{macrocode} +%<*package> +\newif\ifbbbbfixlanguage +\DeclareOption{fixlanguage}{\bbbbfixlanguagetrue} +% \end{macrocode} +% \changes{0.2}{2003/04/20}{Added option \texttt{languagenames} to +% define commands for language names}% +% \index{languagenames=\texttt{languagenames}|main}% +% If this option is used, generate the commands +% \cs{btxlanguagename}\meta{language} that save how languages are +% called in other languages, e.\,g. in German, French is called +% \foreignlanguage{ngerman}{"`französisch"'}. +% \begin{macrocode} +\newif\ifbbbblanguagenames +\DeclareOption{languagenames}{\bbbblanguagenamestrue} +% \end{macrocode} +% If additional options are given, try to load these as +% languages. This is implemented in order to be able to use a new +% language that is not yet supported by the official |babelbib|. +% \changes{1.15}{2005/09/01}{Small bug fix in loading language files}% +% \begin{macrocode} +\DeclareOption*{% + \InputIfFileExists{\CurrentOption.bdf}{% + \expandafter\def\csname bbbb\CurrentOption loaded\endcsname{\@empty}% + }{% + \PackageError{babelbib}{% + Language definition file \CurrentOption.bdf not found}{% + Maybe you misspelled the language option?}% + }% +} +% \end{macrocode} +% Process the given options. +% \begin{macrocode} +\ProcessOptions* +% \end{macrocode} +% \begin{macro}{\bbbbifundefined} +% Define a replacement for \cs{@ifundefined} that does not define the +% command it is tested for as side effect. +% This command has been taken from a news posting by Markus Kohm +% (|markus.kohm@gmx.de|). +% \begin{macrocode} +\newcommand*{\bbbbifundefined}[1]{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname #1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bbbbaddto} +% Adds the command named |\bibs#2| to the command |\extras#1|, if this +% command is defined before, where |#1| and |#2| are the arguments of +% |\bbbbaddto|. For internal use only. +% \changes{0.32}{2003/05/06}{Changed \cs{bbbbaddto} in order to allow +% different commands to be added to \cs{extras}\meta{language}}% +% \begin{macrocode} +\newcommand\bbbbaddto[2]{% +% \end{macrocode} +% Test wheather |\extras#1| is defined. +% \begin{macrocode} + \expandafter\bbbbifundefined{extras#1}{}{% +% \end{macrocode} +% Call |babel|'s command to append |\bibs#1| to |\extras#1|. +% \begin{macrocode} + \expandafter\addto\expandafter{\csname extras#1\endcsname}{% + \csname #2\endcsname}% + \typeout{babelbib extension \@backslashchar #2 added to + \string\extras #1}% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\inputbdf} +% Input the file |#2.bdf| if babel has loaded the language |#1|. +% For internal use only. +% \begin{macrocode} +\newcommand\inputbdf[2]{% +% \end{macrocode} +% \changes{0.43}{2004/01/05}{Test on \cs{date}\meta{language} instead on +% \cs{l@}\meta{language} (caused problems with \TeX Live)}% +% Test wheather |\date#1| is defined which is the case if the language +% |#1| has been loaded. +% \begin{macrocode} + \bbbbifundefined{date#1}{}{% +% \end{macrocode} +% Input |#2.bdf|. +% \begin{macrocode} + \@ifundefined{bbbb#2loaded}{% + \expandafter\def\csname bbbb#2loaded\endcsname{\@empty}% + \input{#2.bdf}% + }{}% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\selectbiblanguage} +% \changes{0.3}{2003/04/21}{Handling of usage before or after +% \texttt{begin\{document\}} added}% +% Define |\selectbiblanguage| which explicitly selects the language +% for the bibliography. This is only useful when the option +% |fixlanguage| is used. +% Otherwise the command produces a warning and does nothing else. +% +% Since all the language dependent macros are not know before +% |\begin{document}|, the command |\selectbiblanguage| has to wait +% until there, before doing any action. +% Because after |\begin{document}|, it can do the action immediately, +% |\selectbiblanguge| has to be redefined there. +% \begin{macrocode} +\ifbbbbfixlanguage +% \end{macrocode} +% Define the |\selectlanguage| command for usage before +% |\begin{document}|. +% \begin{macrocode} + \newcommand\selectbiblanguage[1]{% + \AtBeginDocument{\@selectbiblanguage{#1}}% + } +% \end{macrocode} +% Redefine it at |\begin{document}|. +% \begin{macrocode} + \AtBeginDocument{% + \renewcommand\selectbiblanguage[1]{\@selectbiblanguage{#1}}% + } +% \end{macrocode} +% Define the ``real'' command that does the action. +% It tests wheather |\bibs#1| and |\extras#1| are known and produces +% error messages if not. +% If everything is okay, change the bibliography language. +% \begin{macrocode} + \newcommand\@selectbiblanguage[1]{% + \bbbbifundefined{bibs#1}{% + \bbbbifundefined{date#1}{% + \PackageError{babelbib}{Language #1 in bibliography not loaded + by babel}{% + The language #1 hasn't been loaded by babel. + Add it to the\MessageBreak + options of the \string\usepackage{babel} command or to the + global options.}% + }{% + \PackageError{babelbib}{Language #1 in bibliography unknown by + babelbib}{% + There are no definitions for #1 available in the + current\MessageBreak + version of babelbib. Please contact h.harders@tu-bs.de.}% + }% + }{% + \typeout{babelbib: Set language for keywords in the bibliography fixed to #1}% + \csname bibs#1\endcsname + }% + } +\else + \newcommand\selectbiblanguage[1]{% + \PackageWarning{babelbib}{Command \string\selectbiblanguage\space + used without package\MessageBreak + option fixlanguage. Ignored}% + } + \AtBeginDocument{% + \typeout{babelbib: Use citation-dependent languages in bibliography}% + } +\fi +% \end{macrocode} +% \end{macro} +% \begin{macro}{\btxselectlanguage} +% \changes{0.2}{2003/04/20}{Added}% +% Define |\selectbiblanguage| which selects a language and complains +% if babelbib does not know about this language. +% For internal use, only. +% \begin{macrocode} +\newcommand\btxselectlanguage[1]{% + \bbbbifundefined{bibs#1}{% + \bbbbifundefined{date#1}{% + \PackageError{babelbib}{Language #1 in bibliography not loaded + by babel}{% + The language #1 hasn't been loaded by babel. + Add it to the\MessageBreak + options of the \string\usepackage{babel} command or to the + global options.}% + }{% + \ifbbbbfixlanguage + \PackageWarning{babelbib}{Language #1 in bibliography + unknown\MessageBreak + by babelbib. Hyphenation will be\MessageBreak + incorrect}% + \else + \PackageError{babelbib}{Language #1 in bibliography unknown by + babelbib}{% + There are no definitions for #1 available in the + current\MessageBreak + version of babelbib. Please contact h.harders@tu-bs.de.}% + \fi + }% + }{% + \selectlanguage{#1}% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\biblanguage} +% \changes{1.15}{2005/09/01}{Add \cs{biblanguage} that switches to the +% keyword language within a field}% +% Define \cs{biblanguage} which switches to the keyword language +% within a field. +% \begin{macrocode} +\newcommand\biblanguage[1]{{% + \expandafter\selectlanguage\expandafter{\biblanguagename}#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\btxlanguagename} +% \changes{0.2}{2003/04/20}{Added}% +% Define |\btxlanguagename| which typesets the name of the language +% given in the argument, spoken in the current active language. +% \begin{macrocode} +\newcommand\btxlanguagename[1]{% + \bbbbifundefined{btxlanguagename#1}{% + \PackageError{babelbib}{Languagename for #1 not + defined\MessageBreak + in \languagename\space language}{% + Either you have forgotten to specify the option `languagenames' + when loading\MessageBreak + babelbib, or the command \string\bibs\languagename\space does + not contain a definition\MessageBreak + for the command \string\btxlanguagename#1. + In the latter case, please\MessageBreak + contact h.harders@tu-bs.de.}% + #1% + }{% + \@nameuse{btxlanguagename#1}% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\setbtxfallbacklanguage} +% \changes{1.12}{2005/06/19}{Add the command \cs{setbtxfallbacklanguage} +% to force a fall-back language}% +% \begin{macrocode} +\newcommand*\setbtxfallbacklanguage[1]{% + \edef\btxfallbacklanguage{#1}% + \typeout{babelbib: Set bibliography fall-back language to + \btxfallbacklanguage}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\btxfallbacklanguage} +% \changes{0.40}{2003/09/26}{Add the command \cs{btxfallbacklanguage} +% for items without given language}% +% \begin{macrocode} +\AtBeginDocument{% + \@ifundefined{btxfallbacklanguage}{% + \edef\btxfallbacklanguage{\languagename}% + \typeout{babelbib: Set bibliography fall-back language to + \btxfallbacklanguage}% + }{% + \typeout{babelbib: Bibliography fall-back language unchanged + (\btxfallbacklanguage)}% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\declarebtxcommands} +% \changes{0.3}{2003/04/21}{Added}% +% Declare |\declarebtxcommands| which adds or replaces one or more of the +% |\Btx| or |\btx| commands defined in a \cs{bibs}\meta{language} +% command. +% The first argument gives the language for which the commands shall +% be added or changed. +% The second argument includes the definitions of the commands. +% For an example, see section~\ref{sec:usage}. +% \begin{macrocode} +\newcommand*\declarebtxcommands[2]{% + \AtBeginDocument{% + \typeout{babelbib: Add a command to \string\bibs#1}% + \expandafter\g@addto@macro\csname bibs#1\endcsname{#2}% + \ifbbbbfixlanguage + \selectbiblanguage{\biblanguagename}% + \fi + }% +} +% \end{macrocode} +% This command may only be used in the preamble. +% \begin{macrocode} +\@onlypreamble\declarebtxcommands +% \end{macrocode} +% \end{macro} +% \begin{macro}{\btxifchangecaseon} +% \begin{macro}{\btxifchangecaseoff} +% \changes{0.32}{2003/05/06}{Move change of case from bst to sty}% +% The bst files write titles twice, first with changed case and second +% with preserved case. +% The macros \cs{btxifchangecaseon} and \cs{btxifchangecaseoff} +% typeset one of these versions. +% The languages append one of these commands to the +% \cs{extras}\meta{language} commands. +% \begin{macrocode} +\newcommand*\btxifchangecaseon{% + \def\btxifchangecase{\@firstoftwo}% +}% +\newcommand*\btxifchangecaseoff{% + \def\btxifchangecase{\@secondoftwo}% +}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\setbibliographyfont} +% \changes{0.2}{2003/04/20}{Don't change the font commands directly +% but use this command}% +% Define |\setbibliographyfont| and |\setbibliographyfont*| that set +% the font declared by the first argument |#1| to the second argument +% |#2|. +% The second argument has to be a macro with one argument, like +% |\textbf|, |\emph|, |\textsc|, etc. +% The normal version generates an error, if the internal command +% |\btx#1font| is not defined. +% The star version doesn't. +% error. +% \begin{macrocode} +\newcommand\setbibliographyfont{% + \@ifnextchar*{\@@setbibliographyfont}{\@setbibliographyfont}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@setbibliographyfont} +% \begin{macrocode} +\newcommand\@setbibliographyfont[2]{% + \bbbbifundefined{btx#1font}{% + \PackageError{babelbib}{Bibliography font `#1' can't be set}{% + You have tried to define a font for the bibliographic element + \MessageBreak + `#1', which is unknown to babelbib}% + }{% + \expandafter\renewcommand\csname btx#1font\endcsname{#2}% + \typeout{babelbib: Bibliography font for `#1' changed.}% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@@setbibliographyfont} +% The first argument is the |*| and ignored. +% \begin{macrocode} +\newcommand\@@setbibliographyfont[3]{% + \bbbbifundefined{btx#2font}{% + \expandafter\newcommand\csname btx#2font\endcsname{#3}% + \typeout{babelbib: Bibliography font for `#2' newly defined.}% + }{% + \expandafter\renewcommand\csname btx#2font\endcsname{#3}% + \typeout{babelbib: Bibliography font for `#2' changed.}% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\providebibliographyfont} +% \changes{0.2}{2003/04/20}{Added}% +% Define |\providebibliographyfont| and |\providebibliographyfont*| +% that do the same as |\setbibliographyfont| and +% |\setbibliographyfont*|, but only, if |\setbibliographyfont| has not +% been used for |#1|, before. +% It is similar to |\providecommmand| which only defines that command +% if it is undefined, before. +% This command is intended to be used by the \BibTeX\ style, but can +% also be used by the user. +% \begin{macrocode} +\newcommand\providebibliographyfont{% + \@ifnextchar*{\@@providebibliographyfont}{\@providebibliographyfont}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@providebibliographyfont} +% \begin{macrocode} +\newcommand\@providebibliographyfont[2]{% + \bbbbifundefined{btx#1font}{% + \PackageError{babelbib}{Bibliography font `#1' can't be set}{% + You have tried to define a font for the bibliographic element + \MessageBreak + `#1', which is unknown to babelbib}% + }{% + \expandafter\ifx\csname btx#1font\endcsname\@empty + \expandafter\renewcommand\csname btx#1font\endcsname{#2}% + \typeout{babelbib: Using the BibTeX style's default font for `#1'.}% + \else + \typeout{babelbib: Using user changed font for `#1'.}% + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@@setbibliographyfont} +% The first argument is the |*| and ignored. +% \begin{macrocode} +\newcommand\@@providebibliographyfont[3]{% + \bbbbifundefined{btx#2font}{% + \expandafter\newcommand\csname btx#2font\endcsname{#3}% + \typeout{babelbib: Using the BibTeX style's default font for `#2'.}% + }{% + \expandafter\ifx\csname btx#2font\endcsname\@empty + \expandafter\renewcommand\csname btx#2font\endcsname{#3}% + \typeout{babelbib: Using the BibTeX style's default font for `#2'.}% + \else + \typeout{babelbib: Using user changed font for `#2'.}% + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\btxnamefont} +% \changes{0.32}{2003/05/06}{Add new font for journal names}% +% \changes{1.12}{2005/06/19}{Add new font \cs{btxlastname} for last +% names}% +% Define the dummy commands for available fonts +% \begin{macrocode} +\newcommand*\btxnamefont{} +\let\btxnamefont=\@empty +\newcommand*\btxlastnamefont{} +\let\btxlastnamefont=\@empty +\newcommand\btxtitlefont{} +\let\btxtitlefont=\@empty +\newcommand\btxetalfont{} +\let\btxetalfont=\@empty +\newcommand\btxjournalfont{} +\let\btxjournalfont=\@empty +\newcommand\btxvolumefont{} +\let\btxvolumefont=\@empty +\newcommand\btxISBNfont{} +\let\btxISBNfont=\@empty +\newcommand\btxISSNfont{} +\let\btxISSNfont=\@empty +\newcommand\btxurlfont{} +\let\btxurlfont=\@empty +\newcommand\btxurldatefont{} +\let\btxurldatefont=\@empty +% \end{macrocode} +% \end{macro} +% \begin{macro}{\btxauthorcolon} +% \changes{0.2}{2003/04/20}{Added}% +% Define |\btxauthorcolon| which defines the characters typeset after +% the authors, if they are written before the title. +% By default, it is a ``:''. +% \begin{macrocode} +\newcommand\btxauthorcolon{:} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\btxISBN} +% Define |\btxISBN| which outputs "`ISBN"' in a bibliography. +% For example, it could be defined to |\textsc{isbn}| when old style +% digits are used. +% \begin{macrocode} +\newcommand\btxISBN{ISBN} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\btxISSN} +% Define |\btxISSN| which outputs "`ISSN"' in a bibliography. +% For example, it could be defined to |\textsc{issn}| when old style +% digits are used. +% \begin{macrocode} +\newcommand\btxISSN{ISSN} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ifbtxprintISBN} +% \begin{macro}{\ifbtxprintISSN} +% These commands are used by the bibliography styles to typeset the +% ISBN or ISSN only if wanted. +% \begin{macrocode} +\DeclareRobustCommand\ifbtxprintISBN[1]{\ifbtx@printISBN #1\fi} +\DeclareRobustCommand\ifbtxprintISSN[1]{\ifbtx@printISSN #1\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\btxprintISBN} +% \begin{macro}{\btxprintISSN} +% These macros are used to switch on or off printing of ISBN resp.\ +% ISSN. +% Valid arguments are |true| and |false|. +% \begin{macrocode} +\newcommand*\btxprintISBN[1]{\csname btx@printISBN#1\endcsname} +\newcommand*\btxprintISSN[1]{\csname btx@printISSN#1\endcsname} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\ifbtx@printISBN} +% \begin{macro}{\ifbtx@printISSN} +% The booleans that store the necessary information. +% \begin{macrocode} +\newif\ifbtx@printISBN +\newif\ifbtx@printISSN +\btxprintISBN{true} +\btxprintISSN{true} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\url} +% \changes{0.40}{2003/09/26}{If no \cs{url} command is defined, +% produce an error}% +% \changes{0.2}{2003/04/20}{Added, if not available by another +% package}% +% Define |\url| which, by default, is used for URLs. Only necessary if +% not provided by another package, e.\,g.\ |url.sty|. +% \begin{macrocode} +\AtBeginDocument{% + \providecommand\url[1]{% + \PackageError{babelbib}{No \string\url\space command defined but + field URL used\MessageBreak + in bibliography}{% + Please define a \string\url\space command for printing URLs + before \string\begin{document}, e.\,g.\MessageBreak + by loading the package `url.sty'.}% + \texttt{#1}% + }% +} +% \end{macrocode} +% \end{macro} +% Perform the following commands at |\begin{document}| in order to be +% sure to do that after loading |babel|. +% \begin{macrocode} +\AtBeginDocument{% +% \end{macrocode} +% Load |babel| if that has not been done, yet. +% \begin{macrocode} + \RequirePackage{babel} +% \end{macrocode} +% Input all know languages that babel has also loaded, before. +% \changes{0.2}{2003/04/20}{Removed Italian from the list of +% automatically found languages, since it is not complete, yet}% +% \changes{0.31}{2003/05/01}{Added Italian to the list of automatically +% found languages, again}% +% \changes{0.34}{2003/07/28}{Added Afrikaans}% +% \changes{0.41}{2003/11/03}{Added Norwegian (by Hans Fredrik Nordhaug)}% +% \changes{1.00}{2005/02/16}{Renamed franceis to francais}% +% \begin{macrocode} + \inputbdf{afrikaans}{afrikaans} + \inputbdf{american}{english} + \inputbdf{austrian}{german} + \inputbdf{brazil}{portuguese} + \inputbdf{brazilian}{portuguese} + \inputbdf{british}{english} + \inputbdf{canadian}{english} + \inputbdf{canadien}{french} + \inputbdf{catalan}{catalan} + \inputbdf{danish}{danish} + \inputbdf{dutch}{dutch} + \inputbdf{english}{english} + \inputbdf{esperanto}{esperanto} + \inputbdf{finnish}{finnish} + \inputbdf{francais}{french} + \inputbdf{french}{french} + \inputbdf{frenchb}{french} + \inputbdf{german}{german} + \inputbdf{germanb}{german} + \inputbdf{italian}{italian} + \inputbdf{norsk}{norsk} + \inputbdf{mexican}{spanish} + \inputbdf{naustrian}{german} + \inputbdf{ngerman}{german} + \inputbdf{portuges}{portuguese} + \inputbdf{portuguese}{portuguese} + \inputbdf{spanish}{spanish} + \inputbdf{swedish}{swedish} + \inputbdf{UKenglish}{english} + \inputbdf{USenglish}{english} +% \end{macrocode} +% Call |\bibs#1|, where |#1| stands for the main language of the +% document, to activate the additional bibliographic commands. +% \begin{macrocode} + \ifbbbbfixlanguage + \typeout{babelbib: Load BibTeX extensions + \string\bibs\bbl@main@language\space for \bbl@main@language}% + \selectbiblanguage{\bbl@main@language}% + \else + \expandafter\selectlanguage\expandafter{\bbl@main@language}% + \fi +} +%</package> +% \end{macrocode} +% +% \subsection{The language definitions} +% +% \subsubsection{German} +% \begin{macrocode} +%<*german> +% \end{macrocode} +% +% \begin{macro}{\bibsgerman} +% Define |\bibsgerman| which itself defines all necessary expressions +% used in bibliographies that differ in different languages. +% This command is used for all German dialects. +% +% Since the language of the keywords may differ from the language of +% the bibliography item, the keyword language is set for each keyword. +% Because this command is also used for dialects, it has an optional +% argument which is set to the dialect. +% \begin{macrocode} +\newcommand\bibsgerman[1][german]{% +% \end{macrocode} +% Define the command |\biblanguagename| that always returns the name +% of the current language for bibliographies. +% \begin{macrocode} + \def\biblanguagename{#1}% +% \end{macrocode} +% First, define all commands for usage within a sentence (which +% normally start with a lowercase letter, if they aren't a noun). +% These commands start with a lowercase letter. +% +% Many commands have an argument. This may be used by the bib\TeX\ +% styles to append a dot after abbreviations, e.\,g.\ +% |\btxetalshort{.}|. +% \begin{macrocode} + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{und}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{und}}% +% \end{macrocode} +% The command |\btxandcomma| contains a ``,'' if a comma is added +% before the ``and'' in a list of more than two items. +% For German, this is not the case. +% \begin{macrocode} + \def\btxandcomma##1{}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{in:}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{in:}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{d.\ Reihe}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{der Reihe}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{Hrsg##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{Herausgeber}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{Hrsg##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{Herausgeber}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{Bd##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{Band}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{Nr##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{Nummer}}% +% \end{macrocode} +% Avoid the ligature in +% \foreignlanguage{ngerman}{"`Auf"|lage"'} in the same way, |babel| +% does it. +% This is a change in the behaviour to the |germbib| package. +% In \foreignlanguage{ngerman}{"`Aufl"'} the ligature is still +% used since this is done in abbreviations. +% \begin{macrocode} + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{Aufl##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{% + Auf\penalty10000\discretionary{-}{}{\kern.03em}% + \allowhyphens lage}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{Kap##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{Kapitel}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{S##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{Seite}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{S##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{Seiten}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Diplomarbeit}}% +% \end{macrocode} +% Use \foreignlanguage{ngerman}{"`Dissertation"'} instead of +% \foreignlanguage{ngerman}{"`Doktorarbeit"'} for PhD theses. +% This is a change in the behaviour to the |germbib| package. +% \begin{macrocode} + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{Dissertation}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Techn.\ Ber##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Technischer Bericht}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{Januar}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{Februar}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{M\"arz}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{April}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{Mai}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{Juni}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{Juli}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{August}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{September}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{Oktober}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{November}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{Dezember}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{Jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{Feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{M\"arz}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{Apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{Mai}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{Juni}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{Juli}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{Aug##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{Sep##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{Okt##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{Nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{Dez##1{}}}% +% \end{macrocode} +% Then, define all commands for usage at the begin of a sentence +% (which start with an uppercase letter). +% These commands start with an uppercase letter. +% Since, in German, many nouns are the same in the middle and at the +% start of a sentence, the |\Btx| variants just call the |\btx| +% variant. +% \begin{macrocode} + \def\Btxinlong##1{\protect\foreignlanguage{#1}{In:}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{In:}}% + \def\Btxeditorshort{\btxeditorshort}% + \def\Btxeditorlong{\btxeditorlong}% + \def\Btxeditorsshort{\btxeditorsshort}% + \def\Btxeditorslong{\btxeditorslong}% + \def\Btxvolumeshort{\btxvolumeshort}% + \def\Btxvolumelong{\btxvolumelong}% + \def\Btxnumbershort{\btxnumbershort}% + \def\Btxnumberlong{\btxnumberlong}% + \def\Btxeditionshort{\btxeditionshort}% + \def\Btxeditionlong{\btxeditionlong}% + \def\Btxchaptershort{\btxchaptershort}% + \def\Btxchapterlong{\btxchapterlong}% + \def\Btxpageshort{\btxpageshort}% + \def\Btxpagelong{\btxpagelong}% + \def\Btxpagesshort{\btxpagesshort}% + \def\Btxpageslong{\btxpageslong}% + \def\Btxtechrepshort{\btxtechrepshort}% + \def\Btxtechreplong{\btxtechreplong}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{besucht:}}% +% \end{macrocode} +% A command that just puts some user defined text in the language of +% the keywords. +% \begin{macrocode} + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% +% \end{macrocode} +% \changes{0.2}{2003/04/20}{Added language names}% +% Names of all known languages in the current language. +% For example, used by |babamspl.bst|. +% \begin{macrocode} + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{englisch}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{deutsch}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugiesisch}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugiesisch}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{englisch}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgarisch}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{englisch}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{franz\"osisch}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{katalanisch}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{kroatisch}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{tschechisch}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{d\"anisch}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{niederl\"andisch}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{englisch}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finnisch}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{franz\"osisch}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{franz\"osisch}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{franz\"osisch}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{deutsch}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{deutsch}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{griechisch}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebr\"aisch}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{ungarisch}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{isl\"andisch}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irisch}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italienisch}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{lateinisch}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{deutsch}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{deutsch}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norwegisch}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{neunorwegisch}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polnisch}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugiesisch}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugiesisch}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{russisch}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{schottisch}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbisch}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{spanisch}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{schwedisch}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{t\"urkisch}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{englisch}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{englisch}}% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bibsgermanb} +% Do the same for the language ``germanb''. Since there is no +% difference, just call |\bibsgerman|. +% \begin{macrocode} +\newcommand\bibsgermanb{\bibsgerman} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bibsngerman} +% Do the same for German with new ortography. Call |\bibsgerman| with +% new hyphenation patterns. +% \begin{macrocode} +\newcommand\bibsngerman[1][ngerman]{\bibsgerman[#1]} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bibsaustrian} +% Once again. Austrians use \foreignlanguage{ngerman}{"`J\"anner"'} +% instead of \foreignlanguage{ngerman}{"`Januar"'}. Thus, redefine the +% corresponding command. +% \begin{macrocode} +\newcommand\bibsaustrian[1][austrian]{% + \bibsgerman[#1]% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{J\"anner}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{J\"an##1{}}}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bibsnaustrian} +% New Austrian is the same as Austrian. +% \begin{macrocode} +\newcommand\bibsnaustrian[1][naustrian]{% + \bibsngerman[#1]% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{J\"anner}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{J\"an##1{}}}% +} +% \end{macrocode} +% \end{macro} +% The rest has to be executed after loading |babel.sty|, because the +% |\extra...| commands have to be defined for all used languages. +% \begin{macrocode} +\AtBeginDocument{% +% \end{macrocode} +% If the language is fixed, do nothing. +% \begin{macrocode} + \ifbbbbfixlanguage + \else +% \end{macrocode} +% Append the corresponding |\#2| command to each used language, +% namely |\extras#1|. +% \begin{macrocode} + \bbbbaddto{austrian}{bibsaustrian} + \bbbbaddto{german}{bibsgerman} + \bbbbaddto{germanb}{bibsgermanb} + \bbbbaddto{naustrian}{bibsnaustrian} + \bbbbaddto{ngerman}{bibsngerman} + \fi +% \end{macrocode} +% \changes{0.32}{2003/05/06}{Move change of case from bst to sty}% +% Switch off the change of case in titles for all German dialects by +% appending \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{austrian}{btxifchangecaseoff} + \bbbbaddto{german}{btxifchangecaseoff} + \bbbbaddto{germanb}{btxifchangecaseoff} + \bbbbaddto{naustrian}{btxifchangecaseoff} + \bbbbaddto{ngerman}{btxifchangecaseoff} +} +%</german> +% \end{macrocode} +% +% \subsubsection{English} +% \begin{macrocode} +%<*english> +% \end{macrocode} +% +% The language definition for English is mostly the same as the German +% one. Therefore, it is not described in detail, again. +% +% \begin{macro}{\bibsenglish} +% \changes{1.00}{2005/02/16}{Handle package \texttt{frenchpro}}% +% |french.sty| already defines \cs{bibsenglish}. +% In this case it has to be redefined, otherwise newly defined. +% \begin{macrocode} +\makeatletter +\@ifpackageloaded{french}{}{\newcommand\bibsenglish{}} +\makeatother +% \end{macrocode} +% \changes{0.2}{2003/04/20}{Changed some abbreviations}% +% Bibliographic commands for English. +% \begin{macrocode} +\renewcommand\bibsenglish[1][english]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{and}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{and}}% + \def\btxandcomma##1{,}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{of}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{of}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{ed##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{editor}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{eds##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{editors}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{vol##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{volume}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{no##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{number}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{ed##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{edition}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{ch##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{chapter}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{p##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{page}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{pp##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{pages}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Master's thesis}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{PhD thesis}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Techn.\ rep##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Technical report}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{January}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{February}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{March}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{April}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{May}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{June}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{July}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{August}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{September}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{October}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{November}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{December}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{Jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{Feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{Mar##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{Apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{May}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{June}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{July}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{Aug##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{Sept##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{Oct##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{Nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{Dec##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{In}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{In}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Editor}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Eds##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Editors}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Vol##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Volume}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{No##1{}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Number}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Edition}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Ch##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Chapter}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{P##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Page}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{Pp##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Pages}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Tech.\ Rep##1{}}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Technical Report}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{visited on}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% +% \end{macrocode} +% \changes{0.2}{2003/04/20}{Added language names}% +% Names of all known languages in the current language. +% \begin{macrocode} + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{english}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{german}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portuguese}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portuguese}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{english}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgarian}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{english}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{french}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{catalan}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{croatian}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{czech}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{danish}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{dutch}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{english}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finnish}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{french}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{french}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{french}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{german}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{german}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{greek}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebrew}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{hungarian}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{icelandic}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irish}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italian}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latin}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{german}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{german}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norwegian}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{new-norwegian}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polish}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portuguese}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portuguese}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{russian}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{scottish}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbian}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{spanish}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{swedish}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turkish}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{english}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{english}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Copy the commands to the other languages. +% \begin{macrocode} +\newcommand\bibsamerican{\bibsenglish[american]} +\newcommand\bibsbritish{\bibsenglish[british]} +\newcommand\bibscanadian{\bibsenglish[canadian]} +\newcommand\bibsUKenglish{\bibsenglish[UKenglish]} +\newcommand\bibsUSenglish{\bibsenglish[USenglish]} +% \end{macrocode} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{american}{bibsamerican} + \bbbbaddto{british}{bibsbritish} + \bbbbaddto{canadian}{bibscanadian} + \bbbbaddto{english}{bibsenglish} + \bbbbaddto{UKenglish}{bibsUKenglish} + \bbbbaddto{USenglish}{bibsUSenglish} + \fi +% \end{macrocode} +% \changes{0.32}{2003/05/06}{Move change of case from bst to sty}% +% Switch on the change of case in titles for all English dialects by +% appending \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{american}{btxifchangecaseon} + \bbbbaddto{british}{btxifchangecaseon} + \bbbbaddto{canadian}{btxifchangecaseon} + \bbbbaddto{english}{btxifchangecaseon} + \bbbbaddto{UKenglish}{btxifchangecaseon} + \bbbbaddto{USenglish}{btxifchangecaseon} +} +%</english> +% \end{macrocode} +% +% \subsubsection{Italian} +% \begin{macrocode} +%<*italian> +% \end{macrocode} +% +% \begin{macro}{\bibsitalian} +% Bibliographic commands for Italian. +% \changes{0.33}{2003/05/22}{Changed some Italian keywords according +% to the custom-bib file italian.mbs}% +% \begin{macrocode} +\newcommand\bibsitalian[1][italian]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{e}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{e}}% + \def\btxandcomma##1{}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{della serie}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{nella serie}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{della serie}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{nella serie}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{cur##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{curatore}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{cur##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{curatori}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{vol##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{volume}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{no##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{numero}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{ed##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{edizione}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{cap##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{capitolo}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{p##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{pagina}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{pp##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{pagine}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{tesi di laurea}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{tesi di dottorato}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Rapp.\ Tecnico}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Rapporto Tecnico}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{gennaio}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{febbraio}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{marzo}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{aprile}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{maggio}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{giugno}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{luglio}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{agosto}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{settembre}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{ottobre}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{novembre}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{dicembre}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{gen##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{mar##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{mag##1{}}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{giu##1{}}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{lug##1{}}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{ago##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{set##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{ott##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{dic##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{Nel}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{Nel}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Editore}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Editori}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Vol##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Volume}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{No##1{}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Numero}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Edizione}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Cap##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Capitolo}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{P##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Pagina}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{Pp##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Pagine}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Rap.\ Tecnico}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Rapporto Tecnico}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{accesso a}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% +% \end{macrocode} +% \changes{0.2}{2003/04/20}{Added placeholders for language names}% +% \changes{0.31}{2003/05/01}{Added some language names for Italian}% +% Names of all known languages in the current language. +% \begin{macrocode} + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{inglese}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{tedesco}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portoghese}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portoghese}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{inglese}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgaro}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{inglese}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{francese}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{catalano}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{croato}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{ceco}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{danese}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{olandese}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{inglese}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finlandese}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{francese}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{francese}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{francese}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{tedesco}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{tedesco}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{greco}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{ebreo}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{ungherese}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{islandese}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irlandese}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italiano}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latino}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{tedesco}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{tedesco}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norvegese}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{nuovo norvegese}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polacco}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portoghese}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portoghese}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{russo}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{scozzese}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbo}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{spagnolo}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{svedese}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turco}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{inglese}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{inglese}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{italian}{bibsitalian} + \fi +% \end{macrocode} +% \changes{0.32}{2003/05/06}{Move change of case from bst to sty}% +% Switch off the change of case in titles for Italian by +% appending \cs{btxifchangecaseoff} to \cs{extrasitalian}. +% \begin{macrocode} + \bbbbaddto{italian}{btxifchangecaseoff} +} +%</italian> +% \end{macrocode} +% +% \subsubsection{Norwegian} +% \begin{macrocode} +%<*norsk> +% \end{macrocode} +% +% The language definition for Norwegian was provided by Hans Fredrik +% Nordhaug. +% +% \begin{macro}{\bibsnorsk} +% Bibliographic commands for Norsk. +% \begin{macrocode} +\newcommand\bibsnorsk[1][norsk]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{og}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{og}}% + \def\btxandcomma##1{}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{i}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{i}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{av}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{i}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{av}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{i}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{redakt\o r}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{redakt\o rer}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{bd##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{bind}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{nr##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{nummer}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{utg##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{utgave}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{kap##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{kapittel}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{s##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{side}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{s##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{sider}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Masteroppgave}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{PhD-avhandling}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{tekn.\ rap##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{teknisk rapport}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{Januar}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{Februar}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{Mars}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{April}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{Mai}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{Juni}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{Juli}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{August}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{September}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{Oktober}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{November}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{Desember}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{Jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{Feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{Mar##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{Apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{Mai}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{Jun##1{}}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{Jul##1{}}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{Aug##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{Sep##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{Okt##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{Nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{Des##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{I}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{I}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Redakt\o r}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Redakt\o rer}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Bd##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Bind}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{Nr##1{}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Nummer}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Utg##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Utgave}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Kap##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Kapittel}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{S##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Side}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{S##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Sider}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Tekn.\ rap##1{}}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Teknisk rapport}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{sjekket:}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% +% \end{macrocode} +% Names of all known languages in the current language. +% \begin{macrocode} + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugisisk}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugisisk}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgarsk}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{fransk}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{katalansk}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{kroatisk}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{tsjekkisk}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{dansk}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{nederlandsk}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finsk}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{fransk}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{fransk}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{fransk}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{gr\ae sk}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebraisk}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{ungarsk}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{islandsk}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irsk}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italiensk}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latinsk}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norsk}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{nynorsk}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polsk}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugisisk}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugisisk}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{russisk}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{skotsk}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbisk}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{spansk}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{svensk}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{tyrkisk}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{engelsk}}% + \fi +} +\newcommand\bibsnorwegian{\bibsnorsk} +% \end{macrocode} +% \end{macro} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{norsk}{bibsnorsk} + \fi +% \end{macrocode} +% Switch off the change of case in titles for Norsk by +% appending \cs{btxifchangecaseoff} to \cs{extrasnorsk}. +% \begin{macrocode} + \bbbbaddto{norsk}{btxifchangecaseoff} +} +%</norsk> +% \end{macrocode} +% +% \subsubsection{French} +% \changes{0.32}{2003/05/06}{Added French language}% +% \begin{macrocode} +%<*french> +% \end{macrocode} +% +% \begin{macro}{\bibsfrench} +% \changes{1.00}{2005/02/16}{Handle package \texttt{frenchpro}}% +% |french.sty| already defines \cs{bibsfrench}. +% In this case it has to be redefined, otherwise newly defined. +% \begin{macrocode} +\makeatletter +\@ifpackageloaded{french}{}{\newcommand\bibsfrench{}} +\makeatother +% \end{macrocode} +% Bibliographic commands for French. +% \begin{macrocode} +\renewcommand\bibsfrench[1][french]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{et}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{et}}% + \def\btxandcomma##1{}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{dans}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{dans}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{de}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{dans}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{de}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{dans}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{r\'ed##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{r\'edacteur}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{r\'eds##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{r\'edacteurs}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{t##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{tome}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{% + n\textsuperscript{o}\kern.2em\relax{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{num\'ero}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{\'ed##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{\'edition}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{chap##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{chapitre}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{p##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{page}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{p##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{pages}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{M\'emoire de ma\^itrise}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{Th\`ese de doctorat}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{rap.\ tech##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{rapport technique}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{janvier}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{f\'evrier}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{mars}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{avril}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{mai}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{juin}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{juillet}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{ao\^ut}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{septembre}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{octobre}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{novembre}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{d\'ecembre}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{f\'ev##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{mar##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{avr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{mai}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{juin}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{juil##1{}}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{ao\^ut}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{sept##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{oct##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{d\'ec##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{Dans}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{Dans}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{R\'ed##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{R\'edacteur}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{R\'eds##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{R\'edacteurs}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{T##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Tome}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{% + N\textsuperscript{o}\kern.2em\relax}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Num\'ero}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{\'Ed##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{\'Edition}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Chap##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Chapitre}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{P##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Page}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{P##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Pages}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Rap. tech##1{}}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Rapport technique}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{visit\'e le}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% +% \end{macrocode} +% Names of all known languages in the current language. +% \begin{macrocode} + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{anglais}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{allemand}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugais}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugais}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{anglais}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgare}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{anglais}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{fran\c{c}ais}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{catalan}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{croate}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{tch\`eque}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{danois}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{n\'eerlandais}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{anglais}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finnois}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{fran\c{c}ais}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{fran\c{c}ais}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{fran\c{c}ais}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{allemand}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{allemand}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{grec}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{h\'ebreu}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{hongrois}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{islandais}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irlandais}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italien}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latin}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{allemand}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{allemand}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norv\'egien}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{nouveau + norv\'egien}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polonais}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugais}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugais}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{russe}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{\'ecossais}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbe}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{espagnol}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{su\'edois}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turc}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{anglais}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{anglais}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Copy the commands to the other languages. +% \begin{macrocode} +\newcommand\bibsfrancais{\bibsfrench[francais]} +\newcommand\bibsfrenchb{\bibsfrench[frenchb]} +\newcommand\bibscanadien{\bibsfrench[canadien]} +% \end{macrocode} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{francais}{bibsfrancais} + \bbbbaddto{french}{bibsfrench} + \bbbbaddto{frenchb}{bibsfrenchb} + \bbbbaddto{canadien}{bibscanadien} + \fi +% \end{macrocode} +% Switch on the change of case in titles for all French dialects by +% appending \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{francais}{btxifchangecaseoff} + \bbbbaddto{french}{btxifchangecaseoff} + \bbbbaddto{frenchb}{btxifchangecaseoff} + \bbbbaddto{canadien}{btxifchangecaseoff} +} +% \end{macrocode} +% \changes{0.43}{2004/01/06}{Warn if using \texttt{french} language}% +% \changes{0.44}{2004/01/06}{Only warn if babel version is too old}% +% \changes{1.00}{2005/02/16}{Remove warning for old babel package with +% \texttt{french} language}% +% \begin{macrocode} +%</french> +% \end{macrocode} +% +% \subsubsection{Spanish} +% \changes{0.33}{2003/05/22}{Added Spanish language}% +% \begin{macrocode} +%<*spanish> +% \end{macrocode} +% +% The language definition for Spanish was provided by V{\'\i}ctor +% Lua{\~n}a and slightly changed by me according to |spanish.mbs| +% (custom-bib package). +% +% \begin{macro}{\bibsspanish} +% Bibliographic commands for Spanish. +% \begin{macrocode} +\newcommand\bibsspanish[1][spanish]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{y~cols##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{y~colaboradores}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{y}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{y}}% + \def\btxandcomma##1{}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{en}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{en}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{de}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{en}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{de}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{en}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{ed##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{editor}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{eds##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{editores}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{vol##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{volumen}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{% + n\textsuperscript{\underline{o}}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{n\'umero}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{ed##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{edici{\'o}n}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{cap##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{cap{\'\i}tulo}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{p\'ag##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{p\'agina}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{p\'ags##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{p\'aginas}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Tesis de Licenciatura}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{Tesis de Doctorado}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Informe t\'ecnico##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Informe t\'ecnico}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{Enero}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{Febrero}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{Marzo}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{Abril}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{Mayo}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{Junio}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{Julio}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{Agosto}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{Septiembre}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{Octubre}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{Noviembre}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{Deciembre}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{Ene##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{Feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{Mar##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{Abr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{May}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{Jun}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{Jul}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{Ago##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{Sep##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{Oct##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{Nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{Dic##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{En}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{En}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Editor}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Editores}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Vol##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Volumen}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{% + N\textsuperscript{\underline{o}}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{N\'umero}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Edici\'on}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Cap##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Cap\'\itulo}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{P\'ag##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{P\'agina}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{P\'ags##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{P\'aginas}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Informe t\'ecnico}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Informe t\'ecnico}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{visitado el}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{ingl\'es}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{alem\'an}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugu\'es}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugu\'es}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{ingl\'es}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{b\'ulgaro}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{ingl\'es}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{franc\'es}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{catalan}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{croata}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{checo}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{dan\'es}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{holand\'es}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{ingl\'es}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finland\'es}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{franc\'es}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{franc\'es}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{franc\'es}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{alem\'an}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{alem\'an}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{griego}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebreo}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{h\'ungaro}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{island\'es}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irland\'es}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italiano}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{lat\'\i n}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{alem\'an}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{alem\'an}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{noruego}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{noruego}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polaco}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugu\'es}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugu\'es}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{ruso}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{escoc\'es}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbio}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{espa\~nol}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{sueco}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turco}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{ingl\'es}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{ingl\'es}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Copy the commands to the other languages. +% \begin{macrocode} +\newcommand\bibsmexican[1][mexican]{% + \bibsspanish[mexican]% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Tesis de Maestr{\'\i}a}}% +} +% \end{macrocode} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{spanish}{bibsspanish} + \bbbbaddto{mexican}{bibsmexican} + \fi + \bbbbaddto{spanish}{btxifchangecaseoff} + \bbbbaddto{mexican}{btxifchangecaseoff} +} +%</spanish> +% \end{macrocode} +% +% \subsubsection{Danish} +% \changes{0.33}{2003/05/22}{Added Danish language}% +% \begin{macrocode} +%<*danish> +% \end{macrocode} +% +% \begin{macro}{\bibsdanish} +% Bibliographic commands for Danish. +% \begin{macrocode} +\newcommand\bibsdanish[1][danish]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{og}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{og}}% + \def\btxandcomma##1{}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{i}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{i}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{af}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{i}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{af}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{i}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{redakt\o r}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{redakt\o rer}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{bd##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{bind}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{nr##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{nummer}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{udg##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{udgave}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{kap##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{kapitel}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{s##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{side}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{pp##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{sider}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Speciale}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{ph.d.-afhandling}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Tekn.\ rap##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Teknisk rapport}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{Januar}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{Februar}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{Marts}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{April}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{Maj}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{Juni}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{Juli}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{August}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{September}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{Oktober}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{November}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{December}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{Jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{Feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{Mar##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{Apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{Maj}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{Jun##1{}}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{Jul##1{}}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{Aug##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{Sep##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{Okt##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{Nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{Dec##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{I}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{I}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Redakt\o r}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Redakt\o rer}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Bd##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Bind}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{Nr##1{}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Nummer}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Udg##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Udgave}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Kap##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Kapitel}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{S##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Side}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{Pp##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Sider}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Tekn.\ rap##1{}}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Teknisk rapport}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{bes\o gt den}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugisisk}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugisisk}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgarsk}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{fransk}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{katalansk}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{kroatisk}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{tjekkisk}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{dansk}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{nederlandsk}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finsk}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{fransk}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{fransk}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{fransk}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{gr\ae sk}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebraisk}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{ungarsk}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{islandsk}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irsk}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italiensk}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latinsk}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{tysk}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norsk}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{nynorsk}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polsk}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugisisk}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugisisk}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{russisk}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{skotsk}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbisk}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{spansk}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{svensk}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{tyrkisk}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{engelsk}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{engelsk}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{danish}{bibsdanish} + \fi + \bbbbaddto{danish}{btxifchangecaseoff} +} +%</danish> +% \end{macrocode} +% +% \subsubsection{Finnish} +% \changes{0.45}{2004/04/21}{Added Finnish language}% +% \begin{macrocode} +%<*finnish> +% \end{macrocode} +% +% \begin{macro}{\bibsfinnish} +% Bibliographic commands for Finnish. +% \begin{macrocode} +\newcommand\bibsfinnish[1][finnish]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{ja}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{ja}}% + \def\btxandcomma##1{}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{teoksessa}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{teoksessa}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{sarjassa}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{sarjassa}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{sarjassa}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{sarjassa}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{toim##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{toimittaja}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{toim##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{toimittajat}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{nide}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{nide}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{nro##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{numero}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{p##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{painos}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{l##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{luku}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{s##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{sivu}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{ss##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{sivut}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Pro Gradu -ty\"o}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{v\"ait\"oskirja}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{tekn.\ rap##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{tekninen raportti}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{tammikuu}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{helmikuu}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{maaliskuu}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{huhtikuu}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{toukokuu}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{kes\"akuu}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{hein\"akuu}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{elokuu}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{syyskuu}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{lokakuu}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{marraskuu}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{joulukuu}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{tam##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{hel##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{maa##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{huh##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{tou##1{}}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{kes##1{}}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{hei##1{}}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{elo##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{syy##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{lok##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{mar##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{jou##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{Teoksessa}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{Teoksessa}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Toim##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Toimittaja}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Toim##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Toimittajat}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Nide##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Nide}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{Nro##1{}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Numero}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{P##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Painos}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{L##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Luku}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{S##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Sivu}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{Ss##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Sivut}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Tekn.\ rap##1{}}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Tekninen raportti}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{vierailtu}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{englanti}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{saksa}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugali}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugali}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{englanti}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgaria}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{englanti}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{ranska}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{katalaani}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{kroaati}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{tsekki}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{tanska}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{hollanti}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{englanti}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{suomi}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{ranska}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{ranska}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{ranska}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{saksa}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{saksa}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{kreikka}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{heprea}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{unkari}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{islanti}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{iiri}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italia}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latina}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{saksa}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{saksa}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norja}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{uusnorja}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{puola}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugali}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugali}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{ven\"j\"a}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{skotti}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbi}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{espanja}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{ruotsi}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turkki}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{englanti}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{englanti}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{finnish}{bibsfinnish} + \fi +% \end{macrocode} +% Switch off the change of case in titles by appending +% \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{finnish}{btxifchangecaseoff} +} +%</finnish> +% \end{macrocode} +% +% \subsubsection{Esperanto} +% \changes{0.45}{2004/04/21}{Added Esperanto language}% +% \begin{macrocode} +%<*esperanto> +% \end{macrocode} +% +% \begin{macro}{\bibsesperanto} +% Bibliographic commands for Esperanto. +% \begin{macrocode} +\newcommand\bibsesperanto[1][esperanto]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{k~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{kaj~aliaj}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{k}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{kaj}}% + \def\btxandcomma##1{}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{en}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{en}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{de}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{en}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{de}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{en}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{redaktoro}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{red-oj##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{redaktoroj}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{vol##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{volumo}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{no##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{nombro}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{redakcio}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{\^c##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{\^capitro}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{p##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{pa\^go}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{pp##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{pa\^goj}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{magistra disertacio}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{doktora disertacio}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Tekn.\ rap##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Teknika raporto}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{Januaro}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{Februaro}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{Marco}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{Aprilo}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{Majo}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{Junio}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{Julio}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{A\u{u}gusto}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{Septembro}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{Oktobro}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{Novembro}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{Decembro}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{Jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{Feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{Mar##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{Apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{Maj##1{}}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{Jun##1{}}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{Jul##1{}}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{Aug##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{Sept##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{Okt##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{Nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{Dec##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{En}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{En}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Redaktoro}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Redaktoroj}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Vol##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Volumo}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{No##1{}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Nombro}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Redakcio}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{\^C##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{\^Capitro}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{P##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Pa\^go}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{Pp##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Pa\^goj}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Tekn.\ Rap##1{}}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Teknika Raporto}}% +% \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{??}}% + \def\btxurldatecomment##1{\PackageError{babelbib}{Comment for + urldate in Esperanto undefined. Please send the translation for + 'visited on' to harald.harders@tu-bs.de}{}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{angla}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{germana}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugala}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugala}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{angla}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgara}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{angla}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{franca}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{katalana}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{kroata}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{\^ce\^ha}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{dana}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{nederlanda}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{angla}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finna}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{franca}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{franca}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{franca}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{germana}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{germana}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{greka}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebrea}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{hungara}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{islanda}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irlanda}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{itala}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latino}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{germana}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{germana}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norvega}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{nov-norvega}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{pola}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugala}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugala}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{rusa}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{skota}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serba}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{hispana}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{sveda}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turka}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{angla}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{angla}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{esperanto}{bibsesperanto} + \fi +% \end{macrocode} +% Switch off the change of case in titles by appending +% \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{esperanto}{btxifchangecaseoff} +} +%</esperanto> +% \end{macrocode} +% +% \subsubsection{Portuguese} +% \changes{0.33}{2003/05/22}{Added Portuguese language}% +% \changes{1.02}{2005/04/15}{Language Portuguese completed}% +% \changes{1.10}{2005/04/24}{Bug in Portuguese removed}% +% \begin{macrocode} +%<*portuguese> +% \end{macrocode} +% +% \begin{macro}{\bibsportuguese} +% Bibliographic commands for Portuguese. +% \begin{macrocode} +\newcommand\bibsportuguese[1][portuguese]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{e}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{e}}% + \def\btxandcomma##1{,}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{de}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{de}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{ed##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{editor}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{eds##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{editores}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{vol##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{volume}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{% + n\textsuperscript{\underline{o}}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{n\'umero}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{ed##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{edi\c c\~ao}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{cap##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{cap\'\i tulo}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{p\'ag##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{p\'agina}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{p\'ags##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{p\'aginas}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Tese de Mestrado}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{Tese de Doutoramento}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Rel.\ T\'ec##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Relat\'orio T\'ecnico}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{janeiro}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{fevereiro}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{mar\c co}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{abril}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{maio}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{junho}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{julho}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{agosto}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{setembro}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{outubro}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{novembro}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{dezembro}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{fev##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{mar##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{maio}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{jun##1{}}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{jul##1{}}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{ago##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{set##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{out##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{dez##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{In}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{In}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Editor}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Eds##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Editores}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Vol##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Volume}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{% + N\textsuperscript{\underline{o}}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{N\'umero}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Edi\c c\~ao}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Cap##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Cap\'{\i}tulo}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{P\'ag##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{P\'agina}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{P\'ags##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{P\'aginas}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Rel.\ T\'ec##1{}}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Relat\'orio T\'ecnico}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{acedido em}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{ingl\^es}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{alem\~ao}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugu\^es}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugu\^es}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{ingl\^es}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{b\'ulgaro}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{ingl\^es}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{franc\^es}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{catal\~ao}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{croata}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{checo}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{dinamarqu\^es}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{holand\^es}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{ingl\^es}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finland\^es}}% + \def\btxlanguagenamefranceis{\protect\foreignlanguage{#1}{franc\^es}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{franc\^es}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{franc\^es}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{\alem\~ao}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{\alem\~ao}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{grego}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebreu}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{h\'ungaro}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{island\^es}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irland\^es}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italiano}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latim}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{\alem\~ao}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{\alem\~ao}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{noruegu\^es}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{neo-noruegu\^es}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polaco}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugu\^es}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugu\^es}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{russio}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{escoc\^es}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{s\'ervio}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{espanhol}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{sueco}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turco}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{ingl\^es}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{ingl\^es}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Copy the commands to the other languages. +% \begin{macrocode} +\newcommand\bibsbrazil{\bibsportuguese[brazil]} +\newcommand\bibsbrazilian{\bibsportuguese[brazilian]} +\newcommand\bibsportuges{\bibsportuguese[portuges]} +% \end{macrocode} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{brazil}{bibsbrazil} + \bbbbaddto{brazilian}{bibsbrazilian} + \bbbbaddto{portuges}{bibsportuges} + \bbbbaddto{portuguese}{bibsportuguese} + \fi +% \end{macrocode} +% Switch off the change of case in titles for all Portuguese dialects by +% appending \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{brazil}{btxifchangecaseoff} + \bbbbaddto{brazilian}{btxifchangecaseoff} + \bbbbaddto{portuges}{btxifchangecaseoff} + \bbbbaddto{portuguese}{btxifchangecaseoff} +} +%</portuguese> +% \end{macrocode} +% +% \subsubsection{Dutch} +% \changes{0.33}{2003/05/22}{Added Dutch language}% +% \begin{macrocode} +%<*dutch> +% \end{macrocode} +% +% \begin{macro}{\bibsdutch} +% Bibliographic commands for Dutch. +% \begin{macrocode} +\newcommand\bibsdutch[1][dutch]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{en anderen}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{en}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{en}}% + \def\btxandcomma##1{,}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{van}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{van}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{redactie}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{redactie}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{vol##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{volume}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{nr##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{nummer}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{druk}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{uitgave}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{hfdst##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{hoofdstuk}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{pag##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{pagina}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{pag##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{pagina's}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{scriptie}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{proefschrift}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Tech.\ Rapp##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Technisch Rapport}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{Januari}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{Februari}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{Maart}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{April}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{Mei}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{Juni}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{Juli}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{Augustus}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{September}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{Oktober}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{November}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{December}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{Jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{Feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{Mrt}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{Apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{Mei}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{Jun##1{}}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{Jul##1{}}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{Aug##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{Sep##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{Okt##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{Nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{Dec##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{In}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{In}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Redactie}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Redactie}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Vol##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Volume}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{Nr##1{}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Nummer}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Druk}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Uitgave}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Hfdst##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Hoofdstuk}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{Pag##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Pagina}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{Pags##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Pagina's}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Tech.\ Rapp##1{}}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Technisch Rapport}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{bezocht op}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{engels}}% + % \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{german}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugees}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugees}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{engels}}% + % \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgarian}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{engels}}% + % \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{french}}% + % \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{catalan}}% + % \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{croatian}}% + % \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{czech}}% + % \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{d\"anisch}}% + % \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{dutch}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{engels}}% + % \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + % \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finnish}}% + % \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{french}}% + % \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{french}}% + % \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{french}}% + % \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{german}}% + % \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{german}}% + % \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{greek}}% + % \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebrew}}% + % \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{hungarian}}% + % \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{icelandic}}% + % \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irish}}% + % \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italian}}% + % \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latin}}% + % \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{german}}% + % \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{german}}% + % \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norwegian}}% + % \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{new-norwegian}}% + % \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polish}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugees}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugees}}% + % \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{russian}}% + % \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{scottish}}% + % \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbian}}% + % \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{spanish}}% + % \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{swedish}}% + % \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turkish}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{engels}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{engels}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{dutch}{bibsdutch} + \fi +% \end{macrocode} +% Switch on the change of case in titles for all Dutch dialects by +% appending \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{dutch}{btxifchangecaseoff} +} +%</dutch> +% \end{macrocode} +% +% \subsubsection{Swedish} +% \changes{0.33}{2003/05/22}{Added Swedish language}% +% \changes{0.41}{2003/11/03}{Corrected swedish (by Hans Fredrik Nordhaug)}% +% \begin{macrocode} +%<*swedish> +% \end{macrocode} +% +% The language definition for Swedish was provided by Hans Fredrik +% Nordhaug. +% +% \begin{macro}{\bibsswedish} +% Bibliographic commands for Swedish. +% \begin{macrocode} +\newcommand\bibsswedish[1][swedish]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{och}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{och}}% + \def\btxandcomma##1{,}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{i}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{i}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{av}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{i}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{av}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{i}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{redakt\"or}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{redakt\"orer}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{vol##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{volym}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{nr##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{nummer}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{utg}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{utg\aa va}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{kap##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{kapitel}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{s##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{sida}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{s##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{sidor}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{scriptie}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{proefschrift}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Tech.\ Rapp##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Technisch Rapport}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{Januari}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{Februari}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{Mars}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{April}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{Maj}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{Juni}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{Juli}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{Augusti}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{September}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{Oktober}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{November}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{December}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{Jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{Feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{Mar}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{Apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{Maj}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{Jun##1{}}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{Jul##1{}}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{Aug##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{Sep##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{Okt##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{Nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{Dec##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{I}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{I}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Redactie}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Redactie}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Vol##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Volume}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{Nr##1{}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Nummer}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Druk}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Utgave}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Hfdst##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Hoofdstuk}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{Pag##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Pagina}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{Pags##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Pagina's}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Tech.\ Rapp##1{}}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Technisch Rapport}}% +% \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{??}}% + \def\btxurldatecomment##1{\PackageError{babelbib}{Comment for + urldate in Swedish undefined. Please send the translation for + 'visited on' to harald.harders@tu-bs.de}{}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{engelska}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{tyska}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugisiska}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugisiska}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{engelska}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgariska}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{engelska}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{franska}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{katalanska}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{kroatiska}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{tjeckiska}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{danska}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{nederl\"andska}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{engelska}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finska}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{franska}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{franska}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{franska}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{tyska}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{tyska}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{grekiska}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebreiska}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{ungerska}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{isl\"andska}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{iriska}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{italienska}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{latin}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{tyska}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{tyska}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{norska}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{nynorska}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polska}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugisiska}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugisiska}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{ryska}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{skotsks}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbiska}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{spanska}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{svenska}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turkiska}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{engelska}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{engelska}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{swedish}{bibsswedish} + \fi +% \end{macrocode} +% Switch on the change of case in titles for all Swedish dialects by +% appending \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{swedish}{btxifchangecaseoff} +} +%</swedish> +% \end{macrocode} +% +% \subsubsection{Afrikaans} +% \changes{0.34}{2003/07/28}{Added Afrikaans language}% +% \begin{macrocode} +%<*afrikaans> +% \end{macrocode} +% +% The language definition for Afrikaans was provided by Danie Els. +% +% \begin{macro}{\bibsafrikaans} +% Bibliographic commands for Afrikaans. +% \begin{macrocode} +\newcommand\bibsafrikaans[1][afrikaans]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{et~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{et~alii}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{en}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{en}}% + \def\btxandcomma##1{\protect\foreignlanguage{#1}{}}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofseriesshort##1{\protect\foreignlanguage{#1}{van}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{in}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{van}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{in}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{red##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{redakteur}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{reds##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{redakteurs}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{vol##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{volume}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{no##1{}}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{nommer}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{uitg##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{uitgawe}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{hfst##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{hoofstuk}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{p##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{bladsy}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{pp##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{bladsye}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Meesters tesis}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{PhD verhandeling}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Tegn.\ versl##1{}}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Tegniese verslag}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{Januarie}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{Februarie}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{Maart}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{April}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{Mei}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{Junie}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{Julie}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{Augustus}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{September}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{Oktober}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{November}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{Desember}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{Jan##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{Feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{Mrt##1{}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{Apr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{Mei##1}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{Jun##1}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{Jul##1}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{Aug##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{Sep##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{Okt##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{Nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{Des##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{In}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{In}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Red##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Redakteur}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Reds##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Redakteurs}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Vol##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Volume}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{No##1{}}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{Nommer}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Uitg##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Uitgawe}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Hfst##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Hoofstuk}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{P##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{Bladsy}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{Pp##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{Bladsye}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Tegn.\ Verslag}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Tegniese Verslag}}% +% \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{??}}% + \def\btxurldatecomment##1{\PackageError{babelbib}{Comment for + urldate in Afrikaans undefined. Please send the translation for + 'visited on' to harald.harders@tu-bs.de}{}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% + \ifbbbblanguagenames + \def\btxlanguagenameafrikaans{\protect\foreignlanguage{#1}{afrikaans}}% + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{engels}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{duits}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugees}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugees}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{engels}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{bulgaars}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{engels}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{frans}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{katalaans}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{kroaties}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{tsjeggies}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{deens}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{nederlands}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{engels}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{fins}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{frans}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{frans}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{frans}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{duits}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{duits}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{grieks}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebreeus}}% + \def\btxlanguagenamenhungarian{\protect\foreignlanguage{#1}{hongaars}}% + \def\btxlanguagenamenicelandic{\protect\foreignlanguage{#1}{yslands}}% + \def\btxlanguagenamenirish{\protect\foreignlanguage{#1}{iers}}% + \def\btxlanguagenamenitalian{\protect\foreignlanguage{#1}{italiaans}}% + \def\btxlanguagenamenlatin{\protect\foreignlanguage{#1}{latyn}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{duits}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{duits}}% + \def\btxlanguagenamennorsk{\protect\foreignlanguage{#1}{noors}}% + \def\btxlanguagenamennynorsk{\protect\foreignlanguage{#1}{neo-noors}}% + \def\btxlanguagenamenpolish{\protect\foreignlanguage{#1}{pools}}% + \def\btxlanguagenamenportuges{\protect\foreignlanguage{#1}{portugees}}% + \def\btxlanguagenamenportuguese{\protect\foreignlanguage{#1}{portugees}}% + \def\btxlanguagenamenrussian{\protect\foreignlanguage{#1}{russies}}% + \def\btxlanguagenamenscottish{\protect\foreignlanguage{#1}{skots}}% + \def\btxlanguagenamenserbian{\protect\foreignlanguage{#1}{serwies}}% + \def\btxlanguagenamenspanish{\protect\foreignlanguage{#1}{spaans}}% + \def\btxlanguagenamenswedish{\protect\foreignlanguage{#1}{sweeds}}% + \def\btxlanguagenamenturkish{\protect\foreignlanguage{#1}{turks}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{engels}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{engels}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{afrikaans}{bibsafrikaans} + \fi +% \end{macrocode} +% Switch on the change of case in titles for all Afrikaans dialects by +% appending \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{afrikaans}{btxifchangecaseoff} +} +%</afrikaans> +% \end{macrocode} +% +% \subsubsection{Catalan} +% \changes{1.00}{2005/02/16}{Added Catalan language}% +% \begin{macrocode} +%<*catalan> +% \end{macrocode} +% +% The language definition for Catalan was provided by +% Robert Fuster, rfuster@imm.upv.es. +% +% \begin{macro}{\bibsafrikaans} +% \begin{macrocode} +\newcommand\bibscatalan[1][catalan]{% + \def\biblanguagename{#1}% + \def\btxetalshort##1{\protect\foreignlanguage{#1}{i~al##1{}}}% + \def\btxetallong##1{\protect\foreignlanguage{#1}{i~altres}}% + \def\btxandshort##1{\protect\foreignlanguage{#1}{i}}% + \def\btxandlong##1{\protect\foreignlanguage{#1}{i}}% + \def\btxandcomma##1{}% + \def\btxinlong##1{\protect\foreignlanguage{#1}{dins}}% + \def\btxinshort##1{\protect\foreignlanguage{#1}{dins}}% + \def\btxinseriesshort##1{\protect\foreignlanguage{#1}{dins}}% + \def\btxofserieslong##1{\protect\foreignlanguage{#1}{de}}% + \def\btxinserieslong##1{\protect\foreignlanguage{#1}{dins}}% + \def\btxeditorshort##1{\protect\foreignlanguage{#1}{ed##1{}}}% + \def\btxeditorlong##1{\protect\foreignlanguage{#1}{editor}}% + \def\btxeditorsshort##1{\protect\foreignlanguage{#1}{eds##1{}}}% + \def\btxeditorslong##1{\protect\foreignlanguage{#1}{editors}}% + \def\btxvolumeshort##1{\protect\foreignlanguage{#1}{vol##1{}}}% + \def\btxvolumelong##1{\protect\foreignlanguage{#1}{volum}}% + \def\btxnumbershort##1{\protect\foreignlanguage{#1}{n}}% + \def\btxnumberlong##1{\protect\foreignlanguage{#1}{n\'umero}}% + \def\btxeditionshort##1{\protect\foreignlanguage{#1}{ed##1{}}}% + \def\btxeditionlong##1{\protect\foreignlanguage{#1}{edici{\'o}}}% + \def\btxchaptershort##1{\protect\foreignlanguage{#1}{cap##1{}}}% + \def\btxchapterlong##1{\protect\foreignlanguage{#1}{cap{\'\i}tol}}% + \def\btxpageshort##1{\protect\foreignlanguage{#1}{p##1{}}}% + \def\btxpagelong##1{\protect\foreignlanguage{#1}{p\`agina}}% + \def\btxpagesshort##1{\protect\foreignlanguage{#1}{ps##1{}}}% + \def\btxpageslong##1{\protect\foreignlanguage{#1}{p\`agines}}% + \def\btxmastthesis##1{\protect\foreignlanguage{#1}{Tesina de Llicenciatura}}% + \def\btxphdthesis##1{\protect\foreignlanguage{#1}{Tesi de Doctorat}}% + \def\btxtechrepshort##1{\protect\foreignlanguage{#1}{Rep. t\`ecnic}}% + \def\btxtechreplong##1{\protect\foreignlanguage{#1}{Report t\`ecnic}}% + \def\btxmonjanlong##1{\protect\foreignlanguage{#1}{gener}}% + \def\btxmonfeblong##1{\protect\foreignlanguage{#1}{febrer}}% + \def\btxmonmarlong##1{\protect\foreignlanguage{#1}{mar\c{c}}}% + \def\btxmonaprlong##1{\protect\foreignlanguage{#1}{abril}}% + \def\btxmonmaylong##1{\protect\foreignlanguage{#1}{maig}}% + \def\btxmonjunlong##1{\protect\foreignlanguage{#1}{juny}}% + \def\btxmonjullong##1{\protect\foreignlanguage{#1}{juliol}}% + \def\btxmonauglong##1{\protect\foreignlanguage{#1}{agost}}% + \def\btxmonseplong##1{\protect\foreignlanguage{#1}{setembre}}% + \def\btxmonoctlong##1{\protect\foreignlanguage{#1}{octubre}}% + \def\btxmonnovlong##1{\protect\foreignlanguage{#1}{novembre}}% + \def\btxmondeclong##1{\protect\foreignlanguage{#1}{desembre}}% + \def\btxmonjanshort##1{\protect\foreignlanguage{#1}{gen##1{}}}% + \def\btxmonfebshort##1{\protect\foreignlanguage{#1}{feb##1{}}}% + \def\btxmonmarshort##1{\protect\foreignlanguage{#1}{mar\c{c}}}% + \def\btxmonaprshort##1{\protect\foreignlanguage{#1}{abr##1{}}}% + \def\btxmonmayshort##1{\protect\foreignlanguage{#1}{maig}}% + \def\btxmonjunshort##1{\protect\foreignlanguage{#1}{juny}}% + \def\btxmonjulshort##1{\protect\foreignlanguage{#1}{jul}}% + \def\btxmonaugshort##1{\protect\foreignlanguage{#1}{ago##1{}}}% + \def\btxmonsepshort##1{\protect\foreignlanguage{#1}{sep##1{}}}% + \def\btxmonoctshort##1{\protect\foreignlanguage{#1}{oct##1{}}}% + \def\btxmonnovshort##1{\protect\foreignlanguage{#1}{nov##1{}}}% + \def\btxmondecshort##1{\protect\foreignlanguage{#1}{dec##1{}}}% + \def\Btxinlong##1{\protect\foreignlanguage{#1}{Dins}}% + \def\Btxinshort##1{\protect\foreignlanguage{#1}{Dins}}% + \def\Btxeditorshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditorlong##1{\protect\foreignlanguage{#1}{Editor}}% + \def\Btxeditorsshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditorslong##1{\protect\foreignlanguage{#1}{Editors}}% + \def\Btxvolumeshort##1{\protect\foreignlanguage{#1}{Vol##1{}}}% + \def\Btxvolumelong##1{\protect\foreignlanguage{#1}{Volum}}% + \def\Btxnumbershort##1{\protect\foreignlanguage{#1}{N\'um}}% + \def\Btxnumberlong##1{\protect\foreignlanguage{#1}{N\'umero}}% + \def\Btxeditionshort##1{\protect\foreignlanguage{#1}{Ed##1{}}}% + \def\Btxeditionlong##1{\protect\foreignlanguage{#1}{Edici\'o}}% + \def\Btxchaptershort##1{\protect\foreignlanguage{#1}{Cap##1{}}}% + \def\Btxchapterlong##1{\protect\foreignlanguage{#1}{Cap\'\itol}}% + \def\Btxpageshort##1{\protect\foreignlanguage{#1}{P##1{}}}% + \def\Btxpagelong##1{\protect\foreignlanguage{#1}{P\`agina}}% + \def\Btxpagesshort##1{\protect\foreignlanguage{#1}{P##1{}}}% + \def\Btxpageslong##1{\protect\foreignlanguage{#1}{P\`agines}}% + \def\Btxtechrepshort##1{\protect\foreignlanguage{#1}{Rep. t\`ecnic}}% + \def\Btxtechreplong##1{\protect\foreignlanguage{#1}{Report t\`ecnic}}% + \def\btxurldatecomment##1{\protect\foreignlanguage{#1}{visitada el}}% + \def\btxurldatecomment##1{\PackageError{babelbib}{Comment for + urldate in Catalan undefined. Please send the translation for + 'visited on' to harald.harders@tu-bs.de}{}}% + \def\btxkeywordlanguage##1{\protect\foreignlanguage{#1}{##1}}% + \ifbbbblanguagenames + \def\btxlanguagenameamerican{\protect\foreignlanguage{#1}{angl\`es}}% + \def\btxlanguagenameaustrian{\protect\foreignlanguage{#1}{alem\`any}}% + \def\btxlanguagenamebrazil{\protect\foreignlanguage{#1}{portugu\`es}}% + \def\btxlanguagenamebrazilian{\protect\foreignlanguage{#1}{portugu\`es}}% + \def\btxlanguagenamebritish{\protect\foreignlanguage{#1}{angl\'es}}% + \def\btxlanguagenamebulgarian{\protect\foreignlanguage{#1}{b\'ulgar}}% + \def\btxlanguagenamecanadian{\protect\foreignlanguage{#1}{angl\`es}}% + \def\btxlanguagenamecanadien{\protect\foreignlanguage{#1}{franc\`es}}% + \def\btxlanguagenamecatalan{\protect\foreignlanguage{#1}{catal\`a}}% + \def\btxlanguagenamecroatian{\protect\foreignlanguage{#1}{croat}}% + \def\btxlanguagenameczech{\protect\foreignlanguage{#1}{txec}}% + \def\btxlanguagenamedanish{\protect\foreignlanguage{#1}{dan\`es}}% + \def\btxlanguagenamedutch{\protect\foreignlanguage{#1}{neerland\`es}}% + \def\btxlanguagenameenglish{\protect\foreignlanguage{#1}{angl\`es}}% + \def\btxlanguagenameesperanto{\protect\foreignlanguage{#1}{esperanto}}% + \def\btxlanguagenamefinnish{\protect\foreignlanguage{#1}{finland\`es}}% + \def\btxlanguagenamefrancais{\protect\foreignlanguage{#1}{franc\`es}}% + \def\btxlanguagenamefrench{\protect\foreignlanguage{#1}{franc\`es}}% + \def\btxlanguagenamefrenchb{\protect\foreignlanguage{#1}{franc\`es}}% + \def\btxlanguagenamegerman{\protect\foreignlanguage{#1}{alem\`any}}% + \def\btxlanguagenamegermanb{\protect\foreignlanguage{#1}{alem\`any}}% + \def\btxlanguagenamegreek{\protect\foreignlanguage{#1}{grec}}% + \def\btxlanguagenamehebrew{\protect\foreignlanguage{#1}{hebreu}}% + \def\btxlanguagenamehungarian{\protect\foreignlanguage{#1}{hongar\`es}}% + \def\btxlanguagenameicelandic{\protect\foreignlanguage{#1}{island\`es}}% + \def\btxlanguagenameirish{\protect\foreignlanguage{#1}{irland\`es}}% + \def\btxlanguagenameitalian{\protect\foreignlanguage{#1}{itali\`a}}% + \def\btxlanguagenamelatin{\protect\foreignlanguage{#1}{llat\'\i}}% + \def\btxlanguagenamenaustrian{\protect\foreignlanguage{#1}{alem\`any}}% + \def\btxlanguagenamengerman{\protect\foreignlanguage{#1}{alem\`any}}% + \def\btxlanguagenamenorsk{\protect\foreignlanguage{#1}{noruec}}% + \def\btxlanguagenamenynorsk{\protect\foreignlanguage{#1}{noruec}}% + \def\btxlanguagenamepolish{\protect\foreignlanguage{#1}{polon\`es}}% + \def\btxlanguagenameportuges{\protect\foreignlanguage{#1}{portugu\`es}}% + \def\btxlanguagenameportuguese{\protect\foreignlanguage{#1}{portugu\`es}}% + \def\btxlanguagenamerussian{\protect\foreignlanguage{#1}{rus}}% + \def\btxlanguagenamescottish{\protect\foreignlanguage{#1}{escoc\`es}}% + \def\btxlanguagenameserbian{\protect\foreignlanguage{#1}{serbi}}% + \def\btxlanguagenamespanish{\protect\foreignlanguage{#1}{espa\~nol}}% + \def\btxlanguagenameswedish{\protect\foreignlanguage{#1}{suec}}% + \def\btxlanguagenameturkish{\protect\foreignlanguage{#1}{turc}}% + \def\btxlanguagenameUKenglish{\protect\foreignlanguage{#1}{angl\`es}}% + \def\btxlanguagenameUSenglish{\protect\foreignlanguage{#1}{angl\`es}}% + \fi +} +% \end{macrocode} +% \end{macro} +% Append the definitions to the language-calling commands. +% \begin{macrocode} +\AtBeginDocument{% + \ifbbbbfixlanguage + \else + \bbbbaddto{catalan}{bibscatalan} + \fi +% \end{macrocode} +% Switch on the change of case in titles for all Afrikaans dialects by +% appending \cs{btxifchangecaseoff} to \cs{extras}\meta{language}. +% \begin{macrocode} + \bbbbaddto{catalan}{btxifchangecaseoff} +} +%</catalan> +% \end{macrocode} +% +% \section{\BibTeX\ style files} +% \changes{0.40}{2003/09/26}{Moved the \texttt{bst} files into the +% global \texttt{dtx} file}% +% +% \subsection{``Normal'' \BibTeX\ style files} +% +% \subsubsection{Generic code} +% +% Because most parts of the \BibTeX\ style files are equal for all +% styles, they are generated from the same source code. +% \begin{macrocode} +%<*bststd> +% \end{macrocode} +% Declare the data fields that are handled by the \BibTeX\ styles. +% \begin{macrocode} +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} +%</bststd> +%<bststd&!bstalpha> { label } +%<bststd&bstalpha> { label extra.label sort.label } +%<*bststd> + +% \end{macrocode} +% Declare integer variables. +% \begin{macrocode} +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +% \end{macrocode} +% Declare string variables. +% \begin{macrocode} +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +% \end{macrocode} +% Declare the constants that define at which position within a +% citation we are when processing it. +% \begin{macrocode} +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +% \end{macrocode} +% Logical function |not|. +% +% Syntax: \meta{int1} |not| $\longrightarrow$ \meta{int2}. +% +% Returns |1| if \meta{arg1} != |0|, |0| otherwise. +% \begin{macrocode} +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +% \end{macrocode} +% Logical function |and|. +% Syntax: \meta{arg1} \meta{arg1} |and|. +% Returns |1| if \meta{arg1} == |true| and \meta{arg2} == |true|, |0| +% otherwise. +% \begin{macrocode} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +% \end{macrocode} +% Logical function |or|. +% Syntax: \meta{arg1} \meta{arg1} |or|. +% Returns |1| if \meta{arg1} == |true| or \meta{arg2} == |true|, |0| +% otherwise. +% \begin{macrocode} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% \end{macrocode} +% Function |language.change.case|. +% Syntax: \meta{string1} \meta{string2} |language.change.case| +% $\longrightarrow$ \meta{string3} +% This function has the same syntax as |change.case$| but writes +% \meta{string1} twice into \meta{string3}, first with changed case, +% second with original case. +% \begin{macrocode} +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + t * + "}" * +} + +% \end{macrocode} +% Generates output for the string \meta{string1}. +% Syntax: \meta{string1} |output.nonnull| $\longrightarrow$ \meta{string2} +% \begin{macrocode} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% \end{macrocode} +% Generates output if the given string \meta{string1} is not empty. +% Syntax: \meta{string1} |output.nonnull| $\longrightarrow$ \meta{string2} +% \begin{macrocode} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% \end{macrocode} +% Outputs a bibliography item. +% \begin{macrocode} +FUNCTION {output.bibitem} +{ newline$ +% \end{macrocode} +% \changes{0.40}{2003/09/26}{Switch to a fall-back language when +% \texttt{language} field is missing}% +% If no language is given, fall back to the language that has been +% active at \cs{begin\{document\}} or to the given fall-back +% language. +% For \BibTeX, this language gets the name \texttt{nolanguage}. +% \begin{macrocode} + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ +%</bststd> +%<bststd&!bstalpha> "\bibitem{" write$ +%<bststd&bstalpha> "\bibitem[" label * "]{" * write$ +%<*bststd> + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% \end{macrocode} +% Output an ISBN or ISSN. +% +% Syntax: \meta{string1} \meta{string2} |output.isbn| +% +% Prints the ISBN or ISSN given by \meta{string1} and uses the \TeX\ +% macro given by \meta{string2} to determine if the text is printed or +% not. +% \meta{string2} normally is \cs{ifbtxprintISSN} or +% \cs{ifbtxprintISSN}. +% \begin{macrocode} +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + if$ +} + +% \end{macrocode} +% Completes an entry. +% \begin{macrocode} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% \end{macrocode} +% \changes{1.00}{2005/02/16}{Remove \texttt{emphasize} and +% \texttt{smallcaps} from \BibTeX\ styles}% +% \begin{macrocode} +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +% \end{macrocode} +% \changes{1.12}{2005/06/19}{Add extra formatting of lastnames to +% \BibTeX\ styles}% +% \begin{macrocode} +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +INTEGERS { nameptr namesleft numnames } + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > +%</bststd> +%<*bststd&!bstshort&!namevarb> + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := +%</bststd&!bstshort&!namevarb> +%<*bststd&bstshort&!namevarb> + { + s nameptr "{f.~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := +%</bststd&bstshort&!namevarb> +%<*bststd&!bstshort&namevarb> + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{, jj}{, ff}{~vv}" format.name$ * 't := +%</bststd&!bstshort&namevarb> +%<*bststd&bstshort&namevarb> + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * 't := +%</bststd&bstshort&namevarb> +%<*bststd&bstthree> + namesleft #2 > + { " " "\btxetalshort {.}" etalfont * * + #1 'namesleft := } + { +%</bststd&bstthree> +%<*bststd> + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } +%</bststd> +%<bststd&!bstshort> { " \btxandlong {}\ " * t namefont * } +%<bststd&bstshort> { " \btxandshort {.}\ " * t namefont * } +%<*bststd&bstthree> + if$ + } +%</bststd&bstthree> +%<*bststd> + if$ + } + if$ + } +%</bststd> +%<*bststd&!bstshort&!namevara> + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont + } +%</bststd&!bstshort&!namevara> +%<*bststd&bstshort&!namevara> + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * namefont + } +%</bststd&bstshort&!namevara> +%<*bststd&!bstshort&namevara> + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } +%</bststd&!bstshort&namevara> +%<*bststd&bstshort&namevara> + { + s nameptr "{f.~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } +%</bststd&bstshort&namevara> +%<*bststd> + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > +%</bststd> +%<*bststd&!bstshort> + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } +%</bststd&!bstshort> +%<*bststd&bstshort> + { "\ (\btxeditorsshort {.})" * } + { "\ (\btxeditorshort {.})" * } +%</bststd&bstshort> +%<*bststd> + if$ + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.btitle} +{ title titlefont +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = +%</bststd> +%<bststd&!bstshort> { "\Btxvolumelong {}" } +%<bststd&!bstshort> { "\btxvolumelong {}" } +%<bststd&bstshort> { "\Btxvolumeshort {.}" } +%<bststd&bstshort> { "\btxvolumeshort {.}" } +%<*bststd> + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ +%</bststd> +%<bststd&!bstshort> { " \btxofserieslong {}\ " * series titlefont * } +%<bststd&bstshort> { " \btxofseriesshort {.}\ " * series titlefont * } +%<*bststd> + if$ + "volume and number" number either.or.check + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = +%</bststd> +%<bststd&!bstshort> { "\btxnumberlong {}" } +%<bststd&!bstshort> { "\Btxnumberlong {}" } +%<bststd&bstshort> { "\btxnumbershort {.}" } +%<bststd&bstshort> { "\Btxnumbershort {.}" } +%<*bststd> + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } +%</bststd> +%<bststd&!bstshort> { " \btxinserieslong {}\ " * series titlefont * } +%<bststd&bstshort> { " \btxinseriesshort {.}\ " * series titlefont * } +%<*bststd> + if$ + } + if$ + } + { "" } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = +%</bststd> +%<*bststd&!bstshort> + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } +%</bststd&!bstshort> +%<*bststd&bstshort> + { edition "l" language.change.case "~\btxeditionshort {.}" * } + { edition "t" language.change.case "~\btxeditionshort {.}" * } +%</bststd&bstshort> +%<*bststd> + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +INTEGERS { multiresult } + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check +%</bststd> +%<*bststd&!bstshort> + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } +%</bststd&!bstshort> +%<*bststd&bstshort> + { "\btxpagesshort {.}" pages n.dashify tie.or.space.connect } + { "\btxpageshort {.}" pages tie.or.space.connect } +%</bststd&bstshort> +%<*bststd> + if$ + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ +%</bststd> +%<bststd&!bstshort> { "\btxchapterlong {}" } +%<bststd&bstshort> { "\btxchaptershort {.}" } +%<*bststd> + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ +%</bststd> +%<*bststd&!bstshort> + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } +%</bststd&!bstshort> +%<*bststd&bstshort> + { "\Btxinshort {.}\ " booktitle titlefont * } + { "\Btxinshort {.}\ " format.editors * ": " * booktitle titlefont * } +%</bststd&bstshort> +%<*bststd> + if$ + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ +%</bststd> +% \end{macrocode} +% \changes{0.40}{2003/09/26}{For \texttt{babalpha.bst}, use +% \cs{btxtechreplong}}% +% \begin{macrocode} +%<bststd&!bstshort> { "\btxtechreplong {}" } +%<bststd&bstshort> { "\btxtechrepshort {.}" } +%<*bststd> + { type "t" language.change.case } + if$ + } + { + type empty$ +%</bststd> +% \end{macrocode} +% \changes{0.40}{2003/09/26}{For \texttt{babalpha.bst}, use +% \cs{Btxtechreplong}}% +% \begin{macrocode} +%<bststd&!bstshort> { "\Btxtechreplong {}" } +%<bststd&bstshort> { "\Btxtechrepshort {.}" } +%<*bststd> + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.article.crossref} +{ key empty$ +%</bststd> +%<*bststd&!bstshort> + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } +%</bststd&!bstshort> +%<*bststd&bstshort> + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinshort {.}\ " journal titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } +%</bststd&bstshort> +%<*bststd> + if$ + " \cite{" * crossref * "}" * +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.crossref.editor} +{ +%</bststd> +%<*bststd&!bstshort> + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont +%</bststd&!bstshort> +%<*bststd&bstshort> + editor #1 "{ll}{,~jj}{,~f.}{~vv}" format.name$ namefont +%</bststd&bstshort> +%<*bststd> + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } +%</bststd> +%<*bststd&!bstshort> + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" +%</bststd&!bstshort> +%<*bststd&bstshort> + { " \btxandshort {.}\ " * editor #2 "{vv~}{ll}" +%</bststd&bstshort> +%<*bststd> + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ +%</bststd> +%<bststd&!bstshort> "\Btxinlong {}\ " +%<bststd&bstshort> "\Btxinshort {.}\ " +%<*bststd> + } +%</bststd> +%<*bststd&!bstshort> + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * +%</bststd&!bstshort> +%<*bststd&bstshort> + { "\Btxvolumeshort {.}" volume volume.tie.or.space.connect + " \btxofseriesshort {.}\ " * +%</bststd&bstshort> +%<*bststd> + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } +%</bststd> +%<bststd&!bstshort> { "\Btxinlong {}\ " format.crossref.editor * } +%<bststd&bstshort> { "\Btxinshort {.}\ " format.crossref.editor * } +%<*bststd> + if$ + " \cite{" * crossref * "}" * +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } +%</bststd> +%<bststd&!bstshort> { "\Btxinlong {}\ " booktitle titlefont * } +%<bststd&bstshort> { "\Btxinshort {.}\ " booktitle titlefont * } +%<*bststd> + if$ + } +%</bststd> +%<bststd&!bstshort> { "\Btxinlong {}\ " key titlefont * } +%<bststd&bstshort> { "\Btxinshort {.}\ " key titlefont * } +%<*bststd> + if$ + } +%</bststd> +%<bststd&!bstshort> { "\Btxinlong {}\ " format.crossref.editor * } +%<bststd&bstshort> { "\Btxinshort {.}\ " format.crossref.editor * } +%<*bststd> + if$ + " \cite{" * crossref * "}" * +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {conference} { inproceedings } + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {default.type} { misc } + +%</bststd> +% \end{macrocode} +% Months and journals: +% \begin{macrocode} +%<*bststd&!bstshort> +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} +%</bststd&!bstshort> +%<*bststd&bstshort> +MACRO {jan} {"\btxmonjanshort {.}"} +MACRO {feb} {"\btxmonfebshort {.}"} +MACRO {mar} {"\btxmonmarshort {.}"} +MACRO {apr} {"\btxmonaprshort {.}"} +MACRO {may} {"\btxmonmayshort {.}"} +MACRO {jun} {"\btxmonjunshort {.}"} +MACRO {jul} {"\btxmonjulshort {.}"} +MACRO {aug} {"\btxmonaugshort {.}"} +MACRO {sep} {"\btxmonsepshort {.}"} +MACRO {oct} {"\btxmonoctshort {.}"} +MACRO {nov} {"\btxmonnovshort {.}"} +MACRO {dec} {"\btxmondecshort {.}"} +MACRO {acmcs} {"ACM Comput.\ Surv.{}"} +MACRO {acta} {"Acta Inf.{}"} +MACRO {cacm} {"Commun. ACM"} +MACRO {ibmjrd} {"IBM J.~Res.\ Dev.{}"} +MACRO {ibmsj} {"IBM Syst.~J.{}"} +MACRO {ieeese} {"IEEE Trans.\ Softw.\ Eng.{}"} +MACRO {ieeetc} {"IEEE Trans.\ Comput.{}"} +MACRO {ieeetcad} + {"IEEE Trans.\ Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf.\ Process.\ Lett.{}"} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput.\ Syst.\ Sci.{}"} +MACRO {scp} {"Sci.\ Comput.\ Programming"} +MACRO {sicomp} {"SIAM J.~Comput.{}"} +MACRO {tocs} {"ACM Trans.\ Comput.\ Syst.{}"} +MACRO {tods} {"ACM Trans.\ Database Syst.{}"} +MACRO {tog} {"ACM Trans.\ Gr.{}"} +MACRO {toms} {"ACM Trans.\ Math.\ Softw.{}"} +MACRO {toois} {"ACM Trans.\ Office Inf.\ Syst.{}"} +MACRO {toplas} {"ACM Trans.\ Prog.\ Lang.\ Syst.{}"} +MACRO {tcs} {"Theoretical Comput.\ Sci.{}"} +%</bststd&bstshort> +% \end{macrocode} +% Action. +% \begin{macrocode} +%<*bststd> + +READ + +%</bststd> +% \end{macrocode} +% +% \subsubsection{Sorted bibliographies} +% +% This code is only used for sorted bibliographies. +% \changes{1.00}{2005/02/16}{Fix sorting of \BibTeX\ entries without +% an author}% +% \begin{macrocode} +%<*bststd&!bstunsorted> +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +% \end{macrocode} +% +% \begin{macrocode} +INTEGERS { len } + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +%</bststd&!bstunsorted> +%<*bststd&bstalpha> +% \end{macrocode} +% +% \begin{macrocode} +INTEGERS { et.al.char.used } + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +% \end{macrocode} +% +% \begin{macrocode} +EXECUTE {initialize.et.al.char.used} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +%</bststd&bstalpha> +%<*bststd&!bstunsorted> +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ +%</bststd&!bstunsorted> +% \end{macrocode} +% \changes{0.41}{2003/11/03}{Corrected \texttt{babunsrt.bst}}% +% \begin{macrocode} +%<*bststd&!bstshort&!bstunsorted> + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := +%</bststd&!bstshort&!bstunsorted> +%<*bststd&bstshort&!bstunsorted> + s nameptr "{ll{ }}{ f{ }}{vv{ } }{ jj{ }}" format.name$ 't := +%</bststd&bstshort&!bstunsorted> +%<*bststd&!bstunsorted> + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {presort} +{ +%</bststd&!bstunsorted> +%<*bststd&bstalpha> + calc.label + sort.label + " " + * +%</bststd&bstalpha> +%<*bststd&!bstunsorted> + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ +%</bststd&!bstunsorted> +%<bststd&bstalpha> * +%<*bststd&!bstunsorted> + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% \end{macrocode} +% +% \begin{macrocode} +ITERATE {presort} + +% \end{macrocode} +% +% \begin{macrocode} +SORT + +%</bststd&!bstunsorted> +%<*bststd&!bstalpha> +% \end{macrocode} +% +% \begin{macrocode} +STRINGS { longest.label } + +% \end{macrocode} +% +% \begin{macrocode} +INTEGERS { number.label longest.label.width } + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +%</bststd&!bstalpha> +%<*bststd&bstalpha> +% \end{macrocode} +% +% \begin{macrocode} +STRINGS { longest.label last.sort.label next.extra } + +% \end{macrocode} +% +% \begin{macrocode} +INTEGERS { longest.label.width last.extra.num } + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + sort.label 'last.sort.label := + } + if$ +} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} +%</bststd&bstalpha> +% \end{macrocode} +% +% \subsubsection{Generic code} +% +% \begin{macrocode} +%<*bststd> + +EXECUTE {initialize.longest.label} + +%</bststd> +%<bststd&!bstalpha>ITERATE {longest.label.pass} +%<bststd&bstalpha>ITERATE {forward.pass} +%<bststd&bstalpha>REVERSE {reverse.pass} +%<*bststd> + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {begin.bib} +{ +%</bststd> +%<*bststd&bstalpha> + et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ +%</bststd&bstalpha> +%<*bststd> + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +% \end{macrocode} +% +% \begin{macrocode} +EXECUTE {begin.bib} + +% \end{macrocode} +% +% \begin{macrocode} +EXECUTE {init.state.consts} + +% \end{macrocode} +% +% \begin{macrocode} +ITERATE {call.type$} + +% \end{macrocode} +% +% \begin{macrocode} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +% \end{macrocode} +% +% \begin{macrocode} +EXECUTE {end.bib} +%</bststd> +% \end{macrocode} +% +% +% \subsection{AMS styles} +% +% The following \BibTeX\ styles are derived from the AMS \BibTeX-style-files +% by the American Mathematical Society. +% For example, see `amsplain.bst' for more documentation about the +% original. +% \begin{macrocode} +%<*bstams> +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + mrnumber + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label bysame } + + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +STRINGS { s t language.state change.temp} + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK================================================================" +top$ +stack$ +"ENDSTACK=============================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + t * + "}" * +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% \end{macrocode} +% \changes{1.00}{2005/02/16}{Remove \texttt{emphasize} and +% \texttt{smallcaps} from \BibTeX\ styles}% +% \begin{macrocode} +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +% \end{macrocode} +% \changes{1.12}{2005/06/19}{Add extra formatting of lastnames to +% \BibTeX\ styles}% +% \begin{macrocode} +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +% \end{macrocode} +% \texttt{n.dashify} is used to make sure page ranges get the \TeX\ code +% (two hyphens) for en-dashes. +% \begin{macrocode} +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +% \end{macrocode} +% |tie.or.space.connect| connects two items with a |~| if the +% second item is less than 3 letters long, otherwise it just puts an +% ordinary space. +% \begin{macrocode} +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { "\ " * } + if$ +} + +% \end{macrocode} +% |either.or.check| gives a warning if two mutually exclusive fields +% were used in the database. +% \begin{macrocode} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% \end{macrocode} +% |output.nonnull| is called by output. +% \begin{macrocode} +FUNCTION {output.nonnull} +% \end{macrocode} +% remove the top item from the stack because it's in the way. +% \begin{macrocode} +{ 's := + output.state mid.sentence = +% \end{macrocode} +% If we're in mid-sentence, add a comma to the new top item and write it +% \begin{macrocode} + { ", " * write$ } +% \end{macrocode} +% Otherwise, if we're at the beginning of a bibitem, +% \begin{macrocode} + { output.state before.all = +% \end{macrocode} +% just write out the top item from the stack; +% \begin{macrocode} + 'write$ +% \end{macrocode} +% and the last alternative is that we're at the end of the current +% bibitem, so we add a period to the top stack item and write it out. +% \begin{macrocode} + { add.period$ " " * write$ } + if$ + mid.sentence 'output.state := + } + if$ +% \end{macrocode} +% Put the top item back on the stack that we removed earlier. +% \begin{macrocode} + s +} + +% \end{macrocode} +% Output checks to see if the stack top is empty; if not, it +% calls output.nonnull to write it out. +% \begin{macrocode} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% \end{macrocode} +% Standard warning message for a missing or empty field. For the user +% we call any such field `missing' without respect to the distinction +% made by Bib\TeX\ between missing and empty. +% \begin{macrocode} +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + +% \end{macrocode} +% |output.check| is like output except that it gives a warning on-screen +% if the given field in the database entry is empty. t is the field +% name. +% \begin{macrocode} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ +% \end{macrocode} +% \changes{0.40}{2003/09/26}{Switch to a fall-back language when +% \texttt{language} field is missing}% +% If no language is given, fall back to the language that has been +% active at \cs{begin\{document\}}. +% For \BibTeX, this language gets the name \texttt{nolanguage}. +% \begin{macrocode} + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ +% \end{macrocode} +% This empty string is the first thing that will be written +% the next time \verb|write$| is called. Done this way because each +% item is saved on the stack until we find out what punctuation +% should be added after it. Therefore we need an empty first item. +% \begin{macrocode} + "" + before.all 'output.state := +} + +FUNCTION {output.nonempty.mrnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \MR{" swap$ * "}" * write$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + mrnumber output.nonempty.mrnumber + newline$ +} + +% \end{macrocode} +% Removed |new.block|, |new.block.checka|, |new.block.checkb|, +% |new.sentence|, |new.sentence.checka|, and |new.sentence.checkb| +% functions here, since they don't seem to be needed in the AMS style. +% Also moved some real basic functions like `and' and 'or' earlier in +% the file. +% \begin{macrocode} +INTEGERS { nameptr namesleft numnames } + +% \end{macrocode} +% The extra section to write out a language field was added +% for babamspl.bst. Not present in babplain.bst. +% \begin{macrocode} +FUNCTION {format.language} +{ language empty$ + { "" } + { "\btxprintamslanguage{\btxlanguagename {" language * "}}" * } + if$ +} + +% \end{macrocode} +% This version of format.names puts names in the format +% ``First von Last, Jr.'' +% (i.\,e., first name first, no abbreviating to initials). +% \begin{macrocode} +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + nameptr #1 > + { namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " * "\btxetalshort {.}" etalfont * } + { " \btxandlong {} " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { bysame "\bysame" = + {"\bysame"} + { author format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorsshort {.})" * } + { "\ (\btxeditorshort {.})" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", \btxeditorsshort {.}" * } + { ", \btxeditorshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "journal name" missing.warning ""} + { journal journalfont } + if$ + volume empty$ + 'skip$ + { " " * volume volumefont * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ +} + +% \end{macrocode} +% For formatting the issue number for a journal article. +% \begin{macrocode} +FUNCTION {format.number} +{ number empty$ + { "" } + { "\btxnumbershort {.}~" number * } + if$ +} + +% \end{macrocode} +% For formatting miscellaneous dates +% \begin{macrocode} +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +% \end{macrocode} +% The volume, series and number information is sort of tricky. +% This code handles it as follows: +% If the series is present, and the volume, but not the number, +% then we do "\emph{Book title}, Series Name, vol. 000" +% If the series is present, and the number, but not the volume, +% then we do "\emph{Book title}, Series Name, no. 000" +% If the series is present, and both number and volume, +% then we do "\emph{Book title}, vol. XX, Series Name, no. 000" +% Finally, if the series is absent, +% then we do "\emph{Book title}, vol. XX" +% or "\emph{Book title}, no. 000" +% and if both volume and number are present, give a warning message. +% \begin{macrocode} +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ series } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { ", " * } % add a comma and space to separate. + if$ + "\btxnumbershort {.}" number tie.or.space.connect * % add the number information + } + if$ + } +% \end{macrocode} +% If the volume is NOT EMPTY: +% \begin{macrocode} + { "\btxvolumeshort {.}" volume tie.or.space.connect % vol. XX + number empty$ + { series empty$ + 'skip$ + { series ", " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { ", " * series * ", \btxnumbershort {.}" * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +% \end{macrocode} +% |format.inproc.title.where.editors| is used by inproceedings entry types +% No case changing or emphasizing for the title. We want initial +% caps, roman. +% We add parentheses around the address (place where conference +% was held). +% Likewise we add parentheses around the editors' names. +% \begin{macrocode} +FUNCTION {format.inproc.title.address.editors} +{ booktitle empty$ + { "" } + { booktitle + address empty$ + 'skip$ + { add.space.if.necessary "(" * address * ")" * } + if$ + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ + } + if$ +} + +% \end{macrocode} +% |format.incoll.title.editors| is similar to |format.inproc...| but +% omits the address. For collections that are not proceedings volumes. +% \begin{macrocode} +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } + { editor empty$ + { booktitle } + { booktitle + add.space.if.necessary "(" * format.nonauthor.editors * ")" * + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" language.change.case " \btxeditionshort {.}" * } + { edition "t" language.change.case " \btxeditionshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont {" * + urldate * "}}" * + } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages n.dashify } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort {.}~" pages n.dashify * } + { "\btxpageshort {.}~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.book.pages + { type empty$ + { "\btxchaptershort {.}~" } + { type "l" language.change.case " " * } + if$ + chapter * + pages empty$ + 'skip$ + { ", " * format.book.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "\Btxtechrepshort {.}" } + 'type + if$ + number empty$ + { "t" language.change.case } + { number tie.or.space.connect } + if$ +} + +% \end{macrocode} +% The |format.crossref| functions haven't been paid much attention +% at the present time (June 1990) and could probably use some +% work. MJD +% \begin{macrocode} +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\btxinshort {} " journal journalfont * } + if$ + } + { "\btxinshort {} " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " \btxetalshort {.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " \btxetalshort {.}" * } + { " \btxandlong {} " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\btxinserieslong {} " + } + { "\btxvolumeshort {.}" volume tie.or.space.connect + " \btxofserieslong {} " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\btxinlong {} " * booktitle titlefont * } + if$ + } + { "\btxinlong {} " key * } + if$ + } + { "\btxinlong {} " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +% \end{macrocode} +% The main functions for each entry type. +% +% journal, vol and year are formatted together because they are +% not separated by commas. +% \begin{macrocode} +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year output + format.number output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages "pages" output.check + } + if$ + format.issn output + format.url output + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.isbn output + format.url output + format.language * + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.date output + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.isbn output + format.url output + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.incoll.title.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.isbn output + format.url output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.address.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.isbn output + format.url output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.title "title" output.check + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + format.isbn output + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + note output + format.book.pages output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + format.isbn output + format.issn output + format.url output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn output + format.url output + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.title "title" output.check + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + format.isbn output + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn output + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} + +READ + +FUNCTION {sortify} +{ purify$ + "l" language.change.case +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label prev.author this.author } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := + "abcxyz" 'prev.author := + "" 'this.author := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + author empty$ + { editor empty$ + { "" } + 'editor + if$ + } + 'author + if$ + 'this.author := + this.author prev.author = + { "\bysame" 'bysame := } + { "" 'bysame := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {write.lines} +{ { duplicate$ "." = NOT } + { write$ newline$ } + while$ + pop$ +} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}" + write$ newline$ + " \providecommand{\MR}{\relax\ifhmode\unskip\space\fi MR }" + write$ newline$ + " % \MRhref is called by the amsart/book/proc definition of \MR." + write$ newline$ + " \providecommand{\MRhref}[2]{%" write$ newline$ + " \href{http://www.ams.org/mathscinet-getitem?mr=#1}{#2}" + write$ newline$ + " }" write$ newline$ + " \providecommand{\href}[2]{#2}" write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{\textbf}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ + " \providecommand\btxprintamslanguage[1]{\ (#1)}" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%</bstams> +% \end{macrocode} +% +% \Finale + |