diff options
author | Karl Berry <karl@freefriends.org> | 2006-10-22 14:03:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-10-22 14:03:11 +0000 |
commit | 46deeb865b1c9bff5961d32ecdaf0d29d4d8c381 (patch) | |
tree | 8463bc8bd241fba301f6635995bd6b69a44d917f /Master/texmf-dist/bibtex/bst/directory | |
parent | fa612a71c254d52cd9cbd98b9596e6ea378b4200 (diff) |
birthday bibtex package update (2004)
git-svn-id: svn://tug.org/texlive/trunk@2366 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/directory')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/address-html.bst | 123 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/address-ldif.bst | 679 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/address-vcard.bst | 612 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/address.bst | 115 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/birthday.bst | 299 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/email-html.bst | 12 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/email.bst | 366 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/letter.bst | 103 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/phone.bst | 6 |
9 files changed, 2259 insertions, 56 deletions
diff --git a/Master/texmf-dist/bibtex/bst/directory/address-html.bst b/Master/texmf-dist/bibtex/bst/directory/address-html.bst index b2b49f34659..9f341527179 100644 --- a/Master/texmf-dist/bibtex/bst/directory/address-html.bst +++ b/Master/texmf-dist/bibtex/bst/directory/address-html.bst @@ -1,7 +1,7 @@ %% address-html.bst -%% Copyright 1999-2000 Christophe Geuzaine +%% Copyright 1998-2003 Christophe Geuzaine <geuz@geuz.org> % -% Last Mod by Christophe on Sun Aug 27 21:10:54 2000 +% $Id: address-html.bst,v 1.8 2004/02/07 23:41:45 geuzaine Exp $ % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License distributed from CTAN @@ -11,10 +11,6 @@ % BibTeX bibliography style `address-html.bst' % 'directory' database: all fields % -% Christophe.Geuzaine@advalvas.be -% -% Last modified 08/06/1999 -% % This is definitively a hack... % % The parts you may want to customize are labeled with "CUSTOM" @@ -32,21 +28,36 @@ ENTRY nickname birthday birthyear - address + address % if empty, use street, city, ... + street + city + state + zip + country phone cellular fax email url account - p.address + p.address % if empty, use p.street, p.city, ... + p.street + p.city + p.state + p.zip + p.country p.phone p.cellular p.fax p.email p.url p.account - r.address + r.address % if empty, use r.street, r.city, ... + r.street + r.city + r.state + r.zip + r.country r.phone r.cellular r.fax @@ -55,7 +66,12 @@ ENTRY r.account w.title w.name - w.address + w.address % if empty, use w.street, w.city, ... + w.street + w.city + w.state + w.zip + w.country w.phone w.cellular w.fax @@ -103,8 +119,8 @@ FUNCTION {init.strings} " and " 'and.str := " aka " 'nickname.str := "" 'address.str := - "Phn: " 'phone.str := - "GSM: " 'cellular.str := + "Tel: " 'phone.str := + "Mobile: " 'cellular.str := "Fax: " 'fax.str := "" 'email.str := "" 'url.str := @@ -253,9 +269,9 @@ FUNCTION {presort} % ------------------------------------------------------------ FUNCTION {begin.bib} -{ "<HTML><!-- This is a file generated by the LaTeX directory package -->" write$ +{ "<HTML>" write$ newline$ - "<TITLE>Address Book (generated by the LaTeX directory package)</TITLE>" write$ + "<TITLE>Address Book</TITLE>" write$ newline$ } @@ -263,7 +279,7 @@ FUNCTION {end.bib} { newline$ "<p><hr><center><font size=-1>This address book was generated by <A HREF= " write$ quote$ "http://www.geuz.org/directory/" * quote$ * write$ - " >directory</A>, version 1.15</center></HTML>" write$ + " >directory</A></center></HTML>" write$ newline$ } @@ -404,7 +420,19 @@ FUNCTION {format.birthday} FUNCTION {format.address} { address empty$ - { "" } + { + street empty$ city empty$ state empty$ zip empty$ country empty$ + and and and and + { "" } + { address.str + street empty$ { "" * } { street " " * * } if$ + city empty$ { "" * } { city " " * * } if$ + state empty$ { "" * } { state " " * * } if$ + zip empty$ { "" * } { zip " " * * } if$ + country empty$ { "" * } { country * } if$ + } + if$ + } { address.str address * } if$ } @@ -454,13 +482,18 @@ FUNCTION {format.url} FUNCTION {format.p.flag} { p.address empty$ not + p.street empty$ not + p.city empty$ not + p.state empty$ not + p.zip empty$ not + p.country empty$ not p.phone empty$ not p.cellular empty$ not p.fax empty$ not p.email empty$ not p.url empty$ not p.account empty$ not - or or or or or or + or or or or or or or or or or or { private.str } { "" } if$ @@ -468,7 +501,19 @@ FUNCTION {format.p.flag} FUNCTION {format.p.address} { p.address empty$ - { "" } + { + p.street empty$ p.city empty$ p.state empty$ p.zip empty$ p.country empty$ + and and and and + { "" } + { address.str + p.street empty$ { "" * } { p.street " " * * } if$ + p.city empty$ { "" * } { p.city " " * * } if$ + p.state empty$ { "" * } { p.state " " * * } if$ + p.zip empty$ { "" * } { p.zip " " * * } if$ + p.country empty$ { "" * } { p.country * } if$ + } + if$ + } { address.str p.address * } if$ } @@ -517,13 +562,18 @@ FUNCTION {format.p.account} FUNCTION {format.r.flag} { r.address empty$ not + r.street empty$ not + r.city empty$ not + r.state empty$ not + r.zip empty$ not + r.country empty$ not r.phone empty$ not r.cellular empty$ not r.fax empty$ not r.email empty$ not r.url empty$ not r.account empty$ not - or or or or or or + or or or or or or or or or or or { residence.str } { "" } if$ @@ -531,7 +581,19 @@ FUNCTION {format.r.flag} FUNCTION {format.r.address} { r.address empty$ - { "" } + { + r.street empty$ r.city empty$ r.state empty$ r.zip empty$ r.country empty$ + and and and and + { "" } + { address.str + r.street empty$ { "" * } { r.street " " * * } if$ + r.city empty$ { "" * } { r.city " " * * } if$ + r.state empty$ { "" * } { r.state " " * * } if$ + r.zip empty$ { "" * } { r.zip " " * * } if$ + r.country empty$ { "" * } { r.country * } if$ + } + if$ + } { address.str r.address * } if$ } @@ -582,13 +644,18 @@ FUNCTION {format.w.flag} { w.title empty$ not w.name empty$ not w.address empty$ not + w.street empty$ not + w.city empty$ not + w.state empty$ not + w.zip empty$ not + w.country empty$ not w.phone empty$ not w.cellular empty$ not w.fax empty$ not w.email empty$ not w.url empty$ not w.account empty$ not - or or or or or or or or + or or or or or or or or or or or or or { work.str } { "" } if$ @@ -610,7 +677,19 @@ FUNCTION {format.w.name} FUNCTION {format.w.address} { w.address empty$ - { "" } + { + w.street empty$ w.city empty$ w.state empty$ w.zip empty$ w.country empty$ + and and and and + { "" } + { address.str + w.street empty$ { "" * } { w.street " " * * } if$ + w.city empty$ { "" * } { w.city " " * * } if$ + w.state empty$ { "" * } { w.state " " * * } if$ + w.zip empty$ { "" * } { w.zip " " * * } if$ + w.country empty$ { "" * } { w.country * } if$ + } + if$ + } { address.str w.address * } if$ } diff --git a/Master/texmf-dist/bibtex/bst/directory/address-ldif.bst b/Master/texmf-dist/bibtex/bst/directory/address-ldif.bst new file mode 100644 index 00000000000..5d69f62df6d --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/address-ldif.bst @@ -0,0 +1,679 @@ +%% address-ldif.bst +%% Copyright 2003 Christophe Geuzaine <geuz@geuz.org> +% +% $Id: address-ldif.bst,v 1.7 2003/09/16 07:18:07 geuzaine Exp $ +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or (at your option) any later version. +% +% BibTeX bibliography style `address-ldif.bst' +% 'directory' database: all fields +% +% This is definitively a hack... To get a working ldif file if the bib +% file contains special characters (ISO Latin 1, etc.) you must +% convert the output bbl file to UTF8. You can do it e.g. with the +% following C code (found on the web, don't know who wrote it): +% +% /* Read Latin-1 (ISO-8859-1) characters from stdin, convert them +% to UTF-8, and write the converted characters to stdout. +% UTF-8 is defined by RFC 2044. +% */ +% #include <errno.h> +% #include <stdio.h> +% +% int +% main (int argc, char** argv) +% { +% register int c; +% while ((c = getchar()) != EOF) { +% if ((c & 0x80) == 0) { +% putchar (c); +% } else { +% putchar (0xC0 | (0x03 & (c >> 6))); +% putchar (0x80 | (0x3F & c)); +% } +% } +% if ( ! feof (stdin)) { +% errno = ferror (stdin); +% perror (argv[0]); +% } +% return 0; +% } +% + +INTEGERS { nameptr namesleft numnames numaux len } +STRINGS { s t u v } + +% ------------------------------------------------------------ +% E N T R I E S +% ------------------------------------------------------------ + +ENTRY + { name + nickname + birthday + birthyear + address % if empty, use street, city, ... + street + city + state + zip + country + phone + cellular + fax + email + url + account + p.address % if empty, use p.street, p.city, ... + p.street + p.city + p.state + p.zip + p.country + p.phone + p.cellular + p.fax + p.email + p.url + p.account + r.address % if empty, use r.street, r.city, ... + r.street + r.city + r.state + r.zip + r.country + r.phone + r.cellular + r.fax + r.email + r.url + r.account + w.title + w.name + w.address % if empty, use w.street, w.city, ... + w.street + w.city + w.state + w.zip + w.country + w.phone + w.cellular + w.fax + w.email + w.url + w.account + note + } + {} + { + } + +% ------------------------------------------------------------ +% G E N E R A L +% ------------------------------------------------------------ + +FUNCTION {output} +{ 's := + s empty$ + {} + { s write$ + newline$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% ------------------------------------------------------------ +% P R E - A N D P O S T - H E A D E R S +% ------------------------------------------------------------ + +FUNCTION {begin.bib} +{ +} + +FUNCTION {end.bib} +{ +} + +% ------------------------------------------------------------ +% G E N E R A L F O R M A T T I N G F U N C T I O N S +% ------------------------------------------------------------ + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{ff{ } }{vv{ } }{ll{ }}{, jj{ }}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { " and " * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.first.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{ff{ }}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { " and " * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.last.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{vv{ } }{ll{ }}{, jj{ }}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { " and " * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.dates} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + + birthyear empty$ + { #0 'numaux := } + { birthyear num.names$ 'numaux := + numnames numaux = + { } + { " birthdays and birthyears don't match in entry '" cite$ * "'" * warning$ } + if$ + } + if$ + + { namesleft #0 > } + { s nameptr "{ff}" format.name$ 't := + s nameptr "{ll}" format.name$ 'u := + + numaux #0 > not + { } + { birthyear nameptr "{ll}" format.name$ 'v := + v * "-" * } + if$ + + nameptr #1 > + { ";" * u * "-" * t * } + { u "-" * t * } + if$ + + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + numaux #1 - 'numaux := + } + while$ +} + +% ------------------------------------------------------------ +% V C A R D F I E L D F O R M A T S +% ------------------------------------------------------------ + +FUNCTION {format.name} +{ name empty$ + { "" } + { "cn: " name format.names * } + if$ +} + +FUNCTION {format.first.name} +{ name empty$ + { "" } + { "givenName: " name format.first.names * } + if$ +} + +FUNCTION {format.last.name} +{ name empty$ + { "" } + { "sn: " name format.last.names * } + if$ +} + +FUNCTION {format.simple.name} +{ name empty$ + { "" } + { "cn: " name * } + if$ +} + +FUNCTION {format.simple.last.name} +{ name empty$ + { "" } + { "sn: " name * } + if$ +} + +FUNCTION {format.nickname} +{ nickname empty$ + { "" } + { "xmozillanickname: " nickname * } + if$ +} + +FUNCTION {format.birthday} +{ birthday empty$ + { + birthyear empty$ + { "" } + { "custom1: birthyear=" birthyear * } + if$ + } + { "custom1: birthday=" birthday format.dates * } + if$ +} + +FUNCTION {format.address} +{ address empty$ + { + % ugly, but we need a new line after each field + street empty$ { skip$ } { "postalAddress: " street * output } if$ + city empty$ { skip$ } { "l: " city * output } if$ + state empty$ { skip$ } { "st: " state * output } if$ + zip empty$ { skip$ } { "postalCode: " zip * output } if$ + country empty$ { skip$ } { "c: " country * output } if$ + "" + } + { "postalAddress: " address * } + if$ +} + +FUNCTION {format.account} +{ account empty$ + { "" } + { "custom2: account=" account * } + if$ +} + +FUNCTION {format.phone} +{ phone empty$ + { "" } + { "telephoneNumber: " phone * } + if$ +} + +FUNCTION {format.cellular} +{ cellular empty$ + { "" } + { "mobile: " cellular * } + if$ +} + +FUNCTION {format.fax} +{ fax empty$ + { "" } + { "facsimileTelephoneNumber: " fax * } + if$ +} + +FUNCTION {format.email} +{ email empty$ + { "" } + { "mail: " email * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { "workurl: " url * } + if$ +} + +FUNCTION {format.p.address} +{ p.address empty$ + { + % ugly, but we need a new line after each field + p.street empty$ { skip$ } { "homePostalAddress: " p.street * output } if$ + p.city empty$ { skip$ } { "mozillaHomeLocalityName: " p.city * output } if$ + p.state empty$ { skip$ } { "mozillaHomeState: " p.state * output } if$ + p.zip empty$ { skip$ } { "mozillaHomePostalCode: " p.zip * output } if$ + p.country empty$ { skip$ } { "mozillaHomeCountryName: " p.country * output } if$ + "" + } + { "homePostalAddress: " p.address * } + if$ +} + +FUNCTION {format.p.phone} +{ p.phone empty$ + { "" } + { "homePhone: " p.phone * } + if$ +} + +FUNCTION {format.p.cellular} +{ p.cellular empty$ + { "" } + { "mobile: " p.cellular * } + if$ +} + +FUNCTION {format.p.fax} +{ p.fax empty$ + { "" } + { "facsimileTelephoneNumber: " p.fax * } + if$ +} + +FUNCTION {format.p.email} +{ p.email empty$ + { "" } + { "mail: " p.email * } + if$ +} + +FUNCTION {format.p.url} +{ p.url empty$ + { "" } + { "homeurl: " p.url * } + if$ +} + +FUNCTION {format.p.account} +{ p.account empty$ + { "" } + { "custom2: account=" p.account * } + if$ +} + +FUNCTION {format.r.address} +{ r.address empty$ + { + % ugly, but we need a new line after each field + r.street empty$ { skip$ } { "homePostalAddress: " r.street * output } if$ + r.city empty$ { skip$ } { "mozillaHomeLocalityName: " r.city * output } if$ + r.state empty$ { skip$ } { "mozillaHomeState: " r.state * output } if$ + r.zip empty$ { skip$ } { "mozillaHomePostalCode: " r.zip * output } if$ + r.country empty$ { skip$ } { "mozillaHomeCountryName: " r.country * output } if$ + "" + } + { "homePostalAddress: " r.address * } + if$ +} + +FUNCTION {format.r.phone} +{ r.phone empty$ + { "" } + { "homePhone: " r.phone * } + if$ +} + +FUNCTION {format.r.cellular} +{ r.cellular empty$ + { "" } + { "mobile: " r.cellular * } + if$ +} + +FUNCTION {format.r.fax} +{ r.fax empty$ + { "" } + { "facsimileTelephoneNumber: " r.fax * } + if$ +} + +FUNCTION {format.r.email} +{ r.email empty$ + { "" } + { "mail: " r.email * } + if$ +} + +FUNCTION {format.r.url} +{ r.url empty$ + { "" } + { "homeurl: " r.url * } + if$ +} + +FUNCTION {format.r.account} +{ r.account empty$ + { "" } + { "custom2: account=" r.account * } + if$ +} + +FUNCTION {format.w.title} +{ w.title empty$ + { "" } + { "title: " w.title * } + if$ +} + +FUNCTION {format.w.name} +{ w.name empty$ + { "" } + { "o: " w.name * } + if$ +} + +FUNCTION {format.w.address} +{ w.address empty$ + { + % ugly, but we need a new line after each field + w.street empty$ { skip$ } { "postalAddress: " w.street * output } if$ + w.city empty$ { skip$ } { "l: " w.city * output } if$ + w.state empty$ { skip$ } { "st: " w.state * output } if$ + w.zip empty$ { skip$ } { "postalCode: " w.zip * output } if$ + w.country empty$ { skip$ } { "c: " w.country * output } if$ + "" + } + { "postalAddress: " w.address * } + if$ +} + +FUNCTION {format.w.phone} +{ w.phone empty$ + { "" } + { "telephoneNumber: " w.phone * } + if$ +} + +FUNCTION {format.w.cellular} +{ w.cellular empty$ + { "" } + { "mobile: " w.cellular * } + if$ +} + +FUNCTION {format.w.fax} +{ w.fax empty$ + { "" } + { "facsimileTelephoneNumber: " w.fax * } + if$ +} + +FUNCTION {format.w.email} +{ w.email empty$ + { "" } + { "mail: " w.email * } + if$ +} + +FUNCTION {format.w.url} +{ w.url empty$ + { "" } + { "workurl: " w.url * } + if$ +} + +FUNCTION {format.w.account} +{ w.account empty$ + { "" } + { "custom2: account=" w.account * } + if$ +} + +FUNCTION {format.note} +{ note empty$ + { "" } + { "description: " note * } + if$ +} + +% ------------------------------------------------------------ +% P E R S O N E N T R Y +% ------------------------------------------------------------ + +FUNCTION { person } +{ + "objectclass: top" output + "objectclass: person" output + "objectclass: organizationalPerson" output + "objectclass: inetOrgPerson" output + "objectclass: mozillaAbPersonObsolete" output + + format.first.name output + format.last.name output + format.name output + format.nickname output + format.birthday output + + format.p.address output + format.p.phone output + format.p.cellular output + format.p.fax output + format.p.email output + format.p.url output + format.p.account output + + format.r.address output + format.r.phone output + format.r.cellular output + format.r.fax output + format.r.email output + format.r.url output + format.r.account output + + format.w.title output + format.w.name output + format.w.address output + format.w.phone output + format.w.cellular output + format.w.fax output + format.w.email output + format.w.url output + format.w.account output + + format.note output + + newline$ +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + +FUNCTION { company } +{ + "objectclass: top" output + "objectclass: person" output + "objectclass: organizationalPerson" output + "objectclass: inetOrgPerson" output + "objectclass: mozillaAbPersonObsolete" output + + format.simple.last.name output + format.simple.name output + format.address output + format.phone output + format.cellular output + format.fax output + format.email output + format.url output + format.account output + format.note output + + newline$ +} + +% ------------------------------------------------------------ +% P L A C E E N T R Y +% ------------------------------------------------------------ + +FUNCTION { place } +{ + "objectclass: top" output + "objectclass: person" output + "objectclass: organizationalPerson" output + "objectclass: inetOrgPerson" output + "objectclass: mozillaAbPersonObsolete" output + + format.simple.last.name output + format.simple.name output + format.address output + format.phone output + format.cellular output + format.fax output + format.note output + + newline$ +} + +% ------------------------------------------------------------ +% M A I N +% ------------------------------------------------------------ + +READ +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/directory/address-vcard.bst b/Master/texmf-dist/bibtex/bst/directory/address-vcard.bst new file mode 100644 index 00000000000..394330b141a --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/address-vcard.bst @@ -0,0 +1,612 @@ +%% address-vcard.bst +%% Copyright 2003-2004 Christophe Geuzaine <geuz@geuz.org> +% +% $Id: address-vcard.bst,v 1.9 2004/01/10 06:45:16 geuzaine Exp $ +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or (at your option) any later version. +% +% BibTeX bibliography style `address-vcard.bst' +% 'directory' database: all fields +% +% This is definitively a hack... It assumes the character encoding to +% be ISO Latin 1. Multi-name entries are not treated entirely +% correctly due to limitations in the vCard spec. +% +% Also, bibtex splits lines automatically in the output file, which +% can cause alignment problems (and apparently encoding problems with +% Apple's address book application). You can e.g. fix bibtex's output +% with awk: +% +% awk "!/^ /{ buf[i++] = $0; } +% /^ /{ buf[i-1] = buf[i-1] substr($0,2,length($0)-1) } +% END{ for(j=0;j<i;j++) print buf[j] }" file.bbl + +INTEGERS { nameptr namesleft numnames numaux len } +STRINGS { s t u v } + +% ------------------------------------------------------------ +% E N T R I E S +% ------------------------------------------------------------ + +ENTRY + { name + nickname + birthday + birthyear + address % if empty, use street, city, ... + street + city + state + zip + country + phone + cellular + fax + email + url + account + p.address % if empty, use p.street, p.city, ... + p.street + p.city + p.state + p.zip + p.country + p.phone + p.cellular + p.fax + p.email + p.url + p.account + r.address % if empty, use r.street, r.city, ... + r.street + r.city + r.state + r.zip + r.country + r.phone + r.cellular + r.fax + r.email + r.url + r.account + w.title + w.name + w.address % if empty, use w.street, w.city, ... + w.street + w.city + w.state + w.zip + w.country + w.phone + w.cellular + w.fax + w.email + w.url + w.account + note + } + {} + { + } + +% ------------------------------------------------------------ +% G E N E R A L +% ------------------------------------------------------------ + +FUNCTION {output} +{ 's := + s empty$ + {} + { s write$ + newline$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% ------------------------------------------------------------ +% P R E - A N D P O S T - H E A D E R S +% ------------------------------------------------------------ + +FUNCTION {begin.bib} +{ +} + +FUNCTION {end.bib} +{ +} + +% ------------------------------------------------------------ +% G E N E R A L F O R M A T T I N G F U N C T I O N S +% ------------------------------------------------------------ + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + % "Clinton; Bill (with Hillary Rodham, Chelsee and Christophe Geuzaine)" + nameptr #1 > + { s nameptr "{ff }{vv }{ll}{\, jj}" format.name$ 't := } + { s nameptr "{vv{ } }{ll{ }}{;ff{ }}{\, jj{ }}" format.name$ 't := } + if$ + nameptr #1 > + { + nameptr #2 = + { " (with " * t * } + { + namesleft #1 > + { ", " * t * } + { " and " * t * } + if$ + } + if$ + namesleft #1 = + { ")" * } + { } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.dates} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + + birthyear empty$ + { #0 'numaux := } + { birthyear num.names$ 'numaux := + numnames numaux = + { } + { " birthdays and birthyears don't match in entry '" cite$ * "'" * warning$ } + if$ + } + if$ + + { namesleft #0 > } + { s nameptr "{ff}" format.name$ 't := + s nameptr "{ll}" format.name$ 'u := + + numaux #0 > not + { } + { birthyear nameptr "{ll}" format.name$ 'v := + v * "-" * } + if$ + + nameptr #1 > + { ";" * u * "-" * t * } + { u "-" * t * } + if$ + + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + numaux #1 - 'numaux := + } + while$ +} + +% ------------------------------------------------------------ +% V C A R D F I E L D F O R M A T S +% ------------------------------------------------------------ + +FUNCTION {format.name} +{ name empty$ + { "" } + { "N;charset=iso-8859-1:" name format.names * } + if$ +} + +FUNCTION {format.simple.name} +{ name empty$ + { "" } + { "N;charset=iso-8859-1:" name ";" * * } + if$ +} + +FUNCTION {format.nickname} +{ nickname empty$ + { "" } + { "NICKNAME;charset=iso-8859-1:" nickname * } + if$ +} + +FUNCTION {format.birthday} +{ birthday empty$ + { + birthyear empty$ + { "" } + { "BDAY;value=date:" birthyear * } + if$ + } + { "BDAY;value=date:" birthday format.dates * } + if$ +} + +FUNCTION {format.address} +{ address empty$ + { + street empty$ city empty$ state empty$ zip empty$ country empty$ + and and and and + { "" } + { "ADR;type=WORK;charset=iso-8859-1:;;" + street empty$ { "" } { street } if$ * ";" * + city empty$ { "" } { city } if$ * ";" * + state empty$ { "" } { state } if$ * ";" * + zip empty$ { "" } { zip } if$ * ";" * + country empty$ { "" } { country } if$ * + } + if$ + } + { "ADR;type=WORK;charset=iso-8859-1:;;" address * ";;;;" * } + if$ +} + +FUNCTION {format.account} +{ account empty$ + { "" } + { "ACCOUNT:" account * } + if$ +} + +FUNCTION {format.phone} +{ phone empty$ + { "" } + { "TEL;type=WORK:" phone * } + if$ +} + +FUNCTION {format.cellular} +{ cellular empty$ + { "" } + { "TEL;type=CELL:" cellular * } + if$ +} + +FUNCTION {format.fax} +{ fax empty$ + { "" } + { "TEL;type=FAX:" fax * } + if$ +} + +FUNCTION {format.email} +{ email empty$ + { "" } + { "EMAIL:" email * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { "URL:" url * } + if$ +} + +FUNCTION {format.p.address} +{ p.address empty$ + { + p.street empty$ p.city empty$ p.state empty$ p.zip empty$ p.country empty$ + and and and and + { "" } + { "ADR;type=HOME;charset=iso-8859-1:;;" + p.street empty$ { "" } { p.street } if$ * ";" * + p.city empty$ { "" } { p.city } if$ * ";" * + p.state empty$ { "" } { p.state } if$ * ";" * + p.zip empty$ { "" } { p.zip } if$ * ";" * + p.country empty$ { "" } { p.country } if$ * + } + if$ + } + { "ADR;type=HOME;charset=iso-8859-1:;;" p.address * ";;;;" * } + if$ +} + +FUNCTION {format.p.phone} +{ p.phone empty$ + { "" } + { "TEL;type=HOME:" p.phone * } + if$ +} + +FUNCTION {format.p.cellular} +{ p.cellular empty$ + { "" } + { "TEL;type=CELL:" p.cellular * } + if$ +} + +FUNCTION {format.p.fax} +{ p.fax empty$ + { "" } + { "TEL;type=FAX;type=HOME:" p.fax * } + if$ +} + +FUNCTION {format.p.email} +{ p.email empty$ + { "" } + { "EMAIL;type=HOME:" p.email * } + if$ +} + +FUNCTION {format.p.url} +{ p.url empty$ + { "" } + { "URL;type=HOME:" p.url * } + if$ +} + +FUNCTION {format.p.account} +{ p.account empty$ + { "" } + { "ACCOUNT;type=HOME:" p.account * } + if$ +} + +FUNCTION {format.r.address} +{ r.address empty$ + { + r.street empty$ r.city empty$ r.state empty$ r.zip empty$ r.country empty$ + and and and and + { "" } + { "ADR;type=HOME;charset=iso-8859-1:;;" + r.street empty$ { "" } { r.street } if$ * ";" * + r.city empty$ { "" } { r.city } if$ * ";" * + r.state empty$ { "" } { r.state } if$ * ";" * + r.zip empty$ { "" } { r.zip } if$ * ";" * + r.country empty$ { "" } { r.country } if$ * + } + if$ + } + { "ADR;type=HOME;charset=iso-8859-1:;;" r.address * ";;;;" * } + if$ +} + +FUNCTION {format.r.phone} +{ r.phone empty$ + { "" } + { "TEL;type=HOME:" r.phone * } + if$ +} + +FUNCTION {format.r.cellular} +{ r.cellular empty$ + { "" } + { "TEL;type=CELL:" r.cellular * } + if$ +} + +FUNCTION {format.r.fax} +{ r.fax empty$ + { "" } + { "TEL;type=FAX;type=HOME:" r.fax * } + if$ +} + +FUNCTION {format.r.email} +{ r.email empty$ + { "" } + { "EMAIL;type=HOME:" r.email * } + if$ +} + +FUNCTION {format.r.url} +{ r.url empty$ + { "" } + { "URL;type=HOME:" r.url * } + if$ +} + +FUNCTION {format.r.account} +{ r.account empty$ + { "" } + { "ACCOUNT;type=HOME:" r.account * } + if$ +} + +FUNCTION {format.w.title} +{ w.title empty$ + { "" } + { "TITLE;charset=iso-8859-1:" w.title * } + if$ +} + +FUNCTION {format.w.name} +{ w.name empty$ + { "" } + { "ORG;charset=iso-8859-1:" w.name * } + if$ +} + +FUNCTION {format.w.address} +{ w.address empty$ + { + w.street empty$ w.city empty$ w.state empty$ w.zip empty$ w.country empty$ + and and and and + { "" } + { "ADR;type=WORK;charset=iso-8859-1:;;" + w.street empty$ { "" } { w.street } if$ * ";" * + w.city empty$ { "" } { w.city } if$ * ";" * + w.state empty$ { "" } { w.state } if$ * ";" * + w.zip empty$ { "" } { w.zip } if$ * ";" * + w.country empty$ { "" } { w.country } if$ * + } + if$ + } + { "ADR;type=WORK;charset=iso-8859-1:;;" w.address * ";;;;" * } + if$ +} + +FUNCTION {format.w.phone} +{ w.phone empty$ + { "" } + { "TEL;type=WORK:" w.phone * } + if$ +} + +FUNCTION {format.w.cellular} +{ w.cellular empty$ + { "" } + { "TEL;type=CELL:" w.cellular * } + if$ +} + +FUNCTION {format.w.fax} +{ w.fax empty$ + { "" } + { "TEL;type=FAX;type=WORK:" w.fax * } + if$ +} + +FUNCTION {format.w.email} +{ w.email empty$ + { "" } + { "EMAIL;type=WORK:" w.email * } + if$ +} + +FUNCTION {format.w.url} +{ w.url empty$ + { "" } + { "URL;type=WORK:" w.url * } + if$ +} + +FUNCTION {format.w.account} +{ w.account empty$ + { "" } + { "ACCOUNT;type=WORK:" w.account * } + if$ +} + +FUNCTION {format.note} +{ note empty$ + { "" } + { "NOTE;charset=iso-8859-1:" note * } + if$ +} + +% ------------------------------------------------------------ +% P E R S O N E N T R Y +% ------------------------------------------------------------ + +FUNCTION { person } +{ + "BEGIN:VCARD" output + "VERSION:3.0" output + + format.name output + format.nickname output + format.birthday output + + format.p.address output + format.p.phone output + format.p.cellular output + format.p.fax output + format.p.email output + format.p.url output + format.p.account output + + format.r.address output + format.r.phone output + format.r.cellular output + format.r.fax output + format.r.email output + format.r.url output + format.r.account output + + format.w.title output + format.w.name output + format.w.address output + format.w.phone output + format.w.cellular output + format.w.fax output + format.w.email output + format.w.url output + format.w.account output + + format.note output + + "END:VCARD" output +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + +FUNCTION { company } +{ + "BEGIN:VCARD" output + "VERSION:3.0" output + + format.simple.name output + format.address output + format.phone output + format.cellular output + format.fax output + format.email output + format.url output + format.account output + format.note output + + "END:VCARD" output +} + +% ------------------------------------------------------------ +% P L A C E E N T R Y +% ------------------------------------------------------------ + +FUNCTION { place } +{ + "BEGIN:VCARD" output + "VERSION:3.0" output + + format.simple.name output + format.address output + format.phone output + format.cellular output + format.fax output + format.note output + + "END:VCARD" output +} + +% ------------------------------------------------------------ +% M A I N +% ------------------------------------------------------------ + +READ +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/directory/address.bst b/Master/texmf-dist/bibtex/bst/directory/address.bst index 8f692899926..4a7cface0d7 100644 --- a/Master/texmf-dist/bibtex/bst/directory/address.bst +++ b/Master/texmf-dist/bibtex/bst/directory/address.bst @@ -1,7 +1,7 @@ %% address.bst -%% Copyright 1999-2000 Christophe Geuzaine +%% Copyright 1998-2003 Christophe Geuzaine <geuz@geuz.org> % -% Last Mod by Christophe on Sun Aug 27 21:07:56 2000 +% $Id: address.bst,v 1.7 2003/09/16 07:18:07 geuzaine Exp $ % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License distributed from CTAN @@ -11,8 +11,6 @@ % BibTeX bibliography style `address.bst' % 'directory' database: all fields % -% Christophe.Geuzaine@advalvas.be -% % The parts you may want to customize are labeled with "CUSTOM" % @@ -28,21 +26,36 @@ ENTRY nickname birthday birthyear - address + address % if empty, use street, city, ... + street + city + state + zip + country phone cellular fax email url account - p.address + p.address % if empty, use p.street, p.city, ... + p.street + p.city + p.state + p.zip + p.country p.phone p.cellular p.fax p.email p.url p.account - r.address + r.address % if empty, use r.street, r.city, ... + r.street + r.city + r.state + r.zip + r.country r.phone r.cellular r.fax @@ -51,7 +64,12 @@ ENTRY r.account w.title w.name - w.address + w.address % if empty, use w.street, w.city, ... + w.street + w.city + w.state + w.zip + w.country w.phone w.cellular w.fax @@ -354,7 +372,20 @@ FUNCTION {format.birthday} FUNCTION {format.address} { address empty$ - { "" } + { + street empty$ city empty$ state empty$ zip empty$ country empty$ + and and and and + { "" } + { "\diradda{" + street empty$ { "" * } { street "\dirblock " * * } if$ + city empty$ { "" * } { city " " * * } if$ + state empty$ { "" * } { state " " * * } if$ + zip empty$ { "" * } { zip " " * * } if$ + country empty$ { "" * } { country * } if$ + "}" * + } + if$ + } { "\diradda{" address "}" * * } if$ } @@ -404,13 +435,18 @@ FUNCTION {format.url} FUNCTION {format.p.flag} { p.address empty$ not + p.street empty$ not + p.city empty$ not + p.state empty$ not + p.zip empty$ not + p.country empty$ not p.phone empty$ not p.cellular empty$ not p.fax empty$ not p.email empty$ not p.url empty$ not p.account empty$ not - or or or or or or + or or or or or or or or or or or { "\dirprif" } { "" } if$ @@ -418,7 +454,20 @@ FUNCTION {format.p.flag} FUNCTION {format.p.address} { p.address empty$ - { "" } + { + p.street empty$ p.city empty$ p.state empty$ p.zip empty$ p.country empty$ + and and and and + { "" } + { "\dirpadda{" + p.street empty$ { "" * } { p.street "\dirblock " * * } if$ + p.city empty$ { "" * } { p.city " " * * } if$ + p.state empty$ { "" * } { p.state " " * * } if$ + p.zip empty$ { "" * } { p.zip " " * * } if$ + p.country empty$ { "" * } { p.country * } if$ + "}" * + } + if$ + } { "\dirpadda{" p.address "}" * * } if$ } @@ -467,13 +516,18 @@ FUNCTION {format.p.account} FUNCTION {format.r.flag} { r.address empty$ not + r.street empty$ not + r.city empty$ not + r.state empty$ not + r.zip empty$ not + r.country empty$ not r.phone empty$ not r.cellular empty$ not r.fax empty$ not r.email empty$ not r.url empty$ not r.account empty$ not - or or or or or or + or or or or or or or or or or or { "\dirresf" } { "" } if$ @@ -481,7 +535,20 @@ FUNCTION {format.r.flag} FUNCTION {format.r.address} { r.address empty$ - { "" } + { + r.street empty$ r.city empty$ r.state empty$ r.zip empty$ r.country empty$ + and and and and + { "" } + { "\dirpadda{" + r.street empty$ { "" * } { r.street "\dirblock " * * } if$ + r.city empty$ { "" * } { r.city " " * * } if$ + r.state empty$ { "" * } { r.state " " * * } if$ + r.zip empty$ { "" * } { r.zip " " * * } if$ + r.country empty$ { "" * } { r.country * } if$ + "}" * + } + if$ + } { "\dirradda{" r.address "}" * * } if$ } @@ -532,13 +599,18 @@ FUNCTION {format.w.flag} { w.title empty$ not w.name empty$ not w.address empty$ not + w.street empty$ not + w.city empty$ not + w.state empty$ not + w.zip empty$ not + w.country empty$ not w.phone empty$ not w.cellular empty$ not w.fax empty$ not w.email empty$ not w.url empty$ not w.account empty$ not - or or or or or or or or + or or or or or or or or or or or or or { "\dirworf" } { "" } if$ @@ -560,7 +632,20 @@ FUNCTION {format.w.name} FUNCTION {format.w.address} { w.address empty$ - { "" } + { + w.street empty$ w.city empty$ w.state empty$ w.zip empty$ w.country empty$ + and and and and + { "" } + { "\dirpadda{" + w.street empty$ { "" * } { w.street "\dirblock " * * } if$ + w.city empty$ { "" * } { w.city " " * * } if$ + w.state empty$ { "" * } { w.state " " * * } if$ + w.zip empty$ { "" * } { w.zip " " * * } if$ + w.country empty$ { "" * } { w.country * } if$ + "}" * + } + if$ + } { "\dirwadda{" w.address "}" * * } if$ } diff --git a/Master/texmf-dist/bibtex/bst/directory/birthday.bst b/Master/texmf-dist/bibtex/bst/directory/birthday.bst new file mode 100644 index 00000000000..69f0b9eefc0 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/birthday.bst @@ -0,0 +1,299 @@ +%% birthday.bst +%% Copyright 1998-2003 Christophe Geuzaine <geuz@geuz.org> +% +% $Id: birthday.bst,v 1.6 2003/09/14 09:47:49 geuzaine Exp $ +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or (at your option) any later version. +% +% BibTeX bibliography style `birthday.bst' +% 'directory' database: only birthday field +% +% The parts you may want to customize are labeled with "CUSTOM" +% + +INTEGERS { nameptr namesleft numnames numaux len } +STRINGS { s t u v } + +% ------------------------------------------------------------ +% E N T R I E S +% ------------------------------------------------------------ + +ENTRY + { name + birthday + birthyear + } + {} + {} + +% ------------------------------------------------------------ +% G E N E R A L +% ------------------------------------------------------------ + +FUNCTION {output} +{ 's := + s empty$ + {} + { s write$ + newline$ + "\dirblock" write$ + newline$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% ------------------------------------------------------------ +% S O R T I N G F U N C T I O N S +% ------------------------------------------------------------ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sort.day} +{ + 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + skip$ + s nameptr "{ll{}}{ff{}}" format.name$ 't := + t sortify * + #1 global.max$ substring$ +} + + +FUNCTION {birthday.sort} +{ type$ "person" = + { birthday empty$ + { "" } + { birthday sort.day } + if$ } + { "" } + if$ +} + +FUNCTION {presort} +{ birthday.sort + " " + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% ------------------------------------------------------------ +% P R E - A N D P O S T - H E A D E R S +% ------------------------------------------------------------ + +FUNCTION {begin.bib} +{ "\begin{thephonebook}" write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ + "\end{thephonebook}" write$ + newline$ +} + +% ------------------------------------------------------------ +% F O R M A T S +% ------------------------------------------------------------ + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { +% CUSTOM uncomment one of the following lines to have the behaviour on the right + s nameptr "{ff }{vv }{ll}{, jj}" format.name$ 't := % Christophe de Geuzaine, jr +% s nameptr "{f. }{vv }{ll}{, jj}" format.name$ 't := % C. de Geuzaine, jr +% s nameptr "{vv }{ll}{ f.}{, jj}" format.name$ 't := % de Geuzaine C., jr +% s nameptr "{vv }{ll}{, ff}{, jj}" format.name$ 't := % de Geuzaine, Christophe, jr + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { " {\dirandf} " * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.dates} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + + birthyear empty$ + { #0 'numaux := } + { birthyear num.names$ 'numaux := + numnames numaux = + { } + { " birthdays and birthyears don't match in entry '" cite$ * "'" * warning$ } + if$ + } + if$ + +% CUSTOM you shoudn't change this, but rather redefine the command \Dirbirthday. + + { namesleft #0 > } + { s nameptr "{ff}" format.name$ 't := + s nameptr "{ll}" format.name$ 'u := + + nameptr #1 > + { namesleft #1 > + { ", \dirbira{" * t * "}{" * u * "}" * } + { " {\dirandf} \dirbira{" * t * "}{" * u * "}" * } + if$ + } + { "\dirbira{" t * "}{" * u * "}" * } + if$ + + numaux #0 > not + { } + { birthyear nameptr "{ll}" format.name$ 'v := + "\dirbiya{" * v * "}" * } + if$ + + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + numaux #1 - 'numaux := + } + while$ +} + +FUNCTION {format.years} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", \dirbyra{" * t * "}" * } + { " {\dirandf} \dirbyra{" * t * "}" * } + if$ + } + { "\dirbyra{" t * "}" * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name} +{ name empty$ + { "" } + { name format.names } + if$ +} + +FUNCTION {format.birthday.flag} +{ birthyear empty$ not + birthday empty$ not + or + { "\dirbirf " } + { "" } + if$ +} + +FUNCTION {format.birthday} +{ birthday empty$ + { + birthyear empty$ + { "" } + { birthyear format.years } + if$ + } + { birthday format.dates } + if$ +} + +% ------------------------------------------------------------ +% P E R S O N E N T R Y +% ------------------------------------------------------------ + + +FUNCTION { person } +{ + birthday empty$ not + { newline$ + + "\diritem[" write$ + format.birthday.flag write$ + format.birthday write$ + "]{" write$ + "d." cite$ * write$ + "}\dirgroup" write$ + newline$ + "\dirblock" write$ + newline$ + + format.name output + + "\direndgroup" write$ + newline$ + } + { } + if$ +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + +FUNCTION { company } +{ +} + +% ------------------------------------------------------------ +% P L A C E E N T R Y +% ------------------------------------------------------------ + +FUNCTION { place } +{ +} + + +% ------------------------------------------------------------ +% M A I N +% ------------------------------------------------------------ + +READ +ITERATE {presort} +SORT +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/directory/email-html.bst b/Master/texmf-dist/bibtex/bst/directory/email-html.bst index ef151557491..f81551b8605 100644 --- a/Master/texmf-dist/bibtex/bst/directory/email-html.bst +++ b/Master/texmf-dist/bibtex/bst/directory/email-html.bst @@ -1,7 +1,7 @@ %% email-html.bst -%% Copyright 1999-2000 Christophe Geuzaine +%% Copyright 1998-2003 Christophe Geuzaine <geuz@geuz.org> % -% Last Mod by Christophe on Sun Aug 27 21:23:27 2000 +% $Id: email-html.bst,v 1.7 2004/02/07 23:41:45 geuzaine Exp $ % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License distributed from CTAN @@ -11,8 +11,6 @@ % BibTeX bibliography style `addr-htm.bst' % 'directory' database: all fields % -% Christophe.Geuzaine@advalvas.be -% % This is definitively a hack... % % The parts you may want to customize are labeled with "CUSTOM" @@ -180,9 +178,9 @@ FUNCTION {presort} % ------------------------------------------------------------ FUNCTION {begin.bib} -{ "<HTML><!-- This is a file generated by the LaTeX directory package -->" write$ +{ "<HTML>" write$ newline$ - "<TITLE>E-mail directory (generated by the LaTeX directory package)</TITLE>" write$ + "<TITLE>E-mail directory</TITLE>" write$ newline$ } @@ -190,7 +188,7 @@ FUNCTION {end.bib} { newline$ "<p><hr><center><font size=-1>This e-mail directory was generated by <A HREF= " write$ quote$ "http://www.geuz.org/directory/" * quote$ * write$ - " >directory</A>, version 1.15</center></HTML>" write$ + " >directory</A></center></HTML>" write$ newline$ } diff --git a/Master/texmf-dist/bibtex/bst/directory/email.bst b/Master/texmf-dist/bibtex/bst/directory/email.bst new file mode 100644 index 00000000000..bb88854fa89 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/email.bst @@ -0,0 +1,366 @@ +%% email.bst +%% Copyright 1998-2003 Christophe Geuzaine <geuz@geuz.org> +% +% $Id: email.bst,v 1.6 2003/09/14 09:47:49 geuzaine Exp $ +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or (at your option) any later version. +% +% BibTeX bibliography style `email.bst' +% 'directory' database: only email field +% +% The parts you may want to customize are labeled with "CUSTOM" +% + +INTEGERS { nameptr namesleft numnames numaux len } +STRINGS { s t u v } + +% ------------------------------------------------------------ +% E N T R I E S +% ------------------------------------------------------------ + +ENTRY + { name + email + p.email + r.email + w.email + } + {} + {} + +% ------------------------------------------------------------ +% G E N E R A L +% ------------------------------------------------------------ + +FUNCTION {output} +{ 's := + s empty$ + {} + { s write$ + newline$ + "\dirblock" write$ + newline$ + } + if$ +} + +FUNCTION {output.flag} +{ 's := + s empty$ + {} + { s write$ + newline$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + + +% ------------------------------------------------------------ +% S O R T I N G F U N C T I O N S +% ------------------------------------------------------------ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sort.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {sort.raw.names} +{ 't := + "A " #2 "L'" #2 + "An " #3 "Au " #3 "Le " #3 "La " #3 + "The " #4 "Les " #4 "Aux " #4 + t + chop.word chop.word + chop.word chop.word chop.word chop.word + chop.word chop.word chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.names } + if$ +} + +FUNCTION {raw.name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.raw.names } + if$ +} + +FUNCTION {presort} +{ type$ "company" = + type$ "place" = + or + { raw.name.sort } + { name.sort } + if$ + " " + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {format.first.letter} +{ type$ "company" = + type$ "place" = + or + { raw.name.sort } + { name.sort } + if$ + #1 #1 substring$ +} + + +% ------------------------------------------------------------ +% P R E - A N D P O S T - H E A D E R S +% ------------------------------------------------------------ + +FUNCTION {begin.bib} +{ "\begin{thephonebook}" write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ + "\end{thephonebook}" write$ + newline$ +} + +% ------------------------------------------------------------ +% F O R M A T S +% ------------------------------------------------------------ + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { +% CUSTOM uncomment one of the following lines to have the behaviour on the right + s nameptr "{ff }{vv }{ll}{, jj}" format.name$ 't := % Christophe de Geuzaine, jr +% s nameptr "{f. }{vv }{ll}{, jj}" format.name$ 't := % C. de Geuzaine, jr +% s nameptr "{vv }{ll}{ f.}{, jj}" format.name$ 't := % de Geuzaine C., jr +% s nameptr "{vv }{ll}{, ff}{, jj}" format.name$ 't := % de Geuzaine, Christophe, jr + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { " {\dirandf} " * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name} +{ name empty$ + { "" } + { name format.names } + if$ +} + +FUNCTION {format.email} +{ email empty$ + { "" } + { "\diremaa{" email "}" * * } + if$ +} + +FUNCTION {format.p.flag} +{ p.email empty$ not + { "\dirprif " } + { "" } + if$ +} + +FUNCTION {format.p.email} +{ p.email empty$ + { "" } + { "\dirpemaa{" p.email "}" * * } + if$ +} + +FUNCTION {format.r.flag} +{ r.email empty$ not + { "\dirresf " } + { "" } + if$ +} + +FUNCTION {format.r.email} +{ r.email empty$ + { "" } + { "\dirremaa{" r.email "}" * * } + if$ +} + +FUNCTION {format.w.flag} +{ w.email empty$ not + { "\dirworf " } + { "" } + if$ +} + +FUNCTION {format.w.email} +{ w.email empty$ + { "" } + { "\dirwemaa{" w.email "}" * * } + if$ +} + +% ------------------------------------------------------------ +% P E R S O N E N T R Y +% ------------------------------------------------------------ + +FUNCTION { person } +{ + p.email empty$ not + r.email empty$ not + w.email empty$ not + or or + { newline$ + + "\dircheck{" write$ + format.first.letter write$ + "}" write$ + newline$ + + "\diritem[" write$ + format.name write$ + "]{" write$ + "d." cite$ * write$ + "}\dirgroup" write$ + newline$ + "\dirblock" write$ + newline$ + + format.p.flag output.flag + format.p.email output + + format.r.flag output.flag + format.r.email output + + format.w.flag output.flag + format.w.email output + + "\direndgroup" write$ + newline$ + } + { } + if$ +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + + +FUNCTION { company } +{ + email empty$ not + { newline$ + + "\dircheck{" write$ + format.first.letter write$ + "}" write$ + newline$ + + "\diritem[" write$ + name write$ + "]{" write$ + "d." cite$ * write$ + "}\dirgroup" write$ + newline$ + "\dirblock" write$ + newline$ + + format.email output + + "\direndgroup" write$ + newline$ + } + { } + if$ +} + +% ------------------------------------------------------------ +% P L A C E E N T R Y +% ------------------------------------------------------------ + + +FUNCTION { place } +{ +} + +% ------------------------------------------------------------ +% M A I N +% ------------------------------------------------------------ + +READ +ITERATE {presort} +SORT +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/directory/letter.bst b/Master/texmf-dist/bibtex/bst/directory/letter.bst index a86270c01dd..b0b79725cfd 100644 --- a/Master/texmf-dist/bibtex/bst/directory/letter.bst +++ b/Master/texmf-dist/bibtex/bst/directory/letter.bst @@ -1,7 +1,7 @@ %% letter.bst -%% Copyright 1999-2000 Christophe Geuzaine +%% Copyright 1998-2003 Christophe Geuzaine <geuz@geuz.org> % -% Last Mod by Christophe on Sun Aug 27 21:24:23 2000 +% $Id: letter.bst,v 1.7 2003/09/15 05:40:31 geuzaine Exp $ % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License distributed from CTAN @@ -11,8 +11,6 @@ % BibTeX bibliography style `letter.bst' % 'directory' database: all fields % -% Christophe.Geuzaine@advalvas.be -% % The parts you may want to customize are labeled with "CUSTOM" % @@ -26,15 +24,56 @@ STRINGS { s t u v } ENTRY { name address + street + city + state + zip + country p.address + p.street + p.city + p.state + p.zip + p.country r.address + r.street + r.city + r.state + r.zip + r.country w.title w.name w.address + w.street + w.city + w.state + w.zip + w.country } {} {} +% ------------------------------------------------------------ +% G E N E R A L +% ------------------------------------------------------------ + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} % ------------------------------------------------------------ % F O R M A T S @@ -76,21 +115,57 @@ FUNCTION {format.name} FUNCTION {format.address} { address empty$ - { "" } + { + street empty$ city empty$ state empty$ zip empty$ country empty$ + and and and and + { "" } + { " \dirnext " + street empty$ { "" * } { street " \dirnext " * * } if$ + city empty$ { "" * } { city " " * * } if$ + state empty$ { "" * } { state " " * * } if$ + zip empty$ { "" * } { zip " " * * } if$ + country empty$ { "" * } { country * } if$ + } + if$ + } { " \dirnext " address * } if$ } FUNCTION {format.p.address} { p.address empty$ - { "" } + { + p.street empty$ p.city empty$ p.state empty$ p.zip empty$ p.country empty$ + and and and and + { "" } + { " \dirnext " + p.street empty$ { "" * } { p.street " \dirnext " * * } if$ + p.city empty$ { "" * } { p.city " " * * } if$ + p.state empty$ { "" * } { p.state " " * * } if$ + p.zip empty$ { "" * } { p.zip " " * * } if$ + p.country empty$ { "" * } { p.country * } if$ + } + if$ + } { " \dirnext " p.address * } if$ } FUNCTION {format.r.address} { r.address empty$ - { "" } + { + r.street empty$ r.city empty$ r.state empty$ r.zip empty$ r.country empty$ + and and and and + { "" } + { " \dirnext " + r.street empty$ { "" * } { r.street " \dirnext " * * } if$ + r.city empty$ { "" * } { r.city " " * * } if$ + r.state empty$ { "" * } { r.state " " * * } if$ + r.zip empty$ { "" * } { r.zip " " * * } if$ + r.country empty$ { "" * } { r.country * } if$ + } + if$ + } { " \dirnext " r.address * } if$ } @@ -111,7 +186,19 @@ FUNCTION {format.w.name} FUNCTION {format.w.address} { w.address empty$ - { "" } + { + w.street empty$ w.city empty$ w.state empty$ w.zip empty$ w.country empty$ + and and and and + { "" } + { " \dirnext " + w.street empty$ { "" * } { w.street " \dirnext " * * } if$ + w.city empty$ { "" * } { w.city " " * * } if$ + w.state empty$ { "" * } { w.state " " * * } if$ + w.zip empty$ { "" * } { w.zip " " * * } if$ + w.country empty$ { "" * } { w.country * } if$ + } + if$ + } { " \dirnext " w.address * } if$ } diff --git a/Master/texmf-dist/bibtex/bst/directory/phone.bst b/Master/texmf-dist/bibtex/bst/directory/phone.bst index acd92094b15..81150d21178 100644 --- a/Master/texmf-dist/bibtex/bst/directory/phone.bst +++ b/Master/texmf-dist/bibtex/bst/directory/phone.bst @@ -1,7 +1,7 @@ %% phone.bst -%% Copyright 1999-2000 Christophe Geuzaine +%% Copyright 1998-2003 Christophe Geuzaine <geuz@geuz.org> % -% Last Mod by Christophe on Sun Aug 27 21:14:08 2000 +% $Id: phone.bst,v 1.6 2003/09/14 09:47:49 geuzaine Exp $ % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License distributed from CTAN @@ -11,8 +11,6 @@ % BibTeX bibliography style `phone.bst' % 'directory' database: only phone and fax fields % -% Christophe.Geuzaine@advalvas.be -% % The parts you may want to customize are labeled with "CUSTOM" % |