[prev in list] [next in list] [prev in thread] [next in thread]
List: lyx-devel
Subject: Re: DocBook Export - must distinguish between "equation" and "inlineequation"
From: "Chris Karakas" <chris () karakas-online ! de>
Date: 2004-06-25 23:27:22
Message-ID: 34397692 () web ! de
[Download RAW message or body]
Jose' Matos wrote:
> On Wednesday 19 May 2004 02:30, Chris Karakas wrote:
>
Hello Jose',
>
> regarding the CDATA or not CDATA inside equations if I try to insert an
> inequality inside the equation the docbook output is:
> ...
> < alt >\[
> E< mc^{2} \]
>
> </ alt >
> ...
> without the CDATA jade complains:
>
> jade:f1.sgml:33:4:E: character "^" not allowed in attribute specification
> list
> jade:f1.sgml:33:4:E: element "MC" undefined
> jade:f1.sgml:36:11:E: end tag for "EQUATION" which is not finished
>
> don't you get this?
>
>
Indeed, I get this. I had never tried an inequality, so I was caught by surprise!
However, it turned out that the solution is simple: you should write the SGML \
entities of < and > instead of the brackets themselves! I adapted my scripts to do \
this:
First, the sedscr script
http://www.karakas-online.de/mySGML/sedscr
inserts a newline after the $ that follows an < alt > tag. Then, the awkscr_math \
script
http://www.karakas-online.de/mySGML/awkscr_math
transforms < and > inside alt tags (but excluding the lines where the tags themslves \
happen to be - the line of the starting alt tag containing only the alt tag itself \
due sedscr's inserted newline) to their SGML entities.
See
http://www.karakas-online.de/mySGML/explain-sgml-math-code-correction.html
I have added some inequalities for you in
http://www.karakas-online.de/mySGML/lyx-writing-mathematics.html
> -D
to see that it works.
If you look at the equation-list.sgml file:
http://www.karakas-online.de/mySGML/equation-list.sgml
you will see that the inequalities inside the alt tags now contain the *numeric* \
entities:
> < texequation
fileref="images/math/19259.png"
> \[
a & # 60 ; b & # 62 ; c,\]
< /texequation
How come? Well, this is done by the unescape() function of the texmath2pngbmp.pl \
script:
http://www.karakas-online.de/mySGML/texmath2pngbmp.pl
sub unescape {
$eqn =~ s/ & # 38 ; / & /g;
$eqn =~ s/ & # 62 ; /\ >/g;
$eqn =~ s/& # 60 ; /\< /g >
< and > are represented by their respective SGML entities inside the alt tags.
Thus, the only thing you have to do is replace < and > with their entities instead of \
including the alt part in CDATA!
Chris
--
Regards
Chris Karakas
http://www.karakas-online.de
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic