Closed Bug 757125 Opened 12 years ago Closed 12 years ago

Make more MathML operators mirrorable

Categories

(Core :: MathML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla15

People

(Reporter: fredw, Assigned: fredw)

References

()

Details

(Keywords: dev-doc-complete)

Attachments

(2 files)

We should make more MathML operators mirrorable, for example:

operator.\u2308.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⌈
operator.\u2309.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⌉
operator.\u230A.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⌊
operator.\u230B.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⌋

There are certainly other possible candidates among math fences. The unicode.xml file maintained by David Carlisle uses a mirrorable attribute too.
Using a scale to mirror operators does not always work (for example for clockwise integral) but hopefully that should work well for most operators.
Attached patch Patch V2Splinter Review
Here a patch adding the mirrorable property to the operators marked @mirror="Y" in the unicode.xml file from http://www.w3.org/TR/xml-entity-names/.

I expect that it is correct to change all "left" into "right" and vice versa. For example "integral with leftwards arrow with hook" is changed into "integral with rightwards arrow with hook".

I don't know why "division slash" is the only slash that should be mirrored?

The remaining conflicts are given below. They are for clockwise/anticlockwise integrals.

[conflict][stretching] - operator.\u005F.infix (low line)
-lspace:1 rspace:1 stretchy
+lspace:1 rspace:1

[conflict] - operator.\u2231.prefix (clockwise integral)
-lspace:0 rspace:1 largeop symmetric
+lspace:0 rspace:1 largeop symmetric mirrorable

[conflict] - operator.\u2232.prefix (clockwise contour integral)
-lspace:0 rspace:1 largeop symmetric
+lspace:0 rspace:1 largeop symmetric mirrorable

[conflict] - operator.\u2233.prefix (anticlockwise contour integral)
-lspace:0 rspace:1 largeop symmetric
+lspace:0 rspace:1 largeop symmetric mirrorable

[conflict] - operator.\u2A11.prefix (anticlockwise integration)
-lspace:1 rspace:2 largeop movablelimits symmetric
+lspace:1 rspace:2 largeop movablelimits symmetric mirrorable
Assignee: nobody → fred.wang
Status: NEW → ASSIGNED
Attachment #627597 - Flags: review?(karlt)
Keywords: dev-doc-needed
Comment on attachment 627595 [details] [diff] [review]
Make updateOperatorDictionary.pl read mirrorable property

I don't claim to know about XSL, but here's my rubber stamp.
Attachment #627595 - Flags: review?(karlt) → review+
Attachment #627597 - Flags: review?(karlt) → review+
https://hg.mozilla.org/mozilla-central/rev/57819b266920
https://hg.mozilla.org/mozilla-central/rev/f0c3e8edc333
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Added a note to
https://developer.mozilla.org/en-US/docs/Firefox_15_for_developers#MathML

I don't think this needs more documentation than that. Feel free to add more if you want to, though.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: