diff options
19 files changed, 2786 insertions, 433 deletions
diff --git a/Build/tools/tpm-ctan-check b/Build/tools/tpm-ctan-check index 0e1ac14345a..0dddec8b42a 100755 --- a/Build/tools/tpm-ctan-check +++ b/Build/tools/tpm-ctan-check @@ -17,7 +17,7 @@ my @WorkingTPM = qw( assignment attachfile aurical babelbib beamer beamer-tut-pt beebe begriff betababel bezos bghyphen bibhtml - bibleref bibtopic bigfoot blacklettert1 booklet boxhandler + bibleref bibtopic bigfoot birthday blacklettert1 booklet boxhandler breakurl bussproofs bytefield caption carlisle cbcoptic cellspace changebar chappg chemcompounds circ cjhebrew clock cmll colortbl commath diff --git a/Master/texmf-dist/bibtex/bib/directory/business.bib b/Master/texmf-dist/bibtex/bib/directory/business.bib index 4291252c8cd..7d7b679768e 100644 --- a/Master/texmf-dist/bibtex/bib/directory/business.bib +++ b/Master/texmf-dist/bibtex/bib/directory/business.bib @@ -1,5 +1,7 @@ ## business.bib -## Copyright 1999 Christophe Geuzaine +## Copyright 1998 Christophe Geuzaine +# +# $Id: business.bib,v 1.4 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 @@ -13,8 +15,10 @@ name = "Microknud Corp.", phone = "+01-(0)2-465.83.99", fax = "005.79.00", - address = "Haight Street 513\dirbreak - 80214 Novosibirsk, Gnuland", + street = "Haight Street 513", + city = "Novosibirsk", + zip = "80214", + country = "Gnuland", url = "http://microknu.com/ass/bill.html", } diff --git a/Master/texmf-dist/bibtex/bib/directory/family.bib b/Master/texmf-dist/bibtex/bib/directory/family.bib index 1d4f85fa71f..7704f9bdac0 100644 --- a/Master/texmf-dist/bibtex/bib/directory/family.bib +++ b/Master/texmf-dist/bibtex/bib/directory/family.bib @@ -1,7 +1,7 @@ ## family.bib -## Copyright 1999-2000 Christophe Geuzaine +## Copyright 1998-2003 Christophe Geuzaine # -# Last Mod by Christophe on Sun Aug 27 21:22:09 2000 +# $Id: family.bib,v 1.8 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 @@ -24,16 +24,17 @@ name = "Christophe Geuzaine", birthday = "06 02", birthyear = "1973", - p.email = "Christophe.Geuzaine@advalvas.be", - w.title = "Ir., Research Assistant", - w.name = "University of Li{\`e}ge, - Dept. of Electrical Engineering", - w.address = "Institut Montefiore (B28, P32, I21),\\ - Sart Tilman Campus, B-4000 Li{\`e}ge, Belgium", - w.phone = "+32-(0)4-366.37.10", - w.fax = "+32-(0)4-366.29.10", - w.email = "Christophe.Geuzaine@ulg.ac.be", - w.url = "http://www.geuz.org/", + p.email = "geuz@geuz.org", + p.url = "http://www.geuz.org", + w.title = "Postdoctoral Scholar", + w.name = "Caltech, Applied and Computational Mathematics", + w.url = "http://www.acm.caltech.edu", + w.street = "1200 E California Blvd", + w.city = "Pasadena", + w.state = "CA", + w.zip = 91125, + w.country = "USA", + w.phone = "1 626 395 4552", } @Person{d.e.knu, @@ -45,19 +46,19 @@ } @Person{d.d.knu, - name = "Knudson, Daffy Duck and Bunny, Bugs and Pluto", + name = "Knudson, Daffy Duck and Bunny, Bugs and Mr. Pluto", nickname = "gnat and gnu and pluto", birthday = "10 02 and 05 11 and 01 01", - p.address = "Haight Street 512, 80214 Novosibirsk, Gnuland", p.phone = "+01-(0)2-765.43.21", p.cellular = "+01-(0)5-555.55.55", p.account = "010-1234567-05", - r.address = "Manor Lane 2, 80214 Novosibirsk, Gnuland", + r.street = "Haight Street 512", + r.zip = 80214, + r.city = "Novosibirsk", + r.country = "Gnuland", r.phone = "+01-(0)2-876.54.32", - w.name = "University of Novosibirsk, + w.name = "University of Novosibirsk, Department of Octopus Parthenogenesis", - w.address = "Planck Institut (V1-V2, Park. U-67), - Hessenberg Road, 80214 Novosibirsk, Gnuland", } @Person{b.b.knu, @@ -65,6 +66,7 @@ nickname = "road runner", birthday = "27 02", p.email = "bip_bip@free.prov.gnu", + p.address = "Somewhere close to a falling rock", } diff --git a/Master/texmf-dist/bibtex/bib/directory/test.bib b/Master/texmf-dist/bibtex/bib/directory/test.bib deleted file mode 100644 index 3302c2352bc..00000000000 --- a/Master/texmf-dist/bibtex/bib/directory/test.bib +++ /dev/null @@ -1,30 +0,0 @@ -@Person {person, - name= "name", - nickname= "nickname", - birthday= "birthday", - birthyear= "birthyear", - p.address= "p.address", - p.phone= "p.phone", - p.cellular= "p.cellular", - p.fax= "p.fax", - p.email= "p.email", - p.url= "p.url", - p.account= "p.account", - r.address= "r.address", - r.phone= "r.phone", - r.cellular= "r.cellular", - r.fax= "r.fax", - r.email= "r.email", - r.url= "r.url", - r.account= "r.account", - w.title= "w.title", - w.name= "w.name", - w.address= "w.address", - w.phone= "w.phone", - w.cellular= "w.cellular", - w.fax= "w.fax", - w.email= "w.email", - w.url= "w.url", - w.account= "w.account", - note= "note", -}
\ No newline at end of file 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" % diff --git a/Master/texmf-dist/doc/latex/directory/README b/Master/texmf-dist/doc/latex/directory/README index 75fd0ac5fc6..1497e9c80cb 100644 --- a/Master/texmf-dist/doc/latex/directory/README +++ b/Master/texmf-dist/doc/latex/directory/README @@ -1,14 +1,15 @@ +This is the 'directory 1.20' distribution. -This is the 'directory 1.15' distribution. - -'directory' is a macro package for LaTeX and BibTeX that facilitates the -construction, the maintenance and the exploitation of an address book like -database. +'directory' is a macro package for LaTeX and BibTeX that facilitates +the construction, the maintenance and the exploitation of an address +book like database. Files included: README address-html.bst + address-ldif.bst + address-vcard.bst address.bst birthday.bst business.bib @@ -28,5 +29,4 @@ run LaTeX, run BibTeX and then run LaTeX twice on the file Enjoy! -Christophe Geuzaine (Christophe.Geuzaine@advalvas.be) - +Christophe Geuzaine <geuz@geuz.org> diff --git a/Master/texmf-dist/doc/latex/directory/directory.pdf b/Master/texmf-dist/doc/latex/directory/directory.pdf Binary files differindex 77d2a1b8bee..97683cee73a 100644 --- a/Master/texmf-dist/doc/latex/directory/directory.pdf +++ b/Master/texmf-dist/doc/latex/directory/directory.pdf diff --git a/Master/texmf-dist/doc/latex/directory/directory.tex b/Master/texmf-dist/doc/latex/directory/directory.tex index c5a2fd5f96f..287b18b0275 100644 --- a/Master/texmf-dist/doc/latex/directory/directory.tex +++ b/Master/texmf-dist/doc/latex/directory/directory.tex @@ -1,7 +1,7 @@ %% directory.tex -%% Copyright 1999-2000 Christophe Geuzaine +%% Copyright 1998-2004 Christophe Geuzaine <geuz@geuz.org> % -% Last Mod by Christophe on Sun Aug 27 21:04:05 2000 +% $Id: directory.tex,v 1.32 2004/09/22 21:05:18 geuzaine Exp $ % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License distributed from CTAN @@ -10,91 +10,81 @@ % % 'directory' user's guide and example file % -% Christophe.Geuzaine@advalvas.be -% -% The parts you may want to customize are labeled with "CUSTOM" -% -% The lines beginning with %%tth: are used by TTH (TeX->HTML translator) -% +% The parts you may want to customize are labeled with "CUSTOM:". The lines +% beginning with "%%tth:" are used by TTH (a LaTeX to HTML translator). \documentclass[10pt]{article} -\addtolength{\textheight}{6pt} -% CUSTOM try e.g. \usepackage[split]{directory} -\usepackage[split]{directory} +\usepackage[break,longdates]{directory} -% CUSTOM uncomment only one of these -% \directorystyle{email-html} +% CUSTOM: uncomment one of the following: % \directorystyle{email} % \directorystyle{phone} % \directorystyle{birthday} % \directorystyle{letter} % \directorystyle{address-html} +% \directorystyle{email-html} +% \directorystyle{address-vcard} +% \directorystyle{address-ldif} \directorystyle{address} -% CUSTOM here is how I customized the directory for this document -\renewcommand{\dirsymbol}{\raisebox{1ex}{\tiny\textit{(cf.\ section~\ref{dir})}}} +% CUSTOM: here is how I customize the directory for this user's guide: +\renewcommand{\dirsymbol}{\raisebox{1ex}{\tiny{[see \S\ref{sec:output}]}}} \renewcommand{\Dirlabel}[1]{{#1}} -\renewcommand{\Dirbirthday}[2] - {{\ifcase #2\or January\or February\or March\or April% - \or May\or June\or July\or August\or September% - \or October\or November\or December\fi}% - {\space\ifnum #1=1 1st\else\number#1\fi}} -\renewcommand{\Dirbirthyear}[1]{, {#1}} \renewcommand{\Dirheader}[1]{\item\hspace{-\dirindent}\textbf{\MakeUppercase{#1}}} -% CUSTOM here is how I handle pdf output \ifx\pdfoutput\undefined\else \usepackage[colorlinks=true,urlcolor=blue]{hyperref} \newcommand\MyURL{\begingroup\Url} \renewcommand{\Diremail}[1]{\href{mailto:#1}{\MyURL{#1}}} \renewcommand{\Dirurl}[1]{\href{#1}{\MyURL{#1}}} \fi +\def\baselinestretch{0.98} -% Some other definitions \newcommand{\BibTeX}{\textsc{Bib}\TeX} -\newcommand{\TitleTT}[1]{\texttt{#1}} \newcommand{\Quote}[1]{`{#1}'} \newcommand{\DbleQuote}[1]{``{#1}''} \newcommand{\Download}{\footnote{\texttt{directory} is available at -\url{http://www.geuz.org/directory/} or through the CTAN in the -\url{biblio/bibtex/contrib/directory/} -subdirectory. \texttt{directory} is distributed under the \LaTeX\ Project -Public License (LPPL) since version 1.11.}} - -%%tth:\def\TitleTT#1{#1} -%%tth:\def\Quote#1{'{#1}'} -%%tth:\def\DbleQuote#1{''{#1}''} -%%tth:\def\Download{\footnote{\texttt{directory} is distributed under the -%%tth:\LaTeX\ Project Public License (LPPL) since version 1.11.}} + \url{http://www.geuz.org/directory/} or through the CTAN in the + \url{biblio/bibtex/contrib/directory/} subdirectory. \texttt{directory} + is distributed under the \LaTeX\ Project Public License (LPPL) since + version 1.11.}} + +%%tth: \def\Quote#1{'{#1}'} +%%tth: \def\DbleQuote#1{''{#1}''} +%%tth: \def\Download{\footnote{\texttt{directory} is distributed under the +%%tth: \LaTeX\ Project Public License (LPPL) since version 1.11.}} +%%tth: \def\LaTeX{LaTeX} +%%tth: \def\BibTeX{BibTeX} \pagestyle{headings} \begin{document} -%%tth:\special{html:<BODY TEXT="#000000" BGCOLOR="#ffffff">} +\title{\texttt{directory}: address books with \LaTeX\ and \BibTeX} -\title{\TitleTT{directory} 1.15 User's Guide} - -% CUSTOM try \author{\wdir{c.geuzaine}} with \directorystyle{letter} +% CUSTOM: try e.g. \author{\wdir{c.geuzaine}} with \directorystyle{letter} \author{\dir{c.geuzaine}} -%%tth:\special{html:<H3 align=center>Christophe Geuzaine</H3>} +%%tth: \special{html:<H3 align=center>Christophe Geuzaine</H3>} -\date{August 27, 2000} +\date{Version 1.20, 22 September 2004} \maketitle -%%tth:\section*{Download} -%%tth:The current archive of the package is available -%%tth:\href{http://www.geuz.org/directory/directory-1.15.tar.gz}{here}. -%%tth:The separate files are also available through the -%%tth:\href{http://www.ctan.org/}{CTAN} -%%tth:sites in the -%%tth:\href{http://www.ctan.org/tex-archive/biblio/bibtex/contrib/directory/} -%%tth:{biblio/bibtex/contrib/directory/} -%%tth:subdirectory. Any questions, comments or suggestions? Send me an -%%tth:\href{mailto:Christophe.Geuzaine@AdValvas.be}{e-mail}. +%%tth: \section*{Download} +%%tth: The current distribution of \texttt{directory} is +%%tth: \href{http://www.geuz.org/directory/src/directory-1.20.tgz}{directory-1.20.tgz}. +%%tth: This distribution contains both a +%%tth: \href{http://www.geuz.org/directory/directory.ps}{PostScript} +%%tth: and a \href{http://www.geuz.org/directory/directory.pdf}{PDF} +%%tth: version of the documentation. The separate files are also available +%%tth: through the \href{http://www.ctan.org/}{CTAN} sites in the +%%tth: \href{http://www.ctan.org/tex-archive/biblio/bibtex/contrib/directory/} +%%tth: {biblio/bibtex/contrib/directory/} subdirectory. Older versions are +%%tth: still available \href{http://www.geuz.org/directory/src/}{here}. +%%tth: Any questions, comments or suggestions? Send me an +%%tth: \href{mailto:geuz@geuz.org}{e-mail}. \tableofcontents @@ -105,59 +95,61 @@ facilitates the construction, the maintenance and the exploitation of an address book like database. It consists of five \BibTeX\ style files (\texttt{address.bst}, \texttt{phone.bst}, \texttt{email.bst}, \texttt{birthday.bst} and \texttt{letter.bst}) designed to be used in -conjunction with the \LaTeX\ style file \texttt{directory.sty}. According to +conjunction with the \LaTeX\ style file \texttt{directory.sty}. Depending on the bibliographical style used, the package has two main applications: \begin{enumerate} \item -the construction of a list of informations (address, phone number, etc.) +the construction of a list of information (address, phone number, etc.) about selected persons, companies or places; \item -the inclusion of selected informations concerning a person, a place -or a company at a desired location in a document. +the inclusion of a selected piece of information concerning a person, a +place or a company at a desired location in a document. \end{enumerate} In the first case, \texttt{directory} behaves just like standard -bibliographical styles: while standard bibliographical styles handle lists -of information concerning books, articles, proceedings, etc., -\texttt{directory} handles lists of informations relative to people, -companies or places. For example, the name in the title of this guide refers -to the corresponding entry in the directory listed in section~\ref{dir}. The -first four \BibTeX\ files permit several handlings of these informations. +bibliographical styles: while standard bibliographical styles handle data +concerning books, articles, proceedings, etc., \texttt{directory} handles +data relative to people, companies or places. For example, the name in the +title of this guide refers to the corresponding entry in the directory +listed in section~\ref{sec:output}. The first four \BibTeX\ files provide +several ways to handle this data. In the second case, the package enables bits of the database to be put in your document. It can for example be used to put the address of your correspondent in the address field of a letter. -Two special \BibTeX\ style files (\texttt{address-html.bst} and -\texttt{email-html.bst}) are also provided for an easy generation of -HTML versions of your directories. +\sloppypar +Four special \BibTeX\ style files (\texttt{address-html.bst}, +\texttt{email-html.bst}, \texttt{address-vcard.bst} and +\texttt{address-ldif.bst}) are also provided for an easy generation of HTML, +vCard and LDIF versions of your directories. \section{General description} \subsection{Package inclusion and options} -The package is included by the usual \verb'\usepackage['\emph{options}\verb']{directory}' -command at the top of the document, where \emph{options} stands for a -combination of the following options: +The package is included by the usual \verb'\usepackage{directory}' command +at the top of the document. Four options are available: \begin{description} -\item[\textmd{\texttt{split}:}] -the directory entries are split on separate pages according to the first -letter used in the sorting algorithm; -\item[\textmd{\texttt{break}:}] -the directory fields can be broken across pages. +\item[\textmd{\texttt{break}:}] allows the directory fields to be broken + across pages; +\item[\textmd{\texttt{german}:}] creates directories in German; +\item[\textmd{\texttt{french}:}] creates directories in French; +\item[\textmd{\texttt{longdates}:}] prints birthday dates using month names + instead of numbers. \end{description} The old (before version 1.10) formatting options are now handled by the same command mechanism as all other customization options (see section~\ref{sec:custom}). The directory is produced by the -\verb'\directory['\emph{extension}\verb']{'\emph{filename}\verb'}' command, -where \emph{filename} stands for the name of the \texttt{bib} file (without the -\texttt{bib} extension) and where the optional argument \emph{extension} +\verb'\directory['\emph{extension}\verb']{'\emph{filename}\verb'}' command, +where \emph{filename} stands for the name of the \texttt{bib} file (without +the \texttt{bib} extension) and where the optional argument \emph{extension} gives, if necessary, the extension of the file output by \BibTeX\ (see section~\ref{sec:usingboth}). As usual, multiple \texttt{bib} files can be -included, a comma separating the different file names. +included, a comma separating the different file names. \subsection{Making a citation} @@ -206,36 +198,103 @@ or \verb'\wdir{'\emph{key}\verb'}') command prints the name and the private \subsection{The \texttt{bib} file fields} -In all entry types, \texttt{name} is the only mandatory field, since it -serves as a key for sorting the entries. +\texttt{directory} defines three entry types: \verb'@person{}', +\verb'@company{}' and \verb'@place{}'. In all these types, \texttt{name} is +the only mandatory field, since it serves as a key for sorting the entries. +Here are all the available fields that can be defined for each entry: -\begin{description} -\item[\textmd{\texttt{person}:}] besides the \texttt{name}, -\texttt{nickname}, \texttt{birthday}, \texttt{birthyear} and \texttt{note} -fields, the available fields for the \texttt{person} entry in a \texttt{bib} -file are divided in three main categories. The first one (its associated -keys begin with \Quote{\texttt{p.}}, which stands for \Quote{private}) -refers to the person's private information: \texttt{p.address}, -\texttt{p.phone}, \texttt{p.cellular}, \texttt{p.fax}, \texttt{p.email}, -\texttt{p.url} and \texttt{p.account}. The second one (for which all the -keys begin with \Quote{\texttt{r.}}) refers to stuff relative to a person's -residence (i.e.\ a secondary or temporary address, which is for example -useful for students): \texttt{r.address}, \texttt{r.phone}, -\texttt{r.cellular}, \texttt{r.fax}, \texttt{r.email}, \texttt{r.url} and -\texttt{r.account}. The last one (associated keys begin with -\Quote{\texttt{w.}}, standing for \Quote{work}) refers to professional -informations: \texttt{w.title}, \texttt{w.name}, \texttt{w.address}, -\texttt{w.phone}, \texttt{w.cellular}, \texttt{w.fax}, \texttt{w.email}, -\texttt{w.url} and \texttt{w.account}. -\item[\textmd{\texttt{company}:}] the available fields for the -\texttt{company} entry are: \texttt{name}, \texttt{address}, \texttt{phone}, -\texttt{cellular}, \texttt{fax}, \texttt{email}, \texttt{url}, -\texttt{account} and \texttt{note}. -\item[\textmd{\texttt{place}:}] the available fields for the \texttt{place} -entry are: \texttt{name}, \texttt{address}, \texttt{phone}, -\texttt{cellular}, \texttt{fax} and \texttt{note}. -\end{description} +\begin{verbatim} +@person{key, + name = "Full name(s), in standard BibTeX format", + nickname = "Nickname(s)", + birthday = "Birthday date(s), in numeric 'day month' format", + birthyear = "Birth year(s)", + + p.street = "Street of private residence", + p.city = "City of private residence", + p.zip = "ZIP code of private residence", + p.state = "State of private residence", + p.country = "Country of private residence", + p.phone = "Private phone number", + p.cellular = "Private mobile phone number", + p.fax = "Private fax number", + p.email = "Private e-mail address", + p.url = "Private home page", + p.account = "Private bank account", + + r.street = "Street of alternative residence", + r.city = "City of alternative residence", + r.zip = "ZIP code of alternative residence", + r.state = "State of alternative residence", + r.country = "Country of alternative residence", + r.phone = "Alternative phone number", + r.cellular = "Alternative mobile phone number", + r.fax = "Alternative fax number", + r.email = "Alternative e-mail address", + r.url = "Alternative home page", + r.account = "Alternative bank account", + + w.name = "Work organization name", + w.title = "Job title", + w.street = "Street of work organization", + w.city = "City of work organization", + w.zip = "ZIP code of work organization", + w.state = "State of work organization", + w.country = "Country of work organization", + w.phone = "Work phone number", + w.cellular = "Work mobile phone number", + w.fax = "Work fax number", + w.email = "Work e-mail address", + w.url = "Work home page", + w.account = "Work bank account", + + note = "Additional notes about the person", +} +\end{verbatim} +\begin{verbatim} +@company{key, + name = "Company name", + street = "Company street", + city = "Company city", + zip = "Company ZIP code", + state = "Company state", + country = "Company country", + phone = "Company phone number", + cellular = "Company mobile phone number", + fax = "Company fax number", + email = "Company e-mail address", + url = "Company home page", + account = "Company bank account", + note = "Additional notes about the company", +} +\end{verbatim} + +\begin{verbatim} +@place{key, + name = "Place name", + street = "Place street", + city = "Place city", + zip = "Place ZIP code", + state = "Place state", + country = "Place country", + phone = "Place phone number", + cellular = "Place mobile phone number", + fax = "Place fax number", + note = "Additional notes about the place", +} +\end{verbatim} + +Multiple names, nicknames or birthday dates should be be separated with +``\texttt{and}''. For backward compatibility, or if an unconventional +address formatting is needed, the \texttt{street}, \texttt{city}, +\texttt{state}, \texttt{zip} and \texttt{country} fields (and their +\texttt{p.}, \texttt{r.} and \texttt{w.} equivalents) can be replaced by +generic \texttt{address}, \texttt{p.address}, \texttt{r.address} or +\texttt{w.address} fields. As soon as an \texttt{address} field is defined, +any \texttt{street}, \texttt{city}, \texttt{state}, \texttt{zip} or +\texttt{country} field definition is ignored, and the formatting in the +\texttt{address} field is kept as is. \section{Customization} \label{sec:custom} @@ -256,40 +315,46 @@ and \verb'\dirparindent') and the amount of space between two entries If you want to explicitly introduce a new paragraph in a field, you should use the \verb'\dirbreak' command. +A fourth dimension (\verb'\dirtablewidth') sets the width of the table used +to display fields in when the \texttt{letter} style is selected. The default +value is: +\begin{quote} +\begin{verbatim} +\setlength{\dirtablewidth}{0.5\textwidth} +\end{verbatim} +\end{quote} + + \subsection{Flags and formats} +\label{sec:flagsformats} Each field of a directory is easily customizable by redefining one of the -commands summarized in the table at the end of this user's guide -(page~\pageref{tab:commands}). For example, here is how the symbol produced -in the text after a directory label and the formatting of the label itself are -redefined in this document: +commands summarized in table~\ref{tab:commands} at the end of this user's +guide (page~\pageref{tab:commands}). + +For example, to produce nicely formatted address booklets, you could +redefine the \verb'\Dirheader' command as \begin{quote} \begin{verbatim} -\renewcommand{\dirsymbol} - {\raisebox{1ex}{\tiny\textit{(cf.\ section~\ref{dir})}}} -\renewcommand{\Dirlabel}[1]{{#1}} +\pagestyle{headings} +\renewcommand{\Dirheader}[1] + {\newpage\markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} \end{verbatim} \end{quote} - -A somewhat more complex example is the redefinition of the birthday format used -in this document to produce a nice literal expression for dates: +(which will split the directory across pages, with the first letter used in +the sorting algorithm in the header of each page) or \begin{quote} \begin{verbatim} -\renewcommand{\Dirbirthday}[2] - {{\ifcase #2\or January\or February\or March\or April% - \or May\or June\or July\or August\or September% - \or October\or November\or December\fi}% - {\space\ifnum #1=1 1st\else\number#1\fi}} -\renewcommand{\Dirbirthyear}[1]{, {#1}} +\renewcommand{\Dirheader}[1] + {\item\hspace{-\dirindent}\textbf{\MakeUppercase{#1}}} \end{verbatim} \end{quote} +(which will produce inline headings). -\subsection{More customization} - -When a field type multiply appears in an entry, the default settings assume the -same formatting for each one. For example, there are three instances of a -\texttt{phone} type field in a full \texttt{person} entry, i.e.\ -\texttt{p.phone}, \texttt{r.phone} and \texttt{w.phone}, and the +When a field type appears multiple times in an entry, the default settings +assume the same formatting for each one. For example, there are three +instances of a \texttt{phone} type field in a full \texttt{person} entry, +i.e.\ \texttt{p.phone}, \texttt{r.phone} and \texttt{w.phone}, and the \verb'\dirphone' and \verb'\Dirphone' customization commands apply to these three instances in the same way. @@ -330,40 +395,6 @@ rest of the bibliography processing. Remember that changing the directory \section{Generating directories with hypertext links} -\subsection{Direct HTML output} - -Two special \BibTeX\ style files (\texttt{address-html} and -\texttt{email-html}) allow the easy generation of HTML versions of -your directories: - -\begin{description} -\item[\textmd{\texttt{address-html}:}] -full listing in the HTML directory of all fields corresponding to the -\emph{key} entry. The output formatting is similar to that produced by \LaTeX\ -with the \texttt{address} style; -\item[\textmd{\texttt{email-html}:}] -only e-mail addresses are displayed in the HTML directory. -\end{description} - -Since \BibTeX\ directly outputs a \texttt{bbl} file in HTML format, no -additional program is needed to make the HTML conversion. The \texttt{bbl} -file directly contains the HTML code, ready to be included in any HTML -document. - -This method presents nevertheless a little drawback: after \BibTeX'ing your -\LaTeX\ file, running \LaTeX\ on the same file (even with another non-HTML -\verb|\directorystyle|) would produce errors, since the \texttt{bbl} file -is not understandable by \LaTeX. You have either to delete the \texttt{bbl} -file or to override the error messages (and to change the -\verb|\directorystyle|) before any subsequent successful \LaTeX\ run. - -The handling of special characters in the HTML directories is also quite -imperfect: any special \LaTeX\ character sequence is output the way it is in -the \texttt{bib} file. This implies for example that \verb|{\'e}| is printed in -the HTML document as \verb|{\'e}|, and not as \verb|é|. - -\subsection{Using the \texttt{hyperref} package} - You can use the \texttt{hyperref} package along with \texttt{directory}. For example, adding the following lines in the preamble of your document and using \texttt{pdflatex} will produce a PDF version of your directory, with @@ -380,8 +411,52 @@ working links for the \verb'email' and \verb'url' fields. \end{verbatim} \end{quote} +\section{Generating HTML, vCard or LDIF directories} + +Four special \BibTeX\ style files (\texttt{address-html}, +\texttt{email-html}, \texttt{address-vcard} and \texttt{address-ldif}) allow +the easy generation of HTML, vCard and LDIF versions of your directories: + +\begin{description} +\item[\textmd{\texttt{address-html}:}] +full listing in the HTML directory of all fields corresponding to the +\emph{key} entry. The output formatting is similar to that produced by \LaTeX\ +with the \texttt{address} style; +\item[\textmd{\texttt{email-html}:}] +only e-mail addresses are displayed in the HTML directory; +\item[\textmd{\texttt{address-vcard}:}] +full listing in the vCard directory of all fields corresponding to the +\emph{key} entry. +\item[\textmd{\texttt{address-ldif}:}] +full listing in the LDIF directory of all fields corresponding to the +\emph{key} entry. +\end{description} + +Since \BibTeX\ directly outputs a \texttt{bbl} file in HTML, vCard or LDIF +format, no additional program is needed to make the HTML/vCard/LDIF +conversion. The \texttt{bbl} file directly contains the HTML/vCard/LDIF +code, ready to be included in a HTML document or to be imported in a +vCard/LDIF-aware application (Apple Address Book, Microsoft Outlook, Mozilla +Mail, etc.). + +This method presents nevertheless a little drawback: after \BibTeX'ing your +\LaTeX\ file, running \LaTeX\ on the same file (even with another +\verb|\directorystyle|) will produce errors, since the \texttt{bbl} file is +not understandable by \LaTeX. You have to either delete the \texttt{bbl} +file or to override the error messages (and to change the +\verb|\directorystyle|) before any subsequent successful \LaTeX\ run. + +The handling of special characters in the HTML/vCard/LDIF directories is +also somewhat problematic: any special \LaTeX\ character sequence is output +the way it is in the \texttt{bib} file. This implies for example that +\verb|{\'e}| is printed in the HTML document as \verb|{\'e}|, and not as +\verb|é|. The vCard style assumes an ISO Latin 1 encoding of the +directory. If a special encoding is used in the \texttt{bib} file, the LDIF +output will need to be converted to UTF8. See the comments in the \BibTeX\ +style files for more information. \section{Example} +\label{sec:example} Despite the option described in section~\ref{sec:usingboth}, one of the most interesting way of using \texttt{directory} is to build a separate address @@ -391,9 +466,6 @@ people, companies or places, as in the example shown in this document: \verb|\nodir{*}| \\ \verb|\directory{family,business}| \end{quote} -The use of the \texttt{split} option, along with the redefinition of the -\verb'\Dirheader' command allows you to produce nicely formatted -address booklets. A second interesting way of using \texttt{directory} is to use it in your faxes or letters. Using the standard \LaTeX\ class \texttt{letter.cls} with the @@ -420,32 +492,33 @@ Here are four \texttt{bib} entries (taken from \texttt{family.bib} and name = "Christophe Geuzaine", birthday = "06 02", birthyear = "1973", - p.email = "Christophe.Geuzaine@advalvas.be", - w.title = "Ir., Research Assistant", - w.name = "University of Li{\`e}ge, - Dept. of Electrical Engineering", - w.address = "Institut Montefiore (B28, P32, I21),\\ - Sart Tilman Campus, B-4000 Li{\`e}ge, Belgium", - w.phone = "+32-(0)4-366.37.10", - w.fax = "+32-(0)4-366.29.10", - w.email = "Christophe.Geuzaine@ulg.ac.be", - w.url = "http://www.geuz.org/", + p.email = "geuz@geuz.org", + p.url = "http://www.geuz.org", + w.title = "Postdoctoral Scholar", + w.name = "Caltech, Applied and Computational Mathematics", + w.url = "http://www.acm.caltech.edu", + w.street = "1200 E California Blvd", + w.city = "Pasadena", + w.state = "CA", + w.zip = 91125, + w.country = "USA", + w.phone = "1 626 395 4552", } @Person{d.d.knu, - name = "Knudson, Daffy Duck and Bunny, Bugs and Pluto", + name = "Knudson, Daffy Duck and Bunny, Bugs and Mr. Pluto", nickname = "gnat and gnu and pluto", birthday = "10 02 and 05 11 and 01 01", - p.address = "Haight Street 512, 80214 Novosibirsk, Gnuland", p.phone = "+01-(0)2-765.43.21", p.cellular = "+01-(0)5-555.55.55", p.account = "010-1234567-05", - r.address = "Manor Lane 2, 80214 Novosibirsk, Gnuland", + r.street = "Haight Street 512", + r.zip = 80214, + r.city = "Novosibirsk", + r.country = "Gnuland", r.phone = "+01-(0)2-876.54.32", w.name = "University of Novosibirsk, Department of Octopus Parthenogenesis", - w.address = "Planck Institut (V1-V2, Park. U-67), - Hessenberg Road, 80214 Novosibirsk, Gnuland", } @Company{knudsoft, @@ -461,70 +534,87 @@ Here are four \texttt{bib} entries (taken from \texttt{family.bib} and \end{verbatim} \subsection{Output} -\label{dir} +\label{sec:output} The output resulting from the \verb'\directory{family,business}' command is shown below (all entries are listed, thanks to the \verb'\nodir{*}' command): -% CUSTOM try e.g. citing just some of the entries +% CUSTOM: try e.g. citing just some of the entries \nodir{*} -% CUSTOM this has the same effect: \directory[bbl]{family,business} +% CUSTOM: this has the same effect as \directory[bbl]{family,business} \directory{family,business} -%%tth:directory generated with \href{directory.html.address}{address-html.bst} -%%tth:and with \href{directory.html.email}{email-html.bst}. +%%tth: \par directory generated with \href{directory-address.html}{address-html.bst}, +%%tth: \href{directory-email.html}{email-html.bst}, +%%tth: \href{directory-address.vcf}{address-vcard.bst} and +%%tth: \href{directory-address.ldif}{address-ldif.bst}. \section{Contributors} -Many thanks to Bernd Schandl, Robert Walker Sumner and Thomas Ruedas for their -suggestions and corrections. +Many thanks to Bernd Schandl, Robert Walker Sumner, Thomas Ruedas and +J\"urgen G\"obel for their suggestions and corrections. \section{Versions} \begin{description} -\item[0.95] +\item[0.95] (Jan 8, 1998) First distributed version. -\item[0.96] +\item[0.96] (Jan 9, 1998) New documentation. Introduction of customization commands. New alignment mechanism in the \texttt{addressbook} and \texttt{phonebook} environments. -\item[0.97] +\item[0.97] (Jan 26, 1998) Entries \texttt{ccp} and \texttt{p.ccp} changed to \texttt{account} and \texttt{p.account}. -\item[0.98] +\item[0.98] (Feb 9, 1998) New style \texttt{letter.bst}. New commands \verb|\pdir|, \verb|\rdir| and \verb|\wdir| to produce in-text addresses when used with the \texttt{letter.bst} style. New internal key generation. -\item[0.99] +\item[0.99] (Feb 12, 1998) Name change of old customization flags (\verb'\'\emph{name}\verb'flag' becomes \verb'\dir'\emph{name}). New flags introduced: \verb|\dirnickname|, \verb|\dirphone|, \verb|\dirfax|, \verb|\diremail|, \verb|\dirurl|, \verb|\diraccount| and \verb|\dirand|. -\item[1.00] +\item[1.00] (Mar 26, 1998) New HTML styles (\texttt{address-html.bst} and \texttt{email-html.bst}). -\item[1.01] +\item[1.01] (Oct 26, 1998) Minor corrections. -\item[1.10] +\item[1.10] (May 6, 1999) Major rewriting of \texttt{bst} files (suppression of direct \LaTeX\ formatting). Definition of new customization commands. New package global options to split directories across pages and allow page breaks inside directory fields. The \texttt{url.sty} package is now required. -\item[1.11] +\item[1.11] (May 7, 1999) Introduction of \verb'\dirparindent'. -\item[1.12] +\item[1.12] (May 11, 1999) Formatting commands can be particularized to each subfield by adding \texttt{p}, \texttt{r} or \texttt{w} after the \verb'\dir' or \verb'\Dir' prefix of the original customization command. Many simplifications and small corrections in the page breaking mechanism and in the list environments. -\item[1.13] +\item[1.13] (Jun 21, 1999) Fixed bug for long entries without blank spaces (e.g.\ in \texttt{url} fields). -\item[1.14] +\item[1.14] (Jun 21, 2000) More flexible definition of \verb|\Dirheader|. -\item[1.15] +\item[1.15] (Aug 28, 2000) Added fields for cellular phones (suggested by Stefano Ferrari). Added section explaining how to use \texttt{hyperref} to generate PDF documents with hyperlinks. Updated web site address. +\item[1.16] (Feb 5, 2002) +Added \verb'\dirtablewidth' to set the width of the fields when the +\texttt{letter} style is selected. Suppressed the \texttt{split} option +(redefining the \verb'\Dirheader' command makes it possible to achieve the +same result: see section~\ref{sec:flagsformats}). +\item[1.17] (Dec 15, 2002) +Revised documentation. +\item[1.18] (Sep 13, 2003) +Added vCard and LDIF support. +\item[1.19] (Sep 15, 2003) +Split \texttt{address} into \texttt{street}, \texttt{city}, \texttt{state}, +\texttt{zip} and \texttt{country}. +\item[1.20] (Sep 22, 2004) +Fixed small vcard export bug when using the old \texttt{address} fields; +new \texttt{german}, \texttt{french} and \texttt{longdates} options. \end{description} @@ -542,7 +632,7 @@ Command & Arg. & Explanation & Default \\ \verb'\dirand' & 0 & \DbleQuote{anding} string & -\verb*'and' \\ +\verb*'\normalfont{and}' \\ \verb'\dirbirthday' & 0 & Birthday field flag & @@ -574,11 +664,11 @@ Address fields flag & \verb'\dirphone'$^*$ & 0 & Phone fields flag & -\verb*'phn: ' \\ +\verb*'tel: ' \\ \verb'\dircellular'$^*$ & 0 & Cellular phone fields flag & -\verb*'gsm: ' \\ +\verb*'mobile: ' \\ \verb'\dirfax'$^*$ & 0 & Fax fields flag & @@ -608,18 +698,15 @@ Name field flag & Label format & \verb*'{\textbf{#1}}' \\ -\verb'\Dirheader' & 1 & \raggedright Header format when & -\verb'\newpage\markboth' \\ -&& the \texttt{split} option is & -\verb' {\MakeUppercase{#1}}' \\ -&&\raggedright used$^\dag$ (the arg.\ is the first letter used in the -sorting algorithm) & -\verb' {\MakeUppercase{#1}}' \\ +\verb'\Dirheader' & 1 & +Command issued for each new starting letter in the directory (the arg.\ is +the first letter used in the sorting algorithm) & +\verb*'{}' \\ \verb'\Dirbirthday' & 2 & \raggedright Birthday format (the first arg.\ is the day, the second is the month) & -\verb*'{\number#1}/{\number#2}' \\ +\verb*'{\number#2}/{\number#1}' \\ \verb'\Dirbirthyear' & 1 & \raggedright Birth year format when a \texttt{birthday} field exists & @@ -631,7 +718,7 @@ is the month) & \verb'\Dirnickname' & 1 & Nickname format & -\verb*'(aka {#1})' \\ +\verb*'(aka \emph{#1})' \\ \verb'\Diraddress'$^*$ & 1 & Address format & @@ -680,10 +767,7 @@ Note format & $^*$\,The commands marked with an asterisk also exist in three other versions, controlling independently the private, residence and work parts (e.g.\ \verb'\dirphone' can be particularized to \verb'\dirpphone', -\verb'\dirrphone' and \verb'\dirwphone').\\[3pt] -$^\dag$\,and a coherent page style selected -(e.g.\ \verb'\pagestyle{headings}'). +\verb'\dirrphone' and \verb'\dirwphone'). \end{table} \end{document} - diff --git a/Master/texmf-dist/tex/latex/directory/directory.sty b/Master/texmf-dist/tex/latex/directory/directory.sty index 6b68c45cd24..fbcb34e9333 100644 --- a/Master/texmf-dist/tex/latex/directory/directory.sty +++ b/Master/texmf-dist/tex/latex/directory/directory.sty @@ -1,7 +1,7 @@ %% directory.sty -%% Copyright 1999-2000 Christophe Geuzaine +%% Copyright 1998-2004 Christophe Geuzaine <geuz@geuz.org> % -% Last Mod by Christophe on Sun Aug 27 21:04:41 2000 +% $Id: directory.sty,v 1.10 2004/02/11 16:17:29 geuzaine Exp $ % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License distributed from CTAN @@ -13,109 +13,200 @@ % For use in conjunction with 'address.bst', 'phone.bst', % 'email.bst', 'birthday.bst', 'letter.bst' % -% Christophe.Geuzaine@advalvas.be +\newif\if@break\@breakfalse +\newif\if@german\@germanfalse +\newif\if@french\@frenchfalse +\newif\if@longdates\@longdatesfalse % -\newif\if@splitversion\@splitversionfalse -\newif\if@breakversion\@breakversionfalse -% -\DeclareOption{split}{\@splitversiontrue} -\DeclareOption{break}{\@breakversiontrue} +\DeclareOption{split}{ + \typeout{^^JWarning: the `split' option is obsolete! Redefine `Dirheader' instead.^^J} +} +\DeclareOption{break}{\@breaktrue} +\DeclareOption{german}{\@germantrue} +\DeclareOption{french}{\@frenchtrue} +\DeclareOption{longdates}{\@longdatestrue} % \ProcessOptions* % \RequirePackage{url} -\newdimen\dirindent -\newdimen\dirsep -\newdimen\dirparindent +% +% ------------------------------------------------------------ +% N E W D I M E N S I O N S +% ------------------------------------------------------------ +% +\newlength{\dirindent} \setlength{\dirindent} {3em} +\newlength{\dirsep} \setlength{\dirsep} {3ex} +\newlength{\dirparindent} \setlength{\dirparindent} {0em} +\newlength{\dirtablewidth} \setlength{\dirtablewidth}{0.5\textwidth} % % ------------------------------------------------------------ % C U S T O M I Z A T I O N C O M M A N D S % ------------------------------------------------------------ % -\setlength{\dirindent} {3em} -\setlength{\dirparindent} {0em} -\setlength{\dirsep} {3ex} -\newcommand{\dirand} {and} -\newcommand{\dirsymbol} {} -\newcommand{\dirbirthday} {$\star$~} -\newcommand{\dirprivate} {\emph{p}~} -\newcommand{\dirresidence} {\emph{r}~} -\newcommand{\dirwork} {\emph{w}~} -\newcommand{\dirnote} {$\triangleright$~} -\newcommand{\dirnickname} {} -\newcommand{\diraddress} {} - \newcommand{\dirpaddress} {\diraddress} - \newcommand{\dirraddress} {\diraddress} - \newcommand{\dirwaddress} {\diraddress} -\newcommand{\dirphone} {phn: } - \newcommand{\dirpphone} {\dirphone} - \newcommand{\dirrphone} {\dirphone} - \newcommand{\dirwphone} {\dirphone} -\newcommand{\dircellular} {gsm: } - \newcommand{\dirpcellular} {\dircellular} - \newcommand{\dirrcellular} {\dircellular} - \newcommand{\dirwcellular} {\dircellular} -\newcommand{\dirfax} {fax: } - \newcommand{\dirpfax} {\dirfax} - \newcommand{\dirrfax} {\dirfax} - \newcommand{\dirwfax} {\dirfax} -\newcommand{\diremail} {} - \newcommand{\dirpemail} {\diremail} - \newcommand{\dirremail} {\diremail} - \newcommand{\dirwemail} {\diremail} -\newcommand{\dirurl} {} - \newcommand{\dirpurl} {\dirurl} - \newcommand{\dirrurl} {\dirurl} - \newcommand{\dirwurl} {\dirurl} -\newcommand{\diraccount} {acc: } - \newcommand{\dirpaccount} {\diraccount} - \newcommand{\dirraccount} {\diraccount} - \newcommand{\dirwaccount} {\diraccount} -\newcommand{\dirtitle} {} -\newcommand{\dirname} {} -\newcommand{\Dirlabel}[1] {\textbf{#1}} -\newcommand{\Dirheader}[1] {\newpage\markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} -\newcommand{\Dirbirthday}[2] {{\number#1}/{\number#2}} -\newcommand{\Dirbirthyear}[1] {/{#1}} -\newcommand{\DirbirthyearAlone}[1]{{#1}} -\newcommand{\Dirnickname}[1] {(aka {#1})} -\newcommand{\Diraddress}[1] {{#1}} - \newcommand{\Dirpaddress}[1] {\Diraddress{#1}} - \newcommand{\Dirraddress}[1] {\Diraddress{#1}} - \newcommand{\Dirwaddress}[1] {\Diraddress{#1}} -\newcommand{\Dirphone}[1] {{#1}} - \newcommand{\Dirpphone}[1] {\Dirphone{#1}} - \newcommand{\Dirrphone}[1] {\Dirphone{#1}} - \newcommand{\Dirwphone}[1] {\Dirphone{#1}} -\newcommand{\Dircellular}[1] {{#1}} - \newcommand{\Dirpcellular}[1] {\Dircellular{#1}} - \newcommand{\Dirrcellular}[1] {\Dircellular{#1}} - \newcommand{\Dirwcellular}[1] {\Dircellular{#1}} -\newcommand{\Dirfax}[1] {{#1}} - \newcommand{\Dirpfax}[1] {\Dirfax{#1}} - \newcommand{\Dirrfax}[1] {\Dirfax{#1}} - \newcommand{\Dirwfax}[1] {\Dirfax{#1}} -\newcommand{\Diremail}[1] {\url{#1}} - \newcommand{\Dirpemail}[1] {\Diremail{#1}} - \newcommand{\Dirremail}[1] {\Diremail{#1}} - \newcommand{\Dirwemail}[1] {\Diremail{#1}} -\newcommand{\Dirurl}[1] {\url{#1}} - \newcommand{\Dirpurl}[1] {\Dirurl{#1}} - \newcommand{\Dirrurl}[1] {\Dirurl{#1}} - \newcommand{\Dirwurl}[1] {\Dirurl{#1}} -\newcommand{\Diraccount}[1] {\url{#1}} - \newcommand{\Dirpaccount}[1] {\Diraccount{#1}} - \newcommand{\Dirraccount}[1] {\Diraccount{#1}} - \newcommand{\Dirwaccount}[1] {\Diraccount{#1}} -\newcommand{\Dirtitle}[1] {{#1}} -\newcommand{\Dirname}[1] {{#1}} -\newcommand{\Dirnote}[1] {{#1}} +\if@german +% +% German localization +% + \newcommand{\dirsymbol} {} + \newcommand{\dirbirthday} {$\star$~} + \newcommand{\dirnote} {$\triangleright$~} + \newcommand{\dirnickname} {} + \newcommand{\diraddress} {} + \newcommand{\dirand} {\normalfont{und}} + \newcommand{\dirprivate} {\emph{p}~} + \newcommand{\dirresidence} {\emph{z}~} % 'Zweiter Wohnsitz' + \newcommand{\dirwork} {\emph{b}~} % 'Beruf' + \newcommand{\dirphone} {Tel.~} + \newcommand{\dircellular} {Mobil~} + \newcommand{\dirfax} {Fax~} + \newcommand{\diremail} {} + \newcommand{\dirurl} {} + \newcommand{\diraccount} {} + \newcommand{\dirtitle} {} + \newcommand{\dirname} {} + \if@longdates + \newcommand{\Dirbirthday}[2] {{\number#1}.~{\ifcase #2\or Januar\or Februar\or% + M\"arz\or April\or Mai\or Juni\or Juli\or% + August\or September\or Oktober\or November\or% + Dezember\fi}} + \newcommand{\Dirbirthyear}[1] {~{#1}} + \else + \newcommand{\Dirbirthday}[2] {{\number#1}.{\number#2}.} + \newcommand{\Dirbirthyear}[1] {{#1}} + \fi + \newcommand{\DirbirthyearAlone}[1]{{#1}} + \newcommand{\Dirnickname}[1] {(alias \emph{#1})} +\else +\if@french +% +% French localization +% + \newcommand{\dirsymbol} {} + \newcommand{\dirbirthday} {$\star$~} + \newcommand{\dirnote} {$\triangleright$~} + \newcommand{\dirnickname} {} + \newcommand{\diraddress} {} + \newcommand{\dirand} {\normalfont{et}} + \newcommand{\dirprivate} {\emph{p}~} + \newcommand{\dirresidence} {\emph{r}~} + \newcommand{\dirwork} {\emph{b}~} % 'bureau' + \newcommand{\dirphone} {t\'el: } + \newcommand{\dircellular} {gsm: } + \newcommand{\dirfax} {fax: } + \newcommand{\diremail} {} + \newcommand{\dirurl} {} + \newcommand{\diraccount} {cpte: } + \newcommand{\dirtitle} {} + \newcommand{\dirname} {} + \if@longdates + \newcommand{\Dirbirthday}[2] {{\ifnum #1=1 1er\else\number#1\fi}~% + {\ifcase #2\or janvier\or f\'evrier\or mars\or% + avril\or mai\or juin\or juillet\or ao\^ut\or% + septembre\or octobre\or novembre\or d\'ecembre\fi}} + \newcommand{\Dirbirthyear}[1] {~{#1}} + \else + \newcommand{\Dirbirthday}[2] {{\number#1}/{\number#2}} + \newcommand{\Dirbirthyear}[1] {/{#1}} + \fi + \newcommand{\DirbirthyearAlone}[1]{{#1}} + \newcommand{\Dirnickname}[1] {(dit \emph{#1})} +\else +% +% Default localization (English) +% + \newcommand{\dirsymbol} {} + \newcommand{\dirbirthday} {$\star$~} + \newcommand{\dirnote} {$\triangleright$~} + \newcommand{\dirnickname} {} + \newcommand{\diraddress} {} + \newcommand{\dirand} {\normalfont{and}} + \newcommand{\dirprivate} {\emph{p}~} + \newcommand{\dirresidence} {\emph{r}~} + \newcommand{\dirwork} {\emph{w}~} + \newcommand{\dirphone} {tel: } + \newcommand{\dircellular} {mobile: } + \newcommand{\dirfax} {fax: } + \newcommand{\diremail} {} + \newcommand{\dirurl} {} + \newcommand{\diraccount} {acc: } + \newcommand{\dirtitle} {} + \newcommand{\dirname} {} + \if@longdates + \newcommand{\Dirbirthday}[2] {{\ifcase #2\or January\or February\or March\or% + April\or May\or June\or July\or August\or% + September\or October\or November\or December\fi}% + {\space\ifnum #1=1 1st\else\number#1\fi}} + \newcommand{\Dirbirthyear}[1] {, {#1}} + \else + \newcommand{\Dirbirthday}[2] {{\number#2}/{\number#1}} + \newcommand{\Dirbirthyear}[1] {/{#1}} + \fi + \newcommand{\DirbirthyearAlone}[1]{{#1}} + \newcommand{\Dirnickname}[1] {(aka \emph{#1})} +\fi +\fi + +\newcommand{\dirpaddress} {\diraddress} +\newcommand{\dirraddress} {\diraddress} +\newcommand{\dirwaddress} {\diraddress} +\newcommand{\dirpphone} {\dirphone} +\newcommand{\dirrphone} {\dirphone} +\newcommand{\dirwphone} {\dirphone} +\newcommand{\dirpcellular} {\dircellular} +\newcommand{\dirrcellular} {\dircellular} +\newcommand{\dirwcellular} {\dircellular} +\newcommand{\dirpfax} {\dirfax} +\newcommand{\dirrfax} {\dirfax} +\newcommand{\dirwfax} {\dirfax} +\newcommand{\dirpemail} {\diremail} +\newcommand{\dirremail} {\diremail} +\newcommand{\dirwemail} {\diremail} +\newcommand{\dirpurl} {\dirurl} +\newcommand{\dirrurl} {\dirurl} +\newcommand{\dirwurl} {\dirurl} +\newcommand{\dirpaccount} {\diraccount} +\newcommand{\dirraccount} {\diraccount} +\newcommand{\dirwaccount} {\diraccount} +\newcommand{\Dirlabel}[1] {\textbf{#1}} +%\newcommand{\Dirheader}[1]{\newpage\markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} +\newcommand{\Dirheader}[1] {} +\newcommand{\Diraddress}[1] {{#1}} +\newcommand{\Dirpaddress}[1] {\Diraddress{#1}} +\newcommand{\Dirraddress}[1] {\Diraddress{#1}} +\newcommand{\Dirwaddress}[1] {\Diraddress{#1}} +\newcommand{\Dirphone}[1] {{#1}} +\newcommand{\Dirpphone}[1] {\Dirphone{#1}} +\newcommand{\Dirrphone}[1] {\Dirphone{#1}} +\newcommand{\Dirwphone}[1] {\Dirphone{#1}} +\newcommand{\Dircellular}[1] {{#1}} +\newcommand{\Dirpcellular}[1] {\Dircellular{#1}} +\newcommand{\Dirrcellular}[1] {\Dircellular{#1}} +\newcommand{\Dirwcellular}[1] {\Dircellular{#1}} +\newcommand{\Dirfax}[1] {{#1}} +\newcommand{\Dirpfax}[1] {\Dirfax{#1}} +\newcommand{\Dirrfax}[1] {\Dirfax{#1}} +\newcommand{\Dirwfax}[1] {\Dirfax{#1}} +\newcommand{\Diremail}[1] {\url{#1}} +\newcommand{\Dirpemail}[1] {\Diremail{#1}} +\newcommand{\Dirremail}[1] {\Diremail{#1}} +\newcommand{\Dirwemail}[1] {\Diremail{#1}} +\newcommand{\Dirurl}[1] {\url{#1}} +\newcommand{\Dirpurl}[1] {\Dirurl{#1}} +\newcommand{\Dirrurl}[1] {\Dirurl{#1}} +\newcommand{\Dirwurl}[1] {\Dirurl{#1}} +\newcommand{\Diraccount}[1] {\url{#1}} +\newcommand{\Dirpaccount}[1] {\Diraccount{#1}} +\newcommand{\Dirraccount}[1] {\Diraccount{#1}} +\newcommand{\Dirwaccount}[1] {\Diraccount{#1}} +\newcommand{\Dirtitle}[1] {{#1}} +\newcommand{\Dirname}[1] {{#1}} +\newcommand{\Dirnote}[1] {{#1}} % % ------------------------------------------------------------ % D I R E C T O R Y % ------------------------------------------------------------ % -\def\dirbegin{\string\begin{tabular}{@{}l@{}}} +\def\dirbegin{\string\begin{tabular}{@{}p{\dirtablewidth}@{}}} \def\dirnext{\string\\} \def\dirbreak{\dirnext} %% this will be redefined for phonebooks and addressbooks \def\dirend{\string\end{tabular}} @@ -276,7 +367,7 @@ \labelwidth\dirindent \leftmargin\dirindent \itemsep\dirsep} - \if@breakversion + \if@break \def\dirblock{\par} \def\dirbreak{\par\noindent} \def\dirgroup{} @@ -299,15 +390,8 @@ % sectionning according to first letter in field % ------------------------------------------------------------ % -\if@splitversion - \def\dirlastletter{-} - \def\dircheck#1{% - \if#1\dirlastletter% - \else\def\dirlastletter{#1}\Dirheader{#1}% - \fi} -\else - \def\dircheck#1{} -\fi +\def\dirlastletter{-} +\def\dircheck#1{\if#1\dirlastletter\else\def\dirlastletter{#1}\Dirheader{#1}\fi} % % ------------------------------------------------------------ % define remaining bbl file commands diff --git a/Master/texmf-dist/tpm/directory.tpm b/Master/texmf-dist/tpm/directory.tpm index 7ccdc162ced..5353333d600 100644 --- a/Master/texmf-dist/tpm/directory.tpm +++ b/Master/texmf-dist/tpm/directory.tpm @@ -3,7 +3,7 @@ <rdf:Description about="http://texlive.dante.de/texlive/Package/directory.zip"> <TPM:Name>directory</TPM:Name> <TPM:Type>Package</TPM:Type> - <TPM:Date>2006/01/09 00:49:07</TPM:Date> + <TPM:Date>2006/10/22 14:02:24</TPM:Date> <TPM:Version>1.13</TPM:Version> <TPM:Creator>rahtz</TPM:Creator> <TPM:Title>Address book.</TPM:Title> @@ -16,19 +16,22 @@ book-like database. <TPM:Author>Christophe Geuzaine</TPM:Author> <TPM:Size>301762</TPM:Size> <TPM:Build/> - <TPM:RunFiles size="66120"> + <TPM:RunFiles size="114459"> texmf-dist/bibtex/bib/directory/business.bib texmf-dist/bibtex/bib/directory/family.bib -texmf-dist/bibtex/bib/directory/test.bib texmf-dist/bibtex/bst/directory/address-html.bst +texmf-dist/bibtex/bst/directory/address-ldif.bst +texmf-dist/bibtex/bst/directory/address-vcard.bst texmf-dist/bibtex/bst/directory/address.bst +texmf-dist/bibtex/bst/directory/birthday.bst texmf-dist/bibtex/bst/directory/email-html.bst +texmf-dist/bibtex/bst/directory/email.bst texmf-dist/bibtex/bst/directory/letter.bst texmf-dist/bibtex/bst/directory/phone.bst texmf-dist/tex/latex/directory/directory.sty texmf-dist/tpm/directory.tpm </TPM:RunFiles> - <TPM:DocFiles size="235642"> + <TPM:DocFiles size="222041"> texmf-dist/doc/latex/directory/README texmf-dist/doc/latex/directory/directory.pdf texmf-dist/doc/latex/directory/directory.tex diff --git a/Master/texmf/lists/directory b/Master/texmf/lists/directory index cb41fbd51a3..e06210e24b8 100644 --- a/Master/texmf/lists/directory +++ b/Master/texmf/lists/directory @@ -4,10 +4,13 @@ texmf-dist/doc/latex/directory/directory.tex texmf-dist/bibtex/bib/directory/business.bib texmf-dist/bibtex/bib/directory/family.bib -texmf-dist/bibtex/bib/directory/test.bib texmf-dist/bibtex/bst/directory/address-html.bst +texmf-dist/bibtex/bst/directory/address-ldif.bst +texmf-dist/bibtex/bst/directory/address-vcard.bst texmf-dist/bibtex/bst/directory/address.bst +texmf-dist/bibtex/bst/directory/birthday.bst texmf-dist/bibtex/bst/directory/email-html.bst +texmf-dist/bibtex/bst/directory/email.bst texmf-dist/bibtex/bst/directory/letter.bst texmf-dist/bibtex/bst/directory/phone.bst texmf-dist/tex/latex/directory/directory.sty |