sub Prolog{
my($str,$strA,@lines);
$str=shift(@_);
$strA=$str;
$strA=~s/\.bib$//;
$strA.='.coauthorurl'; # safer if name doesn't end in .bib
if( -f $strA ) {
if(open(IN,$strA) ) {
@lines=;
close(IN);
$strA=join(" ",@lines);
eval($strA);
}
else {print"Failed to open coauthor file file \"",$str,"\".\n";}
}
$str=~s/\.bib$//;$str.='.prolog'; # safer if name doesn't end in .bib
if(open(IN,$str) ) {
print main::OUT ;
close(IN);
}
else {print"Failed to open Prolog file \"",$str,"\".\n";}
}
sub Epilog{
my($str);
$str=shift(@_);
$str=~s/\.bib$//;$str.='.epilog'; # safer if name doesn't end in .bib
if(open(IN,$str) ) {
print main::OUT ;
close(IN);
}
else {print"Failed to open Epilog file \"",$str,"\".\n";}
}
sub BBL{
my($file);
$file=shift(@_);
$file=~s/\.bib$//;$file.='.pub.html'; # safer if name doesn't end in .bib
return($file);
}
sub compute_sort_hash{
&main::reverse_input_hash(@_);
}
######################################
## format_??
## author
## editors
## pages
## format_name_string
######################################
sub format_author{
my($xyx);
$xyx=shift(@_);
&main::string_name_field(\${${$xyx}}{"author"},"Y");
}
sub format_editors{ # first_initial~last_name
my($xyx);
$xyx=shift(@_);
&main::string_name_field(\${${$xyx}}{"editor"},"Y");
}
sub format_pages{
my($xyx);
$xyx=shift(@_);
%item=%{${$xyx}};
${${$xyx}}{"pages"}=~s/--/-/;
}
sub format_name_string{
my(@names,$str,$ii,$url_hash);
$str=shift(@_);
@names=@{$str};
$str="";
for($ii=0;$ii<=$#names;$ii++){
$url_hash=$names[$ii];
$str.=$names[$ii++]." "; ## first
$url_hash.=' '.$names[$ii];
$str.=$names[$ii++]." "; ## von
$url_hash.=' '.$names[$ii];
$url_hash=~s/~/ /g;$url_hash=~s/ +/ /g;
if( defined($author_url{$url_hash}) && $author_url{$url_hash} ne "" ) {
$url_hash=$author_url{$url_hash};
$url_hash=~s/~/\002/; # hide url ~'s
$str.="a href=\"".$url_hash."\">".$names[$ii++]."\/a>, "; ## url'ed last
}
else {
$str.=$names[$ii++].", "; ## last
}
$str.=$names[$ii]."¥"; ## Jr.
}
$str=~s/ / /g;$str=~s/, +¥/¥/g;$str=~s/¥$//;
$ii=rindex($str,'¥');
if($ii>0) {substr($str,$ii,1)=" and ";}
$str=~s/¥/, /g;
$str=~s/ ,/,/;$str=~s/ +/ /;
return($str);
}
###################################
###################################
sub MR{
my($str);
$str=shift(@_);
if($str ne "" ) {
print main::OUT "MR# ";
if($str=~m/:/) {
print main::OUT "a href=\"http:\/\/www\.ams\.org/mathscinet-getitem?mr=";
print main::OUT $str,"\">",$str,"\/a>\n";
}
else {
print main::OUT $str,"\n";
}
}
}
sub ZB{
my($str);
$str=shift(@_);
if($str ne "" ) {
print main::OUT " ZB# ";
print main::OUT "a href=\"http:\/\/gonzo.springer-ny\.com\/cgi-bin\/zmen\/ZMATH\/en\/zmath\.html\?first=1&maxdocs=20&type=html&an=";
print main::OUT $str, "&format=complete\">";
print main::OUT $str,"\/a>";
}
}
sub textat{
my($str,$tt,$xx);
$str=shift(@_);$tt="";
while ( ($xx=index($str,"URL(")) >=0 ) {
$tt.=substr($str,0,$xx);
$str=substr($str,$xx+4);
$xx=index($str,")(");
$tt.="A href=\"".substr($str,0,$xx)."\">";
$str=substr($str,$xx+2);
$xx=index($str,")");
$tt.=substr($str,0,$xx)."/A>";
$str=substr($str,$xx+1);
}
$tt.=$str;
if($tt ne "" ) {
print main::OUT $tt;
}
}
sub Author{
my($str,$names);
$names=shift(@_);
$str=&format_name_string($names);
$str=~s/~/ /g;$str=deTeX($str);
$str=~s/\002/~/g; # dont' confuse url ~'s with TeX ~'s
print main::OUT $str,".\n";
}
sub deTeX{
my($str);
$str=shift(@_);
$str=~s/}//g;$str=~s/{//g;$str=~s/--/-/g;
$str=~s/\\-//g;
$str=~s/\\\"a/ä/g;
$str=~s/\\\"u/ü/g;
$str=~s/\\\"o/ö/g;
$str=~s/\\\'e/é/g;
return($str);
}
###################################
sub tag_it{
my($str);
$str=shift(@_);$str=~m/ /;
print main::OUT "b>[",$'-$`+1,"]\/b> ";
}
sub output_ARTICLE{
my(%item,@names,$ii,$str);
%item=%{shift(@_)};
tag_it($item{"read_in"});
@names=@{$item{"author"}};
Author(\@names);
###
if($item{"url"} ne "") {
print main::OUT "a href=\"",$item{"url"},"\">";
print main::OUT deTeX($item{"title"}),". ";
print main::OUT "\/a>. ";
}
else {
print main::OUT deTeX($item{"title"}),". ";
}
print main::OUT "em>",$item{"journal"},",\/em>";
if( $item{"volume"} ne "" ) {print main::OUT "b>",$item{"volume"},"\/b> ";}
if($item{"pages"} ne "" ){print main::OUT ", ",$item{"pages"};}
print main::OUT ", ",$item{"year"},". \n";
MR($item{"mr"});
ZB($item{"zb"});
textat($item{"textat"});
print main::OUT "br>br>\n\n";
}
sub output_BOOK{
my(%item,@names,$ii,$str);
%item=%{shift(@_)};
tag_it($item{"read_in"});
@names=@{$item{"author"}};
Author(\@names);
###
print main::OUT deTeX($item{"title"}),". ";
if( $item{"series"} ne "" ) {print main::OUT ", ",deTeX($item{"series"});
if( $item{"volume"} ne "" ) {print main::OUT " b>",$item{"volume"},"\/b>";}
}
if( $item{"publisher"} ne "" ) {print main::OUT ", ",deTeX($item{"publisher"});
if( $item{"address"} ne "" ) {print main::OUT ", ",deTeX($item{"address"});}
}
print main::OUT " (",$item{"year"},")";
if($item{"pages"} ne "" ){print main::OUT " pp.",$item{"pages"},". \n";}
MR($item{"mr"});
ZB($item{"zb"});
print main::OUT "br>br>\n\n";
}
sub output_INCOLLECTION{
output_INPROCEEDINGS(@_);
}
sub output_INPROCEEDINGS{
my(%item,@names,$ii,$str);
%item=%{shift(@_)};
tag_it($item{"read_in"});
@names=@{$item{"author"}};
Author(\@names);
###
if($item{"url"} ne "") {
print main::OUT "a href=\"",$item{"url"},"\">";
print main::OUT deTeX($item{"title"}),". ";
print main::OUT "\/a>. ";
}
else {
print main::OUT deTeX($item{"title"}),". ";
}
###
##print main::OUT deTeX($item{"title"}),". ";
###
print main::OUT "\"",deTeX($item{"booktitle"}),"\", ";
if( $item{"editors"} ne "") {print main::OUT " (Ed. by: ",deTeX($item{"editors"}),")";}
if( $item{"series"} ne "" ) {print main::OUT " ",deTeX($item{"series"});
if( $item{"volume"} ne "" ) {print main::OUT " b>",$item{"volume"},"\/b>";}
}
if( $item{"publisher"} ne "" ) {print main::OUT ", ",deTeX($item{"publisher"});
if( $item{"address"} ne "" ) {print main::OUT ", ",deTeX($item{"address"});}
}
print main::OUT " (",$item{"year"},")";
if($item{"pages"} ne "" ){print main::OUT " pp.",$item{"pages"},". \n";}
MR($item{"mr"});
ZB($item{"zb"});
print main::OUT "br>br>\n\n";
}