From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- biblio/bibtex/contrib/oxford/README | 112 ++ biblio/bibtex/contrib/oxford/lang/english.mbs | 330 +++++ biblio/bibtex/contrib/oxford/lang/esperant.mbs | 292 ++++ biblio/bibtex/contrib/oxford/lang/finnish.mbs | 281 ++++ biblio/bibtex/contrib/oxford/lang/french.mbs | 292 ++++ biblio/bibtex/contrib/oxford/lang/german.mbs | 317 ++++ biblio/bibtex/contrib/oxford/lang/italian.mbs | 297 ++++ biblio/bibtex/contrib/oxford/lang/norsk.mbs | 299 ++++ biblio/bibtex/contrib/oxford/lang/spanish.mbs | 301 ++++ biblio/bibtex/contrib/oxford/lang/svenska.mbs | 297 ++++ biblio/bibtex/contrib/oxford/oxford.sty | 303 ++++ biblio/bibtex/contrib/oxford/oxford_en.bst | 1889 +++++++++++++++++++++++ biblio/bibtex/contrib/oxford/oxford_in.bst | 1889 +++++++++++++++++++++++ biblio/bibtex/contrib/oxford/oxford_se.bst | 1890 ++++++++++++++++++++++++ 14 files changed, 8789 insertions(+) create mode 100644 biblio/bibtex/contrib/oxford/README create mode 100644 biblio/bibtex/contrib/oxford/lang/english.mbs create mode 100644 biblio/bibtex/contrib/oxford/lang/esperant.mbs create mode 100644 biblio/bibtex/contrib/oxford/lang/finnish.mbs create mode 100644 biblio/bibtex/contrib/oxford/lang/french.mbs create mode 100644 biblio/bibtex/contrib/oxford/lang/german.mbs create mode 100644 biblio/bibtex/contrib/oxford/lang/italian.mbs create mode 100644 biblio/bibtex/contrib/oxford/lang/norsk.mbs create mode 100644 biblio/bibtex/contrib/oxford/lang/spanish.mbs create mode 100644 biblio/bibtex/contrib/oxford/lang/svenska.mbs create mode 100644 biblio/bibtex/contrib/oxford/oxford.sty create mode 100644 biblio/bibtex/contrib/oxford/oxford_en.bst create mode 100644 biblio/bibtex/contrib/oxford/oxford_in.bst create mode 100644 biblio/bibtex/contrib/oxford/oxford_se.bst (limited to 'biblio/bibtex/contrib/oxford') diff --git a/biblio/bibtex/contrib/oxford/README b/biblio/bibtex/contrib/oxford/README new file mode 100644 index 0000000000..9a6133cd9d --- /dev/null +++ b/biblio/bibtex/contrib/oxford/README @@ -0,0 +1,112 @@ + OXFORD STYLE PACKAGE + +This is the oxford bst style package, version 0.4. It is a bibtex style geared +at citations for the humanities. + + STYLE +The oxford style implements the oxford style interpreted through the eye of +a swede working in the fields of the history of ideas. + +The style is based on Harvard.sty and a heavily hacked bst-file generated with +custom-bib. It currently only supports + +\cite[]{} + +and + +\cite{} + +and only in abrevation mode. + +The form of the bibitem entries is +\harvarditem[Jones, STITLE]{Jones, TITLE .... (PUBLISH:ADRESS, YEAR)}{1990}{key} + Brian Jones, TITLE ... (PUBLISH:ADRESS, YEAR). + +The style gives the full reference att the first citation and then an +abrevated one. + +The file suports an additional entry in the bib-file, stitle (short title). It +is used in the abrevated citation. + +The abrevated citation follows these rules: + +If (lastname == UNIQ) { + lastname +} elsif (stitle == EXIST) { + lastname, stitle +} else { + lastname, title +} + +oxford.sty also inserts an "ibid." if the current citation is the same +as the last one. + + + USAGE + +\usepackage[default, none]{oxford} +. +. +. +\bibliographystyle{oxford_xx} + +where xx stands for chosen language + + + INSTALL + +In the distibution there are only two languages directly supported: +swedish +english + +You install the oxford package either by putting the files in places you alreday +know are supported by latex, eg.: + +cp oxford.sty /usr/lib/texfm/texfm/tex/latex/base +cp oxford_se.bst /usr/lib/texfm/texfm/bibtex/bst/base +cp oxford_en.bst /usr/lib/texfm/texfm/bibtex/bst/base + +Or you shose another location and then has to set som environmental variables, +eg.: + +The place you put oxford.sty have to be exported with TEXINPUTS: +export TEXINPUTS=/usr/lib/texmf/texmf/tex/latex/local: + +The place where you put the bst-files have to be exported with BSTINPUTS: + +BSTINPUTS=/usr/lib/texmf/texmf/bibtex/bst/oxford: + +(Donīt forget the trailing colon (:) + + LANGUAGE + +The oxford_in.bst has support for any kind of languages. But you have to create +a language version of oxford_in.bst yourself. In the directory "lang" there are +translations for english, finnish, german, norsk, svenska, +esperant, french, italian and spanish. + +All you have to do is open "oxford_in.bst" and substitute all bbl.CODE and MACRO +entries with the right translations (which can be found in the mbs-files) and +name the file oxford_LANG.bst + + + BUGS +None known of. + + COPYRIGHT +The copyrigt is Peter Antman, 1997, where marked in the files. These parts are +distributed under GNU/GPL. All other copyright is hold by the respective authors +mentioned in the files. + + THANKS +Thanks to Oren Patashnik for helping me solve the pop$ bug in version 0.3 + +Send comments and bugreports to: +peter antman@abc.se + +oxford can be found at: + +ftp.mc.hik.se/pub/users/mia95anp/tex/ +http://www.abc.se/~m9339/prog/oxford-0.4.tar.gz + + diff --git a/biblio/bibtex/contrib/oxford/lang/english.mbs b/biblio/bibtex/contrib/oxford/lang/english.mbs new file mode 100644 index 0000000000..e5bde87206 --- /dev/null +++ b/biblio/bibtex/contrib/oxford/lang/english.mbs @@ -0,0 +1,330 @@ +%\iffalse THIS IS A META COMMENT +%==================================================================== +% A Language Definition File: ENGLISH +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% + %------------------------------------------------------------------- + % The original source file contains the following version information: +%\fi + % \ProvidesFile{english.mbs}[1995/05/04 1.1 (PWD)] +%\iffalse +%------------------------------------------------------------------- +% NOTICE: +% This file may be used for non-profit purposes. +% It may not be distributed in exchange for money, +% other than distribution costs. +% +% The author provides it `as is' and does not guarantee it in any way. +% + % Copyright (C) 1994, 1995 Patrick W. Daly +% Max-Planck-Institut f\"ur Aeronomie +% Postfach 20 +% D-37189 Katlenburg-Lindau +% Germany +% +% E-mail: daly@linmpi.mpae.gwdg.de + %------------------------------------------------------------------- +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{english.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \changes{1.0}{1995 Mar 15}{Initial version} +% \changes{1.1}{1995 May 4}{Do no abbreviate `edited by'} +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{English Bibliographies} +% +% \title{{\bfseries English Language Definition File}\\ +% for master bibliographic style files} +% +% \author{Patrick W. Daly} +% +% \GetFileInfo{english.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% This file is to be used as a language definition file with master +% bibliographic files. The language it defines is +% \begin{quote}\bfseries English\end{quote} +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains language support via +% external definition files. +% +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information or the documentation driver. +% +% \begin{macrocode} +%<*options> +\mes{^^JOptions for ENGLISH} +\wr{\spsp\spsp\sep english\pc: English language} + +\mes{^^JABBREVIATE WORD `PAGES':} +\optdef{*}{}{`Page(s)'}{(no abbreviation)} +\optdef{a}{pp}{`Page' abbreviated}{as p. or pp.} +\getans + +\mes{^^JABBREVIATE WORD `EDITORS':} +\optdef{*}{}{`Editor(s)'}{(no abbreviation)} +\optdef{a}{ed}{`Editor' abbreviated}{as ed. or eds.} +\getans + +\mes{^^JOTHER ABBREVIATIONS:} +\optdef{*}{}{No abbreviations}{of volume, edition, chapter, etc} +\optdef{a}{abr}{Abbreviations}{of such words} +\getans + +\mes{^^JEDITION NUMBERS:} +\optdef{*}{}{Write out editions}{as first, second, third, etc} +\optdef{n}{ord}{Numerical editions}{as 1st, 2nd, 3rd, etc} +\getans + +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options&!driver> + + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +%{ "editors" } +%{ "eds." } + +FUNCTION {bbl.editor} +%{ "editor" } +%{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +%{ "edition" } +%{ "edn." } + +FUNCTION {bbl.volume} +%{ "volume" } +%{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +%{ "number" } +%{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +%{ "pages" } +%{ "pp." } + +FUNCTION {bbl.page} +%{ "page" } +%{ "p." } + +FUNCTION {bbl.chapter} +%{ "chapter" } +%{ "chap." } + +FUNCTION {bbl.techrep} +%{ "Technical Report" } +%{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +%{ "First" } +%{ "1st" } + +FUNCTION {bbl.second} +%{ "Second" } +%{ "2nd" } + +FUNCTION {bbl.third} +%{ "Third" } +%{ "3rd" } + +FUNCTION {bbl.fourth} +%{ "Fourth" } +%{ "4th" } + +FUNCTION {bbl.fifth} +%{ "Fifth" } +%{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +% \end{macrocode} +% This function adds English endings for ordinals 1, 2, 3. However, if +% the second last digit is 1, then the ending is `th' for all last digits. +% So far, all other languages included do not have this problem, and it is +% sufficient to add the \textsl{th} equivalent. This might change with further +% languages. +% +% \begin{macrocode} +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +%<*!abr> +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +% +%<*abr> +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +% +% + % End of language definition file + +% \end{macrocode} +% \Finale diff --git a/biblio/bibtex/contrib/oxford/lang/esperant.mbs b/biblio/bibtex/contrib/oxford/lang/esperant.mbs new file mode 100644 index 0000000000..7405e94011 --- /dev/null +++ b/biblio/bibtex/contrib/oxford/lang/esperant.mbs @@ -0,0 +1,292 @@ +%\iffalse THIS IS A META COMMENT +%==================================================================== +% A Language Definition File: ESPERANTO +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% + %------------------------------------------------------------------- + % The original source file contains the following version information: +%\fi + % \ProvidesFile{esperant.mbs}[1995/05/04 1.1 (PWD)] +%\iffalse +%------------------------------------------------------------------- +% NOTICE: +% This file may be used for non-profit purposes. +% It may not be distributed in exchange for money, +% other than distribution costs. +% +% The author provides it `as is' and does not guarantee it in any way. +% + % Copyright (C) 1994, 1995 Patrick W. Daly +% Max-Planck-Institut f\"ur Aeronomie +% Postfach 20 +% D-37189 Katlenburg-Lindau +% Germany +% +% E-mail: daly@linmpi.mpae.gwdg.de + %------------------------------------------------------------------- +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{esperant.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \changes{1.0}{1995 Mar 15}{Initial version} +% \changes{1.1}{1995 May 4}{Do no abbreviate `edited by'} +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{Esperanto Bibliographies} +% +% \title{{\bfseries Esperanto Language Definition File}\\ +% for master bibliographic style files} +% +% \author{Patrick W. Daly} +% +% \GetFileInfo{esperant.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% This file is to be used as a language definition file with master +% bibliographic files. The language it defines is +% \begin{quote}\bfseries Esperanto\end{quote} +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains language support via +% external definition files. +% +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information or the documentation driver. +% +% \begin{macrocode} +%<*options> +\mes{^^JOptions for ESPERANTO} +\wr{\spsp\spsp\sep esperanto\pc: Esperanto language} + +\mes{^^JABBREVIATE WORD `PAGES':} +\optdef{*}{}{`Page(s)'}{(no abbreviation)} +\optdef{a}{pp}{`Page' abbreviated}{as p. or pp.} +\getans + +\mes{^^JABBREVIATE WORD `EDITORS':} +\optdef{*}{}{`Editor(s)'}{(no abbreviation)} +\optdef{a}{ed}{`Editor' abbreviated}{as ed. or eds.} +\getans + +\mes{^^JOTHER ABBREVIATIONS:} +\optdef{*}{}{No abbreviations}{of volume, edition, chapter, etc} +\optdef{a}{abr}{Abbreviations}{of such words} +\getans + +\mes{^^JEDITION NUMBERS:} +\optdef{*}{}{Write out editions}{as first, second, third, etc} +\optdef{n}{ord}{Numerical editions}{as 1st, 2nd, 3rd, etc} +\getans + +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options&!driver> + + % The language selected here is ESPERANTO +FUNCTION {bbl.and} +{ "kaj"} + +FUNCTION {bbl.editors} +%{ "redaktoroj" } +%{ "red-oj" } + +FUNCTION {bbl.editor} +%{ "redaktoro" } +%{ "red." } + +FUNCTION {bbl.edby} +{ "redaktita de" } + +FUNCTION {bbl.edition} +%{ "eldono" } +%{ "eld." } + +FUNCTION {bbl.volume} +%{ "volumo" } +%{ "vol." } + +FUNCTION {bbl.of} +{ "el" } + +FUNCTION {bbl.number} +%{ "numero" } +%{ "n-ro" } + +FUNCTION {bbl.nr} +{ "n-ro" } + +FUNCTION {bbl.in} +{ "en" } + +FUNCTION {bbl.pages} +%{ "pa\^goj" } +%{ "pp." } + +FUNCTION {bbl.page} +%{ "pa\^go" } +%{ "p\^g" } + +FUNCTION {bbl.chapter} +%{ "\^capitro" } +%{ "\^cap." } + +FUNCTION {bbl.techrep} +%{ "Teknica Raporto" } +%{ "Tek. Rap." } + +FUNCTION {bbl.mthesis} +{ "Magistra tezo" } + +FUNCTION {bbl.phdthesis} +{ "Doktora tezo" } + +FUNCTION {bbl.first} +%{ "Unua" } +%{ "1-a" } + +FUNCTION {bbl.second} +%{ "Dua" } +%{ "2-a" } + +FUNCTION {bbl.third} +%{ "Tria" } +%{ "3-a" } + +FUNCTION {bbl.fourth} +%{ "Kvara" } +%{ "4-a" } + +FUNCTION {bbl.fifth} +%{ "Kvina" } +%{ "5-a" } + +FUNCTION {bbl.th} +{ "-a" } + +%<*!abr> +MACRO {jan} {"januaro"} + +MACRO {feb} {"februaro"} + +MACRO {mar} {"marto"} + +MACRO {apr} {"aprilo"} + +MACRO {may} {"majo"} + +MACRO {jun} {"junio"} + +MACRO {jul} {"julio"} + +MACRO {aug} {"a\u{u}gusto"} + +MACRO {sep} {"septembro"} + +MACRO {oct} {"oktobro"} + +MACRO {nov} {"novembro"} + +MACRO {dec} {"decembro"} + +% +%<*abr> +MACRO {jan} {"jan."} + +MACRO {feb} {"feb."} + +MACRO {mar} {"mar."} + +MACRO {apr} {"apr."} + +MACRO {may} {"maj."} + +MACRO {jun} {"jun."} + +MACRO {jul} {"jul."} + +MACRO {aug} {"a\u{u}g."} + +MACRO {sep} {"sep."} + +MACRO {oct} {"okt."} + +MACRO {nov} {"nov."} + +MACRO {dec} {"dec."} + +% +% + % End of language definition file + +% \end{macrocode} +% \Finale diff --git a/biblio/bibtex/contrib/oxford/lang/finnish.mbs b/biblio/bibtex/contrib/oxford/lang/finnish.mbs new file mode 100644 index 0000000000..f7126310ab --- /dev/null +++ b/biblio/bibtex/contrib/oxford/lang/finnish.mbs @@ -0,0 +1,281 @@ +%\iffalse THIS IS A META COMMENT +%==================================================================== +% A Language Definition File: FINNISH +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% + %------------------------------------------------------------------- + % The original source file contains the following version information: +%\fi + % \ProvidesFile{finnish.mbs}[1995/10/25 1.2 (PWD)] +%\iffalse +%------------------------------------------------------------------- +% NOTICE: +% This file may be used for non-profit purposes. +% It may not be distributed in exchange for money, +% other than distribution costs. +% +% The author provides it `as is' and does not guarantee it in any way. +% + % Copyright (C) 1994, 1995 Patrick W. Daly +% Max-Planck-Institut f\"ur Aeronomie +% Postfach 20 +% D-37189 Katlenburg-Lindau +% Germany +% +% E-mail: daly@linmpi.mpae.gwdg.de + %------------------------------------------------------------------- +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{finnish.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \changes{1.0}{1995 Mar 15}{Initial version} +% \changes{1.1}{1995 May 4}{Do no abbreviate `edited by'} +% \changes{1.1a}{1995 May 11}{Correct \texttt{bbl.phdthesis}} +% \changes{1.2}{1995 Oct 25}{Remove \texttt{umlaut} option and \cs{qq}, +% replace with Raichle's trick} +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{Finnish Bibliographies} +% +% \title{{\bfseries Finnish Language Definition File}\\ +% for master bibliographic style files} +% +% \author{Patrick W. Daly} +% +% \GetFileInfo{finnish.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% This file is to be used as a language definition file with master +% bibliographic files. The language it defines is +% \begin{quote}\bfseries Finnish\end{quote} +% +% The translations for Finnish were supplied by +% \begin{quote}\ttfamily "Niilo.Siljamo@Helsinki.FI"\end{quote} + +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains language support via +% external definition files. +% +% Bernd Raichle points out that |\^^b| can be used in place of |\"| +% within \btx{} code. One can thus replace |Nelj\^^b{a}s| with |Nelj\^^b{a}s| +% and do away with the \texttt{umlaut} option. +% +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information or the documentation driver. +% +% \begin{macrocode} +%<*options> +\mes{^^JOptions for FINNISH} +\wr{\spsp\spsp\sep finnish\pc: Finnish language} + +\mes{^^JABBREVIATE WORD `SIVUT':} % `Pages' +\optdef{*}{}{`Sivu(t)'}{(no abbreviation)} +\optdef{a}{pp}{`Sivu' abbreviated}{as s. or ss.} +\getans + +\mes{^^JABBREVIATE WORD `TOIMITTAJAT':} % `Editors' +\optdef{*}{}{`Toimittaja(t)'}{(no abbreviation)} +\optdef{a}{ed}{`Toimittaja' abbreviated}{as toim.} +\getans + +\mes{^^JOTHER ABBREVIATIONS:} +\optdef{*}{}{No abbreviations}{of other words} +\optdef{a}{abr}{Abbreviations}{of such words} +\getans + +\mes{^^JEDITION NUMBERS:} +\optdef{*}{}{Write out editions}{as emsimm\string\"ainen, toinen, etc} +\optdef{n}{ord}{Numerical editions}{as 1., 2., etc} +\getans + +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options&!driver> + + % The language selected here is FINNISH +FUNCTION {bbl.and} +{ "ja"} + +FUNCTION {bbl.editors} +%{ "toimittajat" } +%{ "toim." } + +FUNCTION {bbl.editor} +%{ "toimittaja" } +%{ "toim." } + +FUNCTION {bbl.edby} +{ "toimittanut" } + +FUNCTION {bbl.edition} +%{ "painos" } +%{ "painos" } + +FUNCTION {bbl.volume} +{ "osa" } + +FUNCTION {bbl.of} +{ "sarjasta" } + +FUNCTION {bbl.number} +%{ "numero" } +%{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "teoksessa" } + +FUNCTION {bbl.pages} +%{ "sivut" } +%{ "ss." } + +FUNCTION {bbl.page} +%{ "sivu" } +%{ "s." } + +FUNCTION {bbl.chapter} +{ "luku" } + +FUNCTION {bbl.techrep} +%{ "Tekninen Raportti" } +%{ "Tekn. Rap." } + +FUNCTION {bbl.mthesis} +{ "pro gradu" } + +FUNCTION {bbl.phdthesis} +{ "v\^^b{a}it\^^b{o}skirja" } + +FUNCTION {bbl.first} +%{ "Ensimm\^^b{a}inen" } +%{ "1." } + +FUNCTION {bbl.second} +%{ "Toinen" } +%{ "2." } + +FUNCTION {bbl.third} +%{ "Kolmas" } +%{ "3." } + +FUNCTION {bbl.fourth} +%{ "Nelj\^^b{a}s" } +%{ "4." } + +FUNCTION {bbl.fifth} +%{ "Viides" } +%{ "5." } + +FUNCTION {bbl.st} +{ "." } + +FUNCTION {bbl.nd} +{ "." } + +FUNCTION {bbl.rd} +{ "." } + +FUNCTION {bbl.th} +{ "." } + +MACRO {jan} {"tammikuu"} + +MACRO {feb} {"helmikuu"} + +MACRO {mar} {"maaliskuu"} + +MACRO {apr} {"huhtikuu"} + +MACRO {may} {"toukokuu"} + +MACRO {jun} {"kes\^^b{a}kuu"} + +MACRO {jul} {"hein\^^b{a}kuu"} + +MACRO {aug} {"elokuu"} + +MACRO {sep} {"syyskuu"} + +MACRO {oct} {"lokakuu"} + +MACRO {nov} {"marraskuu"} + +MACRO {dec} {"joulukuu"} + +% + % End of language definition file + +% \end{macrocode} +% \Finale diff --git a/biblio/bibtex/contrib/oxford/lang/french.mbs b/biblio/bibtex/contrib/oxford/lang/french.mbs new file mode 100644 index 0000000000..616d69238e --- /dev/null +++ b/biblio/bibtex/contrib/oxford/lang/french.mbs @@ -0,0 +1,292 @@ +%\iffalse THIS IS A META COMMENT +%==================================================================== +% A Language Definition File: FRENCH +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% + %------------------------------------------------------------------- + % The original source file contains the following version information: +%\fi + % \ProvidesFile{french.mbs}[1995/05/04 1.1 (PWD)] +%\iffalse +%------------------------------------------------------------------- +% NOTICE: +% This file may be used for non-profit purposes. +% It may not be distributed in exchange for money, +% other than distribution costs. +% +% The author provides it `as is' and does not guarantee it in any way. +% + % Copyright (C) 1994, 1995 Patrick W. Daly +% Max-Planck-Institut f\"ur Aeronomie +% Postfach 20 +% D-37189 Katlenburg-Lindau +% Germany +% +% E-mail: daly@linmpi.mpae.gwdg.de + %------------------------------------------------------------------- +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{french.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \changes{1.0}{1995 Mar 15}{Initial version} +% \changes{1.1}{1995 May 4}{Do no abbreviate `edited by'} +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{French Bibliographies} +% +% \title{{\bfseries French Language Definition File}\\ +% for master bibliographic style files} +% +% \author{Patrick W. Daly} +% +% \GetFileInfo{french.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% This file is to be used as a language definition file with master +% bibliographic files. The language it defines is +% \begin{quote}\bfseries French\end{quote} +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains language support via +% external definition files. +% +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information or the documentation driver. +% +% \begin{macrocode} +%<*options> +\mes{^^JOptions for FRENCH} +\wr{\spsp\spsp\sep french\pc: French language} + +\mes{^^JABBREVIATE WORD `PAGES':} +\optdef{*}{}{`Page(s)'}{(no abbreviation)} +\optdef{a}{pp}{`Page' abbreviated}{as p. or pp.} +\getans + +\mes{^^JABBREVIATE WORD `REDAKTEUR':} +\optdef{*}{}{`R\string\'edakteur(s)'}{(no abbreviation)} +\optdef{a}{ed}{`R\string\'edakteur' abbreviated}{as R\string\'ed.} +\getans + +\mes{^^JOTHER ABBREVIATIONS:} +\optdef{*}{}{No abbreviations}{of Tome, \string\'edition, chapitre} +\optdef{a}{abr}{Abbreviations}{of such words} +\getans + +\mes{^^JEDITION NUMBERS:} +\optdef{*}{}{Write out editions}{as primi\string\`ere, deuxi\string\`eme,...} +\optdef{n}{ord}{Numerical editions}{as 1re, 2e, 3e, etc} +\getans + +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options&!driver> + + % The language selected here is FRENCH +FUNCTION {bbl.and} +{ "et"} + +FUNCTION {bbl.editors} +%{ "r\'edacteurs" } +%{ "r\'eds." } + +FUNCTION {bbl.editor} +%{ "r\'edacteur" } +%{ "r\'ed." } + +FUNCTION {bbl.edby} +{ "edit\'e par" } + +FUNCTION {bbl.edition} +%{ "\'edition" } +%{ "\'edn." } + +FUNCTION {bbl.volume} +%{ "tome" } +%{ "tm." } + +FUNCTION {bbl.of} +{ "de" } + +FUNCTION {bbl.number} +%{ "num\'ero" } +%{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "dans" } + +FUNCTION {bbl.pages} +%{ "pages" } +%{ "pp." } + +FUNCTION {bbl.page} +%{ "page" } +%{ "p." } + +FUNCTION {bbl.chapter} +%{ "chapitre" } +%{ "chap." } + +FUNCTION {bbl.techrep} +%{ "Rapport technique" } +%{ "Rap. tech." } + +FUNCTION {bbl.mthesis} +{ "Th\`ese de ma\^itre" } + +FUNCTION {bbl.phdthesis} +{ "Th\`ese de doctorat" } + +FUNCTION {bbl.first} +%{ "Premi\`ere" } +%{ "1$^{\mbox{\scriptsize re}}$" } + +FUNCTION {bbl.second} +%{ "Deuxi\`eme" } +%{ "2$^{\mbox{\scriptsize e}}$" } + +FUNCTION {bbl.third} +%{ "Troisi\`eme" } +%{ "3$^{\mbox{\scriptsize e}}$" } + +FUNCTION {bbl.fourth} +%{ "Quatri\`eme" } +%{ "4$^{\mbox{\scriptsize e}}$" } + +FUNCTION {bbl.fifth} +%{ "Cinqui\`eme" } +%{ "5$^{\mbox{\scriptsize e}}$" } + +FUNCTION {bbl.th} +{ "$^{\mbox{\scriptsize e}}$" } + +%<*!abr> +MACRO {jan} {"janvier"} + +MACRO {feb} {"f\'evrier"} + +MACRO {mar} {"mars"} + +MACRO {apr} {"avril"} + +MACRO {may} {"mai"} + +MACRO {jun} {"juin"} + +MACRO {jul} {"juillet"} + +MACRO {aug} {"ao\^ut"} + +MACRO {sep} {"septembre"} + +MACRO {oct} {"octobre"} + +MACRO {nov} {"novembre"} + +MACRO {dec} {"d\'ecembre"} + +% +%<*abr> +MACRO {jan} {"jan."} + +MACRO {feb} {"f\'ev."} + +MACRO {mar} {"mars"} + +MACRO {apr} {"avr."} + +MACRO {may} {"mai"} + +MACRO {jun} {"juin"} + +MACRO {jul} {"juil."} + +MACRO {aug} {"ao\^ut"} + +MACRO {sep} {"sept."} + +MACRO {oct} {"oct."} + +MACRO {nov} {"nov."} + +MACRO {dec} {"d\'ec."} + +% +% + % End of language definition file + +% \end{macrocode} +% \Finale diff --git a/biblio/bibtex/contrib/oxford/lang/german.mbs b/biblio/bibtex/contrib/oxford/lang/german.mbs new file mode 100644 index 0000000000..0e7ef4c328 --- /dev/null +++ b/biblio/bibtex/contrib/oxford/lang/german.mbs @@ -0,0 +1,317 @@ +%\iffalse THIS IS A META COMMENT +%==================================================================== +% A Language Definition File: GERMAN +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% +%\fi + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{german.mbs}[1995/11/02 1.5 (PWD)] +%\iffalse +%------------------------------------------------------------------- +% NOTICE: +% This file may be used for non-profit purposes. +% It may not be distributed in exchange for money, +% other than distribution costs. +% +% The author provides it `as is' and does not guarantee it in any way. +% + % Copyright (C) 1994, 1995 Patrick W. Daly +% Max-Planck-Institut f\"ur Aeronomie +% Postfach 20 +% D-37189 Katlenburg-Lindau +% Germany +% +% E-mail: daly@linmpi.mpae.gwdg.de + %------------------------------------------------------------------- +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{german.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \changes{1.0}{1995 Mar 15}{Initial version} +% \changes{1.1}{1995 May 4}{Do no abbreviate `edited by'} +% \changes{1.2}{1995 Jun 7}{Revisions suggested by Sven Hartrumpf} +% \changes{1.3}{1995 Aug 2}{Revisions suggested by Gerd Neugebauer, +% dissertation option, `Techn. Ber.'} +% \changes{1.3}{1995 Aug 2}{Techn. Ber. in braces to preserve case} +% \changes{1.3a}{1995 Aug 3}{Herausgeber abbreviated as Hg, sing and plural} +% \changes{1.4}{1995 Oct 25}{Remove \texttt{umlaut} option and \cs{qq}, +% replace with Raichle's trick} +% \changes{1.5}{1995 Nov 2}{Some bugs removed} +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{German Bibliographies} +% +% \title{{\bfseries German Language Definition File}\\ +% for master bibliographic style files} +% +% \author{Patrick W. Daly} +% +% \GetFileInfo{german.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% This file is to be used as a language definition file with master +% bibliographic files. The language it defines is +% \begin{quote}\bfseries German\end{quote} +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains language support via +% external definition files. +% +% See the documentation for \texttt{makebst} for formatting details. +% +% Some improvements to the translations have been contributed by +% Sven Hartrumpf of the Universit\"at Koblenz-Landau. +% +% Bernd Raichle points out that |\^^b| can be used in place of |\"| +% within \btx{} code. One can thus replace |M\qq{a}rz| with |M\^^b arz| +% and do away with the \texttt{umlaut} option. +% +% Some bugs have been removed on the advice of Gerd Neugebauer, Universit\"at +% Koblenz. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information or the documentation driver. +% +% \begin{macrocode} +%<*options> +\mes{^^JOptions for GERMAN} +\wr{\spsp\spsp\sep german\pc: German language} + + +\mes{^^JABBREVIATE WORD `SEITEN':} +\optdef{*}{}{`Seite(n)'}{(no abbreviation)} +\optdef{a}{pp}{`Seite' abbreviated}{as S.} +\getans + +\mes{^^JABBREVIATE WORD `HERAUSGEBER':} +\optdef{*}{}{`Herausgeber'}{(no abbreviation)} +\optdef{a}{ed}{`Herausgeber' abbreviated}{as Hg.} +\getans + +\mes{^^JOTHER ABBREVIATIONS:} +\optdef{*}{}{No abbreviations}{of Band, Auflage, Kapitel} +\optdef{a}{abr}{Abbreviations}{of such words} +\getans + +\mes{^^JEDITION NUMBERS:} +\optdef{*}{}{Write out editions}{as erste, zweite, dritte, etc} +\optdef{n}{ord}{Numerical editions}{as 1., 2., 3., etc} +\getans + +\mes{^^JALTERNATIVE FOR PHD THESIS:} +\optdef{*}{ger-phd}{PhD as `Doktorarbeit}{} +\optdef{d}{}{PhD as `Dissertation'}{} +\getans + +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options&!driver> + + % The language selected here is GERMAN +FUNCTION {bbl.and} +{ "und"} + +FUNCTION {bbl.editors} +%{ "Herausgeber" } +%{ "Hg." } + +FUNCTION {bbl.editor} +%{ "Herausgeber" } +%{ "Hg." } + +FUNCTION {bbl.edby} +{ "herausgegeben von" } + +FUNCTION {bbl.edition} +%{ "Auf\/lage" } +%{ "Aufl." } + +FUNCTION {bbl.volume} +%{ "Band" } +%{ "Bd." } + +FUNCTION {bbl.of} +{ "von" } + +FUNCTION {bbl.number} +%{ "Nummer" } +%{ "Nr." } + +FUNCTION {bbl.nr} +{ "Nr." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +%{ "Seiten" } +%{ "S." } + +FUNCTION {bbl.page} +%{ "Seite" } +%{ "S." } + +FUNCTION {bbl.chapter} +%{ "Kapitel" } +%{ "Kap." } + +FUNCTION {bbl.techrep} +%{ "{Technischer Bericht}" } +%{ "{Techn.\ Ber.}" } + +FUNCTION {bbl.mthesis} +{ "Diplomarbeit" } + +FUNCTION {bbl.phdthesis} +%{ "Doktorarbeit" } +%{ "Dissertation" } + +FUNCTION {bbl.first} +%{ "Erste" } +%{ "1." } + +FUNCTION {bbl.second} +%{ "Zweite" } +%{ "2." } + +FUNCTION {bbl.third} +%{ "Dritte" } +%{ "3." } + +FUNCTION {bbl.fourth} +%{ "Vierte" } +%{ "4." } + +FUNCTION {bbl.fifth} +%{ "F\^^b{u}nfte" } +%{ "5." } + +FUNCTION {bbl.th} +{ "." } + +%<*!abr> +MACRO {jan} {"Januar"} + +MACRO {feb} {"Februar"} + +MACRO {mar} {"M\^^b{a}rz"} + +MACRO {apr} {"April"} + +MACRO {may} {"Mai"} + +MACRO {jun} {"Juni"} + +MACRO {jul} {"Juli"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"Oktober"} + +MACRO {nov} {"November"} + +MACRO {dec} {"Dezember"} + +% +%<*abr> +MACRO {jan} {"Jan."} + +MACRO {feb} {"Febr."} + +MACRO {mar} {"M\^^b{a}rz"} + +MACRO {apr} {"Apr."} + +MACRO {may} {"Mai"} + +MACRO {jun} {"Juni"} + +MACRO {jul} {"Juli"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Okt."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dez."} + +% +% + % End of language definition file + +% \end{macrocode} +% \Finale diff --git a/biblio/bibtex/contrib/oxford/lang/italian.mbs b/biblio/bibtex/contrib/oxford/lang/italian.mbs new file mode 100644 index 0000000000..1081cfa8b2 --- /dev/null +++ b/biblio/bibtex/contrib/oxford/lang/italian.mbs @@ -0,0 +1,297 @@ +%\iffalse THIS IS A META COMMENT +%==================================================================== +% A Language Definition File: ITALIAN +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% + %------------------------------------------------------------------- + % The original source file contains the following version information: +%\fi + % \ProvidesFile{italian.mbs}[1995/07/20 1.0 (GP)] +%\iffalse +%------------------------------------------------------------------- +% NOTICE: +% This file may be used for non-profit purposes. +% It may not be distributed in exchange for money, +% other than distribution costs. +% +% The author provides it `as is' and does not guarantee it in any way. +% +% Original (and REAL) author: +%% Copyright (C) 1994, 1995 Patrick W. Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Postfach 20 +%% D-37189 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpae.gwdg.de +% +% This file hacked by +% Giovanni Pensa (pensa@dsi.unimi.it) +% iTeXnici, (Unofficial) Italian TeX User Group +% http://www.dsi.unimi.it/Users/Students/pensa/tex/uitug.html +% todo: abbrevs, ordinal (m/f?), edizione/curatori, pag./p. +%------------------------------------------------------------------- +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{italian.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \changes{0.1}{1995 Sep 20}{Initial version} +% +% \pagestyle{myheadings} +% \markboth{Giovanni Pensa}{Italian Bibliographies} +% +% \title{{\bfseries Italian Language Definition File}\\ +% for master bibliographic style files} +% +% \author{Patrick W. Daly \and Giovanni Pensa} +% +% \GetFileInfo{italian.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% This file is to be used as a language definition file with master +% bibliographic files. The language it defines is +% \begin{quote}\bfseries Italian\end{quote} +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains language support via +% external definition files. +% +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information or the documentation driver. +% +% \begin{macrocode} +%<*options> +\mes{^^JOptions for ITALIAN} +\wr{\spsp\spsp\sep italian\pc: Italian language} + +\mes{^^JABBREVIATE WORD `PAGINE':} +\optdef{*}{}{`Pagina/e'}{(no abbreviation)} +\optdef{a}{pp}{`Pagina' abbreviated}{as pag.} +\getans + +\mes{^^JABBREVIATE WORD `CURATORI':} +\optdef{*}{}{`Curatore/i'}{(no abbreviation)} +\optdef{a}{ed}{`Curatore' abbreviated}{as cur.} +\getans + +\mes{^^JOTHER ABBREVIATIONS:} +\optdef{*}{}{No abbreviations}{of volume, edizione, capitolo, etc} +\optdef{a}{abr}{Abbreviations}{of such words} +\getans + +\mes{^^JEDITION NUMBERS:} +\optdef{*}{}{Write out editions}{as prima, seconda, terza, etc} +\optdef{n}{ord}{Numerical editions}{as 1a, 2a, 3a, etc} +\getans + +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options&!driver> + + % The language selected here is ITALIAN +FUNCTION {bbl.and} +{ "e" } + +FUNCTION {bbl.editors} +%{ "curatori" } +%{ "cur." } + +FUNCTION {bbl.editor} +%{ "curatore" } +%{ "cur." } + +FUNCTION {bbl.edby} +{ "curato da" } + +FUNCTION {bbl.edition} +%{ "edizione" } +%{ "ed." } + +FUNCTION {bbl.volume} +%{ "volume" } +%{ "vol." } + +FUNCTION {bbl.of} +{ "di" } + +FUNCTION {bbl.number} +%{ "numero" } +%{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +%{ "pagine" } +%{ "pp." } + +FUNCTION {bbl.page} +%{ "pagina" } +%{ "p." } + +FUNCTION {bbl.chapter} +%{ "capitolo" } +%{ "cap." } + +FUNCTION {bbl.techrep} +%{ "Rapporto Tecnico" } +%{ "Rap. Tecn." } + +FUNCTION {bbl.mthesis} +{ "Tesi di laurea" } + +FUNCTION {bbl.phdthesis} +{ "Tesi di dottorato" } + +FUNCTION {bbl.first} +%{ "Prima" } +%{ "1a" } + +FUNCTION {bbl.second} +%{ "Seconda" } +%{ "2a" } + +FUNCTION {bbl.third} +%{ "Terza" } +%{ "3a" } + +FUNCTION {bbl.fourth} +%{ "Quarta" } +%{ "4a" } + +FUNCTION {bbl.fifth} +%{ "Quinta" } +%{ "5a" } + +FUNCTION {bbl.th} +{ "a" } + +%<*!abr> +MACRO {jan} {"gennaio"} + +MACRO {feb} {"febbraio"} + +MACRO {mar} {"marzo"} + +MACRO {apr} {"aprile"} + +MACRO {may} {"maggio"} + +MACRO {jun} {"giugno"} + +MACRO {jul} {"luglio"} + +MACRO {aug} {"agosto"} + +MACRO {sep} {"settembre"} + +MACRO {oct} {"ottobre"} + +MACRO {nov} {"novembre"} + +MACRO {dec} {"dicembre"} + +% +%<*abr> +MACRO {jan} {"gen."} + +MACRO {feb} {"feb."} + +MACRO {mar} {"mar."} + +MACRO {apr} {"apr."} + +MACRO {may} {"mag"} + +MACRO {jun} {"giu."} + +MACRO {jul} {"lug."} + +MACRO {aug} {"ago."} + +MACRO {sep} {"set."} + +MACRO {oct} {"ott."} + +MACRO {nov} {"nov."} + +MACRO {dec} {"dic."} + +% +% + % End of language definition file + +% \end{macrocode} +% \Finale diff --git a/biblio/bibtex/contrib/oxford/lang/norsk.mbs b/biblio/bibtex/contrib/oxford/lang/norsk.mbs new file mode 100644 index 0000000000..d50cae9366 --- /dev/null +++ b/biblio/bibtex/contrib/oxford/lang/norsk.mbs @@ -0,0 +1,299 @@ +%\iffalse THIS IS A META COMMENT +%==================================================================== +% A Language Definition File: NORWEGIAN +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% + %------------------------------------------------------------------- + % The original source file contains the following version information: +%\fi + % \ProvidesFile{norsk.mbs}[1995/08/07 1.0 (RL/PWD)] +%\iffalse +%------------------------------------------------------------------- +% NOTICE: +% This file may be used for non-profit purposes. +% It may not be distributed in exchange for money, +% other than distribution costs. +% +% The author provides it `as is' and does not guarantee it in any way. +% +% This file is modelled on english.mbs version 1.1 1995/05/04 by +% Patrick W. Daly +% + % Copyright (C) 1995, Rolf Lindgren, OPERATOR +% Universitetes Senter for Informasjonsteknologi +% Pb 1059 Blindern +% 0316 OSLO +% +% E-mail: rolf.lindgren@usit.uio.no + %------------------------------------------------------------------- +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{norsk.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \markboth{Rolf Lindgren}{Norwegian bibliographies} +% +% \title{{\bfseries Norwegian Language Definition File}\\ +% for master bibliographic style files} +% +% \author{Rolf Lindgren} +% +% \GetFileInfo{norsk.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% This file is to be used as a language definition file with master +% bibliographic files. The language it defines is +% \begin{quote}\bfseries Norsk\end{quote} +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains language support via +% external definition files. +% +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information or the documentation driver. +% +% \begin{macrocode} +%<*options> +\mes{^^JOptions for NORSK} +\wr{\spsp\spsp\sep norsk\pc: Norwegian language} + +\mes{^^JABBREVIATE WORD `PAGES':} +\optdef{*}{}{`Sider(r)'}{(no abbreviation)} +\optdef{a}{pp}{`Side' abbreviated}{as s. or ss.} +\getans + +\mes{^^JABBREVIATE WORD `EDITORS':} +\optdef{*}{}{`Redakt{\string\o}r(er)'}{(no abbreviation)} +\optdef{a}{ed}{`Redakt{\string\o}r' abbreviated}{as red.} +\getans + +\mes{^^JOTHER ABBREVIATIONS:} +\optdef{*}{}{No abbreviations}{of bind, utgave, kapitel, osv.} +\optdef{a}{abr}{Abbreviations}{of such words} +\getans + +\mes{^^JEDITION NUMBERS:} +\optdef{*}{}{Write out editions}{as f{string\o}rste, annen, tredje, osv} +\optdef{n}{ord}{Numerical editions}{as 1., 2., 3., osv} +\getans + +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options&!driver> + + % The language selected here is NORSK + +FUNCTION {bbl.and} +{ "og"} + +FUNCTION {bbl.editors} +%{ "redakt{\o}rer" } +%{ "red." } + +FUNCTION {bbl.editor} +%{ "redakt{\o}r" } +%{ "red." } + +FUNCTION {bbl.edby} +{ "redigert av" } + +FUNCTION {bbl.edition} +%{ "utgave" } +%{ "utg." } + +FUNCTION {bbl.volume} +%{ "bind" } +%{ "bd." } + +FUNCTION {bbl.of} +{ "av" } + +FUNCTION {bbl.number} +%{ "nummer" } +%{ "nr." } + +FUNCTION {bbl.nr} +{ "nr." } + +FUNCTION {bbl.in} +{ "i" } + +FUNCTION {bbl.pages} +%{ "sider" } +%{ "ss." } + +FUNCTION {bbl.page} +%{ "side" } +%{ "s." } + +FUNCTION {bbl.chapter} +%{ "kapitel" } +%{ "kap." } + +FUNCTION {bbl.techrep} +%{ "Teknisk rapport" } +%{ "Tekn. rap." } + +FUNCTION {bbl.mthesis} +{ "Hovedoppgave" } + +FUNCTION {bbl.phdthesis} +{ "Doktorgradsavhandling" } + +FUNCTION {bbl.first} +%{ "F{\o}rste" } +%{ "1." } + +FUNCTION {bbl.second} +%{ "Annen" } +%{ "2." } + +FUNCTION {bbl.third} +%{ "Tredje" } +%{ "3." } + +FUNCTION {bbl.fourth} +%{ "Fjerde" } +%{ "4." } + +FUNCTION {bbl.fifth} +%{ "Femte" } +%{ "5." } + +FUNCTION {bbl.th} +{ "." } + +% \end{macrocode} +% This function adds English endings for ordinals 1, 2, 3. However, if +% the second last digit is 1, then the ending is `th' for all last digits. +% So far, all other languages included do not have this problem, and it is +% sufficient to add the \textsl{th} equivalent. This might change with further +% languages. +% +% \begin{macrocode} +%<*!abr> +MACRO {jan} {"Januar"} + +MACRO {feb} {"Februar"} + +MACRO {mar} {"Mars"} + +MACRO {apr} {"April"} + +MACRO {may} {"Mai"} + +MACRO {jun} {"Juni"} + +MACRO {jul} {"Juli"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"Oktober"} + +MACRO {nov} {"November"} + +MACRO {dec} {"Desember"} + +% +%<*abr> +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"Mai"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Des."} + +% +% + % End of language definition file + +% \end{macrocode} +% \Finale diff --git a/biblio/bibtex/contrib/oxford/lang/spanish.mbs b/biblio/bibtex/contrib/oxford/lang/spanish.mbs new file mode 100644 index 0000000000..4d7b9dd132 --- /dev/null +++ b/biblio/bibtex/contrib/oxford/lang/spanish.mbs @@ -0,0 +1,301 @@ +%\iffalse THIS IS A META COMMENT +%==================================================================== +% A Language Definition File: SPANISH +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% +%\fi + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{spanish.mbs}[1995/06/01 1.0 (PWD/TB)] +%\iffalse +%------------------------------------------------------------------- +% NOTICE: +% This file may be used for non-profit purposes. +% It may not be distributed in exchange for money, +% other than distribution costs. +% +% The author provides it `as is' and does not guarantee it in any way. +% + % Copyright (C) 1994, 1995 Patrick W. Daly +% Max-Planck-Institut f\"ur Aeronomie +% Postfach 20 +% D-37189 Katlenburg-Lindau +% Germany +% +% E-mail: daly@linmpi.mpae.gwdg.de +% + % Copyright (C) 1995 Tom\'as Bautista +% Divisi\'on de CAD del Centro de Microelectr\'onica Aplicada +% Campus Universitario de Tafira, pab.\ A +% E-35017 Las Palmas de Gran Canaria +% Canary Islands +% +% E-mail: bautista@cma.ulpgc.es + + + %------------------------------------------------------------------- +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{spanish.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \changes{1.0}{1995 June 01}{Initial version} +% +% \pagestyle{myheadings} +% \markboth{T. Bautista}{Spanish Bibliographies} +% +% \title{{\bfseries Spanish Language Definition File}\\ +% for master bibliographic style files} +% +% \author{Tom\'as Bautista} +% +% \GetFileInfo{spanish.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% This file is to be used as a language definition file with master +% bibliographic files. The language it defines is +% \begin{quote}\bfseries Spanish\end{quote} +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains language support via +% external definition files. +% +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information or the documentation driver. +% +% \begin{macrocode} +%<*options> +\mes{^^JOptions for SPANISH} +\wr{\spsp\spsp\sep spanish\pc: Spanish language} + + +\mes{^^JABBREVIATE WORD `PAGINAS':} +\optdef{*}{}{`P'agina(s)'}{(no abbreviation)} +\optdef{a}{pp}{`P'agina' abbreviated}{as p'ag.} +\getans + +\mes{^^JABBREVIATE WORD `EDITOR':} +\optdef{*}{}{`Editor(es)'}{(no abbreviation)} +\optdef{a}{ed}{`Editor' abbreviated}{as Ed.} +\getans + +\mes{^^JOTHER ABBREVIATIONS:} +\optdef{*}{}{No abbreviations}{of Tomo, \string Edici'on, \string Cap'itulo} +\optdef{a}{abr}{Abbreviations}{of such words} +\getans + +\mes{^^JEDITION NUMBERS:} +\optdef{*}{}{Write out editions}{as primera, segunda, tercera, etc} +\optdef{n}{ord}{Numerical editions}{as 1a, 2a, 3a, etc} +\getans + +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options&!driver> + + % The language selected here is SPANISH +FUNCTION {bbl.and} +{ "y"} + +FUNCTION {bbl.editors} +%{ "editores" } +%{ "eds." } + +FUNCTION {bbl.editor} +%{ "editor" } +%{ "ed." } + +FUNCTION {bbl.edby} +{ "editado por" } + +FUNCTION {bbl.edition} +%{ "edici\'on" } +%{ "ed\raise1ex\hbox{\underbar{\scriptsize \'on}}." } + +FUNCTION {bbl.volume} +{ "tomo" } + +FUNCTION {bbl.of} +{ "de" } + +FUNCTION {bbl.number} +%{ "n\'umero" } +%{ "n\raise1ex\hbox{\underbar{\scriptsize o}}" } + +FUNCTION {bbl.nr} +{ "n\raise1ex\hbox{\underbar{\scriptsize o}}" } + +FUNCTION {bbl.in} +{ "en" } + +FUNCTION {bbl.pages} +%{ "p\'aginas" } +%{ "p\'ags." } + +FUNCTION {bbl.page} +%{ "p\'agina" } +%{ "p\'ag." } + +FUNCTION {bbl.chapter} +%{ "cap\'{\i}tulo" } +%{ "cap." } + +FUNCTION {bbl.techrep} +%{ "Informe T\'ecnico" } +%{ "Inf.\ T\'ec." } + +FUNCTION {bbl.mthesis} +{ "Proyecto Fin de Carrera" } + +FUNCTION {bbl.phdthesis} +{ "Tesis Doctoral" } + +FUNCTION {bbl.first} +%{ "primera" } +%{ "1\raise1ex\hbox{\underbar{\scriptsize a}}" } + +FUNCTION {bbl.second} +%{ "segunda" } +%{ "2\raise1ex\hbox{\underbar{\scriptsize a}}" } + +FUNCTION {bbl.third} +%{ "tercera" } +%{ "3\raise1ex\hbox{\underbar{\scriptsize a}}" } + +FUNCTION {bbl.fourth} +%{ "cuarta" } +%{ "4\raise1ex\hbox{\underbar{\scriptsize a}}" } + +FUNCTION {bbl.fifth} +%{ "quinta" } +%{ "5\raise1ex\hbox{\underbar{\scriptsize a}}" } + +FUNCTION {bbl.th} +{ "\raise1ex\hbox{\underbar{\scriptsize a}}" } + +%<*!abr> +MACRO {jan} {"enero"} + +MACRO {feb} {"febrero"} + +MACRO {mar} {"marzo"} + +MACRO {apr} {"abril"} + +MACRO {may} {"mayo"} + +MACRO {jun} {"junio"} + +MACRO {jul} {"julio"} + +MACRO {aug} {"agosto"} + +MACRO {sep} {"septiembre"} + +MACRO {oct} {"octubre"} + +MACRO {nov} {"noviembre"} + +MACRO {dec} {"diciembre"} + +% +%<*abr> +MACRO {jan} {"ene."} + +MACRO {feb} {"feb."} + +MACRO {mar} {"mar."} + +MACRO {apr} {"abr."} + +MACRO {may} {"mayo"} + +MACRO {jun} {"jun."} + +MACRO {jul} {"jul."} + +MACRO {aug} {"ago."} + +MACRO {sep} {"sep."} + +MACRO {oct} {"oct."} + +MACRO {nov} {"nov."} + +MACRO {dec} {"dic."} + +% +% + % End of language definition file + +% \end{macrocode} +% \Finale diff --git a/biblio/bibtex/contrib/oxford/lang/svenska.mbs b/biblio/bibtex/contrib/oxford/lang/svenska.mbs new file mode 100644 index 0000000000..05684c199c --- /dev/null +++ b/biblio/bibtex/contrib/oxford/lang/svenska.mbs @@ -0,0 +1,297 @@ +%\iffalse THIS IS A META COMMENT +%==================================================================== +% A Language Definition File: SWEDISH +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% + %------------------------------------------------------------------- + % The original source file contains the following version information: +%\fi + % \ProvidesFile{svenska.mbs}[1995/08/07 1.0 (RL/PWD)] +%\iffalse +%------------------------------------------------------------------- +% NOTICE: +% This file may be used for non-profit purposes. +% It may not be distributed in exchange for money, +% other than distribution costs. +% +% The author provides it `as is' and does not guarantee it in any way. +% +% This file is modelled on english.mbs version 1.1 1995/05/04 by +% Patrick W. Daly +% + % Copyright (C) 1997, Peter Antman +% Forskningsassistent Centrum för välfärdsforskning +% +% E-mail: peter.antman@abc.se + %------------------------------------------------------------------- +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{svenska.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \markboth{Peter Antman}{Swedish bibliographies} +% +% \title{{\bfseries Swedish Language Definition File}\\ +% for master bibliographic style files} +% +% \author{Peter Antman} +% +% \GetFileInfo{svenska.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% This file is to be used as a language definition file with master +% bibliographic files. The language it defines is +% \begin{quote}\bfseries Svenska\end{quote} +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains language support via +% external definition files. +% +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information or the documentation driver. +% +% \begin{macrocode} +%<*options> +\mes{^^JOptions for SVENSKA} +\wr{\spsp\spsp\sep svenska\pc: SWEDISH language} + +\mes{^^JABBREVIATE WORD `PAGES':} +\optdef{*}{}{`Sidor(r)'}{(no abbreviation)} +\optdef{a}{pp}{`Sida' abbreviated}{as s. or ss.} +\getans + +\mes{^^JABBREVIATE WORD `EDITORS':} +\optdef{*}{}{`Redaktör(er)'}{(no abbreviation)} +\optdef{a}{ed}{`Redaktör' abbreviated}{as red.} +\getans + +\mes{^^JOTHER ABBREVIATIONS:} +\optdef{*}{}{No abbreviations}{of volym, utgåva, kapitel, osv.} +\optdef{a}{abr}{Abbreviations}{of such words} +\getans + +\mes{^^JEDITION NUMBERS:} +\optdef{*}{}{Write out editions}{as första, andra, tredje, osv} +\optdef{n}{ord}{Numerical editions}{as 1., 2., 3., osv} +\getans + +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options&!driver> + + % The language selected here is SVENSKA + +FUNCTION {bbl.and} +{ "och"} + +FUNCTION {bbl.editors} +%{ "redaktörer" } +%{ "red." } + +FUNCTION {bbl.editor} +%{ "redaktör" } +%{ "red." } + +FUNCTION {bbl.edby} +{ "redigerad av" } + +FUNCTION {bbl.edition} +%{ "utgåva" } +%{ "utg." } + +FUNCTION {bbl.volume} +%{ "volym" } +%{ "vol." } + +FUNCTION {bbl.of} +{ "av" } + +FUNCTION {bbl.number} +%{ "nummer" } +%{ "nr." } + +FUNCTION {bbl.nr} +{ "nr." } + +FUNCTION {bbl.in} +{ "i" } + +FUNCTION {bbl.pages} +%{ "sidor" } +%{ "ss." } + +FUNCTION {bbl.page} +%{ "sida" } +%{ "s." } + +FUNCTION {bbl.chapter} +%{ "kapitel" } +%{ "kap." } + +FUNCTION {bbl.techrep} +%{ "Teknisk rapport" } +%{ "Tekn. rap." } + +FUNCTION {bbl.mthesis} +{ "Licenciatavgandling" } + +FUNCTION {bbl.phdthesis} +{ "Doktorgradsavhandling" } + +FUNCTION {bbl.first} +%{ "Första" } +%{ "1." } + +FUNCTION {bbl.second} +%{ "Andra" } +%{ "2." } + +FUNCTION {bbl.third} +%{ "Tredje" } +%{ "3." } + +FUNCTION {bbl.fourth} +%{ "Fjärde" } +%{ "4." } + +FUNCTION {bbl.fifth} +%{ "Femte" } +%{ "5." } + +FUNCTION {bbl.th} +{ "." } + +% \end{macrocode} +% This function adds English endings for ordinals 1, 2, 3. However, if +% the second last digit is 1, then the ending is `th' for all last digits. +% So far, all other languages included do not have this problem, and it is +% sufficient to add the \textsl{th} equivalent. This might change with further +% languages. +% +% \begin{macrocode} +%<*!abr> +MACRO {jan} {"Januari"} + +MACRO {feb} {"Februari"} + +MACRO {mar} {"Mars"} + +MACRO {apr} {"April"} + +MACRO {may} {"Maj"} + +MACRO {jun} {"Juni"} + +MACRO {jul} {"Juli"} + +MACRO {aug} {"Augusti"} + +MACRO {sep} {"September"} + +MACRO {oct} {"Oktober"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +% +%<*abr> +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"Maj"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +% +% + % End of language definition file + +% \end{macrocode} +% \Finale diff --git a/biblio/bibtex/contrib/oxford/oxford.sty b/biblio/bibtex/contrib/oxford/oxford.sty new file mode 100644 index 0000000000..2df98cd845 --- /dev/null +++ b/biblio/bibtex/contrib/oxford/oxford.sty @@ -0,0 +1,303 @@ +%% oxford.sty - oxford bibliography style Version 0.1 +%% Author: Peter Antman peter.antman@abc.se +%% Changes Copyright: Peter Antman, 1997 +%% +%% Based on: +%% harvard.sty - harvard bibliography style Version 2.0.5 +%% Author: Peter Williams peterw@archsci.arch.su.edu.au +%% Copyright: Peter Williams 1994 +%% +%% This is the oxford style support. It has to be run together +%% whith style oxford_xx.bbs, where xx stands for the language code +%% (se acompanying README). A new entry in the bib-file is supported +%% in the stylefile, namely stitle. This is a short title to be +%% used in the abbr citations, when a title is nedded. +%% +%% Currrently is only the \cite command supported, and only in +%% abbrevation mode. You should not use parathesis mode. +%% the best is to use this command in the tex-file: +%% \usepackage[default, none]{oxford} +%% and as bibcommand: +%% \bibliographystyle{oxford_xx} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{oxford} +\RequirePackage{ifthen} +\IfFileExists{html.sty}{\RequirePackage{html} +\newcommand{\harvardurl}[1]{\htmladdnormallink*{\textbf{URL:} \textit{##1}}{##1}} +}{ +\newcommand{\harvardurl}[1]{\textbf{URL:} \textit{##1}} +} +\DeclareOption{full}{\citationmode{full}} +\DeclareOption{abbr}{\citationmode{abbr}} +\DeclareOption{default}{\citationmode{default}} +\DeclareOption{agsmcite}{\citationstyle{agsm}} +\DeclareOption{dcucite}{\citationstyle{dcu}} +\DeclareOption{round}{\harvardparenthesis{round}\harvardyearparenthesis{round}} +\DeclareOption{curly}{\harvardparenthesis{curly}\harvardyearparenthesis{curly}} +\DeclareOption{angle}{\harvardparenthesis{angle}\harvardyearparenthesis{angle}} +\DeclareOption{square}{\harvardparenthesis{square}\harvardyearparenthesis{square}} +\DeclareOption{none}{\harvardparenthesis{none}\harvardyearparenthesis{none}} +\DeclareOption*{ + \global\edef\HAR@tmp{\CurrentOption} +%% Berwin A. Turlach + \AtEndDocument{\bibliographystyle{\HAR@tmp}} +} + +%% Kristoffer H. Rose 1995/03/01: +%% do not expand macros in citations: put definitions on .aux file instead. +{\catcode`\:=12 \catcode`\-=12 \catcode`\>=12 \catcode`\<=12 % + \gdef\codeof#1{\expandafter\codeof@\meaning#1<-:}% + \gdef\codeof@#1:->#2<-:{#2}} + +\def\harvardpreambletext{\catcode`\#=12 \harvardpreambletext@} +\def\harvardpreambletext@#1{\def\next{#1}\catcode`\#=6 % + \immediate\write\@auxout{\string\harvardpreambledefs{% + \string\AtBeginDocument{\codeof\next}}}} + +\def\harvardpreambledefs#1{#1\gdef\harvardpreambledefs##1{}} + +\newcommand{\harvarditem}[4][\null]{\item[]% +\if@filesw{ \def\protect##1{\string ##1\space}% +\ifthenelse{\equal{#1}{\null}} + {\def\next{{#4}{#2}{#2}{#3}}} + {\def\next{{#4}{#2}{#1}{#3}}} +\immediate\write\@auxout{\string\harvardcite\codeof\next}% +}\fi% +\protect\hspace*{-\labelwidth}\protect\hspace*{-\labelsep}\ignorespaces% +} + +\newcommand{\harvardcite}[4]{ + \global\@namedef{HAR@fn@#1}{#2} + \global\@namedef{HAR@an@#1}{#3} + \global\@namedef{HAR@yr@#1}{#4} + \global\@namedef{HAR@df@#1}{\csname HAR@fn@#1\endcsname} +} + +\newcommand{\citationmode}[1]{ + \renewcommand{\HAR@citemode}{\csname HAR@cite@#1\endcsname} +} + +\newcommand{\HAR@cite@full}{HAR@fn@} +\newcommand{\HAR@cite@abbr}{HAR@an@} +\newcommand{\HAR@cite@default}{HAR@df@} +\newcommand{\HAR@citemode}{\HAR@cite@default} + +\newcommand{\HAR@citetoaux}[1]{% + \if@filesw\immediate\write\@auxout{\string\citation{#1}}\fi% +} + +\newcommand{\HAR@checkdef}[2]{\@ifundefined{HAR@df@#1}% + {\textbf{?}\@warning{Citation '#1' on page \thepage \space undefined}}% + {#2}% +} + +% By Peter Antman, 1997, command changed, year excluded and +% the blank sep betweb author and year removed +\newcommand{\HAR@dolist}[2]{\def\@citea{\null}\@for\@citeb:=#1\do% +{\@citea\def\@citea{\HAR@hisep\penalty\@m\ }\HAR@checkdef{\@citeb}% +%{#2{@citeb} % +{#2{\@citeb}\HAR@hysep\penalty\@m% +%\HAR@year{\@citeb}\HAR@setd{\@citeb}}}% +\HAR@setd{\@citeb}}}% +} + +% added by Peter Antman to support ibid. +\global\@namedef{HAR@lastname}{} + +\def\@enamedef#1{\expandafter\def\csname #1\expandafter\endcsname\expandafter} +\newcommand{\HAR@name}[1]{\csname \HAR@citemode#1\endcsname} +\newcommand{\HAR@fname}[1]{\csname HAR@fn@#1\endcsname} +\newcommand{\HAR@aname}[1]{\csname HAR@an@#1\endcsname} +\newcommand{\HAR@year}[1]{\csname HAR@yr@#1\endcsname} +\newcommand{\HAR@setd}[1]{% +\global\@enamedef{HAR@df@#1}{\csname HAR@an@#1\endcsname}% +% added by Peter Antman +\global\@enamedef{HAR@lastname}{#1}% +} + +%% Berwin A. Turlach +\global\@namedef{HAR@df@*}{\csname HAR@fn@*\endcsname} +\renewcommand{\nocite}[1]{\HAR@citetoaux{#1}% +\@for\@citeb:=#1\do% +{\HAR@checkdef{\@citeb}{}}}% + +\renewcommand{\cite}{\@ifstar{\@ifstar{\HAR@acite}{\HAR@fcite}}{\HAR@dcite}} + +% dcite is changed to generate citations conforming to the oxford style +% this is currently the only working oxford cite-style. +\newcommand{\HAR@dcite}[2][\null]{\HAR@citetoaux{#2}% +\ifthenelse{\equal{#2}{\HAR@lastname}}% +{\HAR@ibid\HAR@hisep\penalty\@m\, #1}% +{\harvardleft\HAR@dolist{#2}{\HAR@name}\ifthenelse{\equal{#1}{\null}}% + {}{, #1}\harvardright}% +} + +\newcommand{\HAR@acite}[2][\null]{\HAR@citetoaux{#2}% +{\harvardleft\HAR@dolist{#2}{\HAR@aname}\ifthenelse{\equal{#1}{\null}}% + {}{, #1}\harvardright}% +} + +\newcommand{\HAR@fcite}[2][\null]{\HAR@citetoaux{#2}% +{\harvardleft\HAR@dolist{#2}{\HAR@fname}\ifthenelse{\equal{#1}{\null}}% + {}{, #1}\harvardright}% +} + +\newcommand{\citeaffixed}{\@ifstar{\@ifstar{\HAR@aciteaff}{\HAR@fciteaff}}% +{\HAR@dciteaff}% +} + +\newcommand{\HAR@fciteaff}[3][\null]{\HAR@citetoaux{#2}% +{\harvardleft#3\ \HAR@dolist{#2}{\HAR@fname}\ifthenelse{\equal{#1}{\null}}% + {}{, #1}\harvardright}% +} + +\newcommand{\HAR@aciteaff}[3][\null]{\HAR@citetoaux{#2}% +{\harvardleft#3\ \HAR@dolist{#2}{\HAR@aname}\ifthenelse{\equal{#1}{\null}}% + {}{, #1}\harvardright}% +} + +\newcommand{\HAR@dciteaff}[3][\null]{\HAR@citetoaux{#2}% +{\harvardleft#3\ \HAR@dolist{#2}{\HAR@name}\ifthenelse{\equal{#1}{\null}}% + {}{, #1}\harvardright}% +} + +\newcommand{\citeasnoun}{\@ifstar{\@ifstar{\HAR@aciteasn}{\HAR@fciteasn}}% +{\HAR@dciteasn}% +} + +\newcommand{\HAR@fciteasn}[2][\null]{\HAR@citetoaux{#2}\HAR@checkdef{#2}{% +{\HAR@fname{#2}\ \harvardyearleft\HAR@year{#2}\ifthenelse{\equal{#1}{\null}} + {}{, #1}\harvardyearright}\HAR@setd{#2}}% +} + +\newcommand{\HAR@aciteasn}[2][\null]{\HAR@citetoaux{#2}\HAR@checkdef{#2}{% +{\HAR@aname{#2}\ \harvardyearleft\HAR@year{#2}\ifthenelse{\equal{#1}{\null}} + {}{, #1}\harvardyearright}\HAR@setd{#2}}% +} + +\newcommand{\HAR@dciteasn}[2][\null]{\HAR@citetoaux{#2}\HAR@checkdef{#2}{% +{\HAR@name{#2}\ \harvardyearleft\HAR@year{#2}\ifthenelse{\equal{#1}{\null}} + {}{, #1}\harvardyearright}\HAR@setd{#2}}% +} + +\newcommand{\possessivecite}{\@ifstar{\@ifstar{\HAR@acitepos}{\HAR@fcitepos}}% +{\HAR@dcitepos}% +} + +\newcommand{\HAR@fcitepos}[2][\null]{\HAR@citetoaux{#2}\HAR@checkdef{#2}{% +{\HAR@fname{#2}'s \harvardyearleft\HAR@year{#2}\ifthenelse{\equal{#1}{\null}} + {}{, #1}\harvardyearright}\HAR@setd{#2}}% +} + +\newcommand{\HAR@acitepos}[2][\null]{\HAR@citetoaux{#2}\HAR@checkdef{#2}{% +{\HAR@aname{#2}'s \harvardyearleft\HAR@year{#2}\ifthenelse{\equal{#1}{\null}} + {}{, #1}\harvardyearright}\HAR@setd{#2}}% +} + +\newcommand{\HAR@dcitepos}[2][\null]{\HAR@citetoaux{#2}\HAR@checkdef{#2}{% +{\HAR@name{#2}'s \harvardyearleft\HAR@year{#2}\ifthenelse{\equal{#1}{\null}} + {}{, #1}\harvardyearright}\HAR@setd{#2}}% +} + +\newcommand{\citename}{\@ifstar{\@ifstar{\HAR@acitenam}\HAR@fcitenam}% +{\HAR@dcitenam}% +} + +\newcommand{\HAR@fcitenam}[2][\null]{\HAR@citetoaux{#2}\HAR@checkdef{#2}{% +{\HAR@fname{#2}\ifthenelse{\equal{#1}{\null}} + {}{\ \harvardleft#1\harvardright}}}% +} + +\newcommand{\HAR@acitenam}[2][\null]{\HAR@citetoaux{#2}\HAR@checkdef{#2}{% +{\HAR@aname{#2}\ifthenelse{\equal{#1}{\null}} + {}{\ \harvardleft#1\harvardright}}}% +} + +\newcommand{\HAR@dcitenam}[2][\null]{\HAR@citetoaux{#2}\HAR@checkdef{#2}{% +{\HAR@name{#2}\ifthenelse{\equal{#1}{\null}} + {}{\ \harvardleft#1\harvardright}}}% +} + +\newcommand{\citeyear}{\@ifstar{\HAR@citeyrnb}{\HAR@citeyr}} + +\newcommand{\HAR@citeyrnb}[2][\null]{\HAR@citetoaux{#2}% +{\def\@citea{\null}\@for\@citeb:=#2\do% +{\@citea\def\@citea{\HAR@hisep\penalty\@m\ }\HAR@checkdef{\@citeb}% +{\HAR@year{\@citeb}}}\ifthenelse{\equal{#1}{\null}}% +{}{, #1}}% +} + +\newcommand{\HAR@citeyr}[2][\null]{\HAR@citetoaux{#2}% +{\harvardleft\def\@citea{\null}\@for\@citeb:=#2\do% +{\@citea\def\@citea{\HAR@hisep\penalty\@m\ }\HAR@checkdef{\@citeb}% +{\HAR@year{\@citeb}}}\ifthenelse{\equal{#1}{\null}}% +{}{, #1}\harvardright}% +} + +% ibid added by Peter Antman +\newcommand{\HAR@ibid}{ibid.} +\newcommand{\HAR@hysep@apsr}{\null} +\newcommand{\HAR@hisep@apsr}{;} +\newcommand{\HAR@hysep@agsm}{\null} +\newcommand{\HAR@hisep@agsm}{,} +\newcommand{\HAR@hysep@dcu}{,} +\newcommand{\HAR@hisep@dcu}{;} +\newcommand{\HAR@and@agsm}{\&} +\newcommand{\HAR@and@dcu}{and} +\newcommand{\HAR@and@apsr}{and} +\newcommand{\HAR@hysep}{\HAR@hysep@agsm} +\newcommand{\HAR@hisep}{\HAR@hisep@agsm} +\newcommand{\harvardand}{\HAR@and@agsm} +\newcommand{\citationstyle}[1]{% + \renewcommand{\HAR@hysep}{\csname HAR@hysep@#1\endcsname} + \renewcommand{\HAR@hisep}{\csname HAR@hisep@#1\endcsname} + \renewcommand{\harvardand}{\csname HAR@and@#1\endcsname} +} + +\newcommand{\HAR@bl@round}{(} +\newcommand{\HAR@br@round}{)} +\newcommand{\HAR@bl@square}{[} +\newcommand{\HAR@br@square}{]} +\newcommand{\HAR@bl@curly}{\{} +\newcommand{\HAR@br@curly}{\}} +\newcommand{\HAR@bl@angle}{$<$} +\newcommand{\HAR@br@angle}{$>$} +\newcommand{\HAR@bl@none}{} +\newcommand{\HAR@br@none}{} +\newcommand{\harvardleft}{\HAR@bl@round} +\newcommand{\harvardright}{\HAR@br@round} +\newcommand{\harvardparenthesis}[1]{ + \renewcommand{\harvardleft}{\csname HAR@bl@#1\endcsname} + \renewcommand{\harvardright}{\csname HAR@br@#1\endcsname} + \harvardyearparenthesis{#1} +} + +\newcommand{\harvardyearleft}{\HAR@bl@round} +\newcommand{\harvardyearright}{\HAR@br@round} +\newcommand{\harvardyearparenthesis}[1]{ + \renewcommand{\harvardyearleft}{\csname HAR@bl@#1\endcsname} + \renewcommand{\harvardyearright}{\csname HAR@br@#1\endcsname} +} + +\newcommand{\HAR@checkcitations}[4]{ + \def\HAR@tempa{#2}\expandafter + \ifx \csname HAR@fn@#1\endcsname \HAR@tempa + \def\HAR@tempa{#3}\expandafter + \ifx \csname HAR@an@#1\endcsname \HAR@tempa + \def\HAR@tempa{#4}\expandafter + \ifx \csname HAR@yr@#1\endcsname \HAR@tempa + \else + \@tempswatrue + \fi + \else + \@tempswatrue + \fi + \else + \@tempswatrue + \fi +} + +\AtEndDocument{\renewcommand{\harvardcite}{\HAR@checkcitations}} + +\ExecuteOptions{agsm,agsmcite,default,round} +\ProcessOptions* diff --git a/biblio/bibtex/contrib/oxford/oxford_en.bst b/biblio/bibtex/contrib/oxford/oxford_en.bst new file mode 100644 index 0000000000..b586d121e8 --- /dev/null +++ b/biblio/bibtex/contrib/oxford/oxford_en.bst @@ -0,0 +1,1889 @@ +%% +%% This is file `oxford_se.bst', version 0.4 +%% It was first generated with the docstrip utility in custom-bib +%% and then heavily hacked by Peter Antman. +%% +%% This file must still bee considered beta. +%% +%% This version is for swedish citation, to get other languages to work +%% rename it and insert the right bbl.xxx funcions and MACROS from +%% the right mbd-file, availible with custom-bib. There are two new such +%% commands, bbl.lq (leftquote) and bbl.rq (rightquote). Here you give +%% your languages way of quoting titles. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% svenska.mbs (with options: `exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% merlin.mbs (with options: `tail,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% ---------------------------------------- +%% *** *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1996/12/16 3.82 (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994, 1995, 1996 Patrick W. Daly + % Copyright (C) 1997 Peter Antman, peter.antman@abc.se + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % + % This is an Oxford style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is oxford.sty by Peter Antman + % + % The form of the bibitem entries is + % \harvarditem[Jones, New thesis]{Howard Jones, FULL ENTRY}{1990}{key} + % Jones, Howard, FULL ENTRY + % + % The style gives the full reference att the first citation and then a + % abrevated one. + % + % The file suports an additional entry in the bib-file, stitle. It is + % for all but the first citation, when only lastname, and if there are + % more lastnames that are the same, title (and if there is a stitle that + % instead). + % + % oxford.sty also inserts an ibid. if the current citation is the same + % as the last one. + %--------------------------------------------------------------------- + % + % Hacked by Peter Antman to provide Oxford citation style. + % FIX: Year cite not correct everywhere ??? + % changes version 0.2: + % moved note in article + % editor and key right in short.ref + % changes version 0.3: + % fixed editors in cite, now orde Firstname Lastname + % removed ( and ) around ed. + % removed comma before nr. if volume empty + % removed comma before year in article, misc and unpub + % changes version 0.4 + % fixed ", " error produced in ouput.bibitem (thanks to + % Oren Patashnik for telling me how to do it) + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + stitle + title + type + URL + volume + year + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% BY Peter Antman, special function to get rid of comma before +% year in article, misc and unpub, se also output.check.special +FUNCTION {output.nonnull.special} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check.special} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.special + if$ +} + + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{english.mbs}[1995/05/04 1.1 (PWD)] + % Copyright (C) 1994, 1995 Patrick W. Dal + %------------------------------------------------------------------- + + % The language selected here is ENGLISH + +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis"} + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.th} +{ "th" } + +% BY Peter Antman, new functions bbl.lq bbl.rq +FUNCTION {bbl.lq} +{ "'" } + +FUNCTION {bbl.rq} +{ "'" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + % End of language definition file + +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"} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ format.names } + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { + author format.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { + editor format.names + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + bbl.lq swap$ * % BY Peter Antman, uses bbl.lq + non.stop + { bbl.rq * ", " * } % BY Peter Antman, uses bbl.rq + { bbl.rq * " " * } % PROBLEM: comma after title in book + if$ + } + if$ +} + +FUNCTION {end.quote.title} +{ title empty$ + 'skip$ + { before.all 'output.state := } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +% BY Peter Antman, function to format long cite +FUNCTION {format.firstname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff }{jj }{vv }{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% BY Peter Antman, function to format lastname +FUNCTION {format.lastname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll}{}{}{}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% By Peter Antman, to format eds as Firstname Lastname +FUNCTION {format.r.editors} +{ editor empty$ + { "" } + { + editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +% BY Peter Antman, editors in Firstname Lastname +FUNCTION {format.in.r.editors} +{ editor empty$ + { "" } + { editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.au} +{ author empty$ + { "" } + { + author format.firstname + } + if$ +} +FUNCTION {format.auth} +{ author empty$ + { editor empty$ + {author format.key} + {editor format.lastname} + if$ + } + { + author format.lastname + } + if$ +} + +% BY Peter Antman, the repeated +% should contain name if no other name of the same +% if more names of the same, then stitle +% if no stitle, then title +FUNCTION {short.ref} +{ +% format.auth +% ", " * +% extra.label write$ + extra.label "" = + { +% format.auth + short.list % PANIC this is a bad bypas of not having solved ed. + "" * extra.label + } + { stitle empty$ + { + format.auth + ", " * title + } + { + format.auth + ", " * stitle + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ +% short.ref duplicate$ label = + "" short.ref * "]" * write$ + pop$ "" + "{" write$ +% pop$ % ERROR, does the right thing but produces error + before.all 'output.state := +} + +FUNCTION {end.bibitem} +{ "}{" * write$ + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + extra.label * "}{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ +% extra.label * % BY Peter Antman, removed, not needed in Oxford + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + 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 multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +% BY Peter Antman, removed comma before bbl.nr if volume empty +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { bbl.volume "~" * swap$ * } + if$ + number empty$ + 'skip$ + { +% " " bbl.nr * number tie.or.space.connect * + volume empty$ + { " " bbl.nr * number tie.or.space.connect * } + { ", " bbl.nr * number tie.or.space.connect * } + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +% By Peter Antman, editors in Firstname Lastname order +FUNCTION {format.in.r.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.r.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + % "empty publisher in " cite$ * warning$ %dont like this warning + 'skip$ + 'skip$ + if$ + "" + add.blank "(" * + address empty$ + 'skip$ + { address * } + if$ + publisher empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + publisher * + } + if$ + year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + publisher empty$ address empty$ and + { * } + { ", " swap$ * * } + if$ + ")" * + output +} + +% BY Peter Antman, all types includes full ref +FUNCTION {article} +{ output.bibitem +% pop$ % to get rid of , + format.au "author" output.check % output instead of output check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ + end.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ +% note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.au output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + end.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ +% note output % note moved + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.au output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.au output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + end.bibitem + format.authors output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + fin.entry + write.url +} + +FUNCTION {phdthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.r.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " * "et~al." emphasize * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + ", " + * + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {calc.short.label} +{ calc.short.authors short.list + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "aaaaa" * } + { t sortify * } + if$ + } + { 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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num number.label } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {not.uniq.forw} +{ last.label short.list = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + short.list 'last.label := + } + if$ + number.label #1 + 'number.label := +% label write$ +} + +FUNCTION {not.uniq.rew} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.label := +} + +FUNCTION {forward.pass} +{ last.label 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 := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +% label write$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.label := +} + +EXECUTE {initialize.extra.label.stuff} + +%ITERATE {forward.pass} + +ITERATE {not.uniq.forw} + +REVERSE {not.uniq.rew} + +%REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := + calc.short.label +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ +% "\newcommand{\enquote}[1]{``#1''}" +% write$ newline$ +% "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" +% write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `svenska.bst'. diff --git a/biblio/bibtex/contrib/oxford/oxford_in.bst b/biblio/bibtex/contrib/oxford/oxford_in.bst new file mode 100644 index 0000000000..b586d121e8 --- /dev/null +++ b/biblio/bibtex/contrib/oxford/oxford_in.bst @@ -0,0 +1,1889 @@ +%% +%% This is file `oxford_se.bst', version 0.4 +%% It was first generated with the docstrip utility in custom-bib +%% and then heavily hacked by Peter Antman. +%% +%% This file must still bee considered beta. +%% +%% This version is for swedish citation, to get other languages to work +%% rename it and insert the right bbl.xxx funcions and MACROS from +%% the right mbd-file, availible with custom-bib. There are two new such +%% commands, bbl.lq (leftquote) and bbl.rq (rightquote). Here you give +%% your languages way of quoting titles. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% svenska.mbs (with options: `exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% merlin.mbs (with options: `tail,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% ---------------------------------------- +%% *** *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1996/12/16 3.82 (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994, 1995, 1996 Patrick W. Daly + % Copyright (C) 1997 Peter Antman, peter.antman@abc.se + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % + % This is an Oxford style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is oxford.sty by Peter Antman + % + % The form of the bibitem entries is + % \harvarditem[Jones, New thesis]{Howard Jones, FULL ENTRY}{1990}{key} + % Jones, Howard, FULL ENTRY + % + % The style gives the full reference att the first citation and then a + % abrevated one. + % + % The file suports an additional entry in the bib-file, stitle. It is + % for all but the first citation, when only lastname, and if there are + % more lastnames that are the same, title (and if there is a stitle that + % instead). + % + % oxford.sty also inserts an ibid. if the current citation is the same + % as the last one. + %--------------------------------------------------------------------- + % + % Hacked by Peter Antman to provide Oxford citation style. + % FIX: Year cite not correct everywhere ??? + % changes version 0.2: + % moved note in article + % editor and key right in short.ref + % changes version 0.3: + % fixed editors in cite, now orde Firstname Lastname + % removed ( and ) around ed. + % removed comma before nr. if volume empty + % removed comma before year in article, misc and unpub + % changes version 0.4 + % fixed ", " error produced in ouput.bibitem (thanks to + % Oren Patashnik for telling me how to do it) + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + stitle + title + type + URL + volume + year + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% BY Peter Antman, special function to get rid of comma before +% year in article, misc and unpub, se also output.check.special +FUNCTION {output.nonnull.special} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check.special} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.special + if$ +} + + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{english.mbs}[1995/05/04 1.1 (PWD)] + % Copyright (C) 1994, 1995 Patrick W. Dal + %------------------------------------------------------------------- + + % The language selected here is ENGLISH + +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis"} + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.th} +{ "th" } + +% BY Peter Antman, new functions bbl.lq bbl.rq +FUNCTION {bbl.lq} +{ "'" } + +FUNCTION {bbl.rq} +{ "'" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + % End of language definition file + +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"} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ format.names } + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { + author format.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { + editor format.names + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + bbl.lq swap$ * % BY Peter Antman, uses bbl.lq + non.stop + { bbl.rq * ", " * } % BY Peter Antman, uses bbl.rq + { bbl.rq * " " * } % PROBLEM: comma after title in book + if$ + } + if$ +} + +FUNCTION {end.quote.title} +{ title empty$ + 'skip$ + { before.all 'output.state := } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +% BY Peter Antman, function to format long cite +FUNCTION {format.firstname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff }{jj }{vv }{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% BY Peter Antman, function to format lastname +FUNCTION {format.lastname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll}{}{}{}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% By Peter Antman, to format eds as Firstname Lastname +FUNCTION {format.r.editors} +{ editor empty$ + { "" } + { + editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +% BY Peter Antman, editors in Firstname Lastname +FUNCTION {format.in.r.editors} +{ editor empty$ + { "" } + { editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.au} +{ author empty$ + { "" } + { + author format.firstname + } + if$ +} +FUNCTION {format.auth} +{ author empty$ + { editor empty$ + {author format.key} + {editor format.lastname} + if$ + } + { + author format.lastname + } + if$ +} + +% BY Peter Antman, the repeated +% should contain name if no other name of the same +% if more names of the same, then stitle +% if no stitle, then title +FUNCTION {short.ref} +{ +% format.auth +% ", " * +% extra.label write$ + extra.label "" = + { +% format.auth + short.list % PANIC this is a bad bypas of not having solved ed. + "" * extra.label + } + { stitle empty$ + { + format.auth + ", " * title + } + { + format.auth + ", " * stitle + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ +% short.ref duplicate$ label = + "" short.ref * "]" * write$ + pop$ "" + "{" write$ +% pop$ % ERROR, does the right thing but produces error + before.all 'output.state := +} + +FUNCTION {end.bibitem} +{ "}{" * write$ + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + extra.label * "}{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ +% extra.label * % BY Peter Antman, removed, not needed in Oxford + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + 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 multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +% BY Peter Antman, removed comma before bbl.nr if volume empty +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { bbl.volume "~" * swap$ * } + if$ + number empty$ + 'skip$ + { +% " " bbl.nr * number tie.or.space.connect * + volume empty$ + { " " bbl.nr * number tie.or.space.connect * } + { ", " bbl.nr * number tie.or.space.connect * } + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +% By Peter Antman, editors in Firstname Lastname order +FUNCTION {format.in.r.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.r.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + % "empty publisher in " cite$ * warning$ %dont like this warning + 'skip$ + 'skip$ + if$ + "" + add.blank "(" * + address empty$ + 'skip$ + { address * } + if$ + publisher empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + publisher * + } + if$ + year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + publisher empty$ address empty$ and + { * } + { ", " swap$ * * } + if$ + ")" * + output +} + +% BY Peter Antman, all types includes full ref +FUNCTION {article} +{ output.bibitem +% pop$ % to get rid of , + format.au "author" output.check % output instead of output check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ + end.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ +% note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.au output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + end.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ +% note output % note moved + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.au output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.au output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + end.bibitem + format.authors output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + fin.entry + write.url +} + +FUNCTION {phdthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.r.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " * "et~al." emphasize * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + ", " + * + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {calc.short.label} +{ calc.short.authors short.list + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "aaaaa" * } + { t sortify * } + if$ + } + { 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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num number.label } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {not.uniq.forw} +{ last.label short.list = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + short.list 'last.label := + } + if$ + number.label #1 + 'number.label := +% label write$ +} + +FUNCTION {not.uniq.rew} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.label := +} + +FUNCTION {forward.pass} +{ last.label 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 := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +% label write$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.label := +} + +EXECUTE {initialize.extra.label.stuff} + +%ITERATE {forward.pass} + +ITERATE {not.uniq.forw} + +REVERSE {not.uniq.rew} + +%REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := + calc.short.label +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ +% "\newcommand{\enquote}[1]{``#1''}" +% write$ newline$ +% "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" +% write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `svenska.bst'. diff --git a/biblio/bibtex/contrib/oxford/oxford_se.bst b/biblio/bibtex/contrib/oxford/oxford_se.bst new file mode 100644 index 0000000000..fcb3d408bc --- /dev/null +++ b/biblio/bibtex/contrib/oxford/oxford_se.bst @@ -0,0 +1,1890 @@ +%% +%% This is file `oxford_se.bst', version 0.4 +%% It was first generated with the docstrip utility in custom-bib +%% and then heavily hacked by Peter Antman. +%% +%% This file must still bee considered beta. +%% +%% This version is for swedish citation, to get other languages to work +%% rename it and insert the right bbl.xxx funcions and MACROS from +%% the right mbd-file, availible with custom-bib. There are two new such +%% commands, bbl.lq (leftquote) and bbl.rq (rightquote). Here you give +%% your languages way of quoting titles. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% svenska.mbs (with options: `exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% merlin.mbs (with options: `tail,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% ---------------------------------------- +%% *** *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1996/12/16 3.82 (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994, 1995, 1996 Patrick W. Daly + % Copyright (C) 1997 Peter Antman, peter.antman@abc.se + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % + % This is an Oxford style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is oxford.sty by Peter Antman + % + % The form of the bibitem entries is + % \harvarditem[Jones, New thesis]{Howard Jones, FULL ENTRY}{1990}{key} + % Jones, Howard, FULL ENTRY + % + % The style gives the full reference att the first citation and then a + % abrevated one. + % + % The file suports an additional entry in the bib-file, stitle. It is + % for all but the first citation, when only lastname, and if there are + % more lastnames that are the same, title (and if there is a stitle that + % instead). + % + % oxford.sty also inserts an ibid. if the current citation is the same + % as the last one. + %--------------------------------------------------------------------- + % + % Hacked by Peter Antman to provide Oxford citation style. + % FIX: Year cite not correct everywhere ??? + % changes version 0.2: + % moved note in article + % editor and key right in short.ref + % changes version 0.3: + % fixed editors in cite, now orde Firstname Lastname + % removed ( and ) around ed. + % removed comma before nr. if volume empty + % removed comma before year in article, misc and unpub + % changes version 0.4 + % fixed ", " error produced in ouput.bibitem (thanks to + % Oren Patashnik for telling me how to do it) + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + stitle + title + type + URL + volume + year + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% BY Peter Antman, special function to get rid of comma before +% year in article, misc and unpub, se also output.check.special +FUNCTION {output.nonnull.special} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check.special} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.special + if$ +} + + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{svenska.mbs}[1995/08/07 1.0 (RL/PWD)] + % Copyright (C) 1997, Peter Antman + %------------------------------------------------------------------- + + % The language selected here is SVENSKA + +FUNCTION {bbl.and} +{ "och"} + +FUNCTION {bbl.editors} +{ "red." } + +FUNCTION {bbl.editor} +{ "red." } + +FUNCTION {bbl.edby} +{ "redigerad av" } + +FUNCTION {bbl.edition} +{ "uppl." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "av" } + +FUNCTION {bbl.number} +{ "nr." } + +FUNCTION {bbl.nr} +{ "nr." } + +FUNCTION {bbl.in} +{ "i" } + +FUNCTION {bbl.pages} +{ "ss." } + +FUNCTION {bbl.page} +{ "s." } + +FUNCTION {bbl.chapter} +{ "kap." } + +FUNCTION {bbl.techrep} +{ "Tekn. rap." } + +FUNCTION {bbl.mthesis} +{ "Licenciatavgandling" } + +FUNCTION {bbl.phdthesis} +{ "Doktorgradsavhandling" } + +FUNCTION {bbl.first} +{ "F^^f6rsta" } + +FUNCTION {bbl.second} +{ "Andra" } + +FUNCTION {bbl.third} +{ "Tredje" } + +FUNCTION {bbl.fourth} +{ "Fj^^e4rde" } + +FUNCTION {bbl.fifth} +{ "Femte" } + +FUNCTION {bbl.th} +{ "." } + +% BY Peter Antman, new functions bbl.lq bbl.rq +FUNCTION {bbl.lq} +{ "''" } + +FUNCTION {bbl.rq} +{ "''" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"Maj"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + % End of language definition file + +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"} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ format.names } + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { + author format.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { + editor format.names + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + bbl.lq swap$ * % BY Peter Antman, uses bbl.lq + non.stop + { bbl.rq * ", " * } % BY Peter Antman, uses bbl.rq + { bbl.rq * " " * } % PROBLEM: comma after title in book + if$ + } + if$ +} + +FUNCTION {end.quote.title} +{ title empty$ + 'skip$ + { before.all 'output.state := } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +% BY Peter Antman, function to format long cite +FUNCTION {format.firstname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff }{jj }{vv }{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% BY Peter Antman, function to format lastname +FUNCTION {format.lastname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll}{}{}{}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% By Peter Antman, to format eds as Firstname Lastname +FUNCTION {format.r.editors} +{ editor empty$ + { "" } + { + editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +% BY Peter Antman, editors in Firstname Lastname +FUNCTION {format.in.r.editors} +{ editor empty$ + { "" } + { editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.au} +{ author empty$ + { "" } + { + author format.firstname + } + if$ +} +FUNCTION {format.auth} +{ author empty$ + { editor empty$ + {author format.key} + {editor format.lastname} + if$ + } + { + author format.lastname + } + if$ +} + +% BY Peter Antman, the repeated +% should contain name if no other name of the same +% if more names of the same, then stitle +% if no stitle, then title +FUNCTION {short.ref} +{ +% format.auth +% ", " * +% extra.label write$ + extra.label "" = + { +% format.auth + short.list % PANIC this is a bad bypas of not having solved ed. + "" * extra.label + } + { stitle empty$ + { + format.auth + ", " * title + } + { + format.auth + ", " * stitle + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ +% short.ref duplicate$ label = + "" short.ref * "]" * write$ + pop$ "" + "{" write$ +% pop$ % ERROR, does the right thing but produces error + before.all 'output.state := +} + +FUNCTION {end.bibitem} +{ "}{" * write$ + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + extra.label * "}{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ +% extra.label * % BY Peter Antman, removed, not needed in Oxford + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + 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 multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +% BY Peter Antman, removed comma before bbl.nr if volume empty +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { bbl.volume "~" * swap$ * } + if$ + number empty$ + 'skip$ + { +% " " bbl.nr * number tie.or.space.connect * + volume empty$ + { " " bbl.nr * number tie.or.space.connect * } + { ", " bbl.nr * number tie.or.space.connect * } + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +% By Peter Antman, editors in Firstname Lastname order +FUNCTION {format.in.r.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.r.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + % "empty publisher in " cite$ * warning$ %dont like this warning + 'skip$ + 'skip$ + if$ + "" + add.blank "(" * + address empty$ + 'skip$ + { address * } + if$ + publisher empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + publisher * + } + if$ + year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + publisher empty$ address empty$ and + { * } + { ", " swap$ * * } + if$ + ")" * + output +} + +% BY Peter Antman, all types includes full ref +FUNCTION {article} +{ output.bibitem +% pop$ % to get rid of , + format.au "author" output.check % output instead of output check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ + end.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ +% note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.au output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + end.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ +% note output % note moved + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.au output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.au output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + end.bibitem + format.authors output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + fin.entry + write.url +} + +FUNCTION {phdthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.r.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " * "et~al." emphasize * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + ", " + * + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {calc.short.label} +{ calc.short.authors short.list + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "aaaaa" * } + { t sortify * } + if$ + } + { 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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num number.label } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {not.uniq.forw} +{ last.label short.list = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + short.list 'last.label := + } + if$ + number.label #1 + 'number.label := +% label write$ +} + +FUNCTION {not.uniq.rew} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.label := +} + +FUNCTION {forward.pass} +{ last.label 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 := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +% label write$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.label := +} + +EXECUTE {initialize.extra.label.stuff} + +%ITERATE {forward.pass} + +ITERATE {not.uniq.forw} + +REVERSE {not.uniq.rew} + +%REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := + calc.short.label +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ +% "\newcommand{\enquote}[1]{``#1''}" +% write$ newline$ +% "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" +% write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `svenska.bst'. -- cgit v1.2.3