% \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} % % \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} % % \end{macrocode} % File heads of the |bdf| files: % \begin{macrocode} %%% Language definitions for Afrikaans by %%% Danie Els, dnjels@sun.ac.za %\ProvidesFile{afrikaans.bdf} %%% Language definitions for Catalan by %%% Robert Fuster, rfuster@imm.upv.es %\ProvidesFile{catalan.bdf} %\ProvidesFile{danish.bdf} %\ProvidesFile{dutch.bdf} %\ProvidesFile{english.bdf} %%% Language definitions for Esperanto by %%% Taneli Huuskonen, huuskone@cc.helsinki.fi %\ProvidesFile{esperanto.bdf} %%% Language definitions for Portuguese by %%% Jos\'e Carlos Santos, jcsantos@fc.up.pt %\ProvidesFile{portuguese.bdf} %%% Language definitions for Finnish by %%% Taneli Huuskonen, huuskone@cc.helsinki.fi %\ProvidesFile{finnish.bdf} %\ProvidesFile{french.bdf} %\ProvidesFile{german.bdf} %\ProvidesFile{italian.bdf} %%% Language definitions for Norwegian by %%% Hans Fredrik Nordhaug %\ProvidesFile{norsk.bdf} %%% Language definitions for spanish by %%% V{\'\i}ctor Lua{\~n}a, victor@fluor.quimica.uniovi.es %\ProvidesFile{spanish.bdf} %%% Language definitions for Swedish by %%% Hans Fredrik Nordhaug %\ProvidesFile{swedish.bdf} % \end{macrocode} % Version information unique for all generated files: % \begin{macrocode} % [2005/09/01 v1.15 babelbib: multilingual bibliographies (HH)] %%% 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 } % % \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} } % % \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} } % % \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} } % % \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} } % % \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} % % \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} } % % \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} } % % \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} } % % \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} } % % \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} } % % \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} } % % \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} } % % \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} } % % \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} } % % \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 } {} % % { label } % { 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$ % % "\bibitem{" write$ % "\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&!bstshort&!namevarb> { s nameptr "{ff~}{vv~}" format.name$ s nameptr "{ll}" format.name$ lastnamefont * s nameptr "{, jj}" format.name$ * 't := % %<*bststd&bstshort&!namevarb> { s nameptr "{f.~}{vv~}" format.name$ s nameptr "{ll}" format.name$ lastnamefont * s nameptr "{, jj}" format.name$ * 't := % %<*bststd&!bstshort&namevarb> { s nameptr "{ll}" format.name$ lastnamefont s nameptr "{, jj}{, ff}{~vv}" format.name$ * 't := % %<*bststd&bstshort&namevarb> { s nameptr "{ll}" format.name$ lastnamefont s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * 't := % %<*bststd&bstthree> namesleft #2 > { " " "\btxetalshort {.}" etalfont * * #1 'namesleft := } { % %<*bststd> namesleft #1 > { ", " * t namefont * } { numnames #2 > { "\btxandcomma {}" * } 'skip$ if$ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = { " " "\btxetalshort {.}" etalfont * * } % % { " \btxandlong {}\ " * t namefont * } % { " \btxandshort {.}\ " * t namefont * } %<*bststd&bstthree> if$ } % %<*bststd> if$ } if$ } % %<*bststd&!bstshort&!namevara> { s nameptr "{ll}" format.name$ lastnamefont s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont } % %<*bststd&bstshort&!namevara> { s nameptr "{ll}" format.name$ lastnamefont s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * namefont } % %<*bststd&!bstshort&namevara> { s nameptr "{ff~}{vv~}" format.name$ s nameptr "{ll}" format.name$ lastnamefont * s nameptr "{, jj}" format.name$ * namefont } % %<*bststd&bstshort&namevara> { s nameptr "{f.~}{vv~}" format.name$ s nameptr "{ll}" format.name$ lastnamefont * s nameptr "{, jj}" format.name$ * namefont } % %<*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&!bstshort> { "\ (\btxeditorslong {})" * } { "\ (\btxeditorlong {})" * } % %<*bststd&bstshort> { "\ (\btxeditorsshort {.})" * } { "\ (\btxeditorshort {.})" * } % %<*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 = % % { "\Btxvolumelong {}" } % { "\btxvolumelong {}" } % { "\Btxvolumeshort {.}" } % { "\btxvolumeshort {.}" } %<*bststd> if$ volume volume.tie.or.space.connect series empty$ 'skip$ % % { " \btxofserieslong {}\ " * series titlefont * } % { " \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 = % % { "\btxnumberlong {}" } % { "\Btxnumberlong {}" } % { "\btxnumbershort {.}" } % { "\Btxnumbershort {.}" } %<*bststd> if$ number tie.or.space.connect series empty$ { "there's a number but no series in " cite$ * warning$ } % % { " \btxinserieslong {}\ " * series titlefont * } % { " \btxinseriesshort {.}\ " * series titlefont * } %<*bststd> if$ } if$ } { "" } if$ } % \end{macrocode} % % \begin{macrocode} FUNCTION {format.edition} { edition empty$ { "" } { output.state mid.sentence = % %<*bststd&!bstshort> { edition "l" language.change.case "~\btxeditionlong {}" * } { edition "t" language.change.case "~\btxeditionlong {}" * } % %<*bststd&bstshort> { edition "l" language.change.case "~\btxeditionshort {.}" * } { edition "t" language.change.case "~\btxeditionshort {.}" * } % %<*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&!bstshort> { "\btxpageslong {}" pages n.dashify tie.or.space.connect } { "\btxpagelong {}" pages tie.or.space.connect } % %<*bststd&bstshort> { "\btxpagesshort {.}" pages n.dashify tie.or.space.connect } { "\btxpageshort {.}" pages tie.or.space.connect } % %<*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$ % % { "\btxchapterlong {}" } % { "\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&!bstshort> { "\Btxinlong {}\ " booktitle titlefont * } { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } % %<*bststd&bstshort> { "\Btxinshort {.}\ " booktitle titlefont * } { "\Btxinshort {.}\ " format.editors * ": " * booktitle titlefont * } % %<*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$ % % \end{macrocode} % \changes{0.40}{2003/09/26}{For \texttt{babalpha.bst}, use % \cs{btxtechreplong}}% % \begin{macrocode} % { "\btxtechreplong {}" } % { "\btxtechrepshort {.}" } %<*bststd> { type "t" language.change.case } if$ } { type empty$ % % \end{macrocode} % \changes{0.40}{2003/09/26}{For \texttt{babalpha.bst}, use % \cs{Btxtechreplong}}% % \begin{macrocode} % { "\Btxtechreplong {}" } % { "\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&!bstshort> { journal empty$ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } { "\Btxinlong {}\ " journal titlefont * } if$ } { "\Btxinlong {}\ " key titlefont * } % %<*bststd&bstshort> { journal empty$ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } { "\Btxinshort {.}\ " journal titlefont * } if$ } { "\Btxinshort {.}\ " key titlefont * } % %<*bststd> if$ " \cite{" * crossref * "}" * } % \end{macrocode} % % \begin{macrocode} FUNCTION {format.crossref.editor} { % %<*bststd&!bstshort> editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont % %<*bststd&bstshort> editor #1 "{ll}{,~jj}{,~f.}{~vv}" format.name$ namefont % %<*bststd> editor num.names$ duplicate$ #2 > { pop$ " " "\btxetalshort {.}" etalfont * * } { #2 < 'skip$ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " " "\btxetalshort {.}" etalfont * * } % %<*bststd&!bstshort> { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" % %<*bststd&bstshort> { " \btxandshort {.}\ " * editor #2 "{vv~}{ll}" % %<*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$ % % "\Btxinlong {}\ " % "\Btxinshort {.}\ " %<*bststd> } % %<*bststd&!bstshort> { "\Btxvolumelong {}" volume volume.tie.or.space.connect " \btxofserieslong {}\ " * % %<*bststd&bstshort> { "\Btxvolumeshort {.}" volume volume.tie.or.space.connect " \btxofseriesshort {.}\ " * % %<*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$ } % % { "\Btxinlong {}\ " format.crossref.editor * } % { "\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$ "" } % % { "\Btxinlong {}\ " booktitle titlefont * } % { "\Btxinshort {.}\ " booktitle titlefont * } %<*bststd> if$ } % % { "\Btxinlong {}\ " key titlefont * } % { "\Btxinshort {.}\ " key titlefont * } %<*bststd> if$ } % % { "\Btxinlong {}\ " format.crossref.editor * } % { "\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 } % % \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> 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.{}"} % % \end{macrocode} % Action. % \begin{macrocode} %<*bststd> READ % % \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&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&!bstunsorted> % \end{macrocode} % % \begin{macrocode} FUNCTION {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { nameptr #1 > { " " * } 'skip$ if$ % % \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> s nameptr "{ll{ }}{ f{ }}{vv{ } }{ jj{ }}" format.name$ 't := % %<*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&bstalpha> calc.label sort.label " " * % %<*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> " " * 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&!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> % \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 := } % % \end{macrocode} % % \subsubsection{Generic code} % % \begin{macrocode} %<*bststd> EXECUTE {initialize.longest.label} % %ITERATE {longest.label.pass} %ITERATE {forward.pass} %REVERSE {reverse.pass} %<*bststd> % \end{macrocode} % % \begin{macrocode} FUNCTION {begin.bib} { % %<*bststd&bstalpha> et.al.char.used { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } 'skip$ if$ % %<*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} % % \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} % % \end{macrocode} % % \Finale