diff --git a/books/bookvol4.pamphlet b/books/bookvol4.pamphlet
index a25774a..b2f400a 100644
--- a/books/bookvol4.pamphlet
+++ b/books/bookvol4.pamphlet
@@ -1148,7 +1148,7 @@ So now it turns to the general modemaps:
             has FIELD
  
 \end{verbatim}
-and it eventually promotes PI to FRAC(POLY(INT)) and
+it eventually promotes PI to FRAC(POLY(INT)) and
 POLY(INT) to FRAC(POLY(INT)) and finds the match:
 \begin{verbatim}
     (FRAC(POLY(INT))) / (FRAC(POLY(INT)))
@@ -1354,9 +1354,15 @@ So we have a match
 \begin{verbatim}
  
  [1]  signature:   (FRAC POLY INT,SYMBOL) -> Union(EXPR INT,LIST EXPR INT)
-      implemented: slot (Union (Expression (Integer)) (List (Expression (Integer))))(Fraction (Polynomial (Integer)))(Symbol) from IRRF2F INT
+      implemented: slot (Union (Expression (Integer))
+                         (List (Expression (Integer))))
+                         (Fraction (Polynomial (Integer)))(Symbol) 
+                   from IRRF2F INT
  [2]  signature:   (EXPR INT,SYMBOL) -> Union(EXPR INT,LIST EXPR INT)
-      implemented: slot (Union (Expression (Integer)) (List (Expression (Integer))))(Expression (Integer))(Symbol) from FSINT(INT,EXPR INT)
+      implemented: slot (Union (Expression (Integer)) 
+                         (List (Expression (Integer))))
+                         (Expression (Integer))(Symbol) 
+                   from FSINT(INT,EXPR INT)
  
 \end{verbatim}
 
@@ -2803,7 +2809,7 @@ the spad file that contains it.
 The second line gives debugging output containing a unique number for
 console debugging purposes of failed builds.
 
-The third line extracts the help file. These help files are part of
+The third line extracts the help file. Help files are part of
 the algebra books (bookvol10.2, bookvol10.3, and bookvol10.4). The
 chunkname is the same as the Category, Domain, or Package.
 
@@ -2977,7 +2983,7 @@ CHAR;char;S\$;20 which is a mangled form of
 the name of the original spad function. To decode this name 
 we can see that the CHAR portion is used to identify the 
 domain where the function lives. This domain, CHAR, comes 
-from the source file ``string.spad'' which ultimately lives in 
+from the source file ``string.spad'' which lives in 
 ``src/algebra/string.spad.pamphlet''. To discover this we use 
 the Axiom ``asq'' command with the ``-so'' (sourcefile) option 
 at a standard shell prompt (NOT in the lisp prompt) thus:
@@ -3595,7 +3601,7 @@ in ./lib
 \noindent
 ./bin/htadd
 
-This function adds pages to the Hyperdoc database (ht.db, which lives
+This adds pages to the Hyperdoc database (ht.db, which lives
 in ./doc/hypertex/pages; hypertex, since we have a penchant for these
 things, is an historical name for Hyperdoc. The single word 'lawyers'
 will probably explain away a lot of name changes.)
@@ -5172,7 +5178,7 @@ Value = (#<compiled-function
 
 
 
-The \#\\A value appears as a result of a call to 
+The \#\\A value appears from a call to 
 CHAR;coerce;\$Of;12. We can look in CHAR.NRLIB/code.lsp
 for this function and continue our descent into the code. The 
 function looks like:
@@ -5220,7 +5226,8 @@ execute in place of the normal Axiom image
 The script reads:
 \begin{verbatim}
 #!/bin/sh
-exec strace -o /tmp/str.$$ /research/test/mnt/ubuntu/bin/AXIOMsys.bin "$@" | tee /tmp/tee.$$
+exec strace -o /tmp/str.$$ /research/test/mnt/ubuntu/bin/AXIOMsys.bin "$@" 
+      | tee /tmp/tee.$$
 \end{verbatim}
 
 The script will create 2 files in the tmp directory, ``str.NNNNN'' and
@@ -5521,7 +5528,7 @@ section and change the names. In any case, your new section will need
 \item Create a dividiing line consisting of all \% signs. 
 Note that this character is the comment character for TeX.
 \item Create the \verb|\section| tag. This tag should contain the exact text of
-the )abbrev line from your algebra code. In our case it would read:
+the )abbrev line from your algebra code. It reads:
 \verb|)section{package INTERGB InterfaceGroebnerPackage}|
 \item Create a regression test chunk. This chunk derives its name from the
 algebra name as in ``InterfaceGroebnerPackage.input''. This chunk will
@@ -5859,10 +5866,16 @@ our new domain:
 \begin{verbatim}
 
 (1) -> )show INTERGB
