Index: trunk/Ohana/src/libautocode/Makefile
===================================================================
--- trunk/Ohana/src/libautocode/Makefile	(revision 6233)
+++ trunk/Ohana/src/libautocode/Makefile	(revision 6454)
@@ -11,4 +11,5 @@
 LIB	=	$(HOME)/lib
 INC	=	$(HOME)/include
+TEX	=	$(HOME)/tex
 MAN	= 	$(HOME)/doc
 DESTLIB	=	$(LLIB)
@@ -86,5 +87,16 @@
 $(INC)/SkyRegion.h
 
+LIBTEX = \
+$(TEX)/coords.tex \
+$(TEX)/average.tex \
+$(TEX)/secfilt.tex \
+$(TEX)/measure.tex \
+$(TEX)/missing.tex \
+$(TEX)/photcode.tex \
+$(TEX)/image.tex 
+
 objects: $(LIBOBJ)
+
+latex: $(LIBTEX)
 
 install: $(DESTINC)/autocode.h $(DESTLIB)/libautocode.a
@@ -123,4 +135,8 @@
 	@echo installed libautocode.a
 
+$(TEX)/%.tex: $(DEF)/%.d $(DEF)/autocode.tex
+	@if [ ! -d $(TEX) ]; then mkdir -p $(TEX); fi
+	./generate $< $(DEF)/autocode.tex $@
+
 $(INC)/%.h: $(DEF)/%.d $(DEF)/autocode.h
 	@if [ ! -d $(INC) ]; then mkdir -p $(INC); fi
Index: trunk/Ohana/src/libautocode/def/autocode.tex
===================================================================
--- trunk/Ohana/src/libautocode/def/autocode.tex	(revision 6454)
+++ trunk/Ohana/src/libautocode/def/autocode.tex	(revision 6454)
@@ -0,0 +1,13 @@
+
+\begin{table}[h]
+\begin{center}
+\caption{\label{$STRUCT} $DESCRIPTION (EXTNAME: {\tt $STRUCT})}
+\begin{tabular}{|l|l|l|l|}
+\hline
+name        & type           & description                 & units \\
+\hline
+%%% LATEX TABLE DEFINITION 
+\hline
+\end{tabular}
+\end{center}
+\end{table}
Index: trunk/Ohana/src/libautocode/def/average.d
===================================================================
--- trunk/Ohana/src/libautocode/def/average.d	(revision 6233)
+++ trunk/Ohana/src/libautocode/def/average.d	(revision 6454)
@@ -1,6 +1,7 @@
-STRUCT  Average
-EXTNAME DVO_AVERAGE
-TYPE    BINTABLE
-SIZE    44
+STRUCT       Average
+EXTNAME      DVO_AVERAGE
+TYPE         BINTABLE
+SIZE         44
+DESCRIPTION  DVO Average Object Table
 
 # elements of data structure / FITS table
@@ -15,5 +16,5 @@
 FIELD Nm,             NMEAS,      unsigned short,   number of measures
 FIELD Nn,             NMISS,      unsigned short,   number of missings
-FIELD code,           code,       unsigned short,   ID code (star, ghost, etc)
+FIELD code,           code,       unsigned short,   ID code (star ghost etc)
 FIELD offset,         offset,     int,     	    offset to first measurement
 FIELD missing,        missing,    int,     	    offset to first missing obs
Index: trunk/Ohana/src/libautocode/def/coords.d
===================================================================
--- trunk/Ohana/src/libautocode/def/coords.d	(revision 6233)
+++ trunk/Ohana/src/libautocode/def/coords.d	(revision 6454)
@@ -1,6 +1,7 @@
-STRUCT Coords
-EXTNAME COORDS
-TYPE BINTABLE
-SIZE 120
+STRUCT       Coords
+EXTNAME      COORDS
+TYPE         BINTABLE
+SIZE         120
+DESCRIPTION  DVO Coordinate Transformation Table
 
 # elements of the Coords structure
Index: trunk/Ohana/src/libautocode/def/image.d
===================================================================
--- trunk/Ohana/src/libautocode/def/image.d	(revision 6233)
+++ trunk/Ohana/src/libautocode/def/image.d	(revision 6454)
@@ -1,6 +1,7 @@
-STRUCT  Image
-EXTNAME DVO_IMAGE
-TYPE    BINTABLE
-SIZE    256
+STRUCT       Image
+EXTNAME      DVO_IMAGE
+TYPE         BINTABLE
+SIZE         256
+DESCRIPTION  DVO Image Table 
 
 # elements of the image structure
Index: trunk/Ohana/src/libautocode/def/measure.d
===================================================================
--- trunk/Ohana/src/libautocode/def/measure.d	(revision 6233)
+++ trunk/Ohana/src/libautocode/def/measure.d	(revision 6454)
@@ -1,10 +1,7 @@
-STRUCT  Measure
-EXTNAME DVO_MEASURE
-TYPE    BINTABLE
-SIZE    50
-
-# elements of data structure / FITS table
-
-# drop _PS when conversion is complete
+STRUCT       Measure
+EXTNAME      DVO_MEASURE
+TYPE         BINTABLE
+SIZE         50
+DESCRIPTION  DVO Detection Measurement Table 
 
 FIELD dR_PS,          D_RA,       float,          RA offset,                	  arcsec
