home *** CD-ROM | disk | FTP | other *** search
- /*
- * 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 University Of Queensland are
- * Copyright (C) 1999 The University Of Queensland. All Rights Reserved.
- *
- * Contributor(s):
- * Roger B. Sidje <rbs@maths.uq.edu.au>
- */
-
-
- /**************************************************************************/
- /* namespace for MathML elements */
- /**************************************************************************/
-
- @namespace url(http://www.w3.org/1998/Math/MathML);
-
-
- /**************************************************************************/
- /* <math> - outermost math element */
- /**************************************************************************/
-
- math {
- direction: ltr;
- unicode-bidi: embed;
- display: inline;
- font-size: inherit;
- font-style: normal;
- font-family: CMSY10, Symbol, Times, Lucida Sans Unicode, MT Extra, Math1, Math2, Math3, Math4, Math5, serif;
- }
- 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
- these rules need to be here so that the other rules listed with
- fontstyle, mathsize, etc, can override them
- /**************************************************************************/
-
- /* change of style depending on the context of <mi> */
- [-moz-math-font-style="italic"] {
- font-style: italic; /* if the textual content consists of a single character */
- }
- [-moz-math-font-style="normal"] {
- font-style: normal; /* if the textual content consists of multiple characters */
- }
- /* change of size induced by changing the scriptlevel */
- [-moz-math-font-size="+1"] {
- font-size: 71%;
- }
- [-moz-math-font-size="+2"] {
- font-size: 50%;
- }
- [-moz-math-font-size="+3"] {
- font-size: 36%;
- }
- [-moz-math-font-size="+4"] {
- font-size: 25%;
- }
- [-moz-math-font-size="+5"] {
- font-size: 18%;
- }
- [-moz-math-font-size="scriptminsize"] {
- font-size: 8pt;
- }
- [-moz-math-font-size="-1"] {
- font-size: 141%;
- }
- [-moz-math-font-size="-2"] {
- font-size: 200%;
- }
- [-moz-math-font-size="-3"] {
- font-size: 283%;
- }
- [-moz-math-font-size="-4"] {
- font-size: 400%;
- }
- [-moz-math-font-size="-5"] {
- font-size: 566%;
- }
-
- /**************************************************************************/
- /* 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;
- }
- /* fontsize */
- [fontsize="xx-small"] {
- font-size: xx-small;
- }
- [fontsize="x-small"] {
- font-size: x-small;
- }
- [fontsize="small"] {
- font-size: small;
- }
- [fontsize="smaller"] {
- font-size: smaller;
- }
- [fontsize="medium"] {
- font-size: medium;
- }
- [fontsize="large"] {
- font-size: large;
- }
- [fontsize="larger"] {
- font-size: larger;
- }
- [fontsize="x-large"] {
- font-size: x-large;
- }
- [fontsize="xx-large"] {
- font-size: xx-large;
- }
-
- /* 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
- */
- /* mathsize (replaces 'fontsize'):
- small, big, number v-unit (a numeric value is handled in the back-end) */
- [mathsize="small"] {
- font-size: small;
- }
- [mathsize="big"] {
- font-size: large;
- }
- /* mathvariant (replaces 'fontstyle' & 'fontweight' & 'fontslant'; it
- requires using the 'font' shorthand so as to reset everything first):
- 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: These are handled with additional back-end code:
- double-struck, script, fraktur, bold-fraktur, bold-script
-
- Note2: the 'font' shorthand must specify at least two properties, size & family
- font: [ <font-style> || <font-variant> || <font-weight> ]?
- <font-size> [ / <line-height> ]?
- <font-family>
-
- XXX bugs 46622 & 114365: need -moz-math-serif, etc, to only lookup math fonts
- */
- [mathvariant] { /* shared and same as [mathvariant="normal"] */
- font: medium serif;
- font-size: inherit;
- font-size-adjust: inherit;
- font-stretch: inherit;
- }
- [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: table;
- border-collapse: separate;
- border-spacing: 0;
- }
- mtable[frame="none"] {
- border: none;
- }
- mtable[frame="solid"] {
- border: solid thin;
- }
- mtable[frame="dashed"] {
- border: dashed thin;
- }
-
- mtr {
- display: table-row;
- }
-
- mtd {
- display: table-cell;
- vertical-align: baseline;
- text-align: -moz-center;
- white-space: nowrap;
- }
-
-
- /***********************/
- /* -- mtd: columnalign */
-
- mtd[columnalign="left"] {
- text-align: left;
- }
- mtd[columnalign="right"] {
- text-align: right;
- }
- mtd[columnalign="center"] {
- text-align: -moz-center;
- }
-
- /********************/
- /* -- mtd: rowalign */
-
- mtd[rowalign="top"] {
- vertical-align: top;
- }
- mtd[rowalign="bottom"] {
- vertical-align: bottom;
- }
- mtd[rowalign="center"] {
- vertical-align: middle;
- }
- mtd[rowalign="baseline"] {
- vertical-align: baseline;
- }
- /* -- not yet supported --
- 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 */
- mtd[-moz-math-firstrow="true"] {
- padding-top: 0ex;
- }
- mtd[-moz-math-lastrow="true"] {
- padding-bottom: 0ex;
- }
- mtd[-moz-math-firstcolumn="true"] {
- padding-left: 0em;
- }
- mtd[-moz-math-lastcolumn="true"] {
- padding-right: 0em;
- }
- /* re-instate the spacing if the table has a surrounding frame */
- mtable[frame="solid"] > mtr > mtd[-moz-math-firstrow="true"],
- mtable[frame="dashed"] > mtr > mtd[-moz-math-firstrow="true"] {
- padding-top: 0.5ex; /* framespacing.top */
- }
- mtable[frame="solid"] > mtr > mtd[-moz-math-lastrow="true"],
- mtable[frame="dashed"] > mtr > mtd[-moz-math-lastrow="true"] {
- padding-bottom: 0.5ex; /* framespacing.bottom */
- }
- mtable[frame="solid"] > mtr > mtd[-moz-math-firstcolumn="true"],
- mtable[frame="dashed"] > mtr > mtd[-moz-math-firstcolumn="true"] {
- padding-left: 0.4em; /* framespacing.left */
- }
- mtable[frame="solid"] > mtr > mtd[-moz-math-lastcolumn="true"],
- mtable[frame="dashed"] > mtr > mtd[-moz-math-lastcolumn="true"] {
- 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. */
- mtd[-moz-math-rowline="none"] {
- border-top: none;
- }
- mtd[-moz-math-rowline="solid"] {
- border-top: solid thin;
- }
- mtd[-moz-math-rowline="dashed"] {
- 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;
- /* 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;
- }
-