From 61a9f818a6443b0e073e81ad9524dceab6aa92cf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Fri, 16 Jul 1999 00:35:55 -0700
Subject: [PATCH] some fixes for latex/ps/pdf

Rev: tutorial/Makefile:1.39
Rev: tutorial/latex.pike:1.9
Rev: tutorial/tutorial.wmml:1.127
---
 tutorial/Makefile      | 11 +++++-----
 tutorial/latex.pike    | 48 ++++++++++++++++++++++++++++++++++++------
 tutorial/tutorial.wmml | 18 ++++++++--------
 3 files changed, 56 insertions(+), 21 deletions(-)

diff --git a/tutorial/Makefile b/tutorial/Makefile
index 41c5bb1e2d..fb7798194a 100644
--- a/tutorial/Makefile
+++ b/tutorial/Makefile
@@ -55,10 +55,15 @@ tutorial.tex: .DUMMY $(SRCFILES)
 # latex has to be run twice to work with labels and stuff
 # but there are no labels yet...
 tutorial.dvi: tutorial.tex
-	-@rm tutorial.aux
+	-@rm tutorial.aux tutorial.toc
 	latex tutorial.tex
 	latex tutorial.tex
 
+tutorial.pdf: tutorial.pdftex
+	-@rm tutorial.aux tutorial.toc
+	pdflatex tutorial.pdftex
+	pdflatex tutorial.pdftex
+
 tutorial.ps: tutorial.dvi
 	dvips -Z tutorial.dvi -o tutorial.ps
 
@@ -71,10 +76,6 @@ tutorial.ps.bz2: tutorial.ps
 tutorial.pdftex: .DUMMY $(SRCFILES)
 	$(pike) ./wmmltohtml2 tutorial.wmml pdflatex tutorial
 
-tutorial.pdf: tutorial.pdftex
-	-@rm tutorial.aux
-	pdflatex tutorial.pdftex
-	pdflatex tutorial.pdftex
 
 tut.html: .DUMMY $(SRCFILES)
 	$(pike) ./wmmltohtml2 tutorial.wmml sitebuilder tut
diff --git a/tutorial/latex.pike b/tutorial/latex.pike
index c053cbe564..1866f66d19 100644
--- a/tutorial/latex.pike
+++ b/tutorial/latex.pike
@@ -29,11 +29,11 @@ string low_latex_quote(string text)
 		     "\\{","\\}",
 		     "$\\mu$","\\&",
 		     "\\verb+ +","$\\backslash$",
-		     "\\verb+[+","\\verb+]+",
+		     "\\symbol{91}","\\symbol{93}",
 
 		     "\\#","\\%",
-		     "\\$","\\verb+~+",
-		     "\\verb+^+","\\_",
+		     "\\$","\\symbol{126}",
+		     "\\symbol{94}","\\_",
 		     }) );
 }
 
