diff --git a/tutorial/.cvsignore b/tutorial/.cvsignore
index 670e6fda624f91694d6e26ca8c44a45299c434b2..70f02a08f70712d0007018c69fabdb0468bad06c 100644
--- a/tutorial/.cvsignore
+++ b/tutorial/.cvsignore
@@ -11,6 +11,7 @@ ___tmp.*
 __tmp.ppm
 error.pdf
 execute_cache
+execute_cache.log
 extra_textflows.mif
 gfx
 illustration*.*
@@ -20,6 +21,7 @@ image_cache.log
 latex_wcache
 latex_wcache.log
 man
+missfont.log
 pike.pdf
 test.aux
 test.dvi
@@ -41,3 +43,4 @@ tutorial.ps.gz
 tutorial.tex
 tutorial.toc
 tutorial_*.html
+tutorial_onepage.tex
diff --git a/tutorial/.gitignore b/tutorial/.gitignore
index e301d03386812d43e5a3c895cfaba30aff46222a..bff8f2b6c00cd8451900eddb84b75d6b98d4b207 100644
--- a/tutorial/.gitignore
+++ b/tutorial/.gitignore
@@ -11,6 +11,7 @@
 /__tmp.ppm
 /error.pdf
 /execute_cache
+/execute_cache.log
 /extra_textflows.mif
 /gfx
 /illustration*.*
@@ -20,6 +21,7 @@
 /latex_wcache
 /latex_wcache.log
 /man
+/missfont.log
 /pike.pdf
 /test.aux
 /test.dvi
@@ -41,3 +43,4 @@
 /tutorial.tex
 /tutorial.toc
 /tutorial_*.html
+/tutorial_onepage.tex
diff --git a/tutorial/Makefile b/tutorial/Makefile
index 4cee824a0ad756393eff910812fe85d647cb70e2..fd1764def229148029d6d32a8b1aa2fff36cffed 100644
--- a/tutorial/Makefile
+++ b/tutorial/Makefile
@@ -61,7 +61,8 @@ tutorial.dvi: tutorial.tex
 	latex tutorial.tex
 
 tutorial.pdf: tutorial.pdftex
-	pdflatex tutorial.pdftex
+	if [ -d fonts ]; then ( cd fonts ; make ) ; fi
+	TEXPSHEADERS=fonts: TEXINPUTS=fonts: TTFONTS=fonts: TFMFONTS=fonts: pdflatex tutorial.pdftex
 
 tutorial.ps: tutorial.dvi
 	dvips -Z tutorial.dvi -o tutorial.ps
