Index: trunk/ippToPsps/config/render.pl
===================================================================
--- trunk/ippToPsps/config/render.pl	(revision 38856)
+++ trunk/ippToPsps/config/render.pl	(revision 38857)
@@ -5,4 +5,6 @@
 
 my @data = ();
+my %phot_keys = ();
+
 
 open(RR,">./render.tex");
@@ -64,5 +66,13 @@
 		elsif ($_ =~ /\<\/FIELD/) {
 		    render_row($name,$datatype1,$unit,$def,$desc);
+
 		    $field = 0;
+
+		    # Load the information for the "other way sorted" table
+		    push @data, [$name, $tab_name, $datatype1, $unit, $def, $desc];
+		    if ($name =~ /^[DFgrizy]/) {
+			(my $possible_phot_key = $name) =~ s/^[DFgrizy]//;
+			$phot_keys{$possible_phot_key} ++;
+		    }
 		}
 	    }
@@ -76,4 +86,50 @@
 }
 render_post();
+close RR;
+
+if (1) {
+    open(RR,">./render_by_name.tex");
+    # Sort by not-a-phot-key, then phot-key alphabetica, then table sequential.
+    foreach my $ppk (sort (keys (%phot_keys))) {
+	if ($phot_keys{$ppk} < 4) {
+	    delete($phot_keys{$ppk});
+	}
+    }
+
+    my @non_phot_rows = ();
+    my @phot_rows = ();
+    for ($i = 0; $i <= $#data; $i++) {
+	my $is_phot = 0;
+	foreach my $ppk (sort (keys (%phot_keys))) {
+	    if ($data[$i][0] =~ /^[DFgrizy]?${ppk}$/i) {
+		push @phot_rows, $data[$i];
+		$is_phot = 1;
+		next;
+	    }
+	}
+	unless ($is_phot) {
+	    push @non_phot_rows, $data[$i];
+	}
+    }
+    
+    render_pre();
+    render_tab2();
+    foreach my $row (sort { $a->[0] cmp $b->[0] } (@non_phot_rows)) {
+	render_row2(@{ $row });
+    }
+    render_row2('','','','','','');
+    foreach my $ppk (sort (keys %phot_keys)) {
+	foreach my $row (@phot_rows) {
+	    if (${ $row }[0] =~ /^[DFgrizy]?${ppk}$/i) {
+		render_row2(@{ $row });
+	    }
+	}
+    }
+    render_end();
+    render_bottom();
+    render_post();
+    
+
+}
 
 sub pRRx {
@@ -88,5 +144,6 @@
 
 sub render_pre {
-    pRR '\documentclass[10pt,letter]{article}';
+    pRR '\documentclass[10pt]{article}';
+    pRR '\usepackage[paperheight=17in,paperwidth=11in]{geometry}';
     pRR '\usepackage{longtable}';
     pRR '\usepackage{lscape}';
@@ -100,5 +157,5 @@
     pRR '\setlength{\topmargin}{0pt}';
     pRR '\setlength{\footskip}{0pt}';
-    pRR '\setlength{\textheight}{13.5in}';
+    pRR '\setlength{\textheight}{16in}';
     pRR '\setlength{\textwidth}{10.5in}';
     
@@ -124,4 +181,11 @@
     pRR '\setlength{\LTleft}{0pt}';
 }
+sub render_tab2 {
+    pRR '\footnotesize';
+    pRR '\begin{center}';
+    pRR '\begin{longtable}{|l|l|l|l|l|l|}';
+    pRR '\setlength{\LTleft}{0pt}';
+}
+
 sub render_row {
     my ($name, $type, $unit, $def, $desc) = @_;
@@ -142,4 +206,23 @@
 }
 
+sub render_row2 {
+    my ($name, $table, $type, $unit, $def, $desc) = @_;
+    $name =~ s/^\s+//;
+    $name =~ s/_/\\_/g;
+    $unit =~ s/\^([\d\/-]*)/\$^$1\$/g;
+    $desc =~ s/\^([\d\/-]*)/\$^$1\$/g;
+    $desc =~ s/_/\\_/g;
+    $desc =~ s/\&/\\\&/g;
+    $desc =~ s/\%/\\\%/g;
+
+    pRRx '\parbox[t][][t]{1.5in}{\bf ' . $name  . '} & ';
+    pRRx '\parbox[t][][t]{1.5in}{'     . $table . '} & ';
+    pRRx '\parbox[t][][t]{1.0in}{'     . $type  . '} & ';
+    pRRx '\parbox[t][][t]{1.5in}{'     . $unit  . '} & ';
+    pRRx '\parbox[t][][t]{0.5in}{'     . $def   . '} & ';
+    pRR  '\parbox[t][][t]{7.8in}{'     . $desc  . '} \\\\' ;
+
+}
+
 sub render_end {
     pRR '\end{longtable}';