- InterfaceGroebnerPackage(K: Field,symb: List Symbol,E: OrderedAbelianMonoidSup,OV: OrderedSet,R: PolynomialCategory(K,E,OV))  is a package constructor
+ InterfaceGroebnerPackage(K: Field,
+                          symb: List Symbol,
+                          E: OrderedAbelianMonoidSup,
+                          OV: OrderedSet,
+                          R: PolynomialCategory(K,E,OV))  
+              is a package constructor
  Abbreviation for InterfaceGroebnerPackage is INTERGB 
  This constructor is exposed in this frame.
- Issue )edit /research/silver/PAFF/PAFF/spad/interGBwoGB.spad to see algebra source code for INTERGB 
+ Issue )edit /research/silver/PAFF/PAFF/spad/interGBwoGB.spad to see 
+            algebra source code for INTERGB 
 
 ------------------------------- Operations --------------------------------
  groebner : List R -> List R          
@@ -5902,7 +5915,12 @@ So we update our input file section to read:
 
 --S 1 of 1
 )show InterfaceGroebnerPackage
---R InterfaceGroebnerPackage(K: Field,symb: List Symbol,E: OrderedAbelianMonoidSup,OV: OrderedSet,R: PolynomialCategory(K,E,OV))  is a package constructor
+--R InterfaceGroebnerPackage(K: Field,
+--R                          symb: List Symbol,
+--R                          E: OrderedAbelianMonoidSup,
+--R                          OV: OrderedSet,
+--R                          R: PolynomialCategory(K,E,OV))  
+--R    is a package constructor
 --R Abbreviation for InterfaceGroebnerPackage is INTERGB 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for INTERGB 
@@ -5992,38 +6010,13 @@ The total result is:
 /*"INTERGB" -> {"FFIELDC"; "FPC"; "FINITE"; "STEP"; "DIFRING"; "NNI"; "INT"}*/
 \end{verbatim}
 
-Now we add the help file. Look for the list called SPADHELP
-(all help files live in \verb|$AXIOM/mnt/sys/doc/spadhelp|)
-and add the full algebra name:
-\begin{verbatim}
- ${HELP}/InterfaceGroebnerPackage.help
-\end{verbatim}
+Help files are automatically extracted from the books using the
+lisp function ``makeHelpFiles'' which lives in books/tangle.lisp.
+This will find all of the .help chunks in books of interest
+and write each chunk to the target directory in its own filename.
+So if a chunk name is somedomain.help we create the help file
+somedomain.help containing the chunk value.
 
-Now we add the corresponding help stanza:
-\begin{verbatim}
-${HELP}/InterfaceGroebnerPackage.help: ${BOOKS}/bookvol10.4.pamphlet
-	@echo 7455 create InterfaceGroebnerPackage.help from \
-           ${BOOKS}/bookvol10.4.pamphlet
-	@${TANGLE} -R"InterfaceGroebnerPackage.help" \
-           ${BOOKS}/bookvol10.4.pamphlet \
-           >${HELP}/InterfaceGroebnerPackage.help
-	@cp ${HELP}/InterfaceGroebnerPackage.help ${HELP}/INTERGB.help
-	@${TANGLE} -R"InterfaceGroebnerPackage.input" \
-            ${BOOKS}/bookvol10.4.pamphlet \
-            >${INPUT}/InterfaceGroebnerPackage.input
-	@echo "InterfaceGroebnerPackage (INTERGB)" >>${HELPFILE}
-\end{verbatim}
-
-There are a couple things to note about the above stanza:
-\begin{itemize}
-\item the correct book needs to be referenced
-\item the echo line should have a unique number
-\item if a line exceeds 80 characters, split the line with a backslash
-\item this stanza creates the input file for regression testing
-\item this stanza creates 2 help files, one with the full algebra name
-and one with the abbreviation so the user can query either one.
-\item this stanza references chunk names in the book that have to exist
-\end{itemize}
 
 Now we create the regression hook. Look for the list REGRESS and add the 
 line containing the algebra thus:
diff --git a/changelog b/changelog
index 8a9bdbf..84878c6 100644
--- a/changelog
+++ b/changelog
@@ -1,6 +1,8 @@
+20130307 tpd src/axiom-website/patches.html 20130307.02.tpd.patch
+20130307 tpd books/bookvol4 clean up latex, document makeHelpFiles
 20130307 tpd src/axiom-website/patches.html 20130307.01.tpd.patch
 20130307 tpd src/algebra/Makefile set up regression tests
-20130307 tpd books/bookvol10.4 fix help documentation and regression tests
+20130307 tpd books/bookvol10.4 fix help documentation and regression tests	
 20130307 tpd books/bookvol10.3 fix help documentation and regression tests
 20130307 tpd books/bookvol10.2 fix help documentation and regression tests
 20130306 tpd src/axiom-website/patches.html 20130306.02.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 7147c9a..9901b48 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4013,5 +4013,7 @@ books/bookvol4 fix mixing end verbatim
 books/bookvol4 replace " with ``
 <a href="patches/20130307.01.tpd.patch">20130307.01.tpd.patch</a>
 books/bookvol10.* fix help documentation and regression tests
+<a href="patches/20130307.02.tpd.patch">20130307.02.tpd.patch</a>
+books/bookvol4 clean up latex, document makeHelpFiles
  </body>
 </html>
