%% email-html.bst %% Copyright 1999-2000 Christophe Geuzaine % % Last Mod by Christophe on Sun Aug 27 21:23:27 2000 % % 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 `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" % 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 } {} { private.str residence.str work.str and.str } % ------------------------------------------------------------ % G E N E R A L % ------------------------------------------------------------ FUNCTION {init.strings} { % CUSOTM this is the 'html' equivalent for the \dirXXX customization % commands " priv." 'private.str := " temp." 'residence.str := " prof." 'work.str := " and " 'and.str := } FUNCTION {output.nonnull} { 's := write$ newline$ s } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull 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$ } FUNCTION {emailize} { duplicate$ empty$ { pop$ "" } { "" * swap$ * "" * } 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$ := } % ------------------------------------------------------------ % P R E - A N D P O S T - H E A D E R S % ------------------------------------------------------------ FUNCTION {begin.bib} { "" write$ newline$ "