mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Define new markup for 5-column tables.
This commit is contained in:
		
							parent
							
								
									1f4cc897f8
								
							
						
					
					
						commit
						f269e59232
					
				
					 3 changed files with 109 additions and 7 deletions
				
			
		|  | @ -1171,6 +1171,22 @@ This \UNIX\ is also followed by a space. | ||||||
|       text for the fourth column is given by \var{column4}. |       text for the fourth column is given by \var{column4}. | ||||||
|     \end{macrodesc} |     \end{macrodesc} | ||||||
| 
 | 
 | ||||||
|  |     \begin{envdesc}{tablev}{\p{colspec}\p{col1font}\p{heading1}\p{heading2}\p{heading3}\p{heading4}\p{heading5}} | ||||||
|  |       Like the \env{tableiv} environment, but with a fifth column. | ||||||
|  |       The heading for the fifth column is given by \var{heading5}. | ||||||
|  |     \end{envdesc} | ||||||
|  | 
 | ||||||
|  |     \begin{envdesc}{longtablev}{\unspecified} | ||||||
|  |       Like \env{tablev}, but produces a table which may be broken | ||||||
|  |       across page boundaries.  The parameters are the same as for | ||||||
|  |       \env{tablev}. | ||||||
|  |     \end{envdesc} | ||||||
|  | 
 | ||||||
