summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex/bst/directory
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-10-22 14:03:11 +0000
committerKarl Berry <karl@freefriends.org>2006-10-22 14:03:11 +0000
commit46deeb865b1c9bff5961d32ecdaf0d29d4d8c381 (patch)
tree8463bc8bd241fba301f6635995bd6b69a44d917f /Master/texmf-dist/bibtex/bst/directory
parentfa612a71c254d52cd9cbd98b9596e6ea378b4200 (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.bst123
-rw-r--r--Master/texmf-dist/bibtex/bst/directory/address-ldif.bst679
-rw-r--r--Master/texmf-dist/bibtex/bst/directory/address-vcard.bst612
-rw-r--r--Master/texmf-dist/bibtex/bst/directory/address.bst115
-rw-r--r--Master/texmf-dist/bibtex/bst/directory/birthday.bst299
-rw-r--r--Master/texmf-dist/bibtex/bst/directory/email-html.bst12
-rw-r--r--Master/texmf-dist/bibtex/bst/directory/email.bst366
-rw-r--r--Master/texmf-dist/bibtex/bst/directory/letter.bst103
-rw-r--r--Master/texmf-dist/bibtex/bst/directory/phone.bst6
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"
%