summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/jmlr
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-03-25 22:31:43 +0000
committerKarl Berry <karl@freefriends.org>2011-03-25 22:31:43 +0000
commitcfed44562985f2f168a5b2f6df46bcaec533d7e9 (patch)
tree30f24d025629d6b15af090531a16ba7df8576a4f /Master/texmf-dist/scripts/jmlr
parent3923279f3c33488793532b77f5881847f1ebfb7d (diff)
jmlr 1.11 (24mar11)
git-svn-id: svn://tug.org/texlive/trunk@21830 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/jmlr')
-rwxr-xr-xMaster/texmf-dist/scripts/jmlr/makejmlrbook515
1 files changed, 409 insertions, 106 deletions
diff --git a/Master/texmf-dist/scripts/jmlr/makejmlrbook b/Master/texmf-dist/scripts/jmlr/makejmlrbook
index 0bef7f02730..40463b22136 100755
--- a/Master/texmf-dist/scripts/jmlr/makejmlrbook
+++ b/Master/texmf-dist/scripts/jmlr/makejmlrbook
@@ -2,8 +2,8 @@
# File : makejmlrbook
# Author : Nicola L C Talbot
# Date : 22nd March 2010
-# Last Modified : 5th Jan 2011
-# Version : 0.2
+# Last Modified : 24th March 2011
+# Version : 0.3
# Description : Given the name of a document using the
# jmlrbook class file, this script runs
# pdflatex (and possibly bibtex) on the
@@ -31,7 +31,7 @@ use File::Copy;
use Cwd;
use strict;
-my $version = "0.2 (2011-01-05)";
+my $version = "0.3 (2011-03-24)";
my $eol = "\n";
my $dd = '/';
@@ -55,23 +55,25 @@ my $latexopts = '';
my $bibtexopts = '';
my $format = 'pdf';
my $logourl = '';
+my $extractpreface = 0; # v0.3 added
unless(&GetOptions(
"online!" => \$online,
"print!" => \$print,
"html!" => \$html,
+ "extractpreface!" => \$extractpreface,
"logourl=s" => \$logourl,
"format=s" => \$format,
"latexapp=s" => \$latexapp,
"bibtexapp=s" => \$bibtexapp,
"latexopts=s" => \$latexopts,
"bibtexopts=s" => \$bibtexopts,
- "quieter!" => \$quiet,
+ "quieter!" => \$quiet,
"batchtex!" => \$batchtex,
"version" => \$showversion,
"help" => \$showhelp))
{
- die "$!\n", "Use --help for help\n";
+ die "Use --help for help\n";
}
my $appname = basename($0);
@@ -91,6 +93,8 @@ if ($showhelp)
"--noprint\t\tDon't generate the grayscale print version\n",
"--html\t\t\tGenerate the HTML version (default)\n",
"--nohtml\t\tDon't generate the HTML version\n",
+ "--extractpreface\tParse document for preface environment\n",
+ "--noextractpreface\tDon't parse document for preface environment\n",
"--logourl <url>\tMake the logo on the HTML index page link to <url>\n",
"--batchtex\t\tRun TeX in batch mode\n",
"--nobatchtex\t\tDon't run TeX in batch mode\n",
@@ -137,8 +141,7 @@ $main_suffix = '.tex' unless $main_suffix;
my $org_dir = cwd();
-chdir $main_path
- or die "Can't change directory to '$main_path': $!\n";
+&chdirordie($main_path);
my $mainaux = "$main_name.aux";
@@ -152,13 +155,15 @@ if (not -e $mainaux or (-M $mainaux > -M "$main_name$main_suffix"))
# Parse aux file
-open AUX, "$mainaux" or die "Can't open '$mainaux' $!\n";
+open AUX, "$mainaux" or die "$appname: Can't open '$mainaux' $!\n";
&message("Reading '$mainaux'...\n");
my $main_bibdata = 0;
my @imports = ();
my %pagerefs = ();
+my $preface_data; # v0.3 new
+my @preface_editors = ();
while (<AUX>)
{
@@ -196,6 +201,42 @@ while (<AUX>)
$pagerefs{$label}->{'end'} = $3;
}
+ elsif ($extractpreface) # v0.3 new
+ {
+ if (/^\\\@prefacestart{([^}]*)}{(\d*)}/)
+ {
+ $preface_data->{'Start'} = $1;
+ $preface_data->{'StartArabic'} = $2;
+ }
+ elsif (/^\\\@prefaceend{([^}]*)}/)
+ {
+ $preface_data->{'End'} = $1;
+ }
+ elsif (/^\\\@prefacefile{([^}]*)}{([^}]*)}/)
+ {
+ $preface_data->{'File'} = $1;
+ $preface_data->{'OutFile'} = $2;
+ }
+ elsif (/^\\\@prefaceeditor{(.*)}/)
+ {
+ my $name = $1;
+ $name=~s/\\\\.*//;
+ push @preface_editors, $name;
+ }
+ }
+}
+
+# if preface is to be extracted, has the require data been found?
+
+if ($extractpreface)
+{
+ unless ($preface_data->{'File'})
+ {
+ warn "$appname: Can't find preface information in aux file.\n",
+ "Have you used the preface environment?\n";
+
+ $extractpreface = 0;
+ }
}
close AUX;
@@ -220,13 +261,176 @@ if ($html)
unless (-d 'html-src')
{
mkdir 'html-src'
- or die "Can't create directory 'html-src': $!\n";
+ or die "$appname: Can't create directory 'html-src': $!\n";
}
unless (-d 'html')
{
mkdir 'html'
- or die "Can't create directory 'html': $!\n";
+ or die "$appname: Can't create directory 'html': $!\n";
+ }
+
+ if ($extractpreface) # v0.3 new
+ {
+ # If the preface needs to be extract, make a directory for it if
+ # it doesn't already exist
+
+ my $prefdir = &fname("html-src", $preface_data->{'OutFile'});
+
+ unless (-d $prefdir)
+ {
+ mkdir $prefdir
+ or die "$appname: Can't create directory '$prefdir': $!\n";
+ }
+
+ my $prefbase = &fname($prefdir, $preface_data->{'OutFile'});
+
+ my $prefout = "$prefbase.tex";
+
+ # Open preface output file
+
+ open PREFOUT, ">$prefout"
+ or die "$appname: Can't open '$prefout': $!\n";
+
+ print PREFOUT "\\batchmode", $eol if ($batchtex or $quiet);
+ print PREFOUT "\\makeatletter", $eol;
+ print PREFOUT "\\def\\input\@path{{../../}}", $eol;
+ print PREFOUT "\\makeatother", $eol;
+
+ # Get the book's preamble
+
+ my $filename = "$main_name$main_suffix";
+
+ open BOOK, $filename
+ or die "$appname: Can't open '$filename': $!\n";
+
+ while (<BOOK>)
+ {
+ if (/\\documentclass/)
+ {
+ unless (s/^([^%]*)\\documentclass\s*\[(.*)\]/$1\\documentclass[$2,html]/m)
+ {
+ s/^([^%]*)\\documentclass\s*/$1\\documentclass[html]/m;
+ }
+
+ print PREFOUT;
+ }
+ elsif (/^\\begin{document}/)
+ {
+ if ($preface_data->{'Start'}=~/^[clxvi]+$/)
+ {
+ print PREFOUT "\\pagenumbering{roman}%", $eol;
+ }
+ elsif ($preface_data->{'Start'}=~/^[CLXVI]+$/)
+ {
+ print PREFOUT "\\pagenumbering{Roman}%", $eol;
+ }
+
+ print PREFOUT
+ "\\setcounter{page}{",
+ $preface_data->{'StartArabic'},
+ "}%", $eol;
+
+ # \hypersetup{draft} is used to suppress links.
+ # (Only a partial document so internal links may be
+ # dead. Also prevents unwanted tag before the DOCTYPE
+ # line in the HTML file.)
+
+ print PREFOUT
+ "\\hypersetup{draft}", $eol,
+ '\\makeatletter',
+ "\\\@openrightfalse\\input{../../$main_name.aux}",
+ '\\makeatother', $eol;
+
+ print PREFOUT
+ "\\providecommand{\\HCode}[1]{}", $eol,
+ "\\title{\\prefacename}", $eol,
+ "\\begin{document}", $eol,
+ "\\HCode{<div id=\"content\">}", $eol;
+
+ last;
+ }
+ else
+ {
+ print PREFOUT;
+ }
+ }
+
+ close BOOK;
+
+ # Preface file name will have '/' as directory divider
+
+ my $preffile = $preface_data->{'File'};
+
+ if ($dd eq "\\")
+ {
+ $preffile=~s/\//\\/g;
+ }
+
+ open PREFIN, $preffile
+ or die "$appname: Can't open '$preffile': $!\n";
+
+ my $scanning = 0;
+
+ while (<PREFIN>)
+ {
+ # This is fairly primitive and works best when the begin
+ # and end of the environment are on their own line.
+
+ if (/\\begin{preface}/)
+ {
+ print PREFOUT;
+ $scanning = 1;
+ }
+ elsif ($scanning)
+ {
+ print PREFOUT;
+
+ last if /\\end{preface}/;
+ }
+ }
+
+ close PREFIN;
+
+ print PREFOUT
+ "\\HCode{", &htmltimestamp, "}", $eol,
+ "\\HCode{</div>}", $eol,
+ &htmlmenu,
+ "\\end{document}", $eol;
+
+ close PREFOUT;
+
+ # Create the cfg file
+
+ &createjmlrcfg("html-src", $preface_data->{'OutFile'});
+
+ &chdirordie($prefdir);
+
+ &latex($preface_data->{'OutFile'});
+ &htlatex($preface_data->{'OutFile'}, 'jmlr');
+
+ &chdirordie($org_dir, $main_path);
+
+ # Check the appropriate subdirectory is in html directory
+
+ my $outname = &fname('html', $preface_data->{'OutFile'});
+
+ unless (-d $outname)
+ {
+ mkdir $outname
+ or die "Can't create directory '$outname': $!\n";
+ }
+
+ # Copy pdf file
+
+ $outname = &fname($outname, "$preface_data->{OutFile}.$format");
+
+ copy("$prefbase.$format", $outname)
+ or die "Can't copy '$prefbase.$format'", " to '$outname': $!\n";
+
+ # Copy html file
+
+ &copyhtml($preface_data->{'OutFile'}, $preface_data->{'OutFile'});
}
}
@@ -244,7 +448,7 @@ foreach my $import (@imports)
# The aux file should exist because running LaTeX on the
# main file will create the aux file.
- open AUX, $aux or die "Can't open '$aux' $!\n";
+ open AUX, $aux or die "$appname: Can't open '$aux' $!\n";
&message("Reading '$aux'...\n");
@@ -270,16 +474,14 @@ foreach my $import (@imports)
unless (-e $log)
{
- chdir $import->{'path'}
- or die "Can't change directory to '$import->{path}': $!\n";
+ &chdirordie($import->{'path'});
&latex($import->{'name'});
- chdir "$org_dir/$main_path" or
- die "Can't change directory to '$org_dir/$main_path': $!\n";
+ &chdirordie($org_dir, $main_path);
}
- open LOGFD, $log or die "Can't open '$log' $!\n";
+ open LOGFD, $log or die "$appname: Can't open '$log' $!\n";
&message("Reading '$log'...\n");
@@ -300,44 +502,38 @@ foreach my $import (@imports)
if ($runbibtex)
{
- chdir $import->{'path'}
- or die "Can't change directory to '$import->{path}': $!\n";
+ &chdirordie($import->{'path'});
&bibtex($import->{'name'});
&latex($import->{'name'});
- chdir "$org_dir/$main_path" or
- die "Can't change directory to '$org_dir/$main_path': $!\n";
+ &chdirordie($org_dir, $main_path);
}
}
if ($html)
{
- # If html is required, we also need pdf versions of the
- # individual articles.
+ # If html is required, we also need pdf versions of the
+ # individual articles.
# v0.2 run latex even if pdf file exists to ensure start page
# number is correct.
- chdir $import->{'path'}
- or die "Can't change directory to '$import->{path}': $!\n";
+ &chdirordie($import->{'path'});
- &latexstartpage($import->{'name'}, $pagerefs{$label}->{'start'});
+ &latexstartpage($import->{'name'}, $pagerefs{$label}->{'start'});
- chdir "$org_dir/$main_path" or
- die "Can't change directory to '$org_dir/$main_path': $!\n";
+ &chdirordie($org_dir, $main_path);
# Do we need a rerun?
if (&needs_rerun($importbase))
{
- chdir $import->{'path'}
- or die "Can't change directory to '$import->{path}': $!\n";
+ &chdirordie($import->{'path'});
&latexstartpage($import->{'name'}, $pagerefs{$label}->{'start'});
- chdir &fname($org_dir,$main_path) or
- die "Can't change directory to '$org_dir$dd$main_path': $!\n";
+ &chdirordie($org_dir,$main_path);
}
my $importdir = $import->{'path'};
@@ -354,7 +550,7 @@ foreach my $import (@imports)
unless (-d $name)
{
mkdir $name
- or die "Can't create directory '$name': $!\n";
+ or die "$appname: Can't create directory '$name': $!\n";
}
my $text = '';
@@ -364,7 +560,7 @@ foreach my $import (@imports)
my $tex = "$importbase.tex";
- open TEX, $tex or die "Can't open '$tex': $!\n";
+ open TEX, $tex or die "$appname: Can't open '$tex': $!\n";
while (<TEX>)
{
@@ -389,6 +585,16 @@ foreach my $import (@imports)
$text=~s/^([^%]*)\\documentclass\s*/$1\\documentclass[html]/m;
}
+ my $aux = "$importbase.aux";
+
+ $aux=~s/\\/\//g if ($dd eq '\\');
+
+ my $prebegindoc = '\\hypersetup{draft}' . $eol
+ . '\\makeatletter' . $eol
+ . "\\input{../../$aux}" . $eol
+ . '\\makeatother'
+ . $eol;
+
my $begindoc = '';
# Set the authors
@@ -402,14 +608,15 @@ foreach my $import (@imports)
}
# Add content div
- $text=~s/^([^%]*)\\begin{document}/$&$begindoc\\HCode{<div id="content">}/m;
+ $text=~s/^([^%]*)\\begin{document}/$prebegindoc$&$begindoc\\HCode{<div id="content">}/m;
# Create file containing the abstract
- my $absfile = "html-src/$importdir/".$import->{'name'}.'.tex';
+ my $absfile = &fname("html-src", $importdir,
+ $import->{'name'}.'.tex');
open ABSFD,">$absfile"
- or die "Can't create '$absfile': $!\n";
+ or die "$appname: Can't create '$absfile': $!\n";
print ABSFD "\\batchmode", $eol if ($batchtex or $quiet);
@@ -424,78 +631,30 @@ foreach my $import (@imports)
$text, $eol,
"\\HCode{", &htmltimestamp, "}", $eol,
"\\HCode{</div>}", $eol,
+ &htmlmenu, # v0.3 added by Olivier Chapelle
"\\end{document}",$eol;
close ABSFD;
# Create the cfg file
- my $cfg = "html-src/$importdir/jmlr.cfg";
-
- open CFG, ">$cfg" or die "Can't create '$cfg': $!\n";
-
-print CFG <<END_CFG;
-\\Preamble{html}
-\\begin{document}
-\\Css{div.maketitle {text-align:left;}}
-\\Css{h2.titleHead {text-align:left;}}
-\\Css{. {font-family:verdana,helvetica,sans-serif}}
-\\Css{a {text-decoration:none;color:\\#3030a0}}
-\\Css{.cmbx-10x-x-109{ font-weight: bold;}}
-\\Css{.cmbxti-10x-x-109{ font-weight: bold; font-style: italic;}}
-\\EndPreamble
-END_CFG
-
- close CFG;
+ &createjmlrcfg("html-src", $importdir);
# Run htlatex
# Change directory
- chdir "html-src/$importdir"
- or die "Can't change directory to 'html-src/$importdir': $!\n";
-
+ &chdirordie("html-src", $importdir);
- my $code = system("htlatex \"".$import->{'name'}."\" \"jmlr\"");
-
- if ($code)
- {
- die "htlatex failed with exit code $code\n";
- }
+ &htlatex($import->{'name'}, 'jmlr');
# Go back to main directory
- chdir "$org_dir$dd$main_path"
- or die "Can't change directory to '$org_dir$dd$main_path': $!\n";
+ &chdirordie($org_dir, $main_path);
# Copy the html file to the html directory, but rename
# the css file to jmlr.css
- my $infile = &fname("html-src",$importdir,
- $import->{'name'}.".html");
-
- open INFD, $infile or die "Can't open '$infile': $!\n";
-
- my $outfile = &fname("html", $import->{'name'}.".html");
-
- open OUTFD, ">$outfile" or die "Can't open '$outfile': $!\n";
-
- while (<INFD>)
- {
- s/href="$import->{name}\.css"/href="jmlr.css"/;
-
- print OUTFD;
- }
-
- close OUTFD;
-
- close INFD;
-
- # Copy css file
-
- copy("html-src/$importdir/$import->{name}.css",
- "html/jmlr.css")
- or die "Can't copy 'html-src/$importdir/$import->{name}.css'",
- " to 'html/jmlr.css': $!\n";
+ &copyhtml($importdir, $import->{'name'});
# Check the appropriate subdirectory is in html directory
@@ -590,12 +749,12 @@ if ($html)
while (<INFD>)
{
unless
- (s/^([^%]*)\\documentclass\[([^\]]*)\]/$1\\documentclass[$2,html]/)
+ (s/^([^%]*)\\documentclass\s*\[([^\]]*)\]/$1\\documentclass[$2,html]/)
{
- s/^([^%]*)\\documentclass/$&\[html\]/;
+ s/^([^%]*)\\documentclass\s*/$&\[html\]/;
}
- s/^([^%]*)\\begin{document}/$&\\HCode{<div id="content">}/;
+ s/^([^%]*)\\begin{document}/\\hypersetup{draft}$eol$&\\HCode{<div id="content">}/;
if (/^([^%]*)\\maketitle/)
{
@@ -670,6 +829,36 @@ if ($html)
my $toc = "$main_name.toc";
+ # Add link to preface if required
+
+ if ($extractpreface)
+ {
+ print OUTFD
+ "\\begin{description}\\item[\\normalfont \\prefacename]", $eol;
+
+ print OUTFD "\\textbf{\\emph{\\jmlrabbrnamelist{{",
+ join('},{', @preface_editors),
+ "}}};} ",
+ '\\csname @jmlrabbrvproceedings\\endcsname\\space',
+ '\\csname @jmlrvolume\\endcsname:',
+ $preface_data->{'Start'};
+
+ unless ($preface_data->{'Start'} eq $preface_data->{'End'})
+ {
+ print OUTFD '--', $preface_data->{'End'};
+ }
+
+ print OUTFD ', \\csname @jmlryear\\endcsname\\newline', $eol;
+
+ my $name = $preface_data->{'OutFile'};
+
+ print OUTFD "[\\HCode{<a href=\"$name.html\">html</a>}] ",
+ "[\\HCode{<a href=\"$name/$name.pdf\">pdf</a>}]",
+ $eol;
+
+ print OUTFD "\\end{description}$eol";
+ }
+
open TOC, $toc or die "Can't open '$toc': $!\n";
my $idx = 0;
@@ -682,7 +871,9 @@ if ($html)
}
elsif (/\\contentsline\s*{papertitle}{(.*)}{[^{}]*}{[^{}]*}\s*$/)
{
- print OUTFD "\\par\\noindent $1$eol";
+ # v0.3 Changed by Olivier Chapelle to use description
+ # environment instead of paragraph break
+ print OUTFD "\\begin{description}\\item[\\normalfont $1]$eol";
}
elsif (/\\contentsline\s*{chapterauthor}{(.*)}{[^{}]*}{[^{}]*}\s*$/)
{
@@ -695,11 +886,17 @@ if ($html)
$details=~s/\\articlepagesref\s*{$label}/$pages/;
- print OUTFD "\\par $details$eol";
+ # v0.3 Changed by Olivier Chapelle to use newline instead of par
+ print OUTFD "$details\\newline$eol";
my $name = $imports[$idx]->{'name'};
- print OUTFD "\\par [\\href{$name.html}{abs}] [\\href{$name/$name.pdf}{pdf}]$eol$eol";
+ print OUTFD "[\\HCode{<a href=\"$name.html\">abs</a>}] ",
+ "[\\HCode{<a href=\"$name/$name.pdf\">pdf</a>}]",
+ $eol;
+
+ # v0.3 Changed by Olivier Chapelle to end description
+ print OUTFD "\\end{description}$eol";
$idx++;
}
@@ -711,24 +908,19 @@ if ($html)
print OUTFD "\\HCode{", &htmltimestamp, "}$eol";
+ print OUTFD &htmlmenu; # v0.3 Added by Olivier Chapelle
+
print OUTFD "\\HCode{</div>}\\end{document}$eol";
close OUTFD;
# Go into html-src directory and run htlatex
- chdir('html-src')
- or die "Can't change directory to 'html': $!\n";
+ &chdirordie('html-src');
- my $code = system('htlatex index');
+ &htlatex("index", 'xhtml');
- if ($code)
- {
- die "htlatex failed with error code $code\n";
- }
-
- chdir('..')
- or die "Can't change directory to '..': $!\n";
+ &chdirordie('..');
# Copy to html directory
@@ -880,6 +1072,14 @@ sub needs_rerun{
sub fname{ join($dd, @_) }
+# v0.3 new
+sub chdirordie{
+ my $dirname = &fname(@_);
+
+ chdir $dirname
+ or die "$appname: Can't change directory to $dirname: $!\n";
+}
+
# v0.2 new
sub htmltimestamp{
my $timestamp = localtime;
@@ -887,4 +1087,107 @@ sub htmltimestamp{
return "<hr><center>Page last modified on $timestamp.</center>";
}
+# v0.3 Added by Olivier Chapelle
+sub htmlmenu{
+ return '
+\\HCode{<div id="fixed"><br>}
+\\HCode{<a align="right" href="http://www.jmlr.org" target=_top><img align="right" class="jmlr" src="http://jmlr.csail.mit.edu/jmlr.jpg" border="0"></a>}
+\\HCode{<p><br><br>}
+\\HCode{<p align="right"> <A href="http://www.jmlr.org/"> Home Page </A>}
+\\HCode{<p align="right"> <A href="/papers"> Papers </A>}
+\\HCode{<p align="right"> <A href="/author-info.html"> Submissions </A>}
+\\HCode{<p align="right"> <A href="/news.html"> News </A>}
+\\HCode{<p align="right"> <A href="/scope.html"> Scope </A>}
+\\HCode{<p align="right"> <A href="/editorial-board.html"> Editorial Board </A>}
+\\HCode{<p align="right"> <A href="/announcements.html"> Announcements </A>}
+\\HCode{<p align="right"> <A href="/proceedings"> Proceedings </A>}
+\\HCode{<p align="right"> <A href="/mloss">Open Source Software</A>}
+\\HCode{<p align="right"> <A href="/search-jmlr.html"> Search </A>}
+\\HCode{<p align="right"> <A href="/manudb"> Login </A></p>}
+\\HCode{<br><br>}
+\\HCode{<p align="right"> <A href="http://jmlr.csail.mit.edu/jmlr.xml">}
+\\HCode{<img src="http://jmlr.csail.mit.edu/RSS.gif" class="rss" alt="RSS Feed">}
+\\HCode{</A>}
+\\HCode{</div>}
+'
+}
+
+# v0.3 new
+sub htlatex{
+ my ($filename, $cfg) = @_;
+
+ # unicode-related options suggested by Olivier Chapelle
+
+ my $cmd = "htlatex \"$filename\" \"$cfg,uni-html4\" \" -cunihtf -utf8\"";
+
+ my $code = system($cmd);
+
+ if ($code)
+ {
+ die "$appname: htlatex failed with exit code $code. ",
+ "Function call:\n",
+ $cmd, "\n";
+ }
+}
+
+#v0.3 new
+sub createjmlrcfg{
+ my $cfg = &fname(@_, "jmlr.cfg");
+
+ open CFG, ">$cfg" or die "$appname: Can't create '$cfg': $!\n";
+
+print CFG <<END_CFG;
+\\Preamble{html}
+\\begin{document}
+\\Css{div.maketitle {text-align:left;}}
+\\Css{h2.titleHead {text-align:left;}}
+\\Css{. {font-family:verdana,helvetica,sans-serif}}
+\\Css{a {text-decoration:none;color:\\#3030a0}}
+\\Css{.cmbx-10x-x-109{ font-weight: bold;}}
+\\Css{.cmbxti-10x-x-109{ font-weight: bold; font-style: italic;}}
+\\Css{\\#fixed {position:absolute; top:0; left:0; width:8em;
+height:100\\%;}}
+\\Css{\\#content {margin-top:1em; margin-left:10em;
+margin-right:0.5em;}}
+\\Css{img.jmlr {width: 7em;}}
+\\Css{img.rss {width: 2em;}}
+\\EndPreamble
+END_CFG
+
+# v0.3 Last four \Css lines above added by Olivier Chapelle
+ close CFG;
+}
+
+#v0.3 new
+# copy html from html-src/$dir/ to html/ and rename css file
+sub copyhtml{
+ my ($dir, $name) = @_;
+
+ my $infile = &fname("html-src", $dir, "$name.html");
+
+ open INFD, $infile or die "Can't open '$infile': $!\n";
+
+ my $outfile = &fname("html", "$name.html");
+
+ open OUTFD, ">$outfile" or die "Can't open '$outfile': $!\n";
+
+ while (<INFD>)
+ {
+ s/href="$name\.css"/href="jmlr.css"/;
+
+ print OUTFD;
+ }
+
+ close OUTFD;
+
+ close INFD;
+
+ # Copy css file
+
+ copy("html-src/$dir/$name.css", "html/jmlr.css")
+ or die "Can't copy 'html-src/$dir/$name.css'",
+ " to 'html/jmlr.css': $!\n";
+
+}
+
1;