mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 18:28:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| # LaTeX2HTML support for the ltxmarkup package.  Doesn't do indexing.
 | |
| 
 | |
| package main;
 | |
| 
 | |
| 
 | |
| sub ltx_next_argument{
 | |
|     my $param;
 | |
|     $param = missing_braces()
 | |
|       unless ((s/$next_pair_pr_rx/$param=$2;''/eo)
 | |
| 	      ||(s/$next_pair_rx/$param=$2;''/eo));
 | |
|     return $param;
 | |
| }
 | |
| 
 | |
| 
 | |
| sub do_cmd_macro{
 | |
|     local($_) = @_;
 | |
|     my $macro = ltx_next_argument();
 | |
|     return "<tt class='macro'>\$macro</tt>" . $_;
 | |
| }
 | |
| 
 | |
| sub do_cmd_env{
 | |
|     local($_) = @_;
 | |
|     my $env = ltx_next_argument();
 | |
|     return "<tt class='environment'>\$env</tt>" . $_;
 | |
| }
 | |
| 
 | |
| sub ltx_process_params{
 | |
|     # Handle processing of \p and \op for parameter specifications for
 | |
|     # envdesc and macrodesc.  It's done this way to avoid defining do_cmd_p()
 | |
|     # and do_cmd_op() functions, which would be interpreted outside the context
 | |
|     # in which these commands are legal, and cause LaTeX2HTML to think they're
 | |
|     # defined.  This way, other uses of \p and \op are properly flagged as
 | |
|     # unknown macros.
 | |
|     my $s = @_[0];
 | |
|     $s =~ s%\\op<<(\d+)>>(.+)<<\1>>%<tt>[</tt><var>$2</var><tt>]</tt>%;
 | |
|     while ($s =~ /\\p<<(\d+)>>(.+)<<\1>>/) {
 | |
| 	$s =~ s%\\p<<(\d+)>>(.+)<<\1>>%<tt>{</tt><var>$2</var><tt>}</tt>%;
 | |
|     }
 | |
|     return $s;
 | |
| }
 | |
| 
 | |
| sub do_env_macrodesc{
 | |
|     local($_) = @_;
 | |
|     my $macro = ltx_next_argument();
 | |
|     my $params = ltx_process_params(ltx_next_argument());
 | |
|     return "\n<dl class='macrodesc'>"
 | |
|          . "\n<dt><b><tt class='macro'>\$macro</tt></b>"
 | |
|          . "\n    $params"
 | |
| 	 . "\n<dd>"
 | |
| 	 . $_
 | |
| 	 . "</dl>";
 | |
| }
 | |
| 
 | |
| sub do_env_envdesc{
 | |
|     local($_) = @_;
 | |
|     my $env = ltx_next_argument();
 | |
|     my $params = ltx_process_params(ltx_next_argument());
 | |
|     return "\n<dl class='envdesc'>"
 | |
|          . "\n<dt><tt>\begin{<b class='environment'>$env</b>}</tt>"
 | |
|          . "\n    $params"
 | |
|          . "\n<br /><tt>\end{<b class='environment'>$env</b>}</tt>"
 | |
| 	 . "\n<dd>"
 | |
| 	 . $_
 | |
| 	 . "</dl>";
 | |
| }
 | |
| 
 | |
| 1;				# Must end with this, because Perl is bogus.
 | 
