diff options
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/directory/email-html.bst')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/directory/email-html.bst | 361 |
1 files changed, 361 insertions, 0 deletions
diff --git a/Master/texmf-dist/bibtex/bst/directory/email-html.bst b/Master/texmf-dist/bibtex/bst/directory/email-html.bst new file mode 100644 index 00000000000..ef151557491 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/email-html.bst @@ -0,0 +1,361 @@ +%% 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 + + " <em>priv.</em>" 'private.str := + " <em>temp.</em>" 'residence.str := + " <em>prof.</em>" '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$ "" } + { "<A HREF=" quote$ * "mailto:" * swap$ * quote$ * " >" * swap$ * "</A>" * } + 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} +{ "<HTML><!-- This is a file generated by the LaTeX directory package -->" write$ + newline$ + "<TITLE>E-mail directory (generated by the LaTeX directory package)</TITLE>" write$ + newline$ +} + +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$ + 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 * } + { and.str * 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$ + { "" } + { email email emailize } + if$ +} + +FUNCTION {format.p.flag} +{ p.email empty$ not + { private.str } + { "" } + if$ +} + +FUNCTION {format.p.email} +{ p.email empty$ + { "" } + { p.email p.email emailize } + if$ +} + +FUNCTION {format.r.flag} +{ r.email empty$ not + { residence.str } + { "" } + if$ +} + +FUNCTION {format.r.email} +{ r.email empty$ + { "" } + { r.email r.email emailize } + if$ +} + +FUNCTION {format.w.flag} +{ w.email empty$ not + { work.str } + { "" } + if$ +} + +FUNCTION {format.w.email} +{ w.email empty$ + { "" } + { w.email w.email emailize } + 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 + { init.strings + + newline$ + "<br><b>" write$ + format.name write$ + "</b>" write$ + + "" + format.p.flag output + format.p.email output + format.r.flag output + format.r.email output + format.w.flag output + format.w.email output + + write$ + newline$ + } + { } + if$ +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + + +FUNCTION { company } +{ + email empty$ not + { init.strings + + newline$ + "<br><b>" write$ + name write$ + "</b>" write$ + + "" + format.email output + + 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} + |