Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tools/xo_bundle/res/mathml.css
diff options
context:
space:
mode:
Diffstat (limited to 'tools/xo_bundle/res/mathml.css')
-rwxr-xr-xtools/xo_bundle/res/mathml.css455
1 files changed, 455 insertions, 0 deletions
diff --git a/tools/xo_bundle/res/mathml.css b/tools/xo_bundle/res/mathml.css
new file mode 100755
index 0000000..458cc56
--- /dev/null
+++ b/tools/xo_bundle/res/mathml.css
@@ -0,0 +1,455 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla MathML Project.
+ *
+ * The Initial Developer of the Original Code is
+ * The University Of Queensland.
+ * Portions created by the Initial Developer are Copyright (C) 1999
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Roger B. Sidje <rbs@maths.uq.edu.au>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+
+/**************************************************************************/
+/* namespace for MathML elements */
+/**************************************************************************/
+
+@namespace url(http://www.w3.org/1998/Math/MathML);
+
+/**************************************************************************/
+/* <math> - outermost math element */
+/* Put Cambria before Cambria Math as Cambria Math has neither bold nor */
+/* italic. */
+/**************************************************************************/
+
+math {
+ direction: ltr;
+ unicode-bidi: embed;
+ display: inline;
+ font-size: inherit;
+ font-style: normal;
+ font-family: STIXGeneral, DejaVu Serif, DejaVu Sans, Cambria, Cambria Math, Times, Lucida Sans Unicode, OpenSymbol, Standard Symbols L, serif;
+ text-rendering: optimizeLegibility;
+ -moz-float-edge: margin-box;
+}
+math[mode="display"], math[display="block"] {
+ display: block;
+ text-align: -moz-center;
+}
+math[display="inline"] {
+ display: inline;
+}
+::-moz-math-inline {
+ display: inline;
+}
+
+/**************************************************************************/
+/* Style switching during frame construction depending on the context of <mi>:
+ These rules are not used when mathvariant or fontstyle is specified
+ explicitly.
+/**************************************************************************/
+
+/* If the textual content of an <mi> consists of a single character
+ with a corresponding mathematical italic alphanumeric character,
+ then try to emulate that character */
+[-moz-math-font-style="italic"] {
+ font-style: italic;
+ font-weight: normal;
+}
+/* If the textual content consists of multiple characters, then the default is
+ mathvariant=normal. It seems that mathvariant=normal should be interpreted
+ to mean non-slanted:
+
+ http://www.w3.org/TR/2003/REC-MathML2-20031021/chapter3.html#presm.commatt
+
+ "In particular, inheritance of the mathvariant attribute does not follow
+ the CSS model. The default value for this attribute is "normal"
+ (non-slanted) for all tokens except mi. ... (The deprecated fontslant
+ attribute also behaves this way.)"
+ */
+[-moz-math-font-style="normal"] {
+ font-style: normal;
+}
+/* A style-invariant character preserves its own style */
+[-moz-math-font-style="invariant"] {
+ font-style: normal;
+ font-weight: normal;
+}
+
+/**************************************************************************/
+/* attributes common to all tags */
+/**************************************************************************/
+
+/* deprecated attributes from MathML 1.0 */
+
+/* fontstyle */
+[fontstyle="normal"] {
+ font-style: normal;
+}
+[fontstyle="italic"] {
+ font-style: italic;
+}
+/* fontweight */
+[fontweight="normal"] {
+ font-weight: normal;
+}
+[fontweight="bold"] {
+ font-weight: bold;
+}
+
+/* attributes from MathML 2.0 */
+
+/* These ones are handled in the back-end:
+ mathcolor (replaces 'color'):
+ #rgb | #rrggbb | html-color-name
+ mathbackground (replaces 'background'):
+ #rgb | #rrggbb | html-color-name
+*/
+/* mathvariant (replaces 'fontstyle' & 'fontweight' & 'fontslant'):
+ normal | bold | italic | bold-italic | double-struck | bold-fraktur | script |
+ bold-script | fraktur | sans-serif | bold-sans-serif | sans-serif-italic |
+ sans-serif-bold-italic | monospace
+
+ Note1: Back-end code for these is not yet written (bug 114365):
+ double-struck, script, fraktur, bold-fraktur, bold-script
+
+ Note2: Don't use the 'font' shorthand because it resets the font-size and this
+ breaks the propagation of the scriptlevel size.
+
+ XXX bugs 46622 & 114365: need -moz-math-serif, etc, to only lookup math fonts
+
+ The meaning of mathvariant=normal is unclear as there is no interpretation
+ that "corresponds to SMP Math Alphanumeric Symbol characters"
+ (http://www.w3.org/TR/2003/REC-MathML2-20031021/chapter3.html#presm.commatt),
+ but let's assume an explicit mathvariant=normal is an attempt to reset all
+ style.
+*/
+[mathvariant] { /* shared and same as [mathvariant="normal"] */
+ /* reset all font properties except those that affect the size */
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+}
+[mathvariant="bold-fraktur"],
+[mathvariant="bold-script"] {
+ font-weight: bold;
+}
+[mathvariant="bold"] {
+ font-weight: bold;
+}
+[mathvariant="italic"] {
+ font-style: italic;
+}
+[mathvariant="bold-italic"] {
+ font-weight: bold;
+ font-style: italic;
+}
+[mathvariant="sans-serif"] {
+ font-family: sans-serif;
+}
+[mathvariant="bold-sans-serif"] {
+ font-weight: bold;
+ font-family: sans-serif;
+}
+[mathvariant="sans-serif-italic"] {
+ font-family: sans-serif;
+ font-style: italic;
+}
+[mathvariant="sans-serif-bold-italic"] {
+ font-family: sans-serif;
+ font-weight: bold;
+ font-style: italic;
+}
+[mathvariant="monospace"] {
+ font-family: monospace;
+}
+
+/**************************************************************************/
+/* tags with generated content */
+/**************************************************************************/
+
+ms {
+ display: inline;
+}
+ms:before {
+ content: open-quote;
+}
+ms:after {
+ content: close-quote;
+}
+
+merror {
+ display: block;
+ font-family: sans-serif;
+ font-weight: bold;
+ white-space: pre;
+ margin: 1em;
+ padding: 1em;
+ border-width: thin;
+ border-style: inset;
+ border-color: red;
+ font-size: 14pt;
+ background-color: lightyellow;
+}
+
+/**************************************************************************/
+/* mtable and its related tags */
+/**************************************************************************/
+
+mtable {
+ display: inline-table;
+ border-collapse: separate;
+ border-spacing: 0;
+ text-indent: 0;
+}
+mtable[frame="none"] {
+ border: none;
+}
+mtable[frame="solid"] {
+ border: solid thin;
+}
+mtable[frame="dashed"] {
+ border: dashed thin;
+}
+
+mtr {
+ display: table-row;
+ vertical-align: baseline;
+}
+
+mtd {
+ display: table-cell;
+ vertical-align: inherit;
+ text-align: -moz-center;
+ white-space: nowrap;
+}
+
+/* Don't support mtr without mtable, nor mtd without mtr */
+:not(mtable) > mtr,
+:not(mtr) > mtd {
+ display: none !important;
+}
+
+/***********************/
+/* -- mtd: columnalign */
+
+mtd[-moz-math-columnalign="left"],
+mtd[columnalign="left"] {
+ text-align: left;
+}
+mtd[-moz-math-columnalign="right"],
+mtd[columnalign="right"] {
+ text-align: right;
+}
+mtd[-moz-math-columnalign="center"],
+mtd[columnalign="center"] {
+ text-align: -moz-center;
+}
+
+/*************************/
+/* -- mtr, mtd: rowalign */
+
+mtr[-moz-math-rowalign="top"],
+mtr[rowalign="top"],
+mtd[rowalign="top"] {
+ vertical-align: top;
+}
+mtr[-moz-math-rowalign="bottom"],
+mtr[rowalign="bottom"],
+mtd[rowalign="bottom"] {
+ vertical-align: bottom;
+}
+mtr[-moz-math-rowalign="center"],
+mtr[rowalign="center"],
+mtd[rowalign="center"] {
+ vertical-align: middle;
+}
+mtr[-moz-math-rowalign="baseline"],
+mtr[rowalign="baseline"],
+mtd[rowalign="baseline"] {
+ vertical-align: baseline;
+}
+/* -- not yet supported --
+mtr[-moz-math-rowalign="axis"],
+mtr[rowalign="axis"],
+mtd[rowalign="axis"] {
+ vertical-align: mathline;
+}
+*/
+
+/**********************************************************************/
+/* rules to achieve the default spacing between cells. The back-end code
+ will set the internal attributes depending on the cell's position.
+ These rules are hard-coded, the comments indicate what would be
+ desirable if the style data could be changed on the fly to pick
+ the values that users may set with the attributes of <mtable> */
+mtd {
+ padding-right: 0.4em; /* half of columnspacing[colindex] */
+ padding-left: 0.4em; /* half of columnspacing[colindex-1] */
+ padding-bottom: 0.5ex; /* half of rowspacing[rowindex] */
+ padding-top: 0.5ex; /* half of rowspacing[rowindex-1] */
+}
+/* turn off the spacing at the periphery of boundary cells */
+mtr:first-child > mtd {
+ padding-top: 0ex;
+}
+mtr:last-child > mtd {
+ padding-bottom: 0ex;
+}
+mtd:first-child {
+ padding-left: 0em;
+}
+mtd:last-child {
+ padding-right: 0em;
+}
+/* re-instate the spacing if the table has a surrounding frame */
+mtable[frame="solid"] > mtr:first-child > mtd,
+mtable[frame="dashed"] > mtr:first-child > mtd {
+ padding-top: 0.5ex; /* framespacing.top */
+}
+mtable[frame="solid"] > mtr:last-child > mtd,
+mtable[frame="dashed"] > mtr:last-child > mtd {
+ padding-bottom: 0.5ex; /* framespacing.bottom */
+}
+mtable[frame="solid"] > mtr > mtd:first-child,
+mtable[frame="dashed"] > mtr > mtd:first-child {
+ padding-left: 0.4em; /* framespacing.left */
+}
+mtable[frame="solid"] > mtr > mtd:last-child,
+mtable[frame="dashed"] > mtr > mtd:last-child {
+ padding-right: 0.4em; /* framespacing.right */
+}
+
+/**********************************************************************/
+/* internal settings to support 'rowlines' and 'columnlines'. To
+ achieve the recommended behavior, the back-end code will avoid setting
+ unsuitable rules on the cells on the first row and the first column.
+ In general, however, authors can use the 'border' property of CSS to
+ achieve varying effects down to the level of the table cell. */
+mtr[-moz-math-rowline="none"] > mtd {
+ border-top: none;
+}
+mtr[-moz-math-rowline="solid"] > mtd {
+ border-top: solid thin;
+}
+mtr[-moz-math-rowline="dashed"] > mtd {
+ border-top: dashed thin;
+}
+mtd[-moz-math-columnline="none"] {
+ border-left: none;
+}
+mtd[-moz-math-columnline="solid"] {
+ border-left: solid thin;
+}
+mtd[-moz-math-columnline="dashed"] {
+ border-left: dashed thin;
+}
+
+
+/**************************************************************************/
+/* Style used for stretchy symbols *must* be normal to avoid misaligments */
+/* By leaving the font-family empty, the MathML engine will use the value
+ provided by the mathfont-family property in the mathfont.properties file
+ or the value of the user's pref("font.mathfont-family", "...").
+
+ Authors can make elements on a document to be stretched with different
+ fonts, e.g.,
+
+ To request the use of TeX fonts, you can add a <style>...</style> with:
+ <mo myfonts="tex">...</mo> with the associated CSS declaration
+ mo[myfonts="tex"]::-moz-math-stretchy {
+ font-family: CMSY10, CMEX10;
+ }
+
+ To request the use of Mathematica fonts, you can add a <style>...</style> with:
+ <mo myfonts="mathematica">...</mo> with the associated CSS declaration
+ mo[myfonts="mathematica"]::-moz-math-stretchy {
+ font-family: Math1, Math2, Math4;
+ }
+
+ Of course, if you just want all of the stretchy characters in your
+ document to be stretched with your preferred list, you can just do:
+ ::-moz-math-stretchy {
+ font-family: [your-particular-list]
+ }
+
+ Note that like other fonts in the document, users can override this by
+ clicking the pref to override document fonts.
+/**************************************************************************/
+
+::-moz-math-stretchy {
+ font-style: normal;
+ font-family: serif; /* an empty family is ignored as an error and behaves like inherit */
+/* background-color: #3C6; */
+}
+::-moz-math-anonymous {
+}
+
+/**********************************************************************/
+/* Hide embedded semantic MathML content (as opposed to presentational
+ content, which we render). Ideally, here is the behavior that we want:
+
+ if there is an annotation-xml[encoding="MathML-Presentation"]
+ render that annotation, and ignore the first child of the
+ <semantics> element and all other annotations,
+ else
+ render the first child of <semantics> and ignore all annotations
+
+ But this cannot be expressed with CSS. As a stop-gap, just render
+ the first child to cater for most of the common cases - bug 154931.
+*/
+semantics > :not(:first-child) {
+ display: none;
+}
+
+/**********************************************************************/
+/* This is used when wrapping non-MathML inline elements inside math. */
+*|*::-moz-mathml-anonymous-block {
+ display: inline-block !important;
+ position: static !important;
+ text-indent: 0;
+}
+
+/*****************************************/
+/* Controlling scriptlevel */
+/*****************************************/
+
+/* mfrac, munder, mover and munderover change the scriptlevels of their children using
+ -moz-math-increment-script-level because regular CSS rules are insufficient to
+ control when the scriptlevel should be incremented */
+:-moz-math-increment-script-level { -moz-script-level:+1; }
+
+/* all other cases can be described using regular CSS, so we do it this way because it's
+ more efficient and less code */
+mroot > :not(:first-child) { -moz-script-level:+2; }
+
+msub > :not(:first-child),
+msup > :not(:first-child),
+msubsup > :not(:first-child),
+mmultiscripts > :not(:first-child) { -moz-script-level:+1; }