/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /**************************************************************************/ /* namespace for MathML elements */ /**************************************************************************/ @namespace url(http://www.w3.org/1998/Math/MathML); /**************************************************************************/ /* - 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: MathJax_Main, 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; } /**************************************************************************/ /* Token elements */ /**************************************************************************/ ms { display: inline; } ms:before, ms:after { content: "\0022" } ms[lquote]:before { content: attr(lquote) } ms[rquote]:after { content: attr(rquote) } /**************************************************************************/ /* Links */ /**************************************************************************/ :-moz-any-link { text-decoration: none !important; } /**************************************************************************/ /* attributes common to all tags */ /**************************************************************************/ /* These attributes are mapped to style in nsMathMLElement.cpp: - background -> background (deprecated) - color -> color (deprecated) - fontfamily -> font-family (deprecated) - fontsize -> font-size (deprecated) - fontstyle -> font-style (deprecated) - fontweight -> font-weight (deprecated) - mathvariant -> -moz-math-variant - scriptsizemultiplier -> -moz-script-size-multiplier - scriptminsize -> -moz-script-min-size - scriptlevel -> -moz-script-level - mathsize -> font-size - mathcolor -> color - mathbackground -> background */ /**************************************************************************/ /* merror */ /**************************************************************************/ 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, mlabeledtr { display: table-row; vertical-align: baseline; } mtd { display: table-cell; vertical-align: inherit; text-align: -moz-center; white-space: nowrap; } /* Don't support m(labeled)tr without mtable, nor mtd without m(labeled)tr */ :not(mtable) > mtr, :not(mtable) > mlabeledtr, :not(mtr):not(mlabeledtr) > mtd { display: none !important; } /* Hide the label because mlabeledtr is not supported yet (bug 356870). This rule can be overriden by users. */ mlabeledtr > mtd:first-child { display: none; } /**********************************************************************/ /* 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 */ 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 */ } /**************************************************************************/ /* 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 STIX fonts, you can add a with: ... with the associated CSS declaration mo[myfonts="stix"]::-moz-math-stretchy { font-family: STIXNonUnicode, STIXSizeOneSym, STIXSize1, STIXGeneral; } To request the use of Asana fonts, you can add a with: ... with the associated CSS declaration mo[myfonts="asana"]::-moz-math-stretchy { font-family: Asana Math; } 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; */ } /* Don't actually style -moz-math-anonymous by default */ /* ::-moz-math-anonymous { } */ /**********************************************************************/ /* 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; }