@@ -99,6 +100,7 @@ clean:
 	-rm -f tutorial.dvi tutorial.tex tutorial.aux
 	-rm -f tutorial.log tutorial.toc
 	-rm -f latex_wcache illustration_cache image_cache gfx/* execute_cache
+	if [ -d fonts ]; then ( cd fonts ; make clean ); fi
 
 rebuild:
 	-rm -f $(MADEFILES)
diff --git a/tutorial/idonex-fonts.tex b/tutorial/idonex-fonts.tex
new file mode 100644
index 0000000000000000000000000000000000000000..a3b942fd2562003cb2850fe942c1418792838a60
--- /dev/null
+++ b/tutorial/idonex-fonts.tex
@@ -0,0 +1 @@
+% Stub file
diff --git a/tutorial/latex.pike b/tutorial/latex.pike
index 28d2f387d44a99c4a4f46ee0070a7a69fcbe2d4c..597b3a563668dfba483dda44dcc12ba3625fca23 100644
--- a/tutorial/latex.pike
+++ b/tutorial/latex.pike
@@ -27,6 +27,7 @@ string packages =
 \\usepackage{graphicx}
 \\usepackage{color}  % colors becomes wrong in xdvi, but right in postscript
 \\usepackage{colortbl}
+\\usepackage{parskip}
 ";
 
 string latex = "latex";
@@ -42,15 +43,7 @@ array(float) find_line_width(array(SGML) data)
 
   if(search(ret, 0) != -1)
   {
-    string x="\\documentclass[twoside,a4paper]{book}\n"
-      +packages+"\n"
-      "\\begin{document}\n"
-      "\\author{wmml to latex}\n"
-      "\\setlength{\\unitlength}{1mm}\n"
-      "{\\catcode`\\^^20=\\active\\catcode`\\^^0d=\\active%\n"
-      "\\global\\def\\startcode{\\catcode`\\^^20=\\active\\def^^20{\\hbox{\\ }}%\n"
-      "\\catcode`\\^^0d=\\active\\def^^0d{\\hskip0pt\\par\\noindent}%\n"
-      "\\parskip=1pt\\tt}}\n"
+    string x=
       "\\begin{titlepage}\n"
       "\\newlength{\\gnapp}\n";
     
@@ -61,8 +54,9 @@ array(float) find_line_width(array(SGML) data)
 	  "\\message{length=\\number\\gnapp dots}\n";
       }
     
-    x+="\\end{titlepage}\n"
-      "\\end{document}\n";
+    x+="\\end{titlepage}\n";
+
+    x=package(x);
     
     rm("___tmp.tex");
     Stdio.write_file("___tmp.tex",x);
@@ -839,7 +833,7 @@ string low_index_to_latex(INDEX data, string prefix, int indent)
   string ret="";
   foreach(srt(indices(data)-({0})),string key)
     {
-      ret+="\\item "+"$\\;$$\\;$"*indent;
+      ret+="\\item "+"$\\;$$\\;$$\\;$"*indent;
       
       if(data[key][0])
       {
@@ -854,7 +848,7 @@ string low_index_to_latex(INDEX data, string prefix, int indent)
 	foreach(srt(indices(data[key][0])), string key2)
 	  {
 	    if(key2==prefix+key) continue;
-	    ret+="\\item "+"$\\;$$\\;$"*(indent+1);
+	    ret+="\\item "+"$\\;$$\\;$$\\;$"*(indent+1);
 	    ret+=fix_index_key(key2);
 	    ret+=", \\pageref{"+quote_label(data[key][0][key2][0])+"}\n";
 	}
@@ -1127,10 +1121,10 @@ string convert_to_latex(SGML data, void|int flags)
 	    break;
 	    
 	  case "dt": ret+="\n\\item "; break;
-	  case "dd": ret+="\n\\item $\\;$$\\;$"; break;
+	  case "dd": ret+="\n\\item $\\;$$\\;$$\\;$$\\;$"; break;
 
 	  case "ex_indent":
-	    ret+="$\\;$$\\;$";
+	    ret+="$\\;$$\\;$$\\;$$\\;$";
 	    break;
 	  case "ex_br":
 
@@ -1178,7 +1172,7 @@ string convert_to_latex(SGML data, void|int flags)
 	      }else{
 		ret+=
 		  convert_to_latex(tag->data)+
-		  "* \\marginpar{"+
+		  "* \\marginpar{\\footnotesize{"+
 		  replace(latex_quote(href),
 			  ({".","/",":"}),
 			  ({
@@ -1186,7 +1180,7 @@ string convert_to_latex(SGML data, void|int flags)
 			    "\\discretionary{}{}{}/",
 			    "\\discretionary{}{}{}:",
 			  }))+
-		  "}";
+		  "}}";
 	      }
 	    }else{
 	      ret+=convert_to_latex(tag->data);
diff --git a/tutorial/pdflatex.pike b/tutorial/pdflatex.pike
index 4150bff1ede0cc9234d7e2703411b65defae1dc1..09b30bf06fdbd93a189700b51118065b205bbee1 100644
--- a/tutorial/pdflatex.pike
+++ b/tutorial/pdflatex.pike
@@ -20,6 +20,7 @@ string packages=
 \\usepackage[pdftex]{graphicx}
 \\usepackage[pdftex]{color}
 \\usepackage{colortbl}
+\\usepackage{parskip}
 ";
 
 string latex="pdflatex";
@@ -75,6 +76,7 @@ string package(string x)
 \\documentclass[twoside,a4paper]{book}
 "+packages+
 #"\\begin{document}
+\\input{idonex-fonts.tex}
 \\author{wmml2pdflatex}
 \\setlength{\\unitlength}{1mm}
 
@@ -82,6 +84,7 @@ string package(string x)
 \\global\\def\\startcode{\\catcode`\\^^20=\\active\\def^^20{\\hbox{\\ }}%
 \\catcode`\\^^0d=\\active\\def^^0d{\\hskip0pt\\par\\noindent}%
 \\parskip=1pt\\tt}}
+
 "+
     x+
     "\\end{document}\n";