Index: trunk/Ohana/src/libautocode/def/missing.d
===================================================================
--- trunk/Ohana/src/libautocode/def/missing.d	(revision 6233)
+++ trunk/Ohana/src/libautocode/def/missing.d	(revision 6454)
@@ -1,6 +1,7 @@
-STRUCT  Missing
-EXTNAME DVO_MISSING
-TYPE    BINTABLE
-SIZE    4
+STRUCT       Missing
+EXTNAME      DVO_MISSING
+TYPE         BINTABLE
+SIZE         4
+DESCRIPTION  DVO Non-Detection Table 
 
 # elements of data structure / FITS table
Index: trunk/Ohana/src/libautocode/def/photcode.d
===================================================================
--- trunk/Ohana/src/libautocode/def/photcode.d	(revision 6233)
+++ trunk/Ohana/src/libautocode/def/photcode.d	(revision 6454)
@@ -1,6 +1,7 @@
-STRUCT  PhotCode
-EXTNAME DVO_PHOTCODE
-TYPE    BINTABLE
-SIZE    77
+STRUCT       PhotCode
+EXTNAME      DVO_PHOTCODE
+TYPE         BINTABLE
+SIZE         77
+DESCRIPTION  DVO Photcode Description Table 
 
 # elements of data structure / FITS table
@@ -16,3 +17,3 @@
 FIELD  equiv,       EQUIV,       int,	      	 this dependent filter is equivalent to equiv PRI/SEC
 FIELD  Nc,          NC,          int,	      	 number of color terms 
-FIELD  X,           X,           float[4],    	 color terms X[0]*mc + X[1]*mc^2 + X[2]*mc^3, etc 
+FIELD  X,           X,           float[4],    	 color terms $X[0]*mc + X[1]*mc^2 + X[2]*mc^3$, etc 
Index: trunk/Ohana/src/libautocode/def/secfilt.d
===================================================================
--- trunk/Ohana/src/libautocode/def/secfilt.d	(revision 6233)
+++ trunk/Ohana/src/libautocode/def/secfilt.d	(revision 6454)
@@ -1,10 +1,11 @@
-STRUCT  SecFilt
-EXTNAME DVO_SECFILT
-TYPE    BINTABLE
-SIZE    12
+STRUCT       SecFilt
+EXTNAME      DVO_SECFILT
+TYPE         BINTABLE
+SIZE         12
+DESCRIPTION  DVO SecFilt : Secondary Filter Data 
 
 # elements of data structure / FITS table
 FIELD  M_PS,  MAG,      float,                other mags,       mags
-FIELD  dM_PS, MAG_ERR,  float,                scatter on mag    mags
-FIELD  Xm,    MAG_CHI,  short,                chisq on mag      [100*log(value)]
+FIELD  dM_PS, MAG_ERR,  float,                scatter on mag,   mags
+FIELD  Xm,    MAG_CHI,  short,                chisq on mag,     [100*log(value)]
 FIELD  dummy, JUNK,     short,                place holder
Index: trunk/Ohana/src/libautocode/generate
===================================================================
--- trunk/Ohana/src/libautocode/generate	(revision 6233)
+++ trunk/Ohana/src/libautocode/generate	(revision 6454)
@@ -23,8 +23,9 @@
     $TIMEOUT = 0;
 
+    &init_key ("DESCRIPTION");
     &init_key ("TIMEOUT");
-    &init_key ("NAME");
     &init_key ("EXTNAME");
     &init_key ("STRUCT");
+    &init_key ("NAME");
     &init_key ("FILE");
     &init_key ("SIZE");
@@ -43,5 +44,5 @@
 	&set_keypair ($key, $value);
 
-	# there are used internally (not just a replacement)
+	# these are used internally (not just a replacement)
 	if ($key eq "TYPE")    { $TYPE = $value;   }
 	if ($key eq "SIZE")    { $SIZE = $value;   }
@@ -83,4 +84,9 @@
 	if ($line =~ m|/\*\* STRUCT DEFINITION \*\*/|) {
 	    &write_structure;
+	}
+
+	# fill in latex table description
+	if ($line =~ m|%%% LATEX TABLE DEFINITION|) {
+	    &write_latex;
 	}
 
@@ -141,4 +147,23 @@
     }
 
+}
+
+sub write_latex {
+
+    for ($i = 0; $i < @field; $i++) {
+	# skip SUBSTRUCT type of entries:
+	if ($mode[$i] eq "SUBSTRUCT") { next; }
+
+	($type, $Np) = &get_type_array ($format[$i]);
+
+	if ($type eq "e_time") 	      { $type = "unsigned int"; }
+
+	# print STDOUT "$field[$i] .. $type[$i] .. $comment[$i] .. $unit[$i]\n";
+
+        printf FILE "%-20s & ",       "\\code{$field[$i]} ";
+	printf FILE "%-20s & ",       "$type";
+	printf FILE "%-35s & ",       "$comment[$i]";
+	printf FILE "%-20s \\\\ \n",  "$unit[$i]";
+    }
 }
 
