[l2h] Problems extending \HTMLcode generation

Ross Moore Ross Moore <ross@ics.mq.edu.au>
Mon, 7 Feb 2000 09:43:49 +1100 (EST)


> 
> 
> Hi anybody,
> 
> I have sent this mail before but nobody answere. Since my problem didn't
> solve on its own, I am asking again for your help.

Sorry for not answering sooner Klaus;
other projects have been taking my time.


> <Object type="application/x-oleobject"
> classid="clsid:1e2a7bd0-dab9-11d0-b93a-00
> c04fc99f9e">
>         <param name="Keyword" value="another test">
> </OBJECT>
> 
> What I like to do is wite some perl code, which produces exactly this,
> when a LaTeX command like
> 
> \tetIndex{test} \tetIndex{another test}
> 
> is encountered.
> 
> For LaTeX I have defined the command \tetIndex to work like \index
> For the HTML side I tried to use the command \HTMLcode
> 
> \newcommand{\tetIndex}[1]{\latex{\index{#1}}%
> \html{\HTMLcode[TYPE="application/x-oleobject"
> CLASSID="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"]
> {OBJECT}{\HTMLcode[name=Keyword value="#1"]{PARAM}}}}

Do not rely on the ' ' (space) as a delimiter, when your strings
also contain " characters and = signs.
\HTMLcode parses its arguments to check validity.
Since space characters have a special meaning in TeX,
and it is rare in TeX to use space as a delimiter
of a list of items, then it is also dangerous to use it
this way in a complicated listing of arguments.

The following worked correctly for me:
(note the 2 commas added)

\newcommand{\tetIndex}[1]{\latex{\index{#1}}%
\html{\HTMLcode[TYPE="application/x-oleobject",
CLASSID="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"]
{OBJECT}{\HTMLcode[name=Keyword,value="#1"]{PARAM}}}}


If the value for an attribute is a comma-separated list,
then make sure that list is quoted:  "..., ..., ... " .

 
Hope this helps,

	Ross Moore


BTW, make sure that you are using  -html_version 4.0
(else <OBJECT> is invalid).

The code that LaTeX2HTML uses for pattern-matches within
the arguments to \HTMLcode commands is at the beginning
of  $LATEX2HTMLDIR/versions/html4_0.pl .
For each tag, the valid attributes are given,
and for each tag/attribute combination, there is a regexp
to match valid data values.
Since most of these are similar, there are about a dozen
standard regexp patterns, and most tag/attribute refer to
these, rather than having a primitive specification.


It should not be difficult to extend that portion of Perl code
to cope with other DTDs. 


Oh, another thing:  my mailer has returned to the 21st century
now, I think. Please resond if it still giving an incorrect year.
Thanks to those who previously reported that problem. ;-)