Fascinating.  So there is basically an interoperability bug between the 
Starmath code and the MathML RGB coding.

Notes below.

-----Original Message-----
From: Regina Henschel [mailto:rb.hensc...@t-online.de] 
Sent: Saturday, November 8, 2014 05:20
To: dev@openoffice.apache.org
Subject: Re: color names in Math

Hi Andrea,

Andrea Pescetti schrieb:
> On 29/10/2014 Regina Henschel wrote:
[ ... ]

OpenOffice has written "red" to StarMath code in the <annotation> 
element and #ff0000 to the MathML part. That is the correct mapping. But 
in rendering, OpenOffice has not shown the color #ff0000 but the color 
#800000.

>
> I agree with your proposals on how to handle the broken color mapping.
>
> Is it feasible to switch to writing the RGB values to the file instead
> of color names?

I have looked at it, for to be able to use the #rgb and #rrggbb 
notations, which are allowed in MathML. My idea was to allow such 
notations in StarMath too. But that is a larger task and has a lot of 
problems. For example the current implementation of the StarMath parser 
handles all content as tokens, but does not keep the context of the 
tokens. So the hash # is turned to a token TPOUND. And for #00ff00 the 
next token would be TNUMBER, but for #ff0000 the next token would be 
TIDENT (=identifier). As # is used as delimiter in matrix and stack, the 
context is needed to handle # different, when it follows a color command.

In the import filter for MathML it is no problem. There the token for 
color has the complete value #00ff00 (for example) as token value and it 
would be possible to write the correct color value into the node of the 
model.

  Would this ensure less equivocal compatibility with the
> standards and other suites?

<orcnote>
   It seems using #RGB codings is the reliable way to interchange
   since it does not depend on discrepancies in the names given to the
   codes.  It even avoids internationalization issues.
</orcnote>
 

Writing #rrggbb values in StarMath would make it unambiguous.

I hesitate to start in that direction. It needs an own discussion (new 
thread) about the future of StarMath. Perhaps we should go in the same 
direction as with the old binary formats and drop it totally. MathML is 
much richer than the existing StarMath language. To be able to really 
use MathML 2.0, the StarMath language would have to be extended and who 
will do that? I have not even found a specification of the language.

<orcnote>
   It strikes me that the way to deal with the "red" disparity is to
   have #800000" written in the MathML where Starmath "red" is intend
   and to not include the StarMath code.

   On re-imput to OpenOffice, or to the StarMath, the name can then be
   properly re-derived from the #RGB.  So StarMath "red" is not broken,
   interop with the correct color happens.  Except for the problem below.
</orcnote>

  Would colors written this way be properly
> remapped to their names when reopening the file?

The mapping is already done in case the annotation is missing, the value 
#ff0000 is mapped to StarMath "red", but "red" has been rendered as #800000.

<orcnote>
   This mapping #ff0000" to StarMath "red" is definitely a bug.  Does 
   StarMath have no color-name equivalent for #ff0000?"  Does it have
   similar problems for the other primaries, #00ff00 and #0000ff?

   If the problem is that StarMath has limited color choices, there is
   a significant problem having that interfere with interop of
   ODF documents having MathML. 
</orcnote>

  If I read correctly,
> you said that this is what Calc does, and it looks much less error-prone.

The color names do not exist in ODF file format, but file format uses 
#rrggbb values directly. So there is no problem with definitions made in 
Format > Cell > Numbers.

The problem in Calc is, that it is possible to use a format code as 
string in the function TEXT and so the color names can be used indirectly.

<orcnote>
   In the OpenFormula specification of ODF 1.2, the TEXT function format
   code is left as implementation-defined.  That raises two obligations
   it seems to me:
  
     1. "Implementation-Defined" means the OpenOffice definition must
   be published in some easily-found form that others can consult for
   testing, verification, and determination of interoperability cases.
   Assuming that the TextFormatCode text value cannot be taken from a
   cell reference, there is no internationalization problem, since
   Calc can translate other-language expressions to a single code, if
   desired.  If a cell-carried or formula-derived text value is (ever)
   allowed, support for names here becomes more difficult.  (Note: This
   is not about what OpenOffice Calc shows to users or allows to be
   entered, but what is actually conveyed in the file.  Ideally, there
   is some harmony though.)
  
     2. It also means that the definition by other implementations of
   OpenFormula need to be considered.  The obvious ones that come to
   mind are the Excel support for ODF OpenFormula, the support in 
   Gnumerics, and of course LibreOffice.  All of these implementations
   are expected to publish their definitions for TextFormatCode values,
   and some cooperation would be valuable in this context.
</orcnote>
   

 From some strange code, which translates between German and English 
color names, I guess that color names were perhaps used in StarOffice 
binary formats.

>
>> older OpenOffice versions don't know "teal" and will show a ?.
>
> This is important for the Release notes too. And would it be the same if
> we write the color as RGB?

Yes, #rrggbb notation would result in ? too. The StarMath parser in 
older versions is not able to parse #rrggbb notation in StarMath code.

<orcnote>
   What is the oldest OpenOffice.org version where the StarMath parser
   Can handle #RGB codings?
</orcnote>

Kind regards
Regina

<orcnote>
   Thanks for the meticulous analysis, Regina. 

   I wonder if some of the disconnection here has to do with cases where
   the commitment to ODF as the primary format has been compromised.

   The inconsistencies are going to be a problem if there is to be greater
   ODF compliance and interoperability going forward, especially in those
   places where ODF has been made a preferred format.  Those selections are
   not with concern for OpenOffice.org's StarOffice heritage but for the
   interoperability and substitutability assurances that is presumed for
   ODF compliance.
</orcnote>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to