1 | # LaTeX2HTML support for the ltxmarkup package. Doesn't do indexing.
|
---|
2 |
|
---|
3 | package main;
|
---|
4 |
|
---|
5 |
|
---|
6 | sub ltx_next_argument{
|
---|
7 | my $param;
|
---|
8 | $param = missing_braces()
|
---|
9 | unless ((s/$next_pair_pr_rx/$param=$2;''/eo)
|
---|
10 | ||(s/$next_pair_rx/$param=$2;''/eo));
|
---|
11 | return $param;
|
---|
12 | }
|
---|
13 |
|
---|
14 |
|
---|
15 | sub do_cmd_macro{
|
---|
16 | local($_) = @_;
|
---|
17 | my $macro = ltx_next_argument();
|
---|
18 | return "<tt class='macro'>\$macro</tt>" . $_;
|
---|
19 | }
|
---|
20 |
|
---|
21 | sub do_cmd_env{
|
---|
22 | local($_) = @_;
|
---|
23 | my $env = ltx_next_argument();
|
---|
24 | return "<tt class='environment'>\$env</tt>" . $_;
|
---|
25 | }
|
---|
26 |
|
---|
27 | sub ltx_process_params{
|
---|
28 | # Handle processing of \p and \op for parameter specifications for
|
---|
29 | # envdesc and macrodesc. It's done this way to avoid defining do_cmd_p()
|
---|
30 | # and do_cmd_op() functions, which would be interpreted outside the context
|
---|
31 | # in which these commands are legal, and cause LaTeX2HTML to think they're
|
---|
32 | # defined. This way, other uses of \p and \op are properly flagged as
|
---|
33 | # unknown macros.
|
---|
34 | my $s = @_[0];
|
---|
35 | $s =~ s%\\op<<(\d+)>>(.+)<<\1>>%<tt>[</tt><var>$2</var><tt>]</tt>%;
|
---|
36 | while ($s =~ /\\p<<(\d+)>>(.+)<<\1>>/) {
|
---|
37 | $s =~ s%\\p<<(\d+)>>(.+)<<\1>>%<tt>{</tt><var>$2</var><tt>}</tt>%;
|
---|
38 | }
|
---|
39 | return $s;
|
---|
40 | }
|
---|
41 |
|
---|
42 | sub do_env_macrodesc{
|
---|
43 | local($_) = @_;
|
---|
44 | my $macro = ltx_next_argument();
|
---|
45 | my $params = ltx_process_params(ltx_next_argument());
|
---|
46 | return "\n<dl class='macrodesc'>"
|
---|
47 | . "\n<dt><b><tt class='macro'>\$macro</tt></b>"
|
---|
48 | . "\n $params</dt>"
|
---|
49 | . "\n<dd>"
|
---|
50 | . $_
|
---|
51 | . '</dd></dl>';
|
---|
52 | }
|
---|
53 |
|
---|
54 | sub do_env_envdesc{
|
---|
55 | local($_) = @_;
|
---|
56 | my $env = ltx_next_argument();
|
---|
57 | my $params = ltx_process_params(ltx_next_argument());
|
---|
58 | return "\n<dl class='envdesc'>"
|
---|
59 | . "\n<dt><tt>\begin{<b class='environment'>$env</b>}</tt>"
|
---|
60 | . "\n $params"
|
---|
61 | . "\n<br /><tt>\end{<b class='environment'>$env</b>}</tt></dt>"
|
---|
62 | . "\n<dd>"
|
---|
63 | . $_
|
---|
64 | . '</dd></dl>';
|
---|
65 | }
|
---|
66 |
|
---|
67 | 1; # Must end with this, because Perl is bogus.
|
---|