@@ -45,7 +45,7 @@ string latex_quote(string text)
 string quote_label(string s)
 {
   string ret="";
-  while(sscanf(s,"%[_a-zA-Z0-9.:]%c%s",string safe, int char, s)==3)
+  while(sscanf(s,"%[a-zA-Z0-9.:]%c%s",string safe, int char, s)==3)
     ret+=sprintf("%s-%02x",safe,char);
   ret+=s;
   return ret;
@@ -392,18 +392,22 @@ string convert_to_latex(SGML data, void|int flags)
 	    break;
 
 	  case "section":
+	    int olddepth=depth;
 	    string tmp="";
 	    switch(depth)
 	    {
+	      // For sections outside chapters
+	      case 0: depth++; break;
+                
 	      default:
+	      case 3: tmp+="sub";
 	      case 2: tmp+="sub";
-	      case 1: tmp+="sub";
-	      case 0:
+	      case 1:
 	    }
 	    depth++;
 	    ret+="\\"+tmp+"section{"+latex_quote(tag->params->title)+"}"+
 	      convert_to_latex(tag->data);
-	    depth--;
+	    depth=olddepth;
 	    break;
 
 	  case "center":
@@ -416,6 +420,36 @@ string convert_to_latex(SGML data, void|int flags)
 	  case "constant":
 	  case "method":
 	  case "function":
+#if 1
+	  if(depth)
+	  {
+	    string tmp="";
+	    switch(depth)
+	    {
+	      // For sections outside chapters
+	      case 0: depth++; break;
+                
+	      default:
+	      case 3: tmp+="sub";
+	      case 2: tmp+="sub";
+	      case 1:
+	    }
+
+	    if(tag->params->name)
+	    {
+	      foreach(tag->params->name/",", string name)
+		{
+		  sscanf(name," %s",name);
+		  ret+="\n\\addcontentsline{toc}{"+tmp+"section}{"+
+		    latex_quote(name)+
+		"}\n";
+		}
+	    }
+	  }
+#endif
+	  ret+=convert_to_latex(tag->data);
+	  break;
+
 	  case "class":
 	  case "module":
             // FIXME: but how?
diff --git a/tutorial/tutorial.wmml b/tutorial/tutorial.wmml
index fb583c5270..f462780db8 100644
--- a/tutorial/tutorial.wmml
+++ b/tutorial/tutorial.wmml
@@ -7319,7 +7319,7 @@ might not be available in your Pike depending on whether the gdbm library
 was available on your system when Pike was compiled.
 
 <hr noshade size=1>
-<method name=Gdbm.gdbm->create title="open database">
+<method name=Gdbm.gdbm-&gt;create title="open database">
 <man_syntax>
 int create();<br>
 int create(string <I>file</I>);<br>
@@ -7351,7 +7351,7 @@ can be left in an unusable state if Pike is terminated abnormally.
 
 <hr noshade size=1>
 
-<method name=Gdbm.gdbm->close title="close database">
+<method name=Gdbm.gdbm-&gt;close title="close database">
 <man_syntax>
 void close();<br>
 </man_syntax>
@@ -7362,7 +7362,7 @@ This closes the database.
 
 <hr noshade size=1>
 
-<method name=Gdbm.gdbm->store title="store a value in the database">
+<method name=Gdbm.gdbm-&gt;store title="store a value in the database">
 <man_syntax>
 int store(string <I>key</I>, string <I>data</I>);<br>
 </man_syntax>
@@ -7376,7 +7376,7 @@ the database was not open for writing.
 
 <hr noshade size=1>
 
-<method name=Gdbm.gdbm->fetch title="fetch a value from the database">
+<method name=Gdbm.gdbm-&gt;fetch title="fetch a value from the database">
 <man_syntax>
 string fetch(string <I>key</I>);<br>
 </man_syntax>
@@ -7388,7 +7388,7 @@ If there was no such key in the database, zero is returned.
 
 <hr noshade size=1>
 
-<method name=Gdbm.gdbm->delete title="delete a value from the database">
+<method name=Gdbm.gdbm-&gt;delete title="delete a value from the database">
 <man_syntax>
 int delete(string <I>key</I>);<br>
 </man_syntax>
@@ -7400,7 +7400,7 @@ if the key does not exist.
 
 <hr noshade size=1>
 
-<method name=Gdbm.gdbm->firstkey title="get first key in database">
+<method name=Gdbm.gdbm-&gt;firstkey title="get first key in database">
 <man_syntax>
 string firstkey();<br>
 </man_syntax>
@@ -7412,7 +7412,7 @@ database.
 
 <hr noshade size=1>
 
-<method name=Gdbm.gdbm->nextkey title="get next key in database">
+<method name=Gdbm.gdbm-&gt;nextkey title="get next key in database">
 <man_syntax>
 string nextkey(string <I>key</I>);<br>
 </man_syntax>
@@ -7430,7 +7430,7 @@ for(key=gdbm-&gt;firstkey(); k; k=gdbm-&gt;nextkey(k))<br>
 
 <hr noshade size=1>
 
-<method name=Gdbm.gdbm->reorganize title="reorganize database">
+<method name=Gdbm.gdbm-&gt;reorganize title="reorganize database">
 <man_syntax>
 int reorganize();<br>
 </man_syntax>
@@ -7444,7 +7444,7 @@ can take a LOT of time to run.
 
 <hr noshade size=1>
 
-<method name=Gdbm.gdbm->sync title="synchronize database">
+<method name=Gdbm.gdbm-&gt;sync title="synchronize database">
 <man_syntax>
 void sync();<br>
 </man_syntax>
-- 
GitLab