|  |     \begin{macrodesc}{linev}{\p{column1}\p{column2}\p{column3}\p{column4}\p{column5}} | ||||||
|  |       Like the \macro{lineiv} macro, but with a fifth column.  The | ||||||
|  |       text for the fifth column is given by \var{column5}. | ||||||
|  |     \end{macrodesc} | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     An additional table-like environment is \env{synopsistable}.  The |     An additional table-like environment is \env{synopsistable}.  The | ||||||
|     table generated by this environment contains two columns, and each |     table generated by this environment contains two columns, and each | ||||||
|  |  | ||||||
|  | @ -1159,6 +1159,7 @@ sub do_cmd_memberline{ | ||||||
|     return "<dt><b>$idx</b><dd>" . $_; |     return "<dt><b>$idx</b><dd>" . $_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| sub do_env_memberdescni{ | sub do_env_memberdescni{ | ||||||
|     local($_) = @_; |     local($_) = @_; | ||||||
|     next_optional_argument(); |     next_optional_argument(); | ||||||
|  | @ -1176,7 +1177,8 @@ sub do_cmd_memberlineni{ | ||||||
|     return "<dt><b><tt class=\"member\">$member</tt></b><dd>" . $_; |     return "<dt><b><tt class=\"member\">$member</tt></b><dd>" . $_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @col_aligns = ('<td>', '<td>', '<td>', '<td>'); | 
 | ||||||
|  | @col_aligns = ('<td>', '<td>', '<td>', '<td>', '<td>'); | ||||||
| 
 | 
 | ||||||
| sub fix_font{ | sub fix_font{ | ||||||
|     # do a little magic on a font name to get the right behavior in the first |     # do a little magic on a font name to get the right behavior in the first | ||||||
|  | @ -1226,17 +1228,19 @@ sub figure_column_alignment{ | ||||||
| 
 | 
 | ||||||
| sub setup_column_alignments{ | sub setup_column_alignments{ | ||||||
|     local($_) = @_; |     local($_) = @_; | ||||||
|     my($s1,$s2,$s3,$s4) = split(/[|]/,$_); |     my($s1,$s2,$s3,$s4,$a5) = split(/[|]/,$_); | ||||||
|     my $a1 = figure_column_alignment($s1); |     my $a1 = figure_column_alignment($s1); | ||||||
|     my $a2 = figure_column_alignment($s2); |     my $a2 = figure_column_alignment($s2); | ||||||
|     my $a3 = figure_column_alignment($s3); |     my $a3 = figure_column_alignment($s3); | ||||||
|     my $a4 = figure_column_alignment($s4); |     my $a4 = figure_column_alignment($s4); | ||||||
|  |     my $a5 = figure_column_alignment($s5); | ||||||
|     $col_aligns[0] = "<td$a1 valign=\"baseline\">"; |     $col_aligns[0] = "<td$a1 valign=\"baseline\">"; | ||||||
|     $col_aligns[1] = "<td$a2>"; |     $col_aligns[1] = "<td$a2>"; | ||||||
|     $col_aligns[2] = "<td$a3>"; |     $col_aligns[2] = "<td$a3>"; | ||||||
|     $col_aligns[3] = "<td$a4>"; |     $col_aligns[3] = "<td$a4>"; | ||||||
|  |     $col_aligns[4] = "<td$a5>"; | ||||||
|     # return the aligned header start tags |     # return the aligned header start tags | ||||||
|     return ("<th$a1>", "<th$a2>", "<th$a3>", "<th$a4>"); |     return ("<th$a1>", "<th$a2>", "<th$a3>", "<th$a4>", "<th$a5>"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| sub get_table_col1_fonts{ | sub get_table_col1_fonts{ | ||||||
|  | @ -1252,7 +1256,7 @@ sub get_table_col1_fonts{ | ||||||
| 
 | 
 | ||||||
| sub do_env_tableii{ | sub do_env_tableii{ | ||||||
|     local($_) = @_; |     local($_) = @_; | ||||||
|     my($th1,$th2,$th3,$th4) = setup_column_alignments(next_argument()); |     my($th1,$th2,$th3,$th4,$th5) = setup_column_alignments(next_argument()); | ||||||
|     my $font = fix_font(next_argument()); |     my $font = fix_font(next_argument()); | ||||||
|     my $h1 = next_argument(); |     my $h1 = next_argument(); | ||||||
|     my $h2 = next_argument(); |     my $h2 = next_argument(); | ||||||
|  | @ -1298,7 +1302,7 @@ sub do_cmd_lineii{ | ||||||
| 
 | 
 | ||||||
| sub do_env_tableiii{ | sub do_env_tableiii{ | ||||||
|     local($_) = @_; |     local($_) = @_; | ||||||
|     my($th1,$th2,$th3,$th4) = setup_column_alignments(next_argument()); |     my($th1,$th2,$th3,$th4,$th5) = setup_column_alignments(next_argument()); | ||||||
|     my $font = fix_font(next_argument()); |     my $font = fix_font(next_argument()); | ||||||
|     my $h1 = next_argument(); |     my $h1 = next_argument(); | ||||||
|     my $h2 = next_argument(); |     my $h2 = next_argument(); | ||||||
|  | @ -1331,7 +1335,7 @@ sub do_cmd_lineiii{ | ||||||
|     local($_) = @_; |     local($_) = @_; | ||||||
|     my $aligns = next_optional_argument(); |     my $aligns = next_optional_argument(); | ||||||
|     my $c1 = next_argument(); |     my $c1 = next_argument(); | ||||||
|     my $c2 = next_argument();  |     my $c2 = next_argument(); | ||||||
|     my $c3 = next_argument(); |     my $c3 = next_argument(); | ||||||
|     s/[\s\n]+//; |     s/[\s\n]+//; | ||||||
|     my($sfont,$efont) = get_table_col1_fonts(); |     my($sfont,$efont) = get_table_col1_fonts(); | ||||||
|  | @ -1349,7 +1353,7 @@ sub do_cmd_lineiii{ | ||||||
| 
 | 
 | ||||||
| sub do_env_tableiv{ | sub do_env_tableiv{ | ||||||
|     local($_) = @_; |     local($_) = @_; | ||||||
|     my($th1,$th2,$th3,$th4) = setup_column_alignments(next_argument()); |     my($th1,$th2,$th3,$th4,$th5) = setup_column_alignments(next_argument()); | ||||||
|     my $font = fix_font(next_argument()); |     my $font = fix_font(next_argument()); | ||||||
|     my $h1 = next_argument(); |     my $h1 = next_argument(); | ||||||
|     my $h2 = next_argument(); |     my $h2 = next_argument(); | ||||||
|  | @ -1403,6 +1407,67 @@ sub do_cmd_lineiv{ | ||||||
| 	   . $_; | 	   . $_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | sub do_env_tablev{ | ||||||
|  |     local($_) = @_; | ||||||
|  |     my($th1,$th2,$th3,$th4,$th5) = setup_column_alignments(next_argument()); | ||||||
|  |     my $font = fix_font(next_argument()); | ||||||
|  |     my $h1 = next_argument(); | ||||||
|  |     my $h2 = next_argument(); | ||||||
|  |     my $h3 = next_argument(); | ||||||
|  |     my $h4 = next_argument(); | ||||||
|  |     my $h5 = next_argument(); | ||||||
|  |     s/[\s\n]+//; | ||||||
|  |     $globals{'lineifont'} = $font; | ||||||
|  |     my $a1 = $col_aligns[0]; | ||||||
|  |     my $a2 = $col_aligns[1]; | ||||||
|  |     my $a3 = $col_aligns[2]; | ||||||
|  |     my $a4 = $col_aligns[3]; | ||||||
|  |     my $a5 = $col_aligns[4]; | ||||||
|  |     s/\\linev</\\linev[$a1|$a2|$a3|$a4|$a5]</g; | ||||||
|  |     return '<table border align="center" style="border-collapse: collapse">' | ||||||
|  | 	   . "\n  <thead>" | ||||||
|  | 	   . "\n    <tr class=\"tableheader\">" | ||||||
|  | 	   . "\n      $th1<b>$h1</b>\ </th>" | ||||||
|  | 	   . "\n      $th2<b>$h2</b>\ </th>" | ||||||
|  | 	   . "\n      $th3<b>$h3</b>\ </th>" | ||||||
|  | 	   . "\n      $th4<b>$h4</b>\ </th>" | ||||||
|  | 	   . "\n      $th5<b>$h5</b>\ </th>" | ||||||
|  | 	   . "\n      </tr>" | ||||||
|  | 	   . "\n    </thead>" | ||||||
|  | 	   . "\n  <tbody valign=\"baseline\">" | ||||||
|  | 	   . $_ | ||||||
|  | 	   . "\n    </tbody>" | ||||||
|  | 	   . "\n</table>"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | sub do_env_longtablev{ | ||||||
|  |     return do_env_tablev(@_); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | sub do_cmd_linev{ | ||||||
|  |     local($_) = @_; | ||||||
|  |     my $aligns = next_optional_argument(); | ||||||
|  |     my $c1 = next_argument(); | ||||||
|  |     my $c2 = next_argument(); | ||||||
|  |     my $c3 = next_argument(); | ||||||
|  |     my $c4 = next_argument(); | ||||||
|  |     my $c5 = next_argument(); | ||||||
|  |     s/[\s\n]+//; | ||||||
|  |     my($sfont,$efont) = get_table_col1_fonts(); | ||||||
|  |     $c5 = ' ' if ($c5 eq ''); | ||||||
|  |     my($c1align,$c2align,$c3align,$c4align,$c5align) = split('\|', $aligns); | ||||||
|  |     my $padding = ''; | ||||||
|  |     if ($c1align =~ /align="right"/ || $c1 eq '') { | ||||||
|  |         $padding = ' '; | ||||||
|  |     } | ||||||
|  |     return "\n    <tr>$c1align$sfont$c1$efont$padding</td>\n" | ||||||
|  |            . "        $c2align$c2</td>\n" | ||||||
|  | 	   . "        $c3align$c3</td>\n" | ||||||
|  | 	   . "        $c4align$c4</td>\n" | ||||||
|  | 	   . "        $c5align$c5</td>" | ||||||
|  | 	   . $_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| # These can be used to control the title page appearance; | # These can be used to control the title page appearance; | ||||||
| # they need a little bit of documentation. | # they need a little bit of documentation. | ||||||
|  |  | ||||||
|  | @ -978,6 +978,27 @@ | ||||||
|   \end{center}% |   \end{center}% | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | \newenvironment{tablev}[7]{% | ||||||
|  |   \begin{center}% | ||||||
|  |     \def\linev##1##2##3##4##5{\csname#2\endcsname{##1}&##2&##3&##4&##5\\}% | ||||||
|  |     \begin{tabular}{#1}\strong{#3}&\strong{#4}&\strong{#5}&\strong{#6}&\strong{#7} \\% | ||||||
|  |       \hline% | ||||||
|  | }{% | ||||||
|  |     \end{tabular}% | ||||||
|  |   \end{center}% | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | \newenvironment{longtablev}[7]{% | ||||||
|  |   \begin{center}% | ||||||
|  |     \def\linev##1##2##3##4##5{\csname#2\endcsname{##1}&##2&##3&##4&##5\\}% | ||||||
|  |     \begin{longtable}[c]{#1}\strong{#3}&\strong{#4}&\strong{#5}&\strong{#6}&\strong{#7}% | ||||||
|  |       \\% | ||||||
|  |       \hline\endhead% | ||||||
|  | }{% | ||||||
|  |     \end{longtable}% | ||||||
|  |   \end{center}% | ||||||
|  | } | ||||||
|  | 
 | ||||||
| % Cross-referencing (AMK, new impl. FLD) | % Cross-referencing (AMK, new impl. FLD) | ||||||
| % Sample usage: | % Sample usage: | ||||||
| %  \begin{seealso} | %  \begin{seealso} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Fred Drake
						Fred Drake