W3C初期草案
W3C First Public Working Draft
Copyright © 1998-2022 W3C® (MIT, ERCIM, Keio, Beihang). W3C 責任範囲, 商標, そして許可された文書ライセンスに関する規則が適用されます.
Copyright © 1998-2022 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
この仕様書は, 数学用マークアップ言語, MathMLを定義しています. MathMLは数学表記を記述したり, その構造と意味をうまく再現したりするマークアップ言語です. MathMLの目標は, [HTML]が文章に対してできるようにしたように, 数学をインターネット上で提供したり, 受け取ったり, 処理できたりするようにすることです.
This specification defines the Mathematical Markup Language, or MathML. MathML is a markup language for describing mathematical notation and capturing both its structure and content. The goal of MathML is to enable mathematics to be served, received, and processed on the World Wide Web, just as [HTML] has enabled this functionality for text.
このマークアップ言語MathMLの仕様書は本来, MathMLの描画ソフトウェアや編集ツール, もしくは入出力のプロトコルにMathMLを利用して通信するソフトウェアの, 開発もしくは実装をしている人々を読者として想定しています. この仕様書は, ユーザーガイドではなく参照用の文書です.
This specification of the markup language MathML is intended primarily for a readership consisting of those who will be developing or implementing renderers or editors using it, or software that will communicate using MathML as a protocol for input or output. It is not a User's Guide but rather a reference document.
MathMLは, 数学表記と数学の内容の両方をコード化するのに利用できます. 約38のMathMLタグが抽象的な表記構造については説明しており, 他の約170のMathMLタグが式の意図している意味を明確に特定する方法を提供しています. さらに続く章では, どのようにMathMLのコンテント要素とプレゼンテーション要素が相互に作用するか, どのようにMathML描画ソフトウェアが実装されブラウザと相互に作用するか論じています. 最後に, この文書は, 数学で利用される特別な文字の問題, それらの文字のMathMLでの処理, ユニコードでの存在, フォントの関係について取り組んでいます.
MathML can be used to encode both mathematical notation and mathematical content. About thirty-eight of the MathML tags describe abstract notational structures, while another about one hundred and seventy provide a way of unambiguously specifying the intended meaning of an expression. Additional chapters discuss how the MathML content and presentation elements interact, and how MathML renderers might be implemented and should interact with browsers. Finally, this document addresses the issue of special characters used for mathematics, their handling in MathML, their presence in Unicode, and their relation to fonts.
MathMLは人が読める言語ですが, MathMLを書く人は典型的に, 数式編集ツールや変換ソフトウェア, また, MathMLを生成する他の特別なソフトウェアを利用するでしょう. 様々なバージョンのそういったMathMLソフトウェアが存在し, 無料で利用できるソフトウェアも商用ソフトウェアも両方あり, さらにたくさんのソフトウェアが開発中です.
While MathML is human-readable, authors typically will use equation editors, conversion programs, and other specialized software tools to generate MathML. Several versions of such MathML tools exist, both freely available software and commercial products, and more are under development.
MathMLは元来XMLアプリケーションとして仕様が定められており, この仕様書の例のほとんどはXMLの構文を想定しています. 他の構文も利用可能で, 中でも[HTML]はHTMLの中のMathMLの構文を定めています. 特に注意書きが無い場合, この仕様書の例は有効なHTMLの構文でもあります.
MathML was originally specified as an XML application and most of the examples in this specification assume that syntax. Other syntaxes are possible, most notably [HTML] specifies the syntax for MathML in HTML. Unless explicitly noted, the examples in this specification are also valid HTML syntax.
この節では, 公表された時点でのこの文書の位置付けについて述べます. 最新のW3Cの公表した文書の一覧やこの技術報告書の最新版は, W3C技術報告書の索引(http://www.w3.org/TR/)で見ることができます.
This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.
MathMLについての公式な議論やインターネット上の数学に関するW3Cを通じた対応における課題については, 数学作業部会の公式なメーリングリスト
(履歴一覧)で交わされています. 寄付をされたい場合, 題名にsubscribe
という語句を記入してwww-math-request@w3.orgにメールを送付して下さい. あるいは, この仕様書のGitHubリポジトリに課題を報告して下さい.
Public discussion of MathML and issues of support through the W3C
for mathematics on the Web takes place on the public mailing list of the Math Working
Group (list archives).
To subscribe send an email to www-math-request@w3.org
with the word subscribe
in the subject line.
Alternatively, report an issue at this specification's
GitHub repository.
この文書の発展についての全ての議論は, I. 変更点で見つけられるでしょう.
A fuller discussion of the document's evolution can be found in I. Changes.
節の中には, 省略されていて, より詳細を見るために展開できるものもあります. 次のボタンは, そのような全ての節を展開するために利用できるでしょう.
Some sections are collapsed and may be expanded to reveal more details. The following button may be used to expand all such sections.
この文書は, 数学作業部会によって, 勧告工程に従って, 初期草案として発行されました.
This document was published by the Math Working Group as a First Public Working Draft using the Recommendation track.
初期草案としての発行は, W3Cおよびその会員による支持を意味していません.
Publication as a First Public Working Draft does not imply endorsement by W3C and its Members.
この文書は草案であり, いつでも他の文書によって更新されたり, 置き換えられたり, 破棄されたりしてもよいです. 作業の経過によらず, この文書を掲載することが不適当になります.
This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
この文書は, W3C特許指針の下で運営している作業部会によって作成されました. W3Cは, この作業部会の成果に関連して作成された特許開示の公開一覧を管理しています. この一覧のページは, 特許を開示する場合の指示書きを含んでいます. 特許について実際に生じている情報を持っている方は, その情報が本質的な主張(訳注:当該日本語訳では"Essential Claim"の日本語訳に"本質的な主張"を当てていますが, "Essential Claim"という用語はW3C特許指針で定義された用語です.)に当たると思われる場合, W3C特許指針の第6節に従って必ずその情報を開示して下さい.
This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
この文書は, 2021年11月2日版のW3C手続き文書により決定されました.
This document is governed by the 2 November 2021 W3C Process Document.
この節は規範ではありません.
This section is non-normative.
数学とその表記は, 何百年も, 何千年にもわたって発展してきました. 経験豊かな読者に向けて, 数学表記は, 膨大な情報を速やかに, そして簡潔に伝えます. 一方で, その表記の記号や取り決めは, 表現された数学の意味に関する構造や意味そのものと深く調和しているにも関わらず, 表記と意味は同一ではありません. 意味に関する記号や構造は, それらの表記と微妙に異なっています.
Mathematics and its notations have evolved over several centuries, or even millennia. To the experienced reader, mathematical notation conveys a large amount of information quickly and compactly. And yet, while the symbols and arrangements of the notations have a deep correspondence to the semantic structure and meaning of the mathematics being represented, the notation and semantics are not the same. The semantic symbols and structures are subtly distinct from those of the notation.
したがって, 数学の伝統的な描画された表記とその意味する内容の両方を表現できるマークアップ言語が必要です. 伝統的な描画は, 目が見える読者にとっては利用しやすいですが, マークアップ言語は, アクセシビリティにも対応しなければなりません. 意味に関する形式は, 様々な計算の目的に対応しなければなりません. 両方の形式が, 初等教育から学術研究までの全ての教育水準に適合すべきです.
Thus, there is a need for a markup language which can represent both the traditional displayed notations of mathematics, as well as its semantic content. While the traditional rendering is useful to sighted readers, the markup language must also support accessibility. The semantic forms must support a variety of computational purposes. Both forms should be appropriate to all educational levels from elementary to research.
MathMLは, 数学を記述するためのマークアップ言語です. MathMLは, 単独または他のXMLの中で用いられるときはXML構文を使用し, HTML文書の中で用いられるときはHTML構文を使用します. 概念的に, MathMLは, 2つの主なマークアップの系統から成ります. プレゼンテーションマークアップは, 数式を表示するために使用されます. そして, コンテントマークアップは, 数学の意味を伝えるために使用されます. これらの2つの系統は, 他の外部の表現と一緒に, 並列のマークアップを使用して混在させることもできます.
MathML is a markup language for describing mathematics. It uses XML syntax when used standalone or within other XML, or HTML syntax when used within HTML documents. Conceptually, MathML consists of two main strains of markup: Presentation markup is used to display mathematical expressions; and Content markup is used to convey mathematical meaning. These two strains, along with other external representations, can be combined using parallel markup.
この仕様書は, 次のもので構成されます. 2. MathMLの基礎は, プレゼンテーションマークアップとコンテントマークアップに共通する基礎について論じています. 3. プレゼンテーションマークアップと4. コンテントマークアップは, それぞれプレゼンテーションマークアップとコンテントマークアップについて網羅しています. 5. MathMLに注釈を付けるは, どのようにマークアップに注釈を付けてもよいか, 特にアクセシビリティのためにどうするのか, また, どのようにプレゼンテーションマークアップやコンテントマークアップや他の書式が混在してもよいのかについて論じています. 6. ホスト環境との相互作用は, どのようにMathMLがアプリケーションソフトウェアと相互作用するかに取り組んでいます. 最後に, 特別な記号についての議論や文字, 実体, フォントに関する課題は, 7. 文字, 実体, フォントの中で示しています.
This specification is organized as follows: 2. MathML Fundamentals discusses Fundamentals common to Presentation and Content markup; 3. Presentation Markup and 4. Content Markup cover Presentation and Content markup, respectively; 5. Annotating MathML discusses how markup may be annotated, particularly for accessibility, as well as how Presentation, Content and other formats may be combined; 6. Interactions with the Host Environment addresses how MathML interacts with applications; Finally, a discussion of special symbols, and issues regarding characters, entities and fonts, is given in 7. Characters, Entities and Fonts.
MathMLの仕様書は, 2つの層で開発されています. MathMLコア ([MathMLコア])は, ウェブブラウザで数学を描画する際の正確な細部に焦点を当てることで, (ほとんどの)プレゼンテーションマークアップを網羅しています. 完全なMathML, すなわちこの仕様書は, 第一に4. コンテントマークアップでコンテントMathMLを定義することでMathMLコアを拡張しています. この仕様書は, 追加の属性, 要素, 属性のより強化された構文から成る, プレゼンテーションMathMLの拡張も定義しています. それらの拡張は, 従来のMathMLとの互換性のために, また, 3.1.7 式の改行, 3.6 初等数学, MathMLコアレベル1に含まれていない他の側面を網羅するために定義されました. ただし, それらの側面は, MathMLコアの将来版に組み入れられるかもしれません.
The specification of MathML is developed in two layers. MathML Core ([MathML-Core]) covers (most of) Presentation Markup, with the focus being the precise details of displaying mathematics in web browsers. MathML Full, this specification, extends MathML Core primarily by defining Content MathML, in 4. Content Markup. It also defines extensions to Presentation MathML consisting of additional attributes, elements or enhanced syntax of attributes. These are defined for compatibility with legacy MathML, as well as to cover 3.1.7 Linebreaking of Expressions, 3.6 Elementary Math and other aspects not included in level 1 of MathML Core but which may be incorporated into future versions of MathML Core.
この仕様書は, MathMLコアとその拡張の両方を網羅しています. 両方に共通の機能はで示され、一方, 拡張はで示されています.
This specification covers both MathML Core and its extensions; features common to both are indicated with , whereas extensions are indicated with .
このことは, 完全なMathMLがMathMLコアの適切な上位集合であることを意図しています. さらに, 何らかの有効なMathMLコアは有効な完全なマークアップと見なされることを意図しています. また, MathMLコアに適合した実装とは別の, 完全なMathMLの拡張の一部または全部を実装したものは, 引き続きMathMLコアの適合した実装と見なされるべきであることを意図しています.
It is intended that MathML Full is a proper superset of MathML Core. Moreover, it is intended that any valid Core Markup be considered as valid Full Markup as well. It is also intended that an otherwise conforming implementation of MathML Core, which also implements parts or all of the extensions of MathML Full, should continue to be considered a conforming implementation of MathML Core.
これらの2つの仕様書に加えて, 数学作業部会は, 規範的でないMathMLにおけるメモを開発しています. その文書は, MathMLを利用する際の最良の慣例を理解するのを助ける, 追加の例や情報を含んでいます.
In addition to these two specifications, the Math WG group has developed the non-normative Notes on MathML that contains additional examples and information to help understand best practices when using MathML.
MathMLの基本となる‘構文’は, XML構文を用いて定義されていますが, 番号付きのツリー構造をコード化できる他の構文も利用可能です. 特にHTML処理プログラムは, MathMLと一緒に利用されるかもしれません. この構文の上に, 要素が現れる順番やどのように要素がお互いの中に含まれるかといった要素に示された決まり, また, 属性の値についての追加の構文上の決まりとなる‘文法’を重ねます. それらの決まりは, この仕様書で定義されており, A. MathMLの処理のRelaxNGスキーマ[RELAXNGスキーマ]により書かれています. 他の書式に由来する構文, DTD(文書型宣言), XMLスキーマ[XMLスキーマ]も提供されています.
The basic ‘syntax’ of MathML is defined using XML syntax, but other syntaxes that can encode labeled trees are possible. Notably the HTML parser may also be used with MathML. Upon this, we layer a ‘grammar’, being the rules for allowed elements, the order in which they can appear, and how they may be contained within each other, as well as additional syntactic rules for the values of attributes. These rules are defined by this specification, and formalized by a RelaxNG schema [RELAXNG-SCHEMA] in A. Parsing MathML. Derived schema in other formats, DTD (Document Type Definition) and XML Schema [XMLSchemas] are also provided.
MathMLの文字セットは, 使用されている構文で認められている何らかのユニコード[ユニコード]から構成されています. ([XML]または[HTML]の例を参照して下さい.) 数学でのユニコードの利用については, 7. 文字, 実体, フォントで論じています.
MathML's character set consists of any Unicode characters [Unicode] allowed by the syntax being used. (See for example [XML] or [HTML].) The use of Unicode characters for mathematics is discussed in 7. Characters, Entities and Fonts.
続く節では, MathML文法の一般的な側面について論じたり, 属性の値で利用される構文について説明しています.
The following sections discuss the general aspects of the MathML grammar as well as describe the syntaxes used for attribute values.
XML名前空間[名前空間]は, URIによって特定された名前の集合です. MathML名前空間に対するURIは次のとおりです.
An XML namespace [Namespaces] is a collection of names identified by a URI. The URI for the MathML namespace is:
http://www.w3.org/1998/Math/MathML
MathMLのXMLシリアル化(訳注:"名前を一意に定める機能"を意図)を利用した場合に名前空間を宣言するには, xmlns
属性を利用するか, もしくはxmlns
接頭辞で始まる属性を利用します.
To declare a namespace when using the XML serialisation of MathML,
one uses an xmlns
attribute, or an attribute with an xmlns
prefix.
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>...</mrow>
</math>
xmlns
属性を接頭辞として利用する場合, 他の要素と属性を, 特定の名前空間と明確に結び付けるのに利用できる接頭辞を宣言します. XML構文を使用するHTMLに埋め込まれたMathMLの場合, 次のように利用するでしょう.
When the xmlns
attribute is used as a
prefix, it declares a prefix which can then be used to explicitly associate other
elements
and attributes with a particular namespace.
When embedding MathML within HTML using XML syntax, one might use:
<body xmlns:m="http://www.w3.org/1998/Math/MathML">
...
<m:math><m:mrow>...</m:mrow></m:math>
...
</body>
HTMLは同じ方法で名前空間を拡張することに対応しておらず, HTML処理プログラムは, HTML, SVG, MathML名前空間について元々組み込まれている情報のみを持っています. xmlns
属性は, 単に通常の属性として扱われます. したがって, MathMLのHTMLシリアル化を利用する場合, 接頭辞の付いた要素名は使用してはなりません. xmlns
="http://www.w3.org/1998/Math/MathML"がmath要素
で使用されるかもしれませんが, HTML処理プログラムは, それを無視します. MathMLの式がXML処理プログラムやHTML処理プログラムで処理される文脈の中にあるような場合, 最大限の互換性を確かなものにするために次の形式を利用すべきです.
HTML does not support namespace extensibility in the same way, the HTML parser
has in-built knowledge of the HTML, SVG and MathML namespaces. xmlns
attributes are
just treated as normal attributes. Thus when using the HTML serialisation of MathML,
prefixed element names must not be used. xmlns
=http://www.w3.org/1998/Math/MathML
may be used on the math element
, it will be ignored by the HTML parser.
If a MathML expression is likely to be in contexts where it may be parsed by an XML
parser or an HTML parser, it SHOULD
use the following form to ensure maximum compatibility:
<math xmlns="http://www.w3.org/1998/Math/MathML">
...
</math>
概念上は, 単独の引数しか持たないプレゼンテーション要素がありますが, 便利なように任意の数を持つように書かれてきました. その場合, 省略されたmrow
が疑問にあった要素の引数としてふるまう子要素を囲っています. 3.1.3.1 省略された<mrow>
を参照して下さい.
There are presentation elements that conceptually accept only
a single argument, but which for convenience have been written to accept any number
of children;
then we infer an mrow
containing those children which acts as
the argument to the element in question; see 3.1.3.1 Inferred <mrow>
s.
MathML仕様書の至るところにある要素それぞれに与えられた要素の構文の詳細な議論において, 必要な引数の数と引数の順番, 他の内容についての制約について指定されています. この情報は, 3.1.3 必要な引数でプレゼンテーション要素に対して一覧にされています.
In the detailed discussions of element syntax given with each element throughout the MathML specification, the number of arguments required and their order, as well as other constraints on the content, are specified. This information is also tabulated for the presentation elements in 3.1.3 Required Arguments.
[MathMLコア]のウェブプラットフォームでの実装は, その仕様書の中で指定された詳細な配置の決まりに従うべきです.
Web Platform implementations of [MathML-Core] should follow the detailed layout rules specified in that document.
この文書は, プレゼンテーションMathMLを描画する特定の方法を推奨しているのみです(すなわち, 必須とはしていません). これは, 媒体依存の描画やCSSに基づくウェブプラットフォームを使用しない実装を認めるためです.
This document only recommends (i.e., does not require) specific ways of rendering Presentation MathML; this is in order to allow for medium-dependent rendering and for implementations not using the CSS based Web Platform.
MathML要素は, 要素の意味または効果を詳細に特定する値と一緒に属性を使用します. 属性の名前は, この文書の中では等幅
フォントで示します. 属性の意味や利用可能な値は, 各要素の仕様の中で説明します. この節で説明する構文の表記は, 利用可能な値を指定するのに使用されます.
MathML elements take attributes with values that further specialize
the meaning or effect of the element. Attribute names are shown in a
monospaced
font throughout this document. The meanings of attributes and their
allowed values are described within the specification of each element.
The syntax notation explained in this section is used in specifying allowed values.
属性の値についてMathMLで指定された構文を説明するのに, 次に示す慣習と表記がこの文書のほとんどの属性に使用されます.
To describe the MathML-specific syntax of attribute values, the following conventions and notations are used for most attributes in the present document.
表記 Notation |
何と一致するか What it matches |
符号無し整数 unsigned-integer |
[MathMLコア]で定義された, 最初の文字がハイフンマイナス文字(-)でもプラス記号(+)でもない整数 As defined in [MathML-Core], an integer , whose first character is neither
U+002D HYPHEN-MINUS character (-) nor
U+002B PLUS SIGN (+). |
正の整数 positive-integer |
符号無し整数の文字列, ただし, 単に"0"(U+0030)のみから成るものは除く, 正の整数を表す An unsigned-integer not consisting solely of "0"s (U+0030), representing a positive integer |
整数 integer |
必須でない"-"(U+002D), それに続く符号無し整数, 整数を表す an optional "-" (U+002D), followed by an unsigned-integer, and representing an integer |
符号無し数 unsigned-number |
[CSS-VALUES-3]で定義された値, 最初の文字がハイフンマイナス文字(-)でもプラス記号(+)でもない数 , 10進数で終わる数(有理数の型)を表すvalue as defined in [CSS-VALUES-3] number , whose first character is neither
U+002D HYPHEN-MINUS character (-) nor
U+002B PLUS SIGN (+),
representing a non-negative terminating decimal number
(a type of rational number) |
数 number |
必須でない接頭辞"-"(U+002D), それに続く符号無し数, 10進数で終わる数(有理数の型)を表す an optional prefix of "-" (U+002D), followed by an unsigned number, representing a terminating decimal number (a type of rational number) |
文字 character |
単独の空白でない文字 a single non-whitespace character |
文字列 string |
任意の空で無い有限の文字の文字列 an arbitrary, nonempty and finite, string of characters |
長さ length |
長さ, 後で説明, 2.1.5.2 長さの値の属性 a length, as explained below, 2.1.5.2 Length Valued Attributes |
名前付き長さ namedlength |
名前付き長さ, 名前付き長さ, 2.1.5.2 長さの値の属性の中で説明 a named length, namedspace, as explained in 2.1.5.2 Length Valued Attributes |
色 color |
色, [CSS-Color-3]で指定された構文を使用 a color, using the syntax specified by [CSS-Color-3] |
id | 文書の中で唯一である識別子, XML勧告[XML]の名前の構文を満足しなければならない an identifier, unique within the document; must satisfy the NAME syntax of the XML recommendation [XML] |
参照先のid idref |
文書の中の他の要素を参照する識別子, XML勧告[XML]の名前の構文を満足しなければならない an identifier referring to another element within the document; must satisfy the NAME syntax of the XML recommendation [XML] |
URI | 統一資源識別子[RFC3986]. 属性の値は, 何らかの一連のXML文字で与えられた, 何らかのURIとして構文の中で分類されることに注意して下さい. URLとして文字列を利用する必要のあるシステムは, URLで認められていない文字を, HHが16進数のバイト値である%HHというパーセントエンコードを利用して, UTF-8文字コードのバイトでコード化しなければなりません. これは, そのような属性値をIRIとして, もっと一般にLEIRIとして解釈することを確かにします. [IRI]を参照して下さい. a Uniform Resource Identifier [RFC3986]. Note that the attribute value is typed in the schema as anyURI which allows any sequence of XML characters. Systems needing to use this string as a URI must encode the bytes of the UTF-8 encoding of any characters not allowed in URI using %HH encoding where HH are the byte value in hexadecimal. This ensures that such an attribute value may be interpreted as an IRI, or more generally a LEIRI, see [IRI]. |
太字+下線付き italicized word |
それぞれの属性について文章で説明された値, 2.1.5.3 属性の既定値参照, (注釈:原文では斜体となっているものを日本語訳では太字+下線付きで記載) values as explained in the text for each attribute; see 2.1.5.3 Default values of attributes |
"文字列" "literal" |
引用符で囲まれた記号, 属性値の中に文字通り現れる(例えば"+"または'+') quoted symbol, literally present in the attribute value (e.g. "+" or '+') |
上で述べられている‘型’は, 文字列を除いて, 次に示す演算子を使用して混合した様式に組み合せることができます. 全ての属性値は, 記述されている文書の中で一重(')または二重(")引用符によって境界を決めなければなりません. この仕様書では, 二重引用符が文字列の式を記述するのによく使用されることに注意して下さい. 例としては, 上の表の5行目の"-"です.
The ‘types’ described above, except for string, may be combined into composite patterns using the following operators. The whole attribute value must be delimited by single (') or double (") quotation marks in the marked up document. Note that double quotation marks are often used in this specification to mark up literal expressions; an example is the "-" in line 5 of the table above.
下の表でfは上の表で述べた型を意味します. 組み合せる演算子は, 優先度の高いものから低いものの順で示しています.
In the table below a form f means an instance of a type described in the table above. The combining operators are shown in order of precedence from highest to lowest:
表記 Notation |
何と一致するか What it matches |
( f ) | fと同じ same as f |
f ? | 0または1つのf an optional instance of f |
f * | 空白文字で区切られた0以上のf zero or more instances of f, with separating whitespace characters |
f + | 空白文字で区切られた1つ以上のf one or more instances of f, with separating whitespace characters |
f1 f2 ... fn | 空白文字で区切られていないfiそれぞれの一連のもの one instance of each form fi, in sequence, with no separating whitespace |
f1, f2, ..., fn | (コンマでなく)空白文字で区切られたfiそれぞれの一連のもの one instance of each form fi, in sequence, with separating whitespace characters (but no commas) |
f1 | f2 | ... | fn | 指定されたのfiどれか1つ any one of the specified forms fi |
ここで使用する表記は, MathMLの基本となる構文(A. MathMLの処理)として利用されるRelaxNGの構文表記の書式です.
The notation we have chosen here is in the style of the syntactical notation of the RelaxNG used for MathML's basic schema, A. Parsing MathML.
ソフトウェアの中には空白の標準化が一貫していないものもあるので, 最大の相互運用性のためには, 属性値の部分部分を区切るのに単独の空白文字のみを使用するのが賢明です. さらに, 属性値の中の最初と最後の空白は避けるべきです.
Since some applications are inconsistent about normalization of whitespace, for maximum interoperability it is advisable to use only a single whitespace character for separating parts of a value. Moreover, leading and trailing whitespace in attribute values should be avoided.
ほとんどの数値の属性に対して, 表現可能な属性値の値の一部のみがふさわしい値です. それ以外の値は, 他で指定されていない限りエラーにはなりませんが, その代わり(描画ソフトウェア次第で)認められている範囲の最も近い値に切り上げられたり切り捨てられたりします. 認められている値の範囲は描画ソフトウェアに依存してもよいですし, MathMLでは指定していません.
For most numerical attributes, only those in a subset of the expressible values are sensible; values outside this subset are not errors, unless otherwise specified, but rather are rounded up or down (at the discretion of the renderer) to the closest value within the allowed subset. The set of allowed values may depend on the renderer, and is not specified by MathML.
属性値の構文の説明の中の数値の値が, 例えば数
や整数
といったマイナス記号('-')が認められていると宣言されている場合, 負の値がふさわしくない状況で使用されたとしても構文エラーにはなりません. その代わり, 値は処理ソフトウェアによって前の段落で説明したように扱われるべきです. 明確なプラス記号('+')は, (引用符で囲まれた'+'または"+"として)構文で明確に示されていない限り, 数値の値の一部としては認められません. また, プラス記号の存在は(それぞれの属性で認められると文書化されていても)属性の値の意味を変えてしまうでしょう.
If a numerical value within an attribute value syntax description
is declared to allow a minus sign ('-'), e.g., number
or
integer
, it is not a syntax error when one is provided in
cases where a negative value is not sensible. Instead, the value
should be handled by the processing application as described in the
preceding paragraph. An explicit plus sign ('+') is not allowed as
part of a numerical value except when it is specifically listed in the
syntax (as a quoted '+' or "+"), and its presence can change the
meaning of the attribute value (as documented with each attribute
which permits it).
ほとんどのプレゼンテーション要素は, 大きさ, 間隔, またはそれらに類似した特性に対して使用する, 長さを表わす値を受け入れる属性を持っています. [MathMLコア]は, [CSS-VALUES-3]で定義された<長さや百分率>
の構文における長さしか受け入れません. 完全なMathMLは, 次の名前付き長さも受け入れることで, 長さの構文を拡張しています.
Most presentation elements have attributes that accept values
representing lengths to be used for size, spacing or similar properties.
[MathML-Core] accepts lengths only in the
<length-percentage>
syntax defined in [CSS-VALUES-3].
MathML Full extends length syntax by accepting also a namedspace
being one of:
正の空白 Positive space | 負の空白 Negative space | 値 Value |
---|---|---|
veryverythinmathspace |
negativeveryverythinmathspace |
±1/18 em |
verythinmathspace |
negativeverythinmathspace |
±2/18 em |
thinmathspace |
negativethinmathspace |
±3/18 em |
mediummathspace |
negativemediummathspace |
±4/18 em |
thickmathspace |
negativethickmathspace |
±5/18 em |
verythickmathspace |
negativeverythickmathspace |
±6/18 em |
veryverythickmathspace |
negativeveryverythickmathspace |
±7/18 em |
加えて, mpaddedの属性は, 中身の元々の大きさを示す(通常のCSS単位の代わりをする)3つの疑似添え字height
, depth
, width
を認めています.
In addition, the attributes on mpadded
allow three pseudo-units, height
,
depth
and width
(taking the place of one of the usual CSS units)
denoting the original dimensions of the content.
MathML 3は, 単位無しの数字として指定される長さの非推奨の利用も認めていました. この利用は, 参照する値の倍数として解釈されていました. この形式は, MathML 4では無効と見なされます.
MathML 3 also allowed a deprecated usage with lengths specified as a number without a unit. This was interpreted as a multiple of the reference value. This form is considered invalid in MathML 4.
ここで, 相対的な単位の2つの追加の側面について明らかにしておかなければなりません. 1つは, 要素の中には, 3.4 添え字の配置要素またはmmfrac
といった, 暗黙のうちにそれらの引数の内いくつかのフォントの大きさをより小さく切り替えるものがあることです. 同様に, mstyle
は現在のフォントの大きさを明確に変更するために利用できます. そのような場合, それらの要素の中のem
やex
の効果的な値は, 外側とは異なるでしょう. 2つ目の点は, 属性値で利用されるem
やex
の有効な値は, 現在のフォントの大きさの変更に影響されるであろうことです. よって, mathsize
やscriptlevel
といった現在のフォントの大きさに影響する属性は, 他の長さの値を持つ属性が評価される前に処理されなければなりません.
Two additional aspects of relative units must be clarified, however.
First, some elements such as 3.4 Script and Limit Schemata or mfrac
implicitly switch to smaller font sizes for some of their arguments.
Similarly, mstyle
can be used to explicitly change
the current font size. In such cases, the effective values of
an em
or ex
inside those contexts will be
different than outside. The second point is that the effective value
of an em
or ex
used for an attribute value
can be affected by changes to the current font size.
Thus, attributes that affect the current font size,
such as mathsize
and scriptlevel
, must be processed before
evaluating other length valued attributes.
MathML属性に対する既定値は, 一般にこの文書の特定の要素の詳細な説明で一緒に示されています. 要素の属性の表で装飾されていない文字で示された既定値は文字列の値ですが, 下線付き太字(注釈:原文では斜体となっているものを日本語訳では下線付き太字で記載)で示された例のときは既定値がどのように計算されるかという説明です.
Default values for MathML attributes are, in general, given along with the detailed descriptions of specific elements in the text. Default values shown in plain text in the tables of attributes for an element are literal, but when italicized are descriptions of how default values can be computed.
継承すると述べられている既定値は, 3.3.4 書式の変更 <mstyle>
で述べられている描画環境から引き継がれます. または, (個別に説明されている)いくつかの場合, 周囲を囲んでいる要素の他の属性の値やそれらの値の一部から引き継がれます. 使用される値は, やろうと思えば, いつも明確に指定しておくことができる値でしょう. その値は, 同じ要素の内容や属性には依存せず, 環境にのみ依存します. (しかしながら, それが何を意味しているのか, いつ使われるのかというと, それらの属性や内容に依存します.)
Default values described as inherited are taken from the
rendering environment, as described in 3.3.4 Style Change <mstyle>
,
or in some cases (which are described individually) taken from the values of other
attributes of surrounding elements, or from certain parts of those
values. The value used will always be one which could have been specified
explicitly, had it been known; it will never depend on the content or
attributes of the same element, only on its environment. (What it means
when used may, however, depend on those attributes or the content.)
自動と述べられている既定値は, MathML描画ソフトウェアによって, 良質な描画を提供するであろう方法に従って計算されます. どのように計算されるかは, 通常MathML仕様書では指定していません. 計算される値は, やろうと思えば, いつも明確に指定しておくことができる値でしょう. ただし, その値は, 通常は要素の内容や, もしかすると要素が描画される文脈に依存するでしょう.
Default values described as automatic should be computed by a MathML renderer in a way which will produce a high-quality rendering; how to do this is not usually specified by the MathML specification. The value computed will always be one which could have been specified explicitly, had it been known, but it will usually depend on the element content and possibly on the context in which the element is rendered.
属性の表に現れた既定値の他の下線付き太字(注釈:原文では斜体となっているものを日本語訳では下線付き太字で記載)の説明は, それぞれの属性ごとに説明しています.
Other italicized descriptions of default values which appear in the tables of attributes are explained individually for each attribute.
XMLの開始タグの中の属性値の周りに必要とされる一重引用符や二重引用符は, それぞれの要素の属性値の構文の表では示されませんが, この文書の例の中の属性値の周りには付けますし, 示されたコードの部分部分は正しいです.
The single or double quotes which are required around attribute values in an XML start tag are not shown in the tables of attribute value syntax for each element, but are around attribute values in examples in the text, so that the pieces of code shown are correct.
一般に, 継承されたり, 自動で計算されたりする属性を指定しなかった場合の効果がどうなるか, 検証する仕組みがMathMLにはないことに注意して下さい. inherited
(訳注:"継承")またはautomatic
(訳注:"自動")という言葉を明確に示すことは, 効果がなく一般に認められません. さらに, mstyle
要素(3.3.4 書式の変更 <mstyle>
)は, その子要素の表示属性の既定値を変更するために使うことができます.
Note that, in general, there is no mechanism in MathML to simulate the
effect of not specifying attributes which are inherited or
automatic. Giving the words inherited
or
automatic
explicitly will not work, and is not generally
allowed. Furthermore, the mstyle
element (3.3.4 Style Change <mstyle>
)
can even be used to change the default values of presentation attributes
for its children.
これらの既定値は, 属性が提供されていないときのMathMLソフトウェアの挙動についても述べていることに注意して下さい. それらの挙動は, ときどきDTDに基づいた仕様書によって委任されているXML処理プログラムによって埋め込まれる値を明確にはしていません.
Note also that these defaults describe the behavior of MathML applications when an attribute is not supplied; they do not indicate a value that will be filled in by an XML parser, as is sometimes mandated by DTD-based specifications.
一般に, 文書全体の特性, または少なくとも大きな文書のその節の特性であると思われている, 数々のMathML描画の特性があります. 例としては, mathsize
(数学のフォントの大きさ, 3.2.2 素子要素に共通の数学書式属性参照), または積分や総和といった演算子の添え字に設定された挙動(例えば, movablelimits
またはdisplaystyle
), もしくは行の途中での式の改行(例えば, linebreakstyle
)があるでしょう. そのような属性は, 3.2 素子要素の中の様々な要素で見られます. これらの値は, 要素を含んでいる範囲の何かから継承されると思われるでしょう. ちょうど上で継承や自動の場合のMathML属性の既定値の設定について書いたとおりです. MathMLを描画する際の挙動についての汎用的な既定値を設定する第三者の資源である, MathML演算子辞書があります. 既定値の例はB. 演算子辞書で提供しています. このことは3.2.5.6.1 演算子辞書でも論じられており, 例は3.2.5.2.1 辞書に基づく属性で示しています.
In general, there are a number of
properties of MathML rendering that may be thought of as overall
properties of a document, or at least of sections of a large
document. Examples might be mathsize
(the math font
size: see 3.2.2 Mathematics style attributes common to token elements), or the
behavior in setting limits on operators such as integrals or sums
(e.g., movablelimits
or displaystyle
), or
upon breaking formulas over lines (e.g.
linebreakstyle
); for such attributes see several
elements in 3.2 Token Elements.
These may be thought to be inherited from some such
containing scope. Just above we have mentioned the setting of default
values of MathML attributes as inherited or
automatic; there is a third source of global default values
for behavior in rendering MathML, a MathML operator dictionary. A
default example is provided in B. Operator Dictionary.
This is also discussed in 3.2.5.6.1 The operator dictionary and examples are given in
3.2.5.2.1 Dictionary-based attributes.
MathMLにおいて, 空白
はXMLのように単純な空白, タブ, 改行, 復帰, すなわち, それぞれ16進数のユニコードの文字コードU+0020, U+0009, U+000A, U+000Dの文字を意味します. [XML]の第3節の空白の説明も参照して下さい.
In MathML, as in XML, whitespace
means simple spaces,
tabs, newlines, or carriage returns, i.e., characters with hexadecimal
Unicode codes U+0020, U+0009, U+000A, or
U+000D, respectively; see also the discussion of whitespace in Section 2.3 of
[XML].
MathMLは素子要素の外にある空白を無視します. 空白ではない文字はそこでは認められません. 素子要素の中の空白は, <cs>
を除いて, 次のように標準化されます. 内容の最初と最後の全ての空白は取り除かれ, 要素の内容の途中の空白は正当に縮小され, すなわち, 1文字以上の空白の文字列は, 1文字の空白(U+0020, よく空白文字と呼ばれる)に置き換えられます.
MathML ignores whitespace occurring outside token elements.
Non-whitespace characters are not allowed there. Whitespace occurring
within the content of token elements, except for <cs>
, is normalized as follows. All whitespace at the beginning and end of the content is
removed, and whitespace internal to content of the element is
collapsed canonically, i.e., each sequence of 1 or more
whitespace characters is replaced with one space character (U+0020, sometimes
called a blank character).
例えば, <mo> ( </mo>
は<mo>(</mo>
に等しく, また,
For example, <mo> ( </mo>
is equivalent to
<mo>(</mo>
, and
<mtext>
Theorem
1:
</mtext>
は, <mtext>Theorem 1:</mtext>
または<mtext>Theorem 1:</mtext>
に等しいです.
is equivalent to
<mtext>Theorem 1:</mtext>
or
<mtext>Theorem 1:</mtext>
.
素子の最初と最後の空白文字をコード化したり, または単独の空白でない空白文字列をコード化したりしようとする場合, それらを無視させないには, 改行しない空白U+00A0(またはnbsp
), もしくは取り除かれることのない他の記述されない文字を使用しなければなりません. 例えば, 上のmtext
要素の利用と下の例を比べるとします.
Authors wishing to encode white space characters at the start or end of
the content of a token, or in sequences other than a single space, without
having them ignored, must use non-breaking space U+00A0 (or nbsp
)
or other non-marking characters that are not trimmed.
For example, compare the above use of an mtext
element
with
<mtext>
 <!--nbsp-->Theorem  <!--nbsp-->1:
</mtext>
最初の例は, Theorem
の前に何も無く, Theorem
と1:
の間にユニコードの空白文字があり, 1:
の後に何も無いように描画されます. 2番目の例では, 単独の空白がTheorem
の前に描画され, 2つの空白である, ユニコードの空白文字1つとユニコードの改行しない空白文字1つが1:
の前に描画され, 1:
の後に何も描画されません.
When the first example is rendered, there is nothing before
Theorem
, one Unicode space character between Theorem
and
1:
, and nothing after 1:
. In the
second example, a single space character is to be rendered before
Theorem
; two spaces, one a Unicode space character and
one a Unicode no-break space character, are to be rendered before
1:
; and there is nothing after the
1:
.
xml:space
属性の値はこの状況では関係ないことに注意して下さい. なぜなら, XML処理プログラムは素子の中の空白をMathML処理プログラムに渡すためです. 空白を取り除いたり, 縮小したりすることは, MathMLの処理で必要とされています.
Note that the value of the xml:space
attribute is not relevant
in this situation since XML processors pass whitespace in tokens to a
MathML processor; it is the requirements of MathML processing which specify that
whitespace is trimmed and collapsed.
素子要素mi
, mn
, mo
, ms
, mtext
, ci
, cn
, cs
, csymbol
, annotation
の中身の外側の空白については, 空白の実体のみを含むことができるmtext
ではなく, mspace
要素が使われるべきです.
For whitespace occurring outside the content of the token elements
mi
, mn
, mo
, ms
, mtext
,
ci
, cn
, cs
, csymbol
and annotation
,
an mspace
element should be used, as opposed to an mtext
element containing
only whitespace entities.
MathMLは, 唯一の一番上のルート要素であるmath
要素を指定しています. math
要素は, 文書の中のMathMLマークアップの各要素を包み込みます. 全ての他のMathMLの内容は, math
の中に含まれなければなりません. 言い換えれば, 全ての有効なMathMLの式は外側の<math>
タグで包まれています. math
要素はいつもMathMLの式の一番外側の要素です. あるmath
要素が他のmath
要素を含んでいたらエラーになります. これらの考慮すべき点は, 切り取り貼り付けといった操作のように, ソフトウェア間で式が受け渡されるときにも適用されます. 6.3 MathMLを受け渡すを参照して下さい.
MathML specifies a single top-level or root math
element,
which encapsulates each instance of
MathML markup within a document. All other MathML content must be
contained in a math
element; in other words,
every valid MathML expression is wrapped in outer
<math>
tags. The math
element must always be the outermost element in a MathML expression;
it is an error for one math
element to contain
another. These considerations also apply when sub-expressions are
passed between applications, such as for cut-and-paste operations;
see 6.3 Transferring MathML.
math
要素は, 任意の数の子要素を含むことができます. それらの要素は, 通常mrow
要素に含まれているかのように描画されます.
The math
element can contain an arbitrary number
of child elements. They render by default as if they
were contained in an mrow
element.
math
要素は, 2.1.6 全てのMathML要素で利用される属性で指定した共通の属性を含め, 3.3.4 書式の変更 <mstyle>
で設定できる全ての属性を持ちます. 特に, 文章全体の方向を設定するdir
属性を持っています. math
要素は, 普通, 方向を指定するのに最も利用しやすい場所にあります(詳しい議論については3.1.5 方向参照). math
要素におけるdir
属性の既定値はltr
であることに注意して下さい(ただし, dir
属性を持つことができる全ての他の要素に継承される場合にです). これは, 方向の概念を持たない以前のMathML2.0との互換性を提供するためです. また, mstyle
や他のプレゼンテーション要素と同じ意味合いでmathbackground
属性を持ちます. この属性は, 属性の既定値を指定するというより, むしろ全体の描画領域の背景色を指定します(3.1.9 プレゼンテーション要素に共通の数学書式属性参照).
The math
element accepts any of the attributes that can be set on
3.3.4 Style Change <mstyle>
, including the common attributes
specified in 2.1.6 Attributes Shared by all MathML Elements.
In particular, it accepts the dir
attribute for
setting the overall directionality; the math
element is usually
the most useful place to specify the directionality
(see 3.1.5 Directionality for further discussion).
Note that the dir
attribute defaults to ltr
on the math
element (but inherits on all other elements
which accept the dir
attribute); this provides for backward
compatibility with MathML 2.0 which had no notion of directionality.
Also, it accepts the mathbackground
attribute in the same sense
as mstyle
and other presentation elements to set the background
color of the bounding box, rather than specifying a default for the attribute
(see 3.1.9 Mathematics attributes common to presentation elements).
これらの属性に加えて, math
要素は次の属性を持ちます.
In addition to those attributes, the math
element accepts:
名前 Name |
値 values |
既定値 default |
display | "block" | "inline" | inline |
囲っているMathMLの式が, 縦に分けられたblock(領域)(ディスプレイ形式), または隣接した文章に揃えられるinline(インライン形式)のどちらで描画されるべきか指定します(TEXの一般的な呼び方にならってディスプレイ形式, インライン形式と訳しています). display =block の場合, displaystyle はtrue で初期化されます. 一方, display =inline の場合, displaystyle はfalse で初期化されます. どちらの場合でも, scriptlevel は0で初期化されます. (3.1.6 displaystyleとscriptlevel参照). さらに, math要素が大きな文書の中に埋め込まれた場合, blockのmath要素は文書の形式にふさわしい領域要素として(典型的に新しい縦の領域として)扱われるべきで, 一方, inlineのmath要素は行の一部として(典型的に実際に標準の文書の中の一連の言葉であるかのように)扱われるべきです. 特に, この属性は間隔の取り方や改行に影響します. 例えば, inlineのmath要素の中に空白や改行を挿入したり, 何らかの直接の区切りを挿入したりすべきではありません. display属性が無い場合, 描画プログラムが文脈に沿って適切な値に初期化するのは自由です.specifies whether the enclosed MathML expression should be rendered as a separate vertical block (in display style) or inline, aligned with adjacent text. When display =block , displaystyle is initialized
to true ,
whereas when display =inline , displaystyle
is initialized to false ;
in both cases scriptlevel is initialized to 0
(see 3.1.6 Displaystyle and Scriptlevel).
Moreover, when the math element is embedded in a larger document,
a block math element should be treated as a block element as appropriate
for the document type (typically as a new vertical block),
whereas an inline math element should be treated as inline
(typically exactly as if it were a sequence of words in normal text).
In particular, this applies to spacing and linebreaking: for instance,
there should not be spaces or line breaks inserted between inline math
and any immediately following punctuation.
When the display attribute is missing, a rendering agent is free to initialize
as appropriate to the context.
|
||
maxwidth | 長さ length |
利用可能な幅 available width |
改行のために使用する最大の幅を指定します. 既定値は, 周囲を囲っている環境で利用可能な最大の幅です. この属性値を決められない場合, 描画ソフトウェアは描画できる無限の幅であると仮定すべきです. specifies the maximum width to be used for linebreaking. The default is the maximum width available in the surrounding environment. If that value cannot be determined, the renderer should assume an infinite rendering width. |
||
overflow | "linebreak" | "scroll" | "elide" | "truncate" | "scale" | linebreak |
式が利用可能な幅に収まるには長過ぎる状況で, 望ましい扱い方を指定します. 後の議論を参照して下さい. specifies the preferred handing in cases where an expression is too long to fit in the allowed width. See the discussion below. |
||
altimg | URI | 無し none |
埋め込まれたMathMLに対応していない利用者のプログラムの代替手段として, 表示する画像を参照するURIを提供します. provides a URI referring to an image to display as a fall-back for user agents that do not support embedded MathML. |
||
altimg-width | 長さ length |
altimg の幅width of altimg |
画像を拡大・縮小させることが必要な場合のaltimg を表示する幅を指定します. altimg-height を参照して下さい.specifies the width to display altimg , scaling the image if necessary;
see altimg-height .
|
||
altimg-height | 長さ length |
altimg の高さheight of altimg |
画像を拡大・縮小させることが必要な場合のaltimg を表示する高さを指定します. 属性altimg-width とaltimg-height の一方だけが与えられた場合, 画像はアスペクト比を保ったまま, 拡大・縮小されます. 属性がどちらも与えられない場合, 画像は元の大きさのまま表示されるべきです.specifies the height to display altimg , scaling the image if necessary;
if only one of the attributes altimg-width and altimg-height
are given, the scaling should preserve the image's aspect ratio;
if neither attribute is given, the image should be shown at its natural size.
|
||
altimg-valign | 長さ
| "top" | "middle" | "bottom" length |
0ex |
隣接する行の中の要素に対する縦方向の位置揃えを指定します. altimg-valign の正の値は画像の下端を現在の欧文ベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)から上にずらし, 負の値は下にずらします. 値"top"は画像の上端を隣接する行の中の要素の上端に合わせます. "center"は画像の中心を隣接する行の中の要素の中心に合わせます. "bottom"は画像の下端を隣接する行の中の要素の下端(必ずしも欧文ベースラインでなくて良い)に合わせます. この属性は, display =inline の場合のみ効果があります. 既定値では, 画像の下端が欧文ベースラインに揃うことになります.specifies the vertical alignment of the image with respect to adjacent inline material. A positive value of altimg-valign shifts the bottom of the image above the
current baseline, while a negative value lowers it.
The keyword "top" aligns the top of the image with the top of adjacent inline material;
"center" aligns the middle of the image to the middle of adjacent material;
"bottom" aligns the bottom of the image to the bottom of adjacent material
(not necessarily the baseline). This attribute only has effect
when display =inline .
By default, the bottom of the image aligns to the baseline.
|
||
alttext | 文字列 string |
無し none |
埋め込まれたMathMLまたは画像に対応していない利用者のプログラムの代替手段として, 代替の文字列を提供します. provides a textual alternative as a fall-back for user agents that do not support embedded MathML or images. |
||
cdgroup | URI | 無し none |
このmath 要素の中のcsymbol , annotation , annotation-xml 要素のOpenMathコンテント辞書の位置の基となるCDの目録として働くCDグループファイルを指定します. 4.2.3 コンテントマークアップの記号 <csymbol> を参照して下さい. cdgroup 属性が何も明確に指定されていない場合, このmath 要素に埋め込まれた文書形式は, 基となるCDを決める方法を提供してもよいです. そうでない場合, システムは基となるCDを決めなければなりません. 特定の情報がない場合, http://www.openmath.org/cd がcsymbol , annotation , annotation-xml 要素の基となるCDと仮定されます. この属性は, OpenMath協会が管理している標準のCDの集合を基としたCDです.specifies a CD group file that acts as a catalogue of CD bases for locating OpenMath content dictionaries of csymbol , annotation , and
annotation-xml elements in this math element; see 4.2.3 Content Symbols <csymbol> . When no cdgroup attribute is explicitly specified, the
document format embedding this math element may provide a method for determining
CD bases. Otherwise the system must determine a CD base; in the absence of specific
information http://www.openmath.org/cd is assumed as the CD base for all
csymbol , annotation , and annotation-xml elements. This is the
CD base for the collection of standard CDs maintained by the OpenMath Society.
|
大きさの調整が不可能または失敗した場合(例えば, 式が利用可能な幅に収まるのに長過ぎる場合), overflow
属性は, 描画ソフトウェアに処理する方法を提案するのに提供されます. 利用可能な値は次のとおりです.
In cases where size negotiation is not possible or fails
(for example in the case of an expression that is too long to fit in the allowed width),
the overflow
attribute is provided to suggest a processing method to the renderer.
Allowed values are:
値 Value |
意味 Meaning |
"linebreak" | 式は複数の行に分割されるでしょう. より詳しい議論は3.1.7 式の改行を参照して下さい. TThe expression will be broken across several lines. See 3.1.7 Linebreaking of Expressions for further discussion. |
"scroll" | 数式の大きな完全な表示の一部を見せるウィンドウを提供します. 見せる部分の位置を別の場所に動かすことができるように, 必要なら水平または鉛直のスクロールバーがウィンドウに加えられます. The window provides a viewport into the larger complete display of the mathematical expression. Horizontal or vertical scroll bars are added to the window as necessary to allow the viewport to be moved to a different position. |
"elide" | 残った部分がウィンドウに収まるのに必要なだけ, 一部を取り除いて表示を省略します. 例えば, 大きい多項式は, 最初と最後の項とその間に+ ... +を付けて表示されるかもしれません. 進歩した描画ソフトウェアは, 省略された範囲を拡大・縮小する機能を提供するかもしれません. The display is abbreviated by removing enough of it so that the remainder fits into the window. For example, a large polynomial might have the first and last terms displayed with + ... +between them. Advanced renderers may provide a facility to zoom in on elided areas. |
"truncate" | 右と下の端を切り詰めることで表示を省略します. 見る人に切り詰めたことをそれとなく示すことが推奨されます. The display is abbreviated by simply truncating it at the right and bottom borders. It is recommended that some indication of truncation is made to the viewer. |
"scale" | 数式を表示するのに使われているフォントを, ウィンドウに式全体が収まるように選びます. フォントの変更は式が大き過ぎる場合しか起こりません. 必要以上にウィンドウが大きい場合, 式は標準の大きさで大きなウィンドウの中に描画されます. The fonts used to display the mathematical expression are chosen so that the full expression fits in the window. Note that this only happens if the expression is too large. In the case of a window larger than necessary, the expression is shown at its normal size within the larger window. |
この章は, 数学表記の配置構造を説明するために利用可能な, MathMLのプレゼンテーション
要素についての仕様を定めています.
This chapter specifies the presentation
elements of
MathML, which can be used to describe the layout structure of mathematical
notation.
ほとんどのプレゼンテーションマークアップは, [MathMLコア]に含まれます. その仕様書は, ウェブブラウザで表示する際の, コアの一部である要素や属性を表示する, 正確な方法について助言するものです. ウェブブラウザ以外では, MathMLプレゼンテーション要素は, 媒体に依存した描画と個別の書式の選択を認めるために, 描画の特定の方法を提案するのみ(すなわち, 必要としない)です. ブラウザに基づかない描画ソフトウェアは, その描画方法が理解できる限り, 独自の配置の決まりを使用するのは自由です.
Most of Presentation Markup is included in [MathML-Core]. That specification should be consulted for the precise details of displaying the elements and attributes that are part of core when displayed in web browsers. Outside of web browsers, MathML presentation elements only suggest (i.e. do not require) specific ways of rendering in order to allow for medium-dependent rendering and for individual preferences of style. Non browser-based renderers are free to use their own layout rules as long as the renderings are intelligible.
プレゼンテーション要素で使用される名前は, それらの視覚的な配置を連想させます. しかしながら, 数学表記は, 新しい概念が開発されるたびに, 再利用されて来た長い歴史を持ちます. そのため, mfrac
といった要素は, 実際のところ分数でなくてもよく, intent
属性が音声表現の情報を提供するのに使われるべきです.
The names used for presentation elements are suggestive of their visual layout.
However, mathematical notation has a long history of being reused as new concepts are developed.
Because of this, an element such as mfrac
may not actually be a fraction and the
intent
attribute should be used to provide information for auditory renderings.
この章は, 全てのプレゼンテーション要素と属性を, 利用方法を明確にするであろう例と一緒に説明しています.
This chapter describes all of the presentation elements and attributes of MathML along with examples that might clarify usage.
プレゼンテーション要素は, 題名, 節, 段落が人間に近い水準で文章の構造をうまく再現したのと概ね同じ方法で, 数学表記の構文構造を表現するためのものです. このため, 識別子と演算子から成る単独の行はよく, 単独のmrow
要素ではなく, 幾重にも入れ子になったmrow
要素として表現されるでしょう. 例えば, は典型的に次のように表されます.
The presentation elements are meant to express the syntactic
structure of mathematical notation in much the same way as titles, sections,
and paragraphs capture the higher-level syntactic structure of a
textual document. Because of this, a single row of identifiers and operators
will often be represented by multiple nested mrow
elements rather than
a single mrow
. For example,
typically is represented as:
<mrow>
<mi> x </mi>
<mo> + </mo>
<mrow>
<mi> a </mi>
<mo> / </mo>
<mi> b </mi>
</mrow>
</mrow>
同様に, 上付き添え字は, ただ前の文字に続くというよりは, 基を構成している式全体にくっつけられます. この構造は, 特に画面の幅といった描画環境の詳細を文章の著者が前もって分からない場合に, 数学のより良質な描画を可能にします. また, この構造は, 表現された数学構造の自動解釈を大いに楽にします.
Similarly, superscripts are attached to the full expression constituting their base rather than to the just preceding character. This structure permits better-quality rendering of mathematics, especially when details of the rendering environment, such as display widths, are not known ahead of time to the document author. It also greatly eases automatic interpretation of the represented mathematical structures.
ある特定の文字は, 伝統的な表現において他の記号と同じように描画されたり, 表示されないように表現されたりする識別子や演算子に名前を付けるのに使用されます. 例えば, 文字U+2146, U+2147, U+2148は, それぞれ微分記号d, 自然対数の底e, 虚数iを表し, 単純な変数として使用される同じ文字とは意味的に異なります. 同様に, 文字U+2061, U+2062, U+2063, U+2064は, 関数の適用, 見えない掛ける, 見えない区切り記号, 見えないプラスを表します. それらは, 通常表示されませんが, 視覚的な間隔や改行に影響してもよい重要な情報を表現しており, 異なる音声表現を持ってもよいです. したがって, 著者は, 適用できる場合はいつでも, それらの文字(または, 対応する実体)を使用すべきです.
Certain characters are used to name identifiers or operators that in traditional notation render the same as other symbols or are rendered invisibly. For example, the characters U+2146, U+2147 and U+2148 represent differential d, exponential e and imaginary i, respectively and are semantically distinct from the same letters used as simple variables. Likewise, the characters U+2061, U+2062, U+2063 and U+2064 represent function application, invisible times, invisible comma and invisible plus . These usually render invisibly but represent significant information that may influence visual spacing and linebreaking, and may have distinct spoken renderings. Accordingly, authors should use these characters (or corresponding entities) wherever applicable.
MathML実体の完全な一覧は[実体]で説明しています.
The complete list of MathML entities is described in [Entities].
プレゼンテーション要素は2つの種類に分けられます. 素子要素は個々の記号, 名前, 数字, 番号等を表します. 配置要素は部分部分から式を構築し, 要素のみを内容として持つことができます. 配置要素はさらに一般的な配置要素, 添え字の配置要素, 表のような配置要素, 初等数学の配置要素に分けられます. また, これらの配置要素と共にだけ用いられる若干の空要素もあります.
The presentation elements are divided into two classes. Token elements represent individual symbols, names, numbers, labels, etc. Layout schemata build expressions out of parts and can have only elements as content. These are subdivided into General Layout, Script and Limit, Tabular Math and Elementary Math schemata. There are also a few empty elements used only in conjunction with certain layout schemata.
数式の中の個々の記号
はMathML素子要素(例えば, <mn>24</mn>
)として表されるべきです. 主要なMathML素子要素の種類は, 識別子(mi, 例えば, 変数や関数名), 数字(mn), 演算子(mo, かっこといった囲い文字やコンマといった区切り文字を含む)です. また, 数学の意味より美しさを優先するための, 文章や空白を表すのに使用される素子要素や, 数式処理システムとの互換性のために文字列
を表す要素もあります.
All individual symbols
in a mathematical expression should be
represented by MathML token elements (e.g., <mn>24</mn>
).
The primary MathML token element
types are identifiers (mi,
e.g. variables or function names), numbers (mn), and
operators (mo,
including fences, such as parentheses, and separators, such
as commas). There are also token elements used to represent text or
whitespace that has more aesthetic than mathematical significance
and other elements representing string literals
for compatibility with
computer algebra systems.
配置要素は, 分数や添え字付きの式といった大きい式を, 小さい式から構築する方法を指定しています. 配置要素の子要素は, 配置要素の引数とも呼ばれます. 上記の定義の結果として, 配置要素の中身は, 厳密に0個以上の引数となる要素が連なったものから構成されます.
The layout schemata specify the way in which sub-expressions are built into larger expressions such as fraction and scripted expressions. Layout schemata attach special meaning to the number and/or positions of their children. A child of a layout schema is also called an argument of that element. As a consequence of the above definitions, the content of a layout schema consists exactly of a sequence of zero or more elements that are its arguments.
ここで説明する要素の多くは, 特定の数(たいてい1個, または2個, または3個)の引数を必要とします. 後で示す要素の構文の詳細な説明において, 必要な引数の数は, 暗黙のうちに様々な位置にある引数に対して与えられた名前によって示唆されています. 要素の中にはわずかに, 個々の要素に応じて説明される引数の数や型といった追加の決まりを持っているものもあります。例えば, 要素の中には0個以上の一連の引数を受け入れるものもあり, そのことは, それらの要素に引数が結局無くてもよいことを認めています.
Many of the elements described herein require a specific number of arguments (always 1, 2, or 3). In the detailed descriptions of element syntax given below, the number of required arguments is implicitly indicated by giving names for the arguments at various positions. A few elements have additional requirements on the number or type of arguments, which are described with the individual element. For example, some elements accept sequences of zero or more arguments — that is, they are allowed to occur with no arguments at all.
描画される空白をコード化しているMathML要素は, それらが現れた場所の要素の引数と見なされることに注意して下さい. そのような空白に似た要素の適切な利用に関する議論については, 3.2.7 空白 <mspace/>
を参照して下さい.
Note that MathML elements encoding rendered space do
count as arguments of the elements in which they appear.
See 3.2.7 Space <mspace/>
for a discussion of the proper use of such
space-like elements.
次の一覧で示す 1* の引数を必要としている要素(msqrt
, mstyle
, merror
, mpadded
, mphantom
, menclose
, mtd
, mscarry
, math
)は, 概念上は単独の引数を受け入れますが, 実際のところ任意の数の子要素を受け入れます. 子要素の数が0個の場合, もしくは1個より大きい場合, それらの要素は, それらの中身を全ての子要素から形作られる単独の省略されたmrow
として扱い, そのmrow
を引数として扱います.
The elements listed in the following table as requiring 1*
argument (msqrt
, mstyle
, merror
,
mpadded
, mphantom
, menclose
,
mtd
, mscarry
,
and math
)
conceptually accept a single argument,
but actually accept any number of children.
If the number of children is 0 or is more than 1, they treat their contents
as a single inferred mrow
formed from all their children,
and treat this mrow
as the argument.
例えば,
For example,
<msqrt>
<mo> - </mo>
<mn> 1 </mn>
</msqrt>
は次のように扱われます.
is treated as if it were
<msqrt>
<mrow>
<mo> - </mo>
<mn> 1 </mn>
</mrow>
</msqrt>
この機能は, MathMLのデータが, その機能がなければ必要となるたくさんのmrow
要素を含まなくてもよいように(著者が同様に必要となるたくさんのmrow
要素を省略してもよいように)します.
This feature allows MathML data not to contain (and its authors to
leave out) many mrow
elements that would otherwise be
necessary.
便利なように, それぞれの要素の引数がいくつ必要かと, 個々の引数の役割が確立している場合の役割について, 表で示します. 1* という引数の数は上で述べた省略されたmrow
を意図しています. math
要素はプレゼンテーション要素ではありませんが, 完全に網羅できるように下の表に挙げています.
For convenience, here is a table of each element's argument count
requirements and the roles of individual arguments when these are
distinguished. An argument count of 1* indicates an inferred mrow
as described above.
Although the math
element is
not a presentation element, it is listed below for completeness.
要素 Element |
必要な引数の数 Required argument count |
引数の役割(場所によって異なる場合) Argument roles (when these differ by position) |
mrow |
0以上 0 or more |
|
mfrac |
2 | 分子 分母 numerator denominator |
msqrt |
1* | |
mroot |
2 | 基となる式 指数 base index |
mstyle |
1* | |
merror |
1* | |
mpadded |
1* | |
mphantom |
1* | |
mfenced |
0以上 0 or more |
|
menclose |
1* | |
msub |
2 | 基となる式 下付き添え字 base subscript |
msup |
2 | 基となる式 上付き添え字 base superscript |
msubsup |
3 | 基となる式 下付き添え字 上付き添え字 base subscript superscript |
munder |
2 | 基となる式 下側添え字 base underscript |
mover |
2 | 基となる式 上側添え字 base overscript |
munderover |
3 | 基となる式 下側添え字 上側添え字 base underscript overscript |
mmultiscripts |
1以上 1 or more |
基となる式
(下付き添え字 上付き添え字)*
[<mprescripts/>
(前置の下付き添え字 前置の上付き添え字)*]base (subscript superscript)* [ <mprescripts/>
(presubscript presuperscript)*] |
mtable |
0以上の行 0 or more rows |
0以上のmtr またはmlabeledtr 要素0 or more mtr or mlabeledtr elements |
mlabeledtr |
1以上 1 or more |
番号と0以上のmtd 要素a label and 0 or more mtd elements |
mtr |
0以上 0 or more |
0以上のmtd 要素0 or more mtd elements |
mtd |
1* | |
mstack |
0以上 0 or more |
|
mlongdiv |
3以上 3 or more |
除数 商 被除数 (msrow |
msgroup | mscarries | msline)* divisor result dividend (msrow | msgroup | mscarries | msline)* |
msgroup |
0以上 0 or more |
|
msrow |
0以上 0 or more |
|
mscarries |
0以上 0 or more |
|
mscarry |
1* | |
maction |
1以上 1 or more |
actiontype 属性に依存するdepend on actiontype attribute |
math |
1* |
ある特定のMathMLプレゼンテーション要素は, ある文脈の中で特別な挙動を示します. そのような特別な挙動については, 後で述べる詳細な要素の説明で論じます. しかしながら, 便利なように特別な挙動の大変重要な種類について, いくつかここで挙げます.
Certain MathML presentation elements exhibit special behaviors in certain contexts. Such special behaviors are discussed in the detailed element descriptions below. However, for convenience, some of the most important classes of special behavior are listed here.
ある特定の要素は空白のようだと見なされます. これらの要素は3.2.7 空白 <mspace/>
で定義されています. この定義は, mo
要素(3.2.5 演算子, かっこ, 区切り, アクセント <mo>
)の提案されている描画の決まりに影響を与えます.
Certain elements are considered space-like; these are defined in
3.2.7 Space <mspace/>
. This definition affects some of the suggested rendering
rules for mo
elements (3.2.5 Operator, Fence, Separator or Accent
<mo>
).
ある特定の要素, 例えばmsup
は, その最初の引数である演算子を装飾することができます. これらの要素は, 3.2.5 演算子, かっこ, 区切り, アクセント <mo>
の中で一覧にされています. その節は, 正確に装飾された演算子
を定義し, それらが引き伸ばされた演算子に対する, 提案された描画の決まりにどのように影響するか説明しています.
Certain elements, e.g. msup
, are able to
embellish operators that are their first argument. These elements are
listed in 3.2.5 Operator, Fence, Separator or Accent
<mo>
, which precisely defines an embellished
operator
and explains how this affects the suggested rendering rules
for stretchy operators.
ほとんどの読者に知られた表記において, 全体的な配置と文章のような記号は, 両方とも左から右(LTR)に整えられています. しかし, 導入部分で示唆したように, ヘブライ語で書かれた数学, またはモロッコやペルシャといった地域の数学は全体の配置は変わりませんが, (たいていヘブライ語またはアラビア語の)埋め込まれた記号は右から左(RTL)で書かれています. さらに, アラビア語を話す世界のほとんどは, 表記は完全に右から左(RTL)で整えられています. そのため, 上付き添え字は上に付いていますが, 基の部分の右側ではなく左側に付いています.
In the notations familiar to most readers, both the overall layout and the textual symbols are arranged from left to right (LTR). Yet, as alluded to in the introduction, mathematics written in Hebrew or in locales such as Morocco or Persia, the overall layout is used unchanged, but the embedded symbols (often Hebrew or Arabic) are written right to left (RTL). Moreover, in most of the Arabic speaking world, the notation is arranged entirely RTL; thus a superscript is still raised, but it follows the base on the left rather than the right.
そのため, MathML 3.0は, 2つの別々の方向, 素子要素の中の文章や記号の方向と配置要素で表現される数式全体の方向が存在することを認めています. この2つの側面について次で論じます.
MathML 3.0 therefore recognizes two distinct directionalities: the directionality of the text and symbols within token elements and the overall directionality represented by Layout Schemata. These two facets are discussed below.
おそらく, ここに縦方向の言語に対する若干の議論を加える必要があります(なお, 現在, それらへの対応は行われておりません).
Probably need to add a little discussion of vertical languages here (and their current lack of support)
数式に対する全体の方向, 基本的に配置要素の方向は, 全体を囲っているmath
要素(2.2 一番上の<math>
要素参照)のdir
属性によって指定されます. 既定値はltr
です. dir
=rtl
が用いられる場合, 配置はヨーロッパの慣例的な配置に対して単純に鏡のような形になります. つまり, 字下げ等は変わりませんが, 配置の向きは右から左になります.
The overall directionality for a formula, basically
the direction of the Layout Schemata, is specified by
the dir
attribute on the containing math
element
(see 2.2 The Top-Level
<math>
Element).
The default is ltr
. When dir
=rtl
is used, the layout is simply the mirror image of the conventional
European layout. That is, shifts up or down are unchanged,
but the progression in laying out is from right to left.
例えば, 右から左(RTL)の配置においては, 上付き添え字と下付き添え字は, 基となる式の左に現れます. 根号は右に, 基となる式の左端まで続く上の横線を伴って現れます. 方向に依存する要素に対する配置の詳細については, 要素の説明で述べます. その説明の中で, 前に来ると後ろに来るというの用語は, 方向に依存して用いられる式の横側を指定するのに使われます. 前に来るは左から右(LTR)では左を意味しますが, 右から左(RTL)では右を意味します. 他の場合の左と右という用語は, 左と右を意味すると想定して問題ないでしょう.
For example, in a RTL layout, sub- and superscripts appear to the left of the base; the surd for a root appears at the right, with the bar continuing over the base to the left. The layout details for elements whose behavior depends on directionality are given in the discussion of the element. In those discussions, the terms leading and trailing are used to specify a side of an object when which side to use depends on the directionality; i.e. leading means left in LTR but right in RTL. The terms left and right may otherwise be safely assumed to mean left and right.
全体の方向は通常math
によって設定されますが, mrow
要素またはmstyle
要素のdir
属性を利用して個々の式の部分について切り替えてもよいです. 指定されない限り, 全ての要素はそれらを囲っている要素の方向を継承します.
The overall directionality is usually set on the math
, but
may also be switched for an individual subexpression by using the dir
attribute on mrow
or mstyle
elements.
When not specified, all elements inherit the directionality of their container.
文字の方向は, 文字を含むことができるMatthML要素(mtext
, mo
, mi
, mn
, ms
)の方向と見なすことになり, その文字のユニコードの特性によって決められます. 全体として左から右(LTR)もしくは右から左(RTL)の文字を含んでいる素子要素は, 与えられた方向にまっすぐに表示されます. 右から左(RTL)のアラビア語と左から右(LTR)の数字が混合しているといった具合に方向が混合され複雑な状況にある場合, ユニコードの双方向のアルゴリズム[Bidi]が適用されます. このアルゴリズムは, どのように同じ方向の文字の並びを処理するか, どのように文字の並びを並べるのか(並べ直すのか)を指定します. 基となる, もしくは初期の方向は, 上で述べた全体の方向(3.1.5.1 数式全体の方向)によって決められ, 弱い方向の文字(訳注:周囲の文字の方向に左右される文字で例えばかっこ"(")をどのように扱うのか, どのように並びを入れ子にするのかに影響します. (そのため, dir
属性は素子要素でごく稀に必要となる初期の方向を指定することができます.) 素子要素と一緒に現れる何らかのmglyph
要素やmalignmark
要素は, 効果的に中立で並びに影響がありません.
The text directionality comes into play for the MathML token elements
that can contain text (mtext
, mo
, mi
, mn
and ms
) and is determined by the Unicode properties of that text.
A token element containing exclusively LTR or RTL characters
is displayed straightforwardly in the given direction.
When a mixture of directions is involved, such as RTL Arabic
and LTR numbers, the Unicode bidirectional algorithm [Bidi]
should be applied. This algorithm specifies how runs of characters
with the same direction are processed and how the runs are (re)ordered.
The base, or initial, direction is given by the overall directionality
described above (3.1.5.1 Overall Directionality of Mathematics Formulas) and affects
how weakly directional characters are treated and how runs are nested.
(The dir
attribute is thus allowed on token elements to specify
the initial directionality that may be needed in rare cases.)
Any mglyph
or malignmark
elements appearing within
a token element are effectively neutral and have no effect
on ordering.
注意すべき重要なことは, 双方向のアルゴリズムはそれぞれの素子要素の内容に独立して適用されることです. それぞれの素子要素は文字の独立した並びです.
The important thing to notice is that the bidirectional algorithm is applied independently to the contents of each token element; each token element is an independent run of characters.
ユニコードや文字列の考慮されるべき他の機能は, ‘鏡文字化’と‘字形の整形’です. ユニコード文字の中には, 右から左(RTL)の文脈の中での表現で鏡文字にできることが示されているものもあります. すなわち, その文字は, 鏡文字にされたり, 対応する文字で置換されたりしたかのように描かれます. よって, 始めのかっこ‘(’は, 右から左(RTL)では‘)’と表わされます. 逆に斜線(/ U+002F)は, 鏡文字にできるとされていません. よって, 行の中の割り算で反転させた斜線を表示させたいアラビア語の著者は, はっきりと反転した斜線(\ U+005C)か, 反転した割算の斜線(U+2215)といった代替文字を使用すべきです.
Other features of Unicode and scripts that should be respected are ‘mirroring’ and ‘glyph shaping’. Some Unicode characters are marked as being mirrored when presented in a RTL context; that is, the character is drawn as if it were mirrored or replaced by a corresponding character. Thus an opening parenthesis, ‘(’, in RTL will display as ‘)’. Conversely, the solidus (/ U+002F) is not marked as mirrored. Thus, an Arabic author that desires the slash to be reversed in an inline division should explicitly use reverse solidus (\ U+005C) or an alternative such as the mirroring DIVISION SLASH (U+2215).
加えて, アラビア語と混ぜた文字や一連の文字を一緒にした綴り文字といった, 書道のような文字は外観が変わります. これらの文字は美しさと同じように読みやすさに重要な影響があるので, 可能な限りそういった形の整形を適用することが重要です. 方向のような字形の整形は, それぞれの素子要素の内容に個別に適用されます.
Additionally, calligraphic scripts such as Arabic blend, or connect sequences of characters together, changing their appearance. As this can have a significant impact on readability, as well as aesthetics, it is important to apply such shaping if possible. Glyph shaping, like directionality, applies to each token element's contents individually.
ヘブライ文字で表現される超限数に対し, アルファベットのよく似たコードポイントではなく, MathMLではU+2135-U+2138のコードポイント(アレフ記号, べト記号, ギメル記号, ダレット記号)が使用されるべきことに注意して下さい. それらのコードポイントは, 強い(訳注:周囲の文字の方向に左右されない)左から右の文字です.
Note that for the transfinite cardinals represented by Hebrew characters, the code points U+2135-U+2138 (ALEF SYMBOL, BET SYMBOL, GIMEL SYMBOL, DALET SYMBOL) should be used in MathML, not the alphabetic look-alike code points. These code points are strong left-to-right.
いわゆる‘ディスプレイ形式の’式は, それら自身が行の中に現れる場合は, 典型的にインライン形式の式より大きな縦の空間を使用します. それらの式は, 隣接する行へ侵入するのではなく, 付近の文章と調和すべきです. 例えば, ディスプレイ形式の総和において, 添え字は総和記号の上下に置かれますが, それらがインライン形式で現れた場合, 添え字は下付き添え字や上付き添え字の位置に現れます. 同じような理由で, 下付き添え字または上付き添え字, 入れ子になった分数やその他の構築要素は, 典型的に数式の主要な部分より小さく表示されます. MathMLは暗黙のうちに各々のプレゼンテーション要素と, より広々とした縦の配置を適用するかどうかを表すdisplaystyle
とや, 要素の中身を書く際の大きさの水準を表すscriptlevel
とを結びつけます.
So-called ‘displayed’ formulas, those appearing on a line by themselves,
typically make more generous use of vertical space than inline formulas,
which should blend into the adjacent text without intruding into
neighboring lines. For example, in a displayed summation, the limits
are placed above and below the summation symbol, while when it appears inline
the limits would appear in the sub- and superscript position.
For similar reasons, sub- and superscripts,
nested fractions and other constructs typically display in a
smaller size than the main part of the formula.
MathML implicitly associates with every presentation node
a displaystyle
and scriptlevel
reflecting whether
a more expansive vertical layout applies and the level of scripting
in the current context.
これらの値は, math
要素によってdisplay
属性に従って初期化されます. それらの値は, 様々な添え字の配置要素や, 典型的にdisplaystyle
をfalseに設定し, 引数の一部もしくは全部のscriptlevel
を増大させるmfrac
やmroot
要素によって自動的に調整されます. (使用される特定の決まりについては, それぞれの要素の説明を参照して下さい.) また, それらの値は, mstyle
要素のdisplaystyle
属性やscriptlevel
属性, またはmtable
要素のdisplaystyle
属性をはっきりと経由して設定されるでしょう. 他の全ての状況において, それらの値は要素の親要素から継承されます.
These values are
initialized by the math
element
according to the display
attribute.
They are automatically adjusted by the
various script and limit schemata elements,
and the elements
mfrac
and
mroot
,
which typically set displaystyle
false and increment scriptlevel
for some or all of their arguments.
(See the description for each element for the specific rules used.)
They also may be set explicitly via the displaystyle
and scriptlevel
attributes on the mstyle
element
or the displaystyle
attribute of mtable
.
In all other cases, they are inherited from the node's parent.
displaystyle
は式を配置するのに使われる縦の空間の量に影響します. trueの場合, ディスプレイ形式のより広々した配置が使用され, 一方, falseの場合, インライン形式のより密な配置が使用されます. displaystyle
は第一に, mo
要素のlargeop
やmovablelimits
の解釈に影響を与えます. しかしながら, より洗練された描画ソフトウェアが, より密に, もしくはより粗く描画するのに, これらの属性を利用するかは自由です.
The displaystyle
affects the amount of vertical space used to lay out a formula:
when true, the more spacious layout of displayed equations is used,
whereas when false a more compact layout of inline formula is used.
This primarily affects the interpretation
of the largeop
and movablelimits
attributes of
the mo
element.
However, more sophisticated renderers are free to use
this attribute to render more or less compactly.
主要なscriptlevel
の効果は, フォントの大きさを制御することです. 典型的に, scriptlevel
が高いほどフォントの大きさが小さくなります. (視覚的でない表現ソフトウェアは, その媒体に応じた類似した方法でフォントの大きさに対応するでしょう.) scriptlevel
が変更されるたびに, 自動的であっても明示的であっても, そのフォントの大きさはscriptsizemultiplier
の値に, scriptlevel
の変更回数の乗数を掛けたものになります. ただし, scriptlevel
の変更によるフォントの大きさの変更は, 読めないくらい文字が小さくなるのを防ぐために, scriptminsize
より下の値にならないようにすべきです. scriptsizemultiplier
の既定値は1/2の平方根であり, 一方, scriptminsize
の既定値は8ポイントです. これらの値はmstyle
要素によって変更されるかもしれません. 3.3.4 書式の変更<mstyle>
を参照して下さい. mstyle
要素のscriptlevel
属性は, フォントの大きさを増大させることになる負の値も含め, scriptlevel
の利用できる任意の値を認めていることに注意して下さい.
The main effect of scriptlevel
is to control the font size.
Typically, the higher the scriptlevel
, the smaller the font size.
(Non-visual renderers can respond to the font size in an analogous way for their medium.)
Whenever the scriptlevel
is changed, whether automatically or explicitly,
the current font size is multiplied by the value of
scriptsizemultiplier
to the power of the change in scriptlevel
.
However, changes to the font size due to scriptlevel
changes should
never reduce the size below scriptminsize
to prevent scripts
becoming unreadably small.
The default scriptsizemultiplier
is approximately the square root of 1/2
whereas scriptminsize
defaults to 8 points;
these values may be changed on mstyle
; see 3.3.4 Style Change <mstyle>
.
Note that the scriptlevel
attribute of mstyle
allows arbitrary
values of scriptlevel
to be obtained, including negative values which
result in increased font sizes.
scriptlevel
によるフォントの大きさの変更は, 要素の‘外側’から課されていると見なされるべきです. このことは, scriptlevel
の効果はmfrac
の子要素である素子要素において, 明確なmathsize
(3.2.2 素子要素に共通の数学書式属性参照)の前に適用されることを意味します. よって, mathsize
は効果的にscriptlevel
を上書きできます. ただし, scriptlevel
の変更はem
の長さ(2.1.5.2 長さの値の属性参照)の意味に影響する現在のフォントの大きさを変更するので, scriptlevel
は効果が上書きされる場合であっても影響があります. mathsize
はscriptminsize
によって影響されないので, 効果を上書きするフォントの大きさの変更は, scriptminsize
より小さくすることができることにも注意して下さい.
The changes to the font size due to scriptlevel
should be viewed
as being imposed from ‘outside’ the node.
This means that the effect of scriptlevel
is applied
before an explicit mathsize
(see 3.2.2 Mathematics style attributes common to token elements)
on a token child of mfrac
.
Thus, the mathsize
effectively overrides the effect of scriptlevel
.
However, that change to scriptlevel
changes the current font size,
which affects the meaning of an em
length
(see 2.1.5.2 Length Valued Attributes)
and so the scriptlevel
still may have an effect in such cases.
Note also that since mathsize
is not constrained by scriptminsize
,
such direct changes to font size can result in scripts smaller than scriptminsize
.
現在のフォントの大きさを直接変更することは, CSSによる場合でも, mathsize
(3.2.2 素子要素に共通の数学書式属性参照)による場合であっても, scriptlevel
に何の影響もないことに注意して下さい.
Note that direct changes to current font size, whether by
CSS or by the mathsize
attribute (see 3.2.2 Mathematics style attributes common to token elements),
have no effect on the value of scriptlevel
.
TEXの\displaystyle, \textstyle, \scriptstyle, \scriptscriptstyleはそれぞれ, displaystyle
とscriptlevel
の組合せtrue
と0
, false
と0
, false
と1
, false
と2
に相当します. よってmath
のdisplay
=block
は\displaystyleに, display
=inline
は \textstyleに相当します.
TEX's \displaystyle, \textstyle, \scriptstyle, and \scriptscriptstyle
correspond to displaystyle
and scriptlevel
as
true
and 0
,
false
and 0
,
false
and 1
,
and false
and 2
, respectively.
Thus, math
's
display
=block
corresponds to \displaystyle,
while display
=inline
corresponds to \textstyle.
MathMLは, 過度に長い式をいくつかの行に分割するために, 自動と手動(強制的)両方の式の改行の対応を提供しています. 全てのそのような改行は, mrow
(省略されたmrow
を含む. 3.1.3.1 省略された<mrow>
参照)またはmfenced
の中で行われます. 改行は典型的にmo
要素の場所や, 従来との互換性からmspace
要素の場所で行われます. 描画ソフトウェアは, 隣接したmi
要素の間, または素子要素の中といった他の箇所で自動で改行することを選ぶかもしれません. MathMLはそのような改行を指定する手段を提供していませんが, 描画ソフトウェアがそのような場所で改行することを選ぶのであれば, そのような場所でも効果のある字下げの属性によって次の行を字下げすべきです.
MathML provides support for both automatic and manual (forced)
linebreaking of expressions to break excessively long
expressions into several lines.
All such linebreaks take place within mrow
(including inferred mrow
; see 3.1.3.1 Inferred <mrow>
s)
or mfenced
.
The breaks typically take place at mo
elements
and also, for backwards compatibility, at mspace
.
Renderers may also choose to place automatic linebreaks at other points
such as between adjacent mi
elements or even within a token element
such as a very long mn
element. MathML does not provide a means to
specify such linebreaks, but if a renderer chooses to linebreak at such a point,
it should indent the following line according to the
indentation attributes
that are in effect at that point.
囲っているmath
要素がoverflow
=linebreak
で, 描画エンジンが式全体を表示するのに十分な空間がないと判断したとき, 自動の改行が起こります. よって利用可能な幅が描画ソフトウェアに知られていなければなりません. 書式の特性のように, 改行の特性はMathML要素が存在する環境から継承されるとしています. 幅が決められなかった場合, 無限の幅であると見なされます. mtable
の中で各列はいくらか幅を持っています. この幅は属性として指定され, 内容によって決まります. この幅は, 改行のためには行全体の幅として使われるべきで, mtable
の各要素は必要に応じて幅を持っています.
Automatic linebreaking occurs when the containing math
element
has overflow
=linebreak
and the display engine determines that there is not enough space available to
display the entire formula. The available width must therefore be known
to the renderer. Like font properties, one is assumed to be inherited from the environment
in which the MathML element lives. If no width can be determined, an
infinite width should be assumed. Inside of an mtable
,
each column has some width. This width may be specified as an attribute
or determined by the contents. This width should be used as the
line wrapping width for linebreaking, and each entry in an mtable
is linewrapped as needed.
強制的な改行は, mo
要素またはmspace
要素のlinebreak
=newline
を利用して指定されます. 自動と手動の改行は, 両方とも同じ数式の中で起こっても良いです.
Forced linebreaks are specified by using
linebreak
=newline
on an mo
or mspace
element.
Both automatic and manual linebreaking can occur within the same formula.
mfrac
, msqrt
, mroot
, menclose
の中の式や様々な添え字の要素の自動的な改行は不要です. 描画ソフトウェアは, それらの要素の中に強制的な改行がある場合, その改行を無視しても良いです.
Automatic linebreaking of subexpressions of mfrac
, msqrt
, mroot
and menclose
and the various script elements is not required.
Renderers are free to ignore forced breaks within those elements if they choose.
mo
要素や, 場合によってはmspace
要素の属性は, 改行や次の行の字下げを制御します. 制御可能な改行の性質は次のとおりです.
Attributes on mo
and possibly on mspace
elements control
linebreaking and indentation of the following line. The aspects of linebreaking
that can be controlled are:
場所 ― 属性は, 特定の演算子や空白での改行が望ましいか, 特に改行が必要か禁止か決めます. これらの属性は, mo
要素やmspace
要素でのみ設定できます. (3.2.5.2.2 改行の属性を参照して下さい.)
Where — attributes determine the desirability of
a linebreak at a specific operator or space, in particular whether a
break is required or inhibited. These can only be set on
mo
and mspace
elements.
(See 3.2.5.2.2 Linebreaking attributes.)
演算子の表示/位置 ― 改行されたときに, 属性は, 行の最後か, 次の行の最初か, その両方の場所か, どこに演算子が現れるべきか決めます. これらの属性は, mo
要素で設定されるか, mstyle
要素またはmath
要素から継承されるかします. (3.2.5.2.2 改行の属性を参照して下さい.)
Operator Display/Position — when a linebreak occurs,
determines whether the operator will appear
at the end of the line, at the beginning of the next line, or in both positions;
and how much vertical space should be added after the linebreak.
These attributes can be set on mo
elements or inherited from
mstyle
or math
elements.
(See 3.2.5.2.2 Linebreaking attributes.)
字下げ ― 属性は, 次の行を前の行のどこかと揃えるための字下げすを含め, 改行に続く行の字下げの方法を決めます. これらの属性は, mo
要素で設定されるか, mstyle
要素またはmath
要素から継承されるかします. (3.2.5.2.3 字下げの属性を参照して下さい.)
Indentation — determines the indentation of the
line following a linebreak, including indenting so that the next line aligns
with some point in a previous line.
These attributes can be set on mo
elements or
inherited from mstyle
or math
elements.
(See 3.2.5.2.3 Indentation attributes.)
math要素が行の中の文脈で現れたとき, math要素は文章の描画エンジンによって段落を描くどんな決まりを用いられようと, その決まりに従うでしょう. そのような決まりは必然的にこの仕様書の対象外です. 代わりに, math
要素のoverflow属性の値を用いるでしょう. (2.2.1 属性を参照して下さい.)
When a math element appears in an inline context, it may obey whatever paragraph flow
rules
are employed by the document's text rendering engine.
Such rules are necessarily outside of the scope of this specification.
Alternatively, it may use the value of the math
element's overflow attribute.
(See 2.2.1 Attributes.)
次に示す例は, 強制的な改行と強制的な位置揃えを明確にしています.
The following example demonstrates forced linebreaks and forced alignment:
<mrow>
<mrow> <mi>f</mi> <mo>⁡<!--ApplyFunction--></mo> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow>
<mo id='eq1-equals'>=</mo>
<mrow>
<msup>
<mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow>
<mn>4</mn>
</msup>
<mo linebreak='newline' linebreakstyle='before'
indentalign='id' indenttarget='eq1-equals'>=</mo>
<mrow>
<msup> <mi>x</mi> <mn>4</mn> </msup>
<mo id='eq1-plus'>+</mo>
<mrow> <mn>4</mn> <mo>⁢<!--InvisibleTimes--></mo> <msup> <mi>x</mi> <mn>3</mn> </msup> </mrow>
<mo>+</mo>
<mrow> <mn>6</mn> <mo>⁢<!--InvisibleTimes--></mo> <msup> <mi>x</mi> <mn>2</mn> </msup> </mrow>
<mo linebreak='newline' linebreakstyle='before'
indentalignlast='id' indenttarget='eq1-plus'>+</mo>
<mrow> <mn>4</mn> <mo>⁢<!--InvisibleTimes--></mo> <mi>x</mi> </mrow>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mrow>
</mrow>
次のように表示されます.
This displays as
indentalignlast
の既定値はindentalign
なので, 上の例ではindentalign
をindentalignlast
の場所で使うことができることに注意して下さい. また, linebreakstyle='before'
が既定値なのでその値を指定する必要もないです.
Note that because indentalignlast
defaults to indentalign
,
in the above example indentalign
could have been used in place of
indentalignlast
. Also, the specifying linebreakstyle='before'
is not needed because that is the default value.
mi |
識別子 identifier |
mn |
数字 number |
mo |
演算子, かっこ, 区切り operator, fence, or separator |
mtext |
文章 text |
mspace |
空白 space |
ms |
文字列 string literal |
これらに加えて, mglyph
要素が, 標準でない記号を画像として表現するのに, 素子要素と一緒に使用されてもよいです.
Additionally, the mglyph
element
may be used within Token elements to represent non-standard symbols as images.
mrow |
水平に任意の数の式をまとめる group any number of sub-expressions horizontally |
mfrac |
2つの式から分数を構成する form a fraction from two sub-expressions |
msqrt |
平方根(指数無しの根号)を構成する form a square root (radical without an index) |
mroot |
特定の指数の根を構成する form a radical with specified index |
mstyle |
書式を変更する style change |
merror |
処理前のエラーメッセージ構文を囲む enclose a syntax error message from a preprocessor |
mpadded |
周囲の余白を調整する adjust space around content |
mphantom |
大きさを保ったまま見えなくする make content invisible but preserve its size |
mfenced |
かっこの組で囲む surround content with a pair of fences |
menclose |
割り算の筆算の記号のような引き伸ばした記号で囲う enclose content with a stretching symbol such as a long division sign |
msub |
下付き添え字を基となる式に付け加える attach a subscript to a base |
msup |
上付き添え字を基となる式に付け加える attach a superscript to a base |
msubsup |
下付き添え字と上付き添え字の組を基となる式に付け加える attach a subscript-superscript pair to a base |
munder |
下側添え字を基となる式に付け加える attach an underscript to a base |
mover |
上側添え字を基となる式に付け加える attach an overscript to a base |
munderover |
下側添え字と上側添え字の組を基となる式に付け加える attach an underscript-overscript pair to a base |
mmultiscripts |
前置の添え字やテンソル添え字を基となる式に付け加える attach prescripts and tensor indices to a base |
mtable |
表や行列 table or matrix |
mlabeledtr |
表や行列の, 行番号や数式の番号と一緒に用いる行 row in a table or matrix with a label or equation number |
mtr |
表や行列の行 row in a table or matrix |
mtd |
表や行列の要素 one entry in a table or matrix |
maligngroup と
malignmark |
位置揃えの記号 alignment markers |
mstack |
揃えられた文字列の縦の並び columns of aligned characters |
mlongdiv |
除数や商を加えたmsgroupに類似したまとまり similar to msgroup, with the addition of a divisor and result |
msgroup |
同じ量ずらしたmstackの中の行のまとまり a group of rows in an mstack that are shifted by similar amounts |
msrow |
mstackの中の行 a row in an mstack |
mscarries |
mstackの中の, 繰り上がりや繰り下がりを表している行 row in an mstack whose contents represent carries or borrows |
mscarry |
mscarriesの要素 one entry in an mscarries |
msline |
mstack の中の水平線horizontal line inside of mstack |
maction |
式の一部に動作を結び付ける bind actions to a sub-expression |
2.1.6 全てのMathML要素で利用できる属性で一覧にした属性に加えて, 全てのMathMLプレゼンテーション要素は次の種類の属性を持っています.
In addition to the attributes listed in 2.1.6 Attributes Shared by all MathML Elements, all MathML presentation elements accept the following classes of attribute.
プレゼンテーション要素は, [MathMLコア]で指定された全ての共通の属性も受け入れます.
Presentation elements also accept all the Global Attributes specified by [MathML-Core].
次の2つの属性を含むこれらの属性は, 特に視覚的な分野を想定したものです. これらの属性は, 表示された式の意図している意味に影響を与えないものとされていますが, 式の一部を強調したり, 注意を引いたりするのに利用されます. 例えば, 異なるmathvariant
を持つ変数とは対照的に, 赤い"x"は黒い"x"と意味が違うとは考えません(3.2.2 素子要素に共通の数学書式属性参照).
These attributes include the following two attributes that are primarily intended for visual media.
They are not expected to affect the intended semantics of displayed
expressions, but are for use in highlighting or drawing attention
to the affected subexpressions. For example, a red "x" is not assumed
to be semantically different than a black "x", in contrast to
variables with different mathvariant
values (see 3.2.2 Mathematics style attributes common to token elements).
名前 Name |
値 values |
既定値 default |
mathcolor | 色 color |
継承する inherited |
素子要素の内容, 線, 根号, その他の装飾といった要素の中身を描画する際に使用する文字等の色を指定します. また, 配置要素で利用された場合, 子要素のmathcolor の既定値を定めます.Specifies the foreground color to use when drawing the components of this element, such as the content for token elements or any lines, surds, or other decorations. It also establishes the default mathcolor used for child elements
when used on a layout element.
|
||
mathbackground | 色 | "transparent" color |
transparent |
要素とその子要素の領域を塗り潰すのに使用する背景色を指定します. 既定値の"transparent"は, 一般に現在描画している文章の中の背景色を透けて見えるように設定します. Specifies the background color to be used to fill in the bounding box of the element and its children. The default, "transparent", lets the background color, if any, used in the current rendering context to show through. |
MathMLの式は, HTMLのような文章データフォーマットによく埋め込まれることから, MathML描画ソフトウェアは, MathMLが現れた場所の文章で利用されている色を継承すべきです. しかしながら, ([MathMLコア]と対照的に)MathMLは描画環境から書式情報を継承する仕組みを特定していないことに注意して下さい. 詳細については3.2.2 素子要素に共通の数学書式属性を参照して下さい.
Since MathML expressions are often embedded in a textual data format such as HTML, the MathML renderer should inherit the foreground color used in the context in which the MathML appears. Note, however, that MathML (in contrast to [MathML-Core]) doesn't specify the mechanism by which style information is inherited from the rendering environment. See 3.2.2 Mathematics style attributes common to token elements for more details.
提案されているMathMLの視覚的描画の決まりは, 次の場合を除いて, mathbackground
属性の影響を受ける, 背景の領域の正確な範囲を定義していないことに注意して下さい. それは, 内容が負の領域を持っておらず, 周囲との間隔が負であることによって描画領域が他の描画領域と重なるべきでない場合です. その場合の領域は内容を表示する描画領域全ての背後となるべきですが, 周囲を取り囲んでいる式を表示する描画領域の前面には来るべきです. mathbackground
属性の影響が及ぶ領域の範囲において, 周囲との間隔が負であることにより描画領域が重なった場合の影響は, MathMLの描画の決まりによって定義されてはいません.
Note that the suggested MathML visual rendering rules do not define the
precise extent of the region whose background is affected by the
mathbackground
attribute,
except that, when the content does not have
negative dimensions and its drawing region should not overlap with other
drawing due to surrounding negative spacing, should lie
behind all the drawing done to render the content, and should not lie behind any of
the drawing done to render surrounding expressions. The effect of overlap
of drawing regions caused by negative spacing on the extent of the
region affected by the mathbackground
attribute is not
defined by these rules.
プレゼンテーションマークアップの素子要素は, ざっくり言うと, 意味を伝達する数学表記の最小の単位を表すよう意図されています. 素子は, おおまかに言って, 文章の中の言葉と似ています. ただし, 数学表記の精密で象徴的な特性から, 素子要素の様々な種類や性質がMathMLマークアップの中で重要な役割を果たします. 対照的に, 文章データの中では, 個々の言葉は, めったにマークアップされたり, 特別な書式にされたりする必要はありません.
Token elements in presentation markup are broadly intended to represent the smallest units of mathematical notation which carry meaning. Tokens are roughly analogous to words in text. However, because of the precise, symbolic nature of mathematical notation, the various categories and properties of token elements figure prominently in MathML markup. By contrast, in textual data, individual words rarely need to be marked up or styled specially.
素子要素は, 識別子(mi
), 数字(mn
), 演算子(mo
), 文章(mtext
), 文字列(ms
), 空白(mspace
)を表します. mglyph
要素は標準でない記号を画像で表すのに素子要素と一緒に使われるてもよいです. 前に述べた個々の要素の詳しい説明に関して, 次の2つの小節で素子要素の中身として認められている内容や共通の属性について論じます.
Token elements represent
identifiers (mi
),
numbers (mn
),
operators (mo
),
text (mtext
),
strings (ms
)
and spacing (mspace
).
The mglyph
element
may be used within token elements
to represent non-standard symbols by images.
Preceding detailed discussion of the individual elements,
the next two subsections discuss the allowable content of
token elements and the attributes common to them.
MathMLの記述における文字データは, 素子要素の内容の一部となることのみ認められています. 要素間の空白は無視されます. 空のmspace
要素を除いて, 素子要素は0個以上のユニコード文字の文字列, mglyph
要素またはmalignmark
要素を含むことができます. mglyph
要素は, 標準でない文字や記号を画像で表すのに使われます. malignmark
要素は, 表の構成を利用する際に位置揃えの基準を確立するのに用いられ, 表示されない要素です(3.5.5 位置揃えの記号 <maligngroup/>
, <malignmark/>
参照).
Character data in MathML markup is only allowed to occur as part of
the content of token elements. Whitespace between elements is ignored.
With the exception of the empty mspace
element,
token elements can contain any sequence of zero or more Unicode characters,
or mglyph
or
malignmark
elements.
The mglyph
element is used
to represent non-standard characters or symbols by images;
the malignmark
element establishes an alignment point for use within
table constructs, and is otherwise invisible (see 3.5.5 Alignment Markers
<maligngroup/>
, <malignmark/>
).
文字は, 直接ユニコードの文字データとして表されるか、間接的に数値文字参照または文字実体参照を使用して表されるでしょう. ユニコードは, 数々の非常によく似た文字を含んでいます. どの状況でどの文字を使用するのが適切かの議論については, [MathMLメモ]を参照して下さい.
Characters can be either represented directly as Unicode character data, or indirectly via numeric or character entity references. Unicode contains a number of look-alike characters. See [MathML-Notes] for a discussion of which characters are appropriate to use in which circumstance.
(mspace
以外の)素子要素は, 中身があればその中身として描画されるべきです(すなわち, 視覚的表現では, 素子要素の中身である文字に対する標準的な字形やmglyph
に対する画像を水平に密集させた列として描画されます). mspace
要素は, 属性によって決められた幅の空白として描画されます. 描画アルゴリズムは, 下記で説明する数学書式属性も考慮すべきです. また, 決まりや素子要素の種類それぞれに固有な属性によって周囲の空白は修正されます. 中身の向きの特徴も尊重されるべきです(3.1.5.2 素子要素における双方向の配置参照).
Token elements (other than mspace
) should
be rendered as their content, if any (i.e. in the visual case, as a
closely-spaced horizontal row of standard glyphs for the characters
or images for the mglyph
s in their content).
An mspace
element is rendered as a blank space of a width determined by its attributes.
Rendering algorithms should also take into account the
mathematics style attributes as described below, and modify surrounding
spacing by rules or attributes specific to each type of token
element. The directional characteristics of the content must
also be respected (see 3.1.5.2 Bidirectional Layout in Token Elements).
mglyph
要素は, 標準でない記号を表現するために画像を表示する仕組みを提供します. そして, 存在しているユニコード文字が十分でないときに, 素子要素mi
, mn
, mo
, mtext
, ms
の中身として利用されてもよいです.
The mglyph
element provides a mechanism
for displaying images to represent non-standard symbols.
It may be used within the content of the token elements
mi
, mn
, mo
, mtext
or ms
where existing Unicode characters are not adequate.
ユニコードは, 数学で利用されるたくさんの数の文字を定義しており, また, ほとんどの場合にこれらの文字を表す字形は様々なフォントで広く利用できます. これらの文字がほぼ全ての利用者の必要性に対応すべきであるとはいえ, MathMLは, 数学は静的なものではなく新しい文字や記号が便利であるように加えられると認識しています. よく利用される文字は, おそらく最終的にユニコードコンソーシアムや他の標準化団体に受け入れられるでしょうが, それらはしばしば長い時間を要します.
Unicode defines a large number of characters used in mathematics and, in most cases, glyphs representing these characters are widely available in a variety of fonts. Although these characters should meet almost all users needs, MathML recognizes that mathematics is not static and that new characters and symbols are added when convenient. Characters that become well accepted will likely be eventually incorporated by the Unicode Consortium or other standards bodies, but that is often a lengthy process.
字形のsrc
属性はmglyph
を唯一のものとして特定することに注意して下さい. つまり, 同じsrc
の値を持つ2つのmglyph
は, 2つの文字や字形が同一かどうかを決めるソフトウェアによって同一と見なされるべきです.
Note that the glyph's src
attribute uniquely identifies the mglyph
;
two mglyph
s with the same values for src
should
be considered identical by applications that must determine whether
two characters/glyphs are identical.
mglyph
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で一覧にされている属性を持っていします. ただし, mathcolor
は効果がないことに注意して下さい. 背景の色であるmathbackground
によって, 指定の画像が透過であるならば, 塗り潰されるべきです.
The mglyph
element accepts the attributes listed in
3.1.9 Mathematics attributes common to presentation elements, but note that mathcolor
has no effect.
The background color, mathbackground
, should show through
if the specified image has transparency.
mglyph
はここに一覧にした追加の属性も持っています.
mglyph
also accepts the additional attributes listed here.
名前 Name |
値 values |
既定値 default |
src | URI | 必要 required |
画像の場所を指定します. 通常, MathML部分の基準となるURIからの相対パスとなります. Specifies the location of the image resource; it may be a URI relative to the base-URI of the source of the MathML, if any. |
||
width | 長さ length |
画像の幅 from image |
字形の要求される幅を指定します. height を参照して下さい.Specifies the desired width of the glyph; see height .
|
||
height | 長さ length |
画像の高さ from image |
字形の要求される高さを指定します. width とheight の一方だけが与えられた場合, 画像はアスペクト比を保ったまま, 拡大・縮小されます. どちらも与えられない場合, 画像は元の大きさのまま表示されるべきです.Specifies the desired height of the glyph. If only one of width and height are given,
the image should be scaled to preserve the aspect ratio;
if neither are given, the image should be displayed at its natural size.
|
||
valign | 長さ length |
0ex |
画像のベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)を欧文ベースラインからどれだけずらすかを指定します. 正の値のときは画像の下端を欧文ベースラインから上げ, 負の値のときは下げます. 0の値(既定値)は, 画像のベースラインを画像の下端にすることを意味します. Specifies the baseline alignment point of the image with respect to the current baseline. A positive value shifts the bottom of the image above the current baseline while a negative value lowers it. A value of 0 (the default) means that the baseline of the image is at the bottom of the image. |
||
alt | 文字列 string |
必要 required |
字形に対する代用の名前を提供します. 指定された画像が見つからなかったり, 表示できなかったりした場合, 表示ソフトウェアはこの名前を警告メッセージや字形が見つからないという注意で利用するでしょう. この名前は, 聴覚表現ソフトウェアや記号を処理するソフトウェアで利用されるでしょう. また, 説明のために選ばれるべきでしょう. Provides an alternate name for the glyph. If the specified image can't be found or displayed, the renderer may use this name in a warning message or some unknown glyph notation. The name might also be used by an audio renderer or symbol processing system and should be chosen to be descriptive. |
次に示す例は, 研究者が組み紐の組合せを表記するのに, 複数の画像で構成されたmglyph
をどのように利用するのかを描いています.
The following example illustrates how a researcher might use
the mglyph
construct with a set of images to work
with braid group notation.
<mrow>
<mi><mglyph src="my-braid-23" alt="2 3 braid"/></mi>
<mo>+</mo>
<mi><mglyph src="my-braid-132" alt="1 3 2 braid"/></mi>
<mo>=</mo>
<mi><mglyph src="my-braid-13" alt="1 3 braid"/></mi>
</mrow>
描画ソフトウェアによって次のように表示されるでしょう.
This might render as:
全てのプレゼンテーション要素に対して定義されている属性(3.1.9 プレゼンテーション要素に共通の数学属性)に加えて, MathMLは, 全てのプレゼンテーション素子要素やmath
要素, mstyle
要素に有効な, 2つの数学書式属性や方向を表す属性を含んでいます. なお, dir
はmrow
要素でも有効です. これらの属性は次のとおりです.
In addition to the attributes defined for all presentation elements
(3.1.9 Mathematics attributes common to presentation elements), MathML includes two mathematics style attributes
as well as a directionality attribute
valid on all presentation token elements,
as well as the math
and mstyle
elements;
dir
is also valid on mrow
elements.
The attributes are:
名前 Name |
値 values |
既定値 default |
mathvariant | "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" | "initial" | "tailed" | "looped" | "stretched" | normal (<mi> を除く)(except on <mi> ) |
素子の論理的な種類を指定します. この種類は書式の種類というわけなく, 典型的に意図した意味を伝えるものであることに注意して下さい. 下記の議論を参照して下さい. Specifies the logical class of the token. Note that this class is more than styling, it typically conveys semantic intent; see the discussion below. |
||
mathsize | "small" | "normal" | "big" | 長さ length |
継承する inherited |
素子の中身を表示する大きさを指定します. small またはbig という値は, 現在のフォントサイズより小さいまたは大きいということを表します. ただし, 実際の比率は指定されておらず任されています. normal は完全性のために用意されていますが, 100% や1em と同じであり効果はありません.Specifies the size to display the token content. The values small and big choose a size
smaller or larger than the current font size, but leave the exact proportions
unspecified; normal is allowed for completeness, but since
it is equivalent to 100% or 1em , it has no effect.
|
||
dir | "ltr" | "rtl" | 継承する inherited |
素子の中の文字の初期の方向を指定します. ltr (左から右)またはrtl (右から左). この属性は, 弱い文字(訳注:周囲の文字の方向に左右される文字で例えばかっこ"(")または中立の文字(訳注:周囲の文字の方向がどちらでも同じように表示される文字で例えば空白" ")を含む特殊な場合に必要になります. より詳しい議論については, 3.1.5.1 数式全体の方向を参照して下さい. mspace に対しては何の効果も与えません.specifies the initial directionality for text within the token: ltr (Left To Right) or rtl (Right To Left).
This attribute should only be needed in rare cases involving weak or neutral characters;
see 3.1.5.1 Overall Directionality of Mathematics Formulas for further discussion.
It has no effect on mspace .
|
mathvariant
属性は, 素子要素の論理的な種類を定義しています. それぞれの種類は, 植字に関係した記号的な素子の集合を提供します. 各素子は与えられた数式の中で特定の意味を持っています. そのため, 各素子は視覚的に表現され, 不意に意味を変えてしまうような文書全体の書式の変更から保護される必要があります. 各素子は, mathvariant
属性の値と素子要素内の文字データの組合せによって特定されます.
The mathvariant
attribute defines logical classes of token
elements. Each class provides a collection of typographically-related
symbolic tokens. Each token has a specific meaning within a given
mathematical expression and, therefore, needs to be visually
distinguished and protected from inadvertent document-wide style
changes which might change its meaning. Each token is identified
by the combination of the mathvariant
attribute value
and the character data in the token element.
CSSが利用可能な環境でMathMLを描画する場合, 数学書式属性はCSS書式の規則のための定義済の選択子と見なされます. MathMLとCSSの相互作用の議論については, 6.5 MathMLと一緒にCSSを利用するを参照して下さい. また, CSSを利用してMathMLを描画する際の議論やCSSスタイルシートの例については[MathMLforCSS]を参照して下さい. CSSが利用できない場合, 論理的に異なる種類を描き分けるのは, 描画ソフトウェア内部の書式の仕組み次第です. ほとんどのMathML描画ソフトウェアはおそらく, 追加の, 内部の書式処理アルゴリズムをいくらか当てにしようしています. 特に, mathvariant
属性は, CSSの継承の仕組みに従っていません. 既定値は, 単独の文字の内容を持つmi
を除いて, 全ての要素でnormal
(斜体でない)です. 詳細については, 3.2.3 識別子<mi>
を参照して下さい.
When MathML rendering takes place in an environment where CSS is
available, the mathematics style attributes can be viewed as
predefined selectors for CSS style rules.
See 6.5 Using CSS with MathML for discussion of the
interaction of MathML and CSS.
Also, see [MathMLforCSS] for discussion of rendering MathML by CSS
and a sample CSS style sheet.
When CSS is not available, it is up to the internal style mechanism of the rendering
application
to visually distinguish the different logical classes.
Most MathML renderers will probably want to rely on some degree on additional,
internal style processing algorithms.
In particular, the mathvariant
attribute does not follow the CSS inheritance model;
the default value is normal
(non-slanted)
for all tokens except for mi
with single-character content.
See 3.2.3 Identifier <mi>
for details.
描画ソフトウェアは, 数学書式属性をどの描画特性に当てはめるか完全に自由です. しかしながら, 実際は, 数学書式属性の名前と値は明らかな植字の特性を暗示しており, 描画ソフトウェアは可能な限りその自然な実装を尊重するよう試みます. 例えば, mathvariant
属性の値がsans-serif
である素子をHelveticaフォントやArialフォントで描画することは妥当です. しかし, Times Romanフォントでその素子を描画することは本当に誤解を招くことになり, 避けるべきです.
Renderers have complete freedom in
mapping mathematics style attributes to specific rendering properties.
However, in practice, the mathematics style attribute names and values
suggest obvious typographical properties, and renderers should attempt
to respect these natural interpretations as far as possible. For
example, it is reasonable to render a token with the
mathvariant
attribute set to sans-serif
in
Helvetica or Arial. However, rendering the token in a Times Roman
font could be seriously misleading and should be avoided.
原則として, 特定の記号の素子を定義するのに, どのmathvariant
の値も, どの文字データとも一緒に利用できます. 実際は, 文字データとmathvariant
の値の特定の組合せのみ, 与えられた描画ソフトウェアによって視覚的に表現されます, 例えば, "フラクタルのアルファ"や"太字の斜体の漢字"といった文字は明確に存在せず, また, "initial", "tailed", "looped", "stretched"といったmathvariant
の値はアラビア文字に対してのみ適切です.
In principle, any mathvariant
value may be used with any
character data to define a specific symbolic token. In practice,
only certain combinations of character data and mathvariant
values will be visually distinguished by a given renderer. For example,
there is no clear-cut rendering for a "fraktur alpha" or a "bold italic
Kanji" character, and the mathvariant
values "initial",
"tailed", "looped", and "stretched" are appropriate only for Arabic
characters.
文字データとmathvariant
の値の特定の組合せは, 数学用英数字記号を表すよう割り当てられたユニコードコードポイントと同じ働きをします. これらのユニコードコードポイントは, ユニコード標準で一覧にされたアラビア文字の数学用英数字記号のブロックU+1EE00からU+1EEFFや数学用英数字記号のブロックU+1D400からU+1D7FF, 7.2 数学用英数字記号で一覧にされたSMPにおける"穴"を表す文字のような記号の範囲U+2100からU+214Fです. これらの文字について, 詳細はUTR #25の第2.2節で説明しています. ユニコード標準におけるそのような文字それぞれの説明では, mathvariant
の値に対応して書式が変更になる場合を除いて, 同一と見なされる書式のない文字を提供します. 書式のない文字と対応するmathvariant
の値の組合せを利用している素子要素は, mathvariant
属性を用いないで数学用英数字記号を利用している素子要素と同一と見なされます. 数学用英数字記号の外観は周囲のmathvariant
や他の書式の宣言によって変更されるべきではないことに注意して下さい.
Certain combinations of character data and mathvariant
values are equivalent to assigned Unicode code points that encode
mathematical alphanumeric symbols. These Unicode code points are
the ones in the
Arabic Mathematical Alphabetic Symbols block U+1EE00 to U+1EEFF,
Mathematical Alphanumeric Symbols block U+1D400 to U+1D7FF,
listed in the Unicode standard, and the ones in the
Letterlike
Symbols range U+2100 to U+214F that represent "holes" in the
alphabets in the SMP, listed in 7.2 Mathematical Alphanumeric Symbols.
These characters are described in detail in section 2.2 of
UTR #25.
The description of each such character in the Unicode standard
provides an unstyled character to which it would be equivalent
except for a font change that corresponds to a mathvariant
value. A token element that uses the unstyled character in combination
with the corresponding mathvariant
value is equivalent to a
token element that uses the mathematical alphanumeric symbol character
without the mathvariant
attribute. Note that the appearance
of a mathematical alphanumeric symbol character should not be altered
by surrounding mathvariant
or other style declarations.
描画ソフトウェアは, ユニコード文字に一致する文字データとmathvariant
の値の組合せに対応すべきです. また, それらの組合せは利用可能なフォントを用いて視覚的に表現できるでしょう. 描画ソフトウェアは, 一致する割り当てられたユニコードコードポイントがない場合, 文字データとmathvariant
の値の組合せを無視してもよいですし, 対応してもよいです. また, MathMLを書く人は, 一致する割り当てられたユニコードコードポイントがない数学記号への対応は, 描画ソフトウェアによって異なることを認識すべきです.
Renderers should support those combinations of character data and
mathvariant
values that correspond to Unicode characters,
and that they can visually distinguish using available font characters.
Renderers may ignore or support those combinations of character data
and mathvariant
values that do not correspond to an assigned
Unicode code point, and authors should recognize that support for
mathematical symbols that do not correspond to assigned Unicode code
points may vary widely from one renderer to another.
MathMLによる表現はHTMLのような文章データフォーマットの中に組み込まれるので, 周囲の文章とMathMLはフォントサイズのような描画属性を共有しなければならず, そのために表現される書式は互いに尊重されるでしょう. このことから, ほとんどの文章の描画に影響する属性の値は, 上述の表の既定値
の列に見られるように描画環境から継承されます. (周囲の文章とMathMLが別々のソフトウェア, 例えば, ブラウザとプラグインで描画された場合, MathML描画ソフトウェアに, MathML属性で指定されない周囲の文字の欧文ベースラインの位置といった追加情報を提供することも描画環境にとって重要です.) ただし, MathMLは描画環境から書式情報を継承する仕組みを指定していないことに注意して下さい.
Since MathML expressions are often embedded in a textual data
format such as HTML, the surrounding text and the MathML must share
rendering attributes such as font size, so that the renderings will be
compatible in style. For this reason, most attribute values affecting
text rendering are inherited from the rendering environment, as shown
in the default
column in the table above. (In
cases where the surrounding text and the MathML are being rendered by
separate software, e.g. a browser and a plug-in, it is also important
for the rendering environment to provide the MathML renderer with
additional information, such as the baseline position of surrounding
text, which is not specified by any MathML attributes.)
Note, however, that MathML doesn't specify the mechanism by which
style information is inherited from the rendering environment.
利用しているフォントの要求されたmathsize
が利用できない場合, 描画ソフトウェアは, 最も分かりやすく, 最も高い質の描画となるよう適切な方法でフォントサイズを近付けるべきです. MathMLの要素の多くは, その子要素に応じてフォントサイズを自動的に変更することに注意して下さい. 3.1.6 displaystyleとscriptlevelの議論を参照して下さい.
If the requested mathsize
of the current font is not available, the
renderer should approximate it in the manner likely to lead to the
most intelligible, highest quality rendering.
Note that many MathML elements automatically change the font size
in some of their children; see the discussion in 3.1.6 Displaystyle and Scriptlevel.
MathMLは, 6.4 MathMLと他の言語を組合せるで述べているように, 他の言語と組合せることができます. 仕様書は, MathMLに他のフォーマットを埋め込むのに, mtext
要素の子要素や, 式の中で埋め込む役割を果たすのに適切な他の葉要素の子要素に, 追加の要素を認めるようMathML構文を拡張しました(3.2.3 識別子 <mi>
, 3.2.4 数字 <mn>
, 3.2.5 演算子, かっこ, 区切り, アクセント <mo>
参照). 方向, フォントサイズ, その他のフォントの属性は, それらを含む葉要素の文字に使用される属性を継承すべきです(3.2.2 素子要素に共通の数学書式属性参照).
MathML can be combined with other formats as described in
6.4 Combining MathML and Other Formats.
The recommendation is to embed other formats in MathML by extending the MathML
schema to allow additional elements to be children of the mtext
element or
other leaf elements as appropriate to the role they serve in the expression
(see 3.2.3 Identifier <mi>
, 3.2.4 Number <mn>
, and 3.2.5 Operator, Fence, Separator or Accent
<mo>
).
The directionality, font size, and other font attributes should inherit from
those that would be used for characters of the containing leaf element
(see 3.2.2 Mathematics style attributes common to token elements).
HTMLの内容を含むmtextの中にSVGを埋め込んだ例を示します.
Here is an example of embedding SVG inside of mtext in an HTML context:
<mtable>
<mtr>
<mtd>
<mtext><input type="text" placeholder="what shape is this?"/></mtext>
</mtd>
</mtr>
<mtr>
<mtd>
<mtext>
<svg xmlns="http://www.w3.org/2000/svg" width="4cm" height="4cm" viewBox="0 0 400 400">
<rect x="1" y="1" width="398" height="398" style="fill:none; stroke:blue"/>
<path d="M 100 100 L 300 100 L 200 300 z" style="fill:red; stroke:blue; stroke-width:3"/>
</svg>
</mtext>
</mtd>
</mtr>
</mtable>
mi
要素は, 識別子として表示されるべき記号の名前や何らかの文字列を表します. 識別子には, 変数, 関数名, 定数の記号が含まれます. 典型的な画像描画ソフトウェアは, mi
要素を(隣接する要素に関連する空白以外の)周囲の空白を取り除いて, その中身として描画します(3.2.1 素子要素の内容となる文字, <mglyph/>
参照).
An mi
element represents a symbolic name or
arbitrary text that should be rendered as an identifier. Identifiers
can include variables, function names, and symbolic constants.
A typical graphical renderer would render an mi
element
as its content (see 3.2.1
Token Element Content Characters, <mglyph/>
),
with no extra spacing around it (except spacing associated with
neighboring elements).
数学の識別子
全てがmi
要素によって表現されるわけではありません. 例えば, 添え字が付いたり, プライムが付いたりした変数は, それぞれmsub
やmsup
を用いて表現されるべきです. 逆に, (級数の和における省略といった)項
の役割をする何らかの文字列は, mi
要素を利用して表現すべきです.
Not all mathematical identifiers
are represented by
mi
elements — for example, subscripted or primed
variables should be represented using msub
or
msup
respectively. Conversely, arbitrary text
playing the role of a term
(such as an ellipsis in a summed series)
should be represented using an mi
element.
mi
はプレゼンテーション要素であることを強調しておきます. そのこと自体は, 要素の中身が識別子として描画されることを単に表しています. 大半の場合, mi
の中身は実際のところ, 変数や関数名といった数学の識別子を表すでしょう. しかしながら, 前の段落で示したように, 識別子として描画されるべき表記と, 実際に数学の識別子を表すことを意図している表記との対応は完全ではありません. 要素の意味が識別子そのものであることが保証されている要素については, 4. コンテントマークアップのci
の説明を参照して下さい.
It should be stressed that mi
is a
presentation element, and as such, it only indicates that its content
should be rendered as an identifier. In the majority of cases, the
contents of an mi
will actually represent a
mathematical identifier such as a variable or function name. However,
as the preceding paragraph indicates, the correspondence between
notations that should render as identifiers and notations that are
actually intended to represent mathematical identifiers is not
perfect. For an element whose semantics is guaranteed to be that of an
identifier, see the description of ci
in
4. Content Markup.
mi
要素は, 3.2.2 素子要素に共通の数学書式属性で一覧にした属性を持っています. ただし, 1つだけ既定値が異なります.
mi
elements accept the attributes listed in
3.2.2 Mathematics style attributes common to token elements, but in one case with a different default value:
名前 Name |
値 values |
既定値 default |
mathvariant | "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" | "initial" | "tailed" | "looped" | "stretched" | (内容に依存. 下記の説明を参照して下さい.) (depends on content; described below) |
素子の論理的な種類を指定します. 中身が単一の文字の場合を除いて, 既定値はnormal (斜体でない)です. 中身が単一の文字の場合, 既定値はitalic です.Specifies the logical class of the token. The default is normal (non-slanted) unless the content
is a single character, in which case it would be italic .
|
数学用英数字記号文字(7.2 数学用英数字記号参照)と等しいことを決定するために, mathvariant
属性の値は, 上で述べた特別な既定の挙動を含め, 最初に解決すべきです.
Note that for purposes of determining equivalences of Math
Alphanumeric Symbol
characters (see 7.2 Mathematical Alphanumeric Symbols)
the value of the mathvariant
attribute should be resolved first,
including the special defaulting behavior described above.
<mi>x</mi>
<mi>D</mi>
<mi>sin</mi>
<mi mathvariant='script'>L</mi>
<mi></mi>
中身の無いmi
要素は認められています. <mi></mi>
は, 例えば, 数式編集ツール
で(数学における型通りの構文によれば)項
を必要とするMathMLの式で, まだ項が1つも含まれていないときに位置を表すのに使用されるでしょう.
An mi
element with no content is allowed;
<mi></mi>
might, for example, be used by an
expression editor
to represent a location in a MathML expression
which requires a term
(according to conventional syntax for
mathematics) but does not yet contain one.
識別子はsin
のような関数の名前を含みます. sin x
のような式では, 下記に示す文字U+2061(実体af
または実体ApplyFunction
)を用いて書かれるべきです. 見えない演算子についての議論は3.2.5 演算子, かっこ, 区切り, アクセント <mo>
を参照して下さい.
Identifiers include function names such as
sin
. Expressions such as sin x
should be written using the character U+2061
(entity af
or ApplyFunction
) as shown below;
see also the discussion of invisible operators in 3.2.5 Operator, Fence, Separator or Accent
<mo>
.
<mrow>
<mi> sin </mi>
<mo> ⁡<!--ApplyFunction--> </mo>
<mi> x </mi>
</mrow>
項
として扱われるべきいろいろな文章は, 次のようにmi
要素を用いて表すこともできます.
Miscellaneous text that should be treated as a term
can also be
represented by an mi
element, as in:
<mrow>
<mn> 1 </mn>
<mo> + </mo>
<mi> … </mi>
<mo> + </mo>
<mi> n </mi>
</mrow>
mi
がそのような例外の状況で利用される場合, はっきりとmathvariant
属性を設定することで, 描画ソフトウェアの通常の挙動より良い出力結果を得られるでしょう.
When an mi
is used in such exceptional
situations, explicitly setting the mathvariant
attribute
may give better results than the default behavior of some
renderers.
記号の定数の名前は, mi
要素として表現されるべきです.
The names of symbolic constants should be represented as
mi
elements:
<mi> π </mi>
<mi> ⅈ </mi>
<mi> ⅇ </mi>
mn
要素は, 数値の文字列
や数値の文字列として描画されるべき他のデータを表します. 一般に言って, 数値の文字列は数字の列で, 場合によっては小数点を含み, 符号の付かない整数または実数を表します. 典型的な画像描画ソフトウェアは, mn
要素を(mo
のような隣接する要素との間の空白以外の)周囲の空白を取り除いて, その中身を描画します(3.2.1 素子要素の内容となる文字, <mglyph/>
参照). mn
要素は典型的に, 傾いていない字形で描画されます.
An mn
element represents a numeric
literal
or other data that should be rendered as a numeric
literal. Generally speaking, a numeric literal is a sequence of digits,
perhaps including a decimal point, representing an unsigned integer or real
number.
A typical graphical renderer would render an mn
element as
its content (see 3.2.1
Token Element Content Characters, <mglyph/>
), with no extra spacing around them
(except spacing from neighboring elements such as mo
).
mn
elements are typically rendered in an unslanted font.
"数字"の数学上の概念は, 完全にあいまいで複雑な内容になるでしょう. 結果として, 全ての数学の数字が, mn
を用いて表されるべきということではありません. 違った表現とされるべき数学の数字の例は下記に示すもので, 複素数, 分数として表される数字の比率, 数値の定数の名前を含みます.
The mathematical concept of a number
can be quite
subtle and involved, depending on the context. As a consequence, not all
mathematical numbers should be represented using mn
; examples of mathematical numbers that should be
represented differently are shown below, and include
complex numbers, ratios of numbers shown as fractions, and names of numeric
constants.
反対に, mn
はプレゼンテーション要素であるので, mn
の中身が何らかの文字を含んでいることが望ましい場合がわずかにあります. 文字列としての数字の特に標準的なコード化によれば, 中身が数字として明確に解釈されない場合であっても, mn
は単に数値の文字列として描画されるべきです. 一般的な決まりとして, mn
要素は、中身が何らかの方法で実際に数値的な量を表そうとしてる状況に当てられるべきです. 要素の意味が数学の数字の特定の種類であることが保証されている要素については, 4. コンテントマークアップのcn
の説明を参照して下さい.
Conversely, since mn
is a presentation
element, there are a few situations where it may be desirable to include
arbitrary text in the content of an mn
that
should merely render as a numeric literal, even though that content
may not be unambiguously interpretable as a number according to any
particular standard encoding of numbers as character sequences. As a
general rule, however, the mn
element should be
reserved for situations where its content is actually intended to
represent a numeric quantity in some fashion. For an element whose
semantics are guaranteed to be that of a particular kind of
mathematical number, see the description of cn
in
4. Content Markup.
mn
要素は, 3.2.2 素子要素に共通の数学書式属性で一覧にした属性を持っています.
mn
elements accept the attributes listed in 3.2.2 Mathematics style attributes common to token elements.
<mn> 2 </mn>
<mn> 0.123 </mn>
<mn> 1,000,000 </mn>
<mn> 2.1e10 </mn>
<mn> 0xFFEF </mn>
<mn> MCMLXIX </mn>
<mn> twenty-one </mn>
多くの数学の数字は, mn
単独ではなく, プレゼンテーション要素を使用して表されるべきです. それらの数字は, 複素数, 負の数, 分数として表される数字の比率, 数値の定数の名前を含みます.
Many mathematical numbers should be represented using presentation
elements other than mn
alone; this includes
complex numbers, negative numbers, ratios of numbers shown as fractions, and
names of numeric constants.
<mrow>
<mn> 2 </mn>
<mo> + </mo>
<mrow>
<mn> 3 </mn>
<mo> ⁢<!--InvisibleTimes--> </mo>
<mi> ⅈ </mi>
</mrow>
</mrow>
<mfrac> <mn> 1 </mn> <mn> 2 </mn> </mfrac>
<mrow><mo>-</mo><mn>2</mn></mrow>
<mi> π </mi>
<mi> ⅇ </mi>
mo
要素は, 演算子や演算子として描画すべきものを表します. 一般に, 数学の演算子の表記の慣習は大変複雑です. MathMLは, mo
要素の描画するときの挙動を特定する比較的洗練された仕組みを提供しています. 結果として, MathMLにおいて演算子として描画される
べきものの一覧は, 普通の感覚では数学の演算子ではない数学表記を含んでいます. 中間や前や後ろに置かれる普通の演算子の他に, その一覧は, 大かっこや丸かっこや絶対値
の縦棒といった囲い文字, コンマやセミコロンといった区切り, 記号の上の横棒やチルダといった数学のアクセントを含みます. "演算子"という用語を, この章では広い意味で演算子を表すものに使用します.
An mo
element represents an operator or
anything that should be rendered as an operator. In general, the
notational conventions for mathematical operators are quite
complicated, and therefore MathML provides a relatively sophisticated
mechanism for specifying the rendering behavior of an
mo
element. As a consequence, in MathML the list
of things that should render as an operator
includes a number of
notations that are not mathematical operators in the ordinary
sense. Besides ordinary operators with infix, prefix, or postfix
forms, these include fence characters such as braces, parentheses, and
absolute value
bars; separators
such as comma and semicolon; and
mathematical accents such as a bar or tilde over a symbol.
We will use the term "operator" in this chapter to refer to operators in this broad
sense.
典型的な視覚的描画ソフトウェアは全てのmo
要素を, 後で詳しく述べる, 属性によって決められた要素の周りの空白と一緒に, その中身として描画します(3.2.1 素子要素の内容となる文字, <mglyph/>
参照). MathML文字集合に対応する完全なフォントを利用できない描画ソフトウェアは, mo
要素を描画するのに, その中身の文字を正確に選ばない場合があってもよいです. 例えば, <mo> ≤ </mo>
は端末に<=
として描画されるかもしれません. しかしながら, 一般的な決まりとして, 描画ソフトウェアは可能な限り文字通りにmo
要素の中身を描画しようと試みるべきです. すなわち, <mo> ≤ </mo>
と<mo> <= </mo>
は異なって描画されるべきです. 前者は小なりまたは等しい記号を表す単独の文字として描画されるべきで, 後者は2つの文字の文字列<=
として描画されるべきです.
Typical graphical renderers show all mo
elements as the content (see 3.2.1
Token Element Content Characters, <mglyph/>
),
with additional spacing around the element determined by its attributes and
further described below.
Renderers without access to complete fonts for the MathML character
set may choose to render an mo
element as
not precisely the characters in its content in some cases. For example,
<mo> ≤ </mo>
might be rendered as
<=
to a terminal. However, as a general rule,
renderers should attempt to render the content of an
mo
element as literally as possible.
That is,
<mo> ≤ </mo>
and
<mo> <= </mo>
should render differently.
The first one should render as a single character
representing a less-than-or-equal-to sign, and the second one as the
two-character sequence <=
.
全ての演算子は, ここでいう一般の感覚では, 本質的に同じ描画の属性と決まりに従います. それらの記号の種類ごとの描画の細かい区別は, それらの記号が現れたとき, 種類ごとに区別するのに利用できるブール値の属性fence
, separator
, accent
を使用して対応します.
All operators, in the general sense used here,
are subject to essentially the same rendering
attributes and rules. Subtle distinctions in the
rendering of these classes of symbols,
when they exist, are supported using the Boolean attributes fence
,
separator
and accent
, which can be used to distinguish these cases.
mo
要素の鍵となる特徴は, 属性の既定値が後で説明する演算子辞書
によって状況に応じて決まることです. 特に, fence
, separator
, accent
の既定値は通常演算子辞書によって決まるので, 個々のmo
要素について指定する必要がありません.
A key feature of the mo
element is that its
default attribute values are set on a case-by-case basis from an
operator dictionary
as explained below. In particular, default
values for fence
, separator
and
accent
can usually be found in the operator dictionary
and therefore need not be specified on each mo
element.
数学の演算子はmo
要素単独で表現されるものばかりでなく, (例えば)周囲の上付き添え字で装飾された
mo
要素として表現されることもあることに注意して下さい. このことは後で詳しく説明します. 逆に, プレゼンテーション要素としてmo
要素は, 中身となる文章が演算子として標準的に解釈されない場合も含め, 何らかの文章を含むことができます. 例としては3.2.6 文章 <mtext>
の文章と数字を混ぜる
の議論を参照して下さい. また, 特定の数学演算子として意味を持つことが保証されているMathMLコンテント要素の定義については, 4. コンテントマークアップを参照して下さい.
Note that some mathematical operators are represented not by mo
elements alone, but by mo
elements embellished
with (for example) surrounding
superscripts; this is further described below. Conversely, as presentation
elements, mo
elements can contain arbitrary text,
even when that text has no standard interpretation as an operator; for an
example, see the discussion Mixing text and mathematics
in
3.2.6 Text <mtext>
. See also 4. Content Markup for
definitions of MathML content elements that are guaranteed to have the
semantics of specific mathematical operators.
また, 改行は3.1.7 式の改行で論じたように, 通常演算子の(地域の慣習によって前もしくは後いずれかの)場所で行われることに注意して下さい. そのため, mo
は指定された演算子で改行が望ましいかコード化する属性を持ち, さらに改行がその演算子で行われた場合の演算子の扱いや字下げを説明する属性を持ちます.
Note also that linebreaking, as discussed in
3.1.7 Linebreaking of Expressions, usually takes place at operators
(either before or after, depending on local conventions).
Thus, mo
accepts attributes to encode the desirability
of breaking at a particular operator, as well as attributes
describing the treatment of the operator and indentation in case
a linebreak is made at that operator.
mo
要素は, 3.2.2 素子要素に共通の数学書式属性で一覧にした属性やここで一覧にした追加の属性を持っています. 演算子の表示は数学において大変重要なので, mo
要素はたくさんの数の属性を持っています. それらは次の3つの小節で説明しています.
mo
elements accept
the attributes listed in 3.2.2 Mathematics style attributes common to token elements
and the additional attributes listed here.
Since the display of operators is so critical in mathematics,
the mo
element accepts a large number of attributes;
these are described in the next three subsections.
ほとんどの属性は, 取り囲んでいるmstyle
要素, math
要素, 含まれている文書, 3.2.5.6.1 演算子辞書から既定値を受け取ります. 継承する
となっている値がはっきりとmo
要素, mstyle
要素, math
要素で与えられていない場合や, 対象のmo
要素が演算子辞書の中から見つからなかった場合, かっこ内に示された既定値が使用されます.
Most attributes get their default values from an enclosing
mstyle
element, math
element,
from the containing document,
or from
3.2.5.6.1 The operator dictionary.
When a value that is listed as inherited
is not explicitly given on an
mo
, mstyle
element, math
element, or found in the operator
dictionary for a given mo
element, the default value shown in
parentheses is used.
名前 Name |
値 values |
既定値 default |
form | "prefix" | "infix" | "postfix" | mrow の中の演算子の場所によるset by position of operator in an mrow |
囲んでいる式での演算子の役割を指定します. この役割と演算子の中身は, 間隔の取り方や, 他の既定値に影響する演算子辞書から演算子を見つけ出すことに影響しません. 3.2.5.6.2 form 属性の既定値を参照して下さい.Specifies the role of the operator in the enclosing expression. This role and the operator content affect the lookup of the operator in the operator dictionary which affects the spacing and other default properties; see 3.2.5.6.2 Default value of the form attribute.
|
||
fence | "true" | "false" | 演算子辞書による (false) set by dictionary |
演算子が, かっこといった‘囲み文字’を表しているかどうか指定します. この属性は一般に視覚的描画に直接の影響はありませんが, 視覚的でない表現ソフトウェアといった特定の状況では役に立ちます. Specifies whether the operator represents a ‘fence’, such as a parenthesis. This attribute generally has no direct effect on the visual rendering, but may be useful in specific cases, such as non-visual renderers. |
||
separator | "true" | "false" | 演算子辞書による (false) set by dictionary |
演算子が, ‘区切り’または句読点を表しているかどうか指定します. この属性は一般に視覚的描画に直接の影響はありませんが, 視覚的でない表現ソフトウェアといった特定の状況では役に立ちます. Specifies whether the operator represents a ‘separator’, or punctuation. This attribute generally has no direct effect on the visual rendering, but may be useful in specific cases, such as non-visual renderers. |
||
lspace | 長さ length |
演算子辞書による (thickmathspace) set by dictionary |
演算子の前に現れる空白を指定します. 3.2.5.6.4 演算子の周りの空白を参照して下さい. (前とは, RTL(右から左)の文脈では右を指すことに注意して下さい. 3.1.5 方向を参照して下さい.) Specifies the leading space appearing before the operator; see 3.2.5.6.4 Spacing around an operator. (Note that before is on the right in a RTL context; see 3.1.5 Directionality.) |
||
rspace | 長さ length |
演算子辞書による (thickmathspace) set by dictionary |
演算子の後ろに現れる空白を指定します. 3.2.5.6.4 演算子の周りの空白を参照して下さい. (後ろとは, RTL(右から左)の文脈では左を指すことに注意して下さい. 3.1.5 方向を参照して下さい.) Specifies the trailing space appearing after the operator; see 3.2.5.6.4 Spacing around an operator. (Note that after is on the left in a RTL context; see 3.1.5 Directionality.) |
||
stretchy | "true" | "false" | 演算子辞書による (false) set by dictionary |
演算子が, 隣接した要素の内容の大きさまで引き伸ばされるべきか指定します. 3.2.5.7 演算子, かっこ, アクセントを引き伸ばすを参照して下さい. Specifies whether the operator should stretch to the size of adjacent material; see 3.2.5.7 Stretching of operators, fences and accents. |
||
symmetric | "true" | "false" | 演算子辞書による (false) set by dictionary |
演算子が引き伸ばされる際に数学の軸に対して左右対称を保つべきかどうか指定します. この値は, 縦に引き伸ばされる場合にしか適用されないことに注意して下さい. 3.2.5.7 演算子, かっこ, アクセントを引き伸ばすを参照して下さい. Specifies whether the operator should be kept symmetric around the math axis when stretchy. Note this property only applies to vertically stretched symbols. See 3.2.5.7 Stretching of operators, fences and accents. |
||
maxsize | 長さ length |
演算子辞書による (無限大) set by dictionary (unbounded) |
演算子が引き伸ばされる際の最大の大きさを指定します. 3.2.5.7 演算子, かっこ, アクセントを引き伸ばすを参照して下さい. 値が与えられない場合, 最大の大きさは無限大です. 単位の無い値や百分率の場合, 引き伸ばさない字形の大きさである参照先の大きさの倍数を意味します. 値を提供することと同じでない, 利用可能な値だった"infinity"はMathML 4では非推奨です. Specifies the maximum size of the operator when stretchy; see 3.2.5.7 Stretching of operators, fences and accents. If not given, the maximum size is unbounded. Unitless or percentage values indicate a multiple of the reference size, being the size of the unstretched glyph. MathML 4 deprecates "infinity" as possible value as it is the same as not providing a value. |
||
minsize | 長さ length |
演算子辞書による (100%) set by dictionary |
演算子が引き伸ばされる際の最小の大きさを指定します. 3.2.5.7 演算子, かっこ, アクセントを引き伸ばすを参照して下さい. 単位の無い値や百分率の場合, 引き伸ばさない字形の大きさである参照先の大きさの倍数を意味します. Specifies the minimum size of the operator when stretchy; see 3.2.5.7 Stretching of operators, fences and accents. Unitless or percentage values indicate a multiple of the reference size, being the size of the unstretched glyph. |
||
largeop | "true" | "false" | 演算子辞書による (false) set by dictionary |
演算子が‘大きい’演算子と見なされるか, つまり, (TEXの\displaystyleのように利用される)displaystyle =true のときに通常より大きく描画するかどうか指定します. 大きい演算子は, 例えばU+222BやU+220F(実体int や実体prod )を含みます. より詳細については3.1.6 displaystyleとscriptlevelを参照して下さい.Specifies whether the operator is considered a ‘large’ operator, that is, whether it should be drawn larger than normal when displaystyle =true
(similar to using TEX's \displaystyle ).
Examples of large operators include U+222B and U+220F
(entities int and prod ).
See 3.1.6 Displaystyle and Scriptlevel for more discussion.
|
||
movablelimits | "true" | "false" | 演算子辞書による (false) set by dictionary |
対象の演算子の下または上に付いている記号を, displaystyle がfalseのときに, より密に詰まった下付き添え字または上付き添え字の位置に‘移動する’かどうか指定します. 典型的なmovablelimits =true の演算子は, 例えばU+2211やU+220F(実体sum や実体prod ), また, 実体lim があります. より詳細については3.1.6 displaystyleとscriptlevelを参照して下さい.Specifies whether under- and overscripts attached to this operator ‘move’ to the more compact sub- and superscript positions when displaystyle is false.
Examples of operators that typically have movablelimits =true
are U+2211 and U+220F
(entitites sum , prod ),
as well as lim .
See 3.1.6 Displaystyle and Scriptlevel for more discussion.
|
||
accent | "true" | "false" | 演算子辞書による (false) set by dictionary |
演算子が下または上に付く記号として使われる場合に, アクセント(発音記号)として扱われるべきどうかを指定します. munder , mover , munderover を参照して下さい.注意:MathMLコアとの互換性から, この属性のある場所が mover やmunderover で囲まれている場合, accent =true を使用します.Specifies whether this operator should be treated as an accent (diacritical mark) when used as an underscript or overscript; see munder ,
mover
and munderover .
Note: for compatibility with MathML Core, use accent =true on
the enclosing mover and munderover in place of this attribute.
|
次に示す属性は改行したりしなかったりするときに影響を与えたり, 改行しようとする場合に実際に改行するかに影響を与えたりします.
The following attributes affect when a linebreak does or does not occur, and the appearance of the linebreak when it does occur.
名前 Name |
値 values |
既定値 default |
linebreak | "auto" | "newline" | "nobreak" | "goodbreak" | "badbreak" | auto |
演算子のところで改行することが望ましいか指定します. 既定値のauto は, 描画ソフトウェアが改行するかどうか決めるのに既定の改行アルゴリズムを使用すべきことを意図します. newline は強制的に改行するために使用します. 自動で改行する場合に, nobreak は改行禁止を, goodbreak は適切な場所であることを, badbreak は不適切な場所であることを示します.Specifies the desirability of a linebreak occurring at this operator: the default auto indicates the renderer should use its default
linebreaking algorithm to determine whether to break;
newline is used to force a linebreak;
for automatic linebreaking, nobreak forbids a break;
goodbreak suggests a good position;
badbreak suggests a poor position.
|
||
lineleading | 長さ length |
継承する (100%) inherited |
改行の後の縦方向の空白の量を指定します. 背の高い行に対して, 改行のときにたくさん空けるかを明確にします. 描画ソフトウェアは適切な既定値を自由に選べます. Specifies the amount of vertical space to use after a linebreak. For tall lines, it is often clearer to use more leading at linebreaks. Rendering agents are free to choose an appropriate default. |
||
linebreakstyle | "before" | "after" | "duplicate" | "infixlinebreakstyle" | 演算子辞書による (before) set by dictionary |
演算子のところで改行する場合に, 演算子の‘前’か‘後ろ’かどこで改行するか, もしくは演算子を2度繰り返すか指定します. before は, 演算子を新しい行の先頭にします(ただし, 字下げされるかもしれません). after は, 演算子を改行前の行の最後にします. duplicate は演算子を両方に置きます. infixlinebreakstyle は, 行途中の演算子であることを指定する値として使われます. この値は(before ,
after , duplicate のいずれかで), ソフトウェアによって指定されるか, mstyle によって決められます. (before が最も一般的な改行の仕方です.)Specifies whether a linebreak occurs ‘before’ or ‘after’ the operator when a linebreak occurs on this operator; or whether the operator is duplicated. before causes the operator to appear at the beginning of the new line
(but possibly indented);
after causes it to appear at the end of the line before the break.
duplicate places the operator at both positions.
infixlinebreakstyle uses the value that has been specified for
infix operators; this value (one of before ,
after or duplicate ) can be specified by
the application or bound by mstyle
(before corresponds to the most common style of linebreaking).
|
||
linebreakmultchar | 文字列 string |
継承する (⁢) inherited |
⁢演算子が改行のところで見えるようになる場合に使用される文字を指定します. 例えば, linebreakmultchar="·" は, 中点として掛け算の記号を見えるようにします.Specifies the character used to make an ⁢ operator visible at a linebreak. For example, linebreakmultchar="·" would make the
multiplication visible as a center dot.
|
隣接したmo
要素やmspace
要素におけるlinebreak
の値は相互作用しません. mo
要素においてlinebreak
=nobreak
であっても, それ自体は前後の(場合によっては入れ子になる)mo
要素やmspace
要素での改行を禁止せず, 前後のmo
要素のlinebreakstyle
属性と相互作用しません. linebreak
=nobreak
は, その他の状況では全て, mo
要素の前後どちらであっても改行を妨げます.
linebreak
values on adjacent mo
and mspace
elements do
not interact; linebreak
=nobreak
on an mo
does
not, in itself, inhibit a break on a preceding or following (possibly nested)
mo
or mspace
element and does not interact with the linebreakstyle
attribute value of the preceding or following mo
element.
It does prevent breaks from occurring on either side of the mo
element in all other situations.
これから示す属性は, 数式を形作っている行の字下げに影響を与えます. 第一に, これらの属性は自動もしくは手動で改行に続く行の位置を制御します. ただし, indentalignfirst
とindentshiftfirst
は, 改行のない単一の数式の行も制御します. これらの属性がmo
要素やmspace
要素で使われるとき, その要素で改行が行われた場合にそれらの属性は適用されます. これらの属性がmstyle
要素やmath
要素で使われるとき, その要素の中で何らかの改行が行われた場合に利用される書式の既定値を定めています. 手動で改行を記述することが大変望ましい場合を除いて, これらの属性の多くは, mstyle
要素やmath
要素の中で最も役に立つことに注意して下さい.
The following attributes affect indentation of the lines making up a formula.
Primarily these attributes control the positioning of new lines following a linebreak,
whether automatic or manual. However, indentalignfirst
and indentshiftfirst
also control the positioning of a single line formula without any linebreaks.
When these attributes appear on mo
or mspace
they apply if a linebreak occurs
at that element.
When they appear on mstyle
or math
elements, they determine
defaults for the style to be used for any linebreaks occurring within.
Note that except for cases where heavily marked-up manual linebreaking is desired,
many of these attributes are most useful when bound on an
mstyle
or math
element.
利用可能な幅や現在のフォントといった描画環境が, 常にMathMLの著者にとって利用可能な訳ではないことに注意して下さい. 描画ソフトウェアは, 残りの幅が数式を有効に表示するのに小さ過ぎる行や, 残りの幅が利用可能な行全体の幅より大きい行に対して, これらの属性の値を無視してもよいです.
Note that since the rendering context, such as the available width and current font, is not always available to the author of the MathML, a renderer may ignore the values of these attributes if they result in a line in which the remaining width is too small to usefully display the expression or if they result in a line in which the remaining width exceeds the available linewrapping width.
名前 Name |
値 values |
既定値 default |
indentalign | "left" | "center" | "right" | "auto" | "id" | 継承する (auto) inherited |
mrow の中で改行が行われる場合の行の位置揃えを指定します. 後の方の属性の値の議論を参照して下さい.Specifies the positioning of lines when linebreaking takes place within an mrow ;
see below for discussion of the attribute values.
|
||
indentshift | 長さ length |
継承する (0) inherited |
indentalign で決められた場所からの追加の字下げの幅を指定します. 値が百分率の場合, 値はMathML描画ソフトウェアが利用できる水平方向の空白, すなわち3.1.7 式の改行で指定されている改行に使われる現在の対象の幅に関係します. 注意:単位の無い値は, MathML 3では認められており, 百分率の値と同じように扱われていました. しかし, 単位の無い値は, MathML 4では非推奨です.pecifies an additional indentation offset relative to the position determined by indentalign .
When the value is a percentage value,
the value is relative to the
horizontal space that a MathML renderer has available, this is the current target
width as used for
linebreaking as specified in 3.1.7 Linebreaking of Expressions.
Note: numbers without units were allowed in MathML 3 and treated similarly to percentage values,
but unitless numbers are deprecated in MathML 4.
|
||
indenttarget | 参照先のid idref |
継承する (無し) inherited (none) |
indentalign =id のときに字下げされる行の水平方向の位置を決める基準となる他の要素のidを指定します. 式の相互作用アルゴリズムを認めていることから, 指定された要素が現在のmath 要素の外側にあってもよいこと, もしくは指定された要素がmphantom のような見えない要素でもよいことに注意して下さい. ただし, 参照するより前になければなりません. 与えられた描画ソフトウェアから利用できないidや, 揃えることが認められない場所のidを示していてもよいです. そのような場合, indentalign はauto として取り扱われるべきです.Specifies the id of another element whose horizontal position determines the position of indented lines when indentalign =id .
Note that the identified element may be outside of the current
math element, allowing for inter-expression alignment,
or may be within invisible content such as mphantom ;
it must appear before being referenced, however.
This may lead to an id being unavailable to a given renderer
or in a position that does not allow for alignment.
In such cases, the indentalign should revert to auto .
|
||
indentalignfirst | "left" | "center" | "right" | "auto" | "id" | "indentalign" | 継承する (indentalign) inherited |
数式の最初の行に使用する字下げの書式を指定します. (既定値の)indentalign という値は, 一般の行と同じ字下げの方法を意味します.Specifies the indentation style to use for the first line of a formula; the value indentalign (the default) means
to indent the same way as used for the general line.
|
||
indentshiftfirst | 長さ | "indentshift" length |
継承する (indentshift) inherited |
数式の最初の行に使用する字下げの幅を指定します. (既定値の)indentshift という値は, 一般の行と同じ字下げの幅を意味します. 百分率や単位の無い値はindentshift で述べたことと同じように解釈されます.Specifies the offset to use for the first line of a formula; the value indentshift (the default) means
to use the same offset as used for the general line.
Percentage values and numbers without unit are interpreted as described for indentshift .
|
||
indentalignlast | "left" | "center" | "right" | "auto" | "id" | "indentalign" | 継承する (indentalign) inherited |
現在のmrow で改行された最後の行に使用する字下げの書式を指定します. (既定値の)indentalign という値は, 一般の行と同じ字下げの方法を意味します. 実際に2つの行があるとき, この属性の値はindentalign より優先して2つ目の行に使用されるべきです.Specifies the indentation style to use for the last line when a linebreak occurs within a given mrow ;
the value indentalign (the default) means
to indent the same way as used for the general line.
When there are exactly two lines, the value of this attribute should
be used for the second line in preference to indentalign .
|
||
indentshiftlast | 長さ | "indentshift" length |
継承する (indentshift) inherited |
現在のmrow で改行された最後の行に使用する字下げの幅を指定します. (既定値の)indentshift という値は, 一般の行と同じ字下げの方法を意味します. 実際に2つの行があるとき, この属性の値はindentshift より優先して2つ目の行に使用されるべきです. 百分率や単位の無い値はindentshift で述べたことと同じように解釈されます.Specifies the offset to use for the last line when a linebreak occurs within a given mrow ;
the value indentshift (the default) means
to indent the same way as used for the general line.
When there are exactly two lines, the value of this attribute should
be used for the second line in preference to indentshift .
Percentage values and numbers without unit are interpreted as described for indentshift .
|
indentalignの正当な値は次のとおりです.
The legal values of indentalign are:
値 Value |
意味 Meaning |
left | 次の行の左端を式全体の幅の左端に揃える Align the left side of the next line to the left side of the line wrapping width |
center | 次の行の中心を式全体の幅の中心に揃える Align the center of the next line to the center of the line wrapping width |
right | 次の行の右端を式全体の幅の右端に揃える Align the right side of the next line to the right side of the line wrapping width |
auto |
(既定値)描画ソフトウェアの通常の字下げ方法を利用する. この方法は, 固定された値だったり, mrowが入れ子になることによる要素の深さに合わせて変える方法だったり, 他の類似した方法だったりします. (default) indent using the renderer's default indenting style; this may be a fixed amount or one that varies with the depth of the element in the mrow nesting or some other similar method. |
id | 次の行の左端を(indenttarget により与えられた)idrefにより指定されている要素の左端に揃えます. そのような要素が無い場合, indentalign の値としてauto を使用したことになります.Align the left side of the next line to the left side of the element referenced by the idref (given by indenttarget );
if no such element exists, use auto as the indentalign value |
<mo> + </mo>
<mo> < </mo>
<mo> ≤ </mo>
<mo> <= </mo>
<mo> ++ </mo>
<mo> ∑ </mo>
<mo> .NOT. </mo>
<mo> and </mo>
<mo> ⁢<!--InvisibleTimes--> </mo>
<mo mathvariant='bold'> + </mo>
これらの例のmo
要素は, 後で述べる演算子辞書を利用してfence
属性またはseparator
属性の値を決めることができるので, それらの属性を明確に持つ必要はないことに注意して下さい. これらの例は, 3.3.8 かっこの組で囲まれた式 <mfenced>
で説明するmfenced
要素を用いてコード化することができるものもあります.
Note that the mo
elements in these examples
don't need explicit fence
or separator
attributes,
since these can be found using the
operator dictionary as described below. Some of these examples could also
be encoded using the mfenced
element described in
3.3.8 Expression Inside Pair of Fences
<mfenced>
.
(a+b)
<mrow>
<mo> ( </mo>
<mrow>
<mi> a </mi>
<mo> + </mo>
<mi> b </mi>
</mrow>
<mo> ) </mo>
</mrow>
[0,1)
<mrow>
<mo> [ </mo>
<mrow>
<mn> 0 </mn>
<mo> , </mo>
<mn> 1 </mn>
</mrow>
<mo> ) </mo>
</mrow>
f(x,y)
<mrow>
<mi> f </mi>
<mo> ⁡<!--ApplyFunction--> </mo>
<mrow>
<mo> ( </mo>
<mrow>
<mi> x </mi>
<mo> , </mo>
<mi> y </mi>
</mrow>
<mo> ) </mo>
</mrow>
</mrow>
ここで示す伝統的な数学表記で見えない
演算子は, 単に何も書かないのではなくmo
要素と一緒に特定の文字(または, 実体参照)を用いて表現すべきです. 見えない演算子
として用いられる文字は次のとおりです.
Certain operators that are invisible
in traditional
mathematical notation should be represented using specific characters (or entity
references) within mo
elements, rather than simply
by nothing. The characters used for these invisible
operators
are:
文字 Character |
実体名 Entity name |
短い名前 Short name |
U+2061 | ApplyFunction |
af |
U+2062 | InvisibleTimes |
it |
U+2063 | InvisibleComma |
ic |
U+2064 |
上の表の例のMathML表現は次のとおりです.
The MathML representations of the examples in the above table are:
<mrow>
<mi> f </mi>
<mo> ⁡<!--ApplyFunction--> </mo>
<mrow>
<mo> ( </mo>
<mi> x </mi>
<mo> ) </mo>
</mrow>
</mrow>
<mrow>
<mi> sin </mi>
<mo> ⁡<!--ApplyFunction--> </mo>
<mi> x </mi>
</mrow>
<mrow>
<mi> x </mi>
<mo> ⁢<!--InvisibleTimes--> </mo>
<mi> y </mi>
</mrow>
<msub>
<mi> m </mi>
<mrow>
<mn> 1 </mn>
<mo> ⁣<!--InvisibleComma--> </mo>
<mn> 2 </mn>
</mrow>
</msub>
<mrow>
<mn> 2 </mn>
<mo> ⁤ </mo>
<mfrac>
<mn> 3 </mn>
<mn> 4 </mn>
</mfrac>
</mrow>
mo
要素に対する典型的な描画の挙動は, 他のMathMLの素子要素よりも複雑です. そのため, mo
要素に対する描画の決まりをこの分割された小節で説明しています.
Typical visual rendering behaviors for mo
elements are more complex than for the other MathML token elements, so
the rules for rendering them are described in this separate
subsection.
全てのMathMLの描画の決まりと同じように, これらの決まりは必要条件というより提案であることに注意して下さい. 下記の説明は, 様々な描画属性の意図する効果を可能な限り明確にするために提供されています. ブラウザの実装での演算子に対する詳細な配置の決まりは, MathMLコアで示されています.
Note that, like all rendering rules in MathML, these rules are suggestions rather than requirements. The description below is given to make the intended effect of the various rendering attributes as clear as possible. Detailed layout rules for browser implementations for operators are given in MathML Core.
積分記号, プラス記号, かっこといったたくさんの数学記号は, 確立した予想できる伝統的な表記の利用方法を持っています. 典型的に, この利用方法によって, 特定の内容と特定のform
属性とで, mo
要素の属性の既定値を確かなものにしています. これらの属性の既定値は記号によって異なることから, 描画ソフトウェアが, mo
要素の内容とform
属性を結び付けた, mo
要素の属性の既定値から成る演算子辞書
(B. 演算子辞書参照)を持つことを, MathMLは期待しています. mo
要素が辞書に載っていない場合, mo
の属性の表のかっこ内に示した既定値が使われるべきです. なぜなら, この既定値は一般的な演算子で通常受け入れられるものだからです.
Many mathematical symbols, such as an integral sign, a plus sign,
or a parenthesis, have a well-established, predictable, traditional
notational usage. Typically, this usage amounts to certain default
attribute values for mo
elements with specific
contents and a specific form
attribute. Since these
defaults vary from symbol to symbol, MathML anticipates that renderers
will have an operator dictionary
of default attributes for
mo
elements (see B. Operator Dictionary) indexed by each
mo
element's content and form
attribute. If an mo
element is not listed in the
dictionary, the default values shown in parentheses in the table of
attributes for mo
should be used, since these
values are typically acceptable for a generic operator.
演算子の中には, 異なる描画特性を持つであろう複数の形式(前置, 中間, 後置)で登場することができるという意味で, 多重定義
されるものがあります. 例えば, +
は前置演算子にも中間演算子にもなります. 典型的に視覚的描画ソフトウェアは中間演算子の前後両方に空白を加えますが, 前置演算子については前にしか空白を加えません. form
属性は, 演算子辞書により複数の形式が利用可能な場合にどちらの形式を利用する仕様も認めており, 後で述べる既定値は絶対ではありません.
Some operators are overloaded
, in the sense that they can occur
in more than one form (prefix, infix, or postfix), with possibly
different rendering properties for each form. For example, +
can be
either a prefix or an infix operator. Typically, a visual renderer
would add space around both sides of an infix operator, while only in
front of a prefix operator. The form
attribute allows
specification of which form to use, in case more than one form is
possible according to the operator dictionary and the default value
described below is not suitable.
form
属性の値を内容から推測する効果的な検索の決まりがあるので, form
属性は通常, 明確には指定されません. form
属性が指定されておらず, 与えられた内容からmo
要素に対応する辞書の中の可能性がある形式が複数ある場合, 描画ソフトウェアは次に示すことに従がって形式を選ぶべきです(ただし, 後で述べるように装飾された演算子に対しては例外があります).
The form
attribute does not usually have to be
specified explicitly, since there are effective heuristic rules for
inferring the value of the form
attribute from the
context. If it is not specified, and there is more than one possible
form in the dictionary for an mo
element with
given content, the renderer should choose which form to use as follows
(but see the exception for embellished operators, described later):
(mrow
の引数の数や最初の引数を決めるのに空白のような引数(3.2.7 空白 <mspace/>
参照)を全て無視したうえで)演算子が複数の引数を持つmrow
の最初の引数であるのならば, 前置形式が使われます.
If the operator is the first argument in an mrow
with more than one argument
(ignoring all space-like arguments (see 3.2.7 Space <mspace/>
) in the
determination of both the length and the first argument), the prefix form
is used;
(空白のような引数を無視したうえで)演算子が複数の引数を持つmrow
の最後の引数であるのならば, 後置形式が使われます.
if it is the last argument in an mrow
with more than one argument
(ignoring all space-like arguments), the postfix
form is used;
暗黙または明確なmrow
の中にその演算子しか要素が無い場合や, 演算子が3.4 添え字の配置要素で一覧にされた要素の添え字の場所にある場合, 後置形式が使われます.
if it is the only element in an implicit or explicit mrow
and if it is in a script position of one of the elements listed in 3.4 Script and Limit Schemata,
the postfix form is used;
全ての他の状況で, 演算子がmrow
の一部でない場合も含めて, 中間形式が使われます.
in all other cases, including when the operator is not part of an
mrow
, the infix form is used.
上で述べたmrow
は省略されたmrow
でもよいことに注意して下さい, 3.1.3.1 省略された<mrow>
を参照して下さい.
Note that the mrow
discussed above may be inferred;
see 3.1.3.1 Inferred <mrow>
s.
始めの囲み文字はform
="prefix"
であるべきだし, 終わりの囲み文字はform
="postfix"
であるべきです. 区切り文字は通常infix
ですが, 常にではなく周囲の状況によります. 通常の演算子は, これらの値を通常, 明確に指定する必要はありません.
Opening fences should have form
="prefix"
,
and closing fences should have form
="postfix"
;
separators are usually infix
, but not always,
depending on their surroundings. As with ordinary operators,
these values do not usually need to be specified explicitly.
演算子が辞書で見つからず形式が特定できない場合, 描画ソフトウェアは, 中間, 後置, 前置といった好ましい順番で利用可能な形式の1つを使うべきです. 与えられたmo
要素の内容にどの形式も利用できない場合, 描画ソフトウェアはmo
属性の表でかっこで与えられている既定値を使用すべきです.
If the operator does not occur in the dictionary with the specified
form, the renderer should use one of the forms that is available
there, in the order of preference: infix, postfix, prefix; if no forms
are available for the given mo
element content, the
renderer should use the defaults given in parentheses in the table of
attributes for mo
.
mo
要素のform
属性の既定値を選ぶ上記の決まりには例外があります. 1つ以上の入れ子の下付き添え字, 上付き添え字, 周囲の文章または空白, 書式を変更する要素で装飾された
mo
要素は, 上記の決まりとは異なった挙動をします. それらの例外は(後で正確に定義する)装飾された演算子であり, mrow
の中での演算子全体の位置が上記の決まりによって解析され, 周囲の空白は核となっているmo
要素によってではなく, 演算子全体の形式に影響されます. ただし, 周囲の空白に影響を与える属性は, 核となっているmo
要素のものです(もしくは, 要素の辞書の中の項目によります).
There is one exception to the above rules for choosing an mo
element's default form
attribute. An mo
element that is
embellished
by one or more nested subscripts, superscripts,
surrounding text or whitespace, or style changes behaves differently. It is
the embellished operator as a whole (this is defined precisely, below)
whose position in an mrow
is examined by the above
rules and whose surrounding spacing is affected by its form, not the mo
element at its core; however, the attributes
influencing this surrounding spacing are taken from the mo
element at the core (or from that element's
dictionary entry).
例えば, の中のは, mrow
の中間の位置にあることから, 全体としては中間演算子と推測されます. ただし, 描画属性はを表しているmo
要素によって決められるか, 明確に指定されていない場合, 演算子辞書の<mo form="infix"> + </mo>
に対する項目によって決められるべきです. 装飾された演算子
の正確な定義は次のとおりです.
For example, the in
should be considered an infix operator as a whole, due to its position
in the middle of an mrow
, but its rendering
attributes should be taken from the mo
element
representing the
,
or when those are not specified explicitly,
from the operator dictionary entry for <mo form="infix"> +
</mo>
.
The precise definition of an embellished operator
is:
mo
要素.
an mo
element;
または,
msub
,
msup
,
msubsup
,
munder
,
mover
,
munderover
,
mmultiscripts
,
mfrac
,
semantics
(5.2 付加情報要素)
の1つで, その最初の引数が存在し, その引数が装飾された演算子であるもの.
or one of the elements
msub
,
msup
,
msubsup
,
munder
,
mover
,
munderover
,
mmultiscripts
,
mfrac
, or
semantics
(5.2 Annotation Elements), whose first argument exists and is an embellished
operator;
または,
mstyle
,
mphantom
,
mpadded
といった, 同じ引数を含んだmrow
が装飾された演算子となるような要素の1つ.
or one of the elements
mstyle
,
mphantom
, or
mpadded
,
such that an mrow
containing the same
arguments would be an embellished operator;
または, maction
要素で選択した式が存在し, その式が装飾された演算子であるもの.
or an maction
element whose selected
sub-expression exists and is an embellished operator;
または, mrow
でその引数が(順番は任意で)1つの装飾された演算子と0以上の空白のような要素からなるもの.
or an mrow
whose arguments consist (in any order)
of one embellished operator and zero or more space-like elements.
上の一覧にない, 干渉する囲っている要素がない場合に限り, 上の定義では入れ子になった装飾を認めていることに注意して下さい.
Note that this definition permits nested embellishment only when there are no intervening enclosing elements not in the above list.
全ての通常の演算子で著者がform
属性を指定する必要がないように, 上記の演算子の形式を選ぶ決まりと装飾された演算子の定義が選ばれています.
The above rules for choosing operator forms and defining
embellished operators are chosen so that in all ordinary cases it will
not be necessary for the author to specify a form
attribute.
演算子(または装飾された演算子)の周りに加えられた水平方向の空白の量は, mrow
の中でその演算子が現れたとき, lspace
属性とrspace
属性によって直接指定できます. lspace
とrspace
はRTL(右から左)の状況では, 前と後ろと解釈されることに注意して下さい. 慣習によれば, 引数をぴったりとくっつけがちな演算子は, 若干ゆったりとくっつける演算子より小さな空白の値を持ちます. この慣習は, MathML描画ソフトウェアに含まれる演算子辞書によって決まるべきです.
The amount of horizontal space added around an operator (or embellished operator),
when it occurs in an mrow
, can be directly
specified by the lspace
and rspace
attributes. Note that lspace
and rspace
should
be interpreted as leading and trailing space, in the case of RTL direction.
By convention, operators that tend to bind tightly to their
arguments have smaller values for spacing than operators that tend to bind
less tightly. This convention should be followed in the operator dictionary
included with a MathML renderer.
描画ソフトウェアは, 下付き添え字や上付き添え字で現れた演算子ほとんどに対し, TEXで行われているように空白を付けないことを選んでもよいです.
Some renderers may choose to use no space around most operators appearing within subscripts or superscripts, as is done in TEX.
視覚的でない表現ソフトウェアは, 空白の属性やここで述べた他の描画属性を, 描画する方法に類似した方法で取り扱うべきです. 例えば, よりたくさんの空白は, 聴覚表現ソフトウェアにおいてより長い休止に訳されるでしょう.
Non-graphical renderers should treat spacing attributes, and other rendering attributes described here, in analogous ways for their rendering medium. For example, more space might translate into a longer pause in an audio rendering.
4つの属性(stretchy
, symmetric
, maxsize
, minsize
)が, (場合によっては装飾された)演算子が他の要素の大きさに合うように引き伸ばされるがどうか, どのように引き伸ばされるかを管理しています. 演算子がstretchy
=true
という属性を持っているならば, 演算子(すなわち, 内容の個々の文字)は下に示す, フォントやフォント描画システムによって課されている制約である, 引き伸ばされる際の決まりに従います. 実際のところ, 典型的な描画ソフトウェアは, 文字の少数の集合だけを引き伸ばすことができ, 文字の大きさの一部の集合を生み出すことだけが完全に可能です.
Four attributes govern whether and how an operator (perhaps embellished)
stretches so that it matches the size of other elements: stretchy
, symmetric
, maxsize
, and minsize
. If an
operator has the attribute stretchy
=true
, then it (that is, each character in its content)
obeys the stretching rules listed below, given the constraints imposed by
the fonts and font rendering system. In practice, typical renderers will
only be able to stretch a small set of characters, and quite possibly will
only be able to generate a discrete set of character sizes.
MathMLは, 特定の文字や演算子を(水平または縦の)どちらの方向に引き伸ばすのか指定する準備はありません. むしろ, stretchy
=true
のとき, その文字にとってどちらの方向に引き伸ばすのも可能で適切であれば, どちらの方向にも引き伸ばすべきです. 描画ソフトウェアが文字を引き伸ばすことが可能ならば, 文字をどちらの方向に引き伸ばす方が適切かを判断するのは, 描画ソフトウェア次第です. ほとんどの文字は典型的な描画ソフトウェアによってほぼ一方向にしか引き伸ばされませんが, 描画ソフトウェアの中には斜めの矢印といったある特定の文字を両方の方向に独立して引き伸ばせるものもあります.
There is no provision in MathML for specifying in which direction
(horizontal or vertical) to stretch a specific character or operator;
rather, when stretchy
=true
it
should be stretched in each direction for which stretching is possible
and reasonable for that character.
It is up to the renderer to know in which directions it is reasonable to
stretch a character, if it can stretch the character.
Most characters can be stretched in at most one direction
by typical renderers, but some renderers may be able to stretch certain
characters, such as diagonal arrows, in both directions independently.
minsize
属性とmaxsize
属性は, (方向を限定せずに)引き伸ばす限度を決めます. 2つの属性は, 演算子自身の方向または引き伸ばす方向の通常の大きさの倍数, もしくは単位を用いた絶対量で与えられます. 例えば, 文字がmaxsize
=300%
であるならば, その文字の(引き伸ばす前の)通常の大きさの3倍を超えて伸ばすことはできません.
The minsize
and maxsize
attributes limit the amount of stretching (in either direction). These two
attributes are given as multipliers of the operator's normal size in the
direction or directions of stretching, or as absolute sizes using units.
For example, if a character has maxsize
=300%
, then it
can grow to be no more than three times its normal (unstretched) size.
symmetric
属性は, 文字の中心の軸の上の高さと下の深さを(高さと深さの両方をそれぞれの最大にすることで)等しくさせるかどうか管理します. symmetric
=false
と設定されている状況の例としては, 正方行列でない行列の掛け算でよく用いられる, 軸で揃えられていない行列の周りのかっこが挙げられます. この場合, 行列を覆うようにかっこを引き伸ばそうとしたとき, かっこを対称に引き伸ばすと, 行列の片方の端からかっこが突き出すことになります. symmetric
属性は文字が縦方向に引き伸ばされる場合に適用されます(他の方向は無視されます).
The symmetric
attribute governs whether the
height and
depth above and below the axis of the
character are forced to be equal
(by forcing both height and depth to become the maximum of the two).
An example of a situation where one might set
symmetric
=false
arises with parentheses around a matrix not aligned on the axis, which
frequently occurs when multiplying non-square matrices. In this case, one
wants the parentheses to stretch to cover the matrix, whereas stretching
the parentheses symmetrically would cause them to protrude beyond one edge
of the matrix. The symmetric
attribute only applies
to characters that stretch vertically (otherwise it is ignored).
引き伸ばされるmo
要素が(この節の前の方で定義したように)装飾されているのならば, 核となるmo
要素は装飾された演算子全体の内容に基づく大きさに引き伸ばされます. すなわち, 装飾が無い場合と同じように引き伸ばされます. 例えば, (典型的に演算子辞書によって引き伸ばされるものと設定される)次に示す例のかっこは, 互いに同じ大きさに引き伸ばされ, さらに同じ縦方向の間隔を保つでしょう.
If a stretchy mo
element is embellished (as defined
earlier in this section), the mo
element at its core is
stretched to a size based on the context of the embellished operator
as a whole, i.e. to the same size as if the embellishments were not
present. For example, the parentheses in the following example (which
would typically be set to be stretchy by the operator dictionary) will be
stretched to the same size as each other, and the same size they would
have if they were not underlined and overlined, and furthermore will
cover the same vertical interval:
<mrow>
<munder>
<mo> ( </mo>
<mo> _ </mo>
</munder>
<mfrac>
<mi> a </mi>
<mi> b </mi>
</mfrac>
<mover>
<mo> ) </mo>
<mo> ‾ </mo>
</mover>
</mrow>
このことは, 後で述べる引き伸ばすときの決まりがmo
要素そのものにではなく, 装飾された演算子全体の内容に適用されなければならないことを意味していることに注意して下さい.
Note that this means that the stretching rules given below must
refer to the context of the embellished operator as a whole, not just
to the mo
element itself.
この例は, 既定値がstretchy
=true
であるにも関わらず, かっこを引き伸ばさないために, その最大の大きさを設定する方法を示しています.
This shows one way to set the maximum size of a parenthesis so that
it does not grow, even though its default value is
stretchy
=true
.
<mrow>
<mo maxsize="100%">(</mo>
<mfrac>
<msup><mi>a</mi><mn>2</mn></msup>
<msup><mi>b</mi><mn>2</mn></msup>
</mfrac>
<mo maxsize="100%">)</mo>
</mrow>
上の例は, 既定値ではと描画されるのとは対称的に, と描画されます.
The above should render as as opposed to the default rendering .
それぞれのかっこの大きさは独立していることに注意して下さい. これらのかっこの一方だけがmaxsize
=100%
だった場合, これらのかっこは違った大きさで描画されます.
Note that each parenthesis is sized independently; if only one of
them had maxsize
=100%
, they would render with different
sizes.
引き伸ばされる演算子を管理する一般的な決まりは次のとおりです.
The general rules governing stretchy operators are:
引き伸ばされる演算子がmrow
直下の式, または表の行の中のmtd
要素直下の唯一の式だった場合, その演算子はminsize
属性またはmaxsize
属性によって引き伸ばされることを制限されない限り, mrow
要素や表の行直下の引き伸ばされていない式の(軸の上の)高さと(軸の下の)深さを確保するように引き伸ばされるべきです.
If a stretchy operator is a direct sub-expression of an mrow
element, or is the sole direct sub-expression of an
mtd
element in some row of a table, then it should
stretch to cover the height and depth (above and below the axis) of the non-stretchy direct sub-expressions in the
mrow
element or table row, unless stretching is
constrained by minsize
or maxsize
attributes.
装飾された引き伸ばされる演算子の場合, 上の決まりは核となる引き伸ばされる演算子に適用されます.
In the case of an embellished stretchy operator, the preceding rule applies to the stretchy operator at its core.
上の決まりは, mrow
要素が省略されている状況にも適用されます.
The preceding rules also apply in situations where the mrow
element is inferred.
対称に引き伸ばす決まりは, symmetric
=true
の場合や, mrow
の中, もしくはrowalign
の値がbaseline
またはaxis
のmtr
の中で引き伸ばす場合にのみ適用されます.
The rules for symmetric stretching only apply if
symmetric
=true
and if the stretching occurs in an mrow
or in an mtr
whose rowalign
value is either baseline
or axis
.
次のアルゴリズムが, 縦に引き伸ばされる演算子の高さや深さに適用されます.
The following algorithm specifies the height and depth of vertically stretched characters:
maxheight
とmaxdepth
は, 同じmrow
またはmtr
の中の引き伸ばされていない他の要素の最大の高さと深さです. axisは欧文ベースラインの上の数学の軸の高さです.
Let maxheight
and maxdepth
be the maximum height and depth of the
non-stretchy siblings within the same mrow
or mtr
.
Let axis be the height of the math axis above the baseline.
引き伸ばされる演算子にminsize
またはmaxsize
の値が設定されていたとしても, それらの値は, mrow
の中の最大の高さと深さの最初の計算には使用されないことに注意して下さい.
Note that even if a minsize
or maxsize
value is set on a stretchy operator,
it is not used in the initial calculation of the maximum height and depth of an mrow
.
symmetric
=true
のとき, 引き伸ばされる演算子の高さと深さの計算は次のとおりです.
If symmetric
=true
, then the computed height
and depth of the stretchy operator are:
height=max(maxheight-axis, maxdepth+axis) + axis
depth =max(maxheight-axis, maxdepth+axis) - axis
そうでない場合, 高さと深さは次のとおりです.
Otherwise the height and depth are:
height= maxheight
depth = maxdepth
合計の大きさ(= height+depth)がmaxsizeより小さい, もしくはmaxsizeより大きい場合, 決められた大きさに合致するまで, 高さと深さの両方を比例させながら, 増やすか減らすかします.
If the total size = height+depth is less than minsize or greater than maxsize, increase or decrease both height and depth proportionately so that the effective size meets the constraint.
通常, ほとんどの縦の矢印は, ほとんどの始まりや終わりの囲い文字と同様に, 演算子辞書の既定値で引き伸ばさされると定義されています.
By default, most vertical arrows, along with most opening and closing fences are defined in the operator dictionary to stretch by default.
表の要素(つまり, mtd
要素)の中にある引き伸ばされる演算子の場合, 上記の決まりは, 引き伸ばされる演算子を含む行の各要素がちょうど1つの行を対象としていると仮定しています. (同様に, rowspan
属性の値は, 演算子を構成する要素を含む行の要素全てに対して, 1であると仮定されています.) そうでない場合, 演算子は, 演算子が対象としている複数の行の中に収まっている要素全てを覆うように縦にだけ引き伸ばされるべきです. 表の要素が, 引き伸ばされる演算子がある要素の対象となっていない行にまたがっている場合, その要素は無視されます. rowspan
属性の詳細については3.5.4.2 属性を参照して下さい.
In the case of a stretchy operator in a table cell (i.e. within an
mtd
element), the above rules assume each cell of
the table row containing the stretchy operator covers exactly one row.
(Equivalently, the value of the rowspan
attribute is
assumed to be 1 for all the table cells in the table row, including
the cell containing the operator.) When this is not the case, the
operator should only be stretched vertically to cover those table
cells that are entirely within the set of table rows that the
operator's cell covers. Table cells that extend into rows not covered
by the stretchy operator's table cell should be ignored. See
3.5.4.2 Attributes for details about the rowspan
attribute.
引き伸ばされる演算子, または装飾された引き伸ばされる演算子が, munder
要素, mover
要素, munderover
要素直下の式の場合, もしくは, 表(mtable
参照)の列の中のmtd
要素直下の唯一の式の場合, その演算子もしくは核となっているmo
要素は, 前に述べた制約の範囲内で与えられた要素(または表の同じ列の)他の直下の式の幅を覆うように引き伸ばされます.
If a stretchy operator, or an embellished stretchy operator,
is a direct sub-expression of an munder
,
mover
, or munderover
element,
or if it is the sole direct sub-expression of an mtd
element in some
column of a table (see mtable
), then it, or the mo
element at its core, should stretch to cover
the width of the other direct sub-expressions in the given element (or
in the same table column), given the constraints mentioned above.
装飾された引き伸ばされる演算子の場合, 上の決まりは核となる引き伸ばされる演算子に適用されます.
In the case of an embellished stretchy operator, the preceding rule applies to the stretchy operator at its core.
通常, ほとんどの水平の矢印といくつかのアクセントが水平に引き伸ばされます.
By default, most horizontal arrows and some accents stretch horizontally.
表の要素(つまり, mtd
要素)の中にある引き伸ばされる演算子の場合, 上記の決まりは, 引き伸ばされる演算子を含む列の各要素がちょうど1つの列を対象としていると仮定しています. (同様に, columnspan
属性の値は, 演算子を構成する要素を含む列の要素全てに対して, 1であると仮定されています.) そうでない場合, 演算子は, 演算子が対象としている複数の列の中に収まっている要素全てを覆うように水平にだけ引き伸ばされるべきです. 表の要素が, 引き伸ばされる演算子がある要素の対象となっていない列にまたがっている場合, その要素は無視されます. rowspan
属性の詳細については3.5.4.2 属性を参照して下さい.
In the case of a stretchy operator in a table cell (i.e. within an
mtd
element), the above rules assume each cell of
the table column containing the stretchy operator covers exactly one
column. (Equivalently, the value of the columnspan
attribute is assumed to be 1 for all the table cells in the table row,
including the cell containing the operator.) When this is not the
case, the operator should only be stretched horizontally to cover
those table cells that are entirely within the set of table columns
that the operator's cell covers. Table cells that extend into columns
not covered by the stretchy operator's table cell should be
ignored. See 3.5.4.2 Attributes for details about the rowspan
attribute.
水平に引き伸ばす決まりは, mtable
を利用して整えられた可換図式のために矢印を引き伸ばすこと認めているmtd
要素にも適用されます. 水平に引き伸ばすための決まりは次に示すような例を作るための文字列も対象としています.
The rules for horizontal stretching include mtd
elements to allow arrows to stretch for use in commutative diagrams
laid out using mtable
. The rules for the horizontal
stretchiness include scripts to make examples such as the following
work:
<mrow>
<mi> x </mi>
<munder>
<mo> → </mo>
<mtext> maps to </mtext>
</munder>
<mi> y </mi>
</mrow>
引き伸ばされる演算子が, 引き伸ばされる必要がないとき(つまり, 上で述べた状況にない, または引き伸ばして合致すべき他の式がないとき), その演算子はフォントと現在のmathsize
で決められた標準の(引き伸ばされていない)大きさになります.
If a stretchy operator is not required to stretch (i.e. if it is
not in one of the locations mentioned above, or if there are no other
expressions whose size it should stretch to match), then it has the
standard (unstretched) size determined by the font and current
mathsize
.
引き伸ばされる演算子が引き伸ばされる必要はあるが, (上で述べたように)構成している要素の中の他の全ての式も引き伸ばされるとき, 引き伸ばすことができる全ての要素が, 構成している中身の全ての要素の引き伸ばされていない通常の大きさの中での最大に, 可能であれば引き伸ばされるべきです. minsize
またmaxsize
の値が最大まで引き伸ばすことを妨げるのであれば, 指定された(最小または最大の)値が使用されます.
If a stretchy operator is required to stretch, but all other expressions
in the containing element (as described above) are also stretchy,
all elements that can stretch should grow to the maximum of the normal
unstretched sizes of all elements in the containing object, if they can
grow that large. If the value of minsize
or maxsize
prevents
that, then the specified (min or max) size is
used.
例えば, 縦に引き伸ばされる演算子以外含んでいないmrow
の中では, それぞれの演算子が, それらの引き伸ばされる前の通常の大きさの中での最大の大きさまで, 他の属性によって演算子の挙動が上書きされないのであれば, 引き伸ばされるべきです. もちろん, フォントやフォントの描画による制限が, おおよそ同じ大きさにしかならない引き伸ばされる大きさを最終的に決めてもよいです.
For example, in an mrow
containing nothing but
vertically stretchy operators, each of the operators should stretch to
the maximum of all of their normal unstretched sizes, provided no
other attributes are set that override this behavior. Of course,
limitations in fonts or font rendering may result in the final,
stretched sizes being only approximately the same.
mtext
要素は, 文章自体として描画されるべき任意の文章を表すのに使われます. 一般に, mtext
要素は, 注釈の文章を示すよう意図されています.
An mtext
element is used to represent
arbitrary text that should be rendered as itself. In general, the
mtext
element is intended to denote commentary
text.
明確に表記上の役割を定義されている文章は, miやmoを用いてより適切に記述されるであろうことに注意して下さい.
Note that text with a clearly defined notational role might be more appropriately marked up using mi or mo.
mtext
要素は描画できる空白
を含めるのに使うことができます. すなわち, 周囲の要素の場所を変更しようとする見えない文字を含められます. 視覚的でない媒体において, そのような文字は, 聴覚表現ソフトウェアでの, 読む間隔を伸ばしたり短くしたりする効果や, 効果的なリズムを生み出すといった代わりの効果を持とうとします. なお, 2.1.7 入力された空白を縮小するを参照して下さい.
An mtext
element can also contain
renderable whitespace
, i.e. invisible characters that are
intended to alter the positioning of surrounding elements. In non-graphical
media, such characters are intended to have an analogous effect, such as
introducing positive or negative time delays or affecting rhythm in an
audio renderer. However, see 2.1.7 Collapsing Whitespace in Input.
mtext
要素は, 3.2.2 素子要素に共通の数学書式属性で一覧にした属性を持っています.
mtext
elements accept the attributes listed in
3.2.2 Mathematics style attributes common to token elements.
また, 空白のような要素
の正式なグループ化についての警告は3.2.7 空白 <mspace/>
を, そのような要素を微調整
のために利用することについての警告は[MathMLメモ]を参照して下さい.
See also the warnings about the legal grouping of space-like elements
in 3.2.7 Space <mspace/>
, and about the use of
such elements for tweaking
in [MathML-Notes].
<mrow>
<mtext> Theorem 1: </mtext>
<mtext>  <!--ThinSpace--> </mtext>
<mtext>  <!--ThickSpace--> <!--ThickSpace--> </mtext>
<mtext> /* a comment */ </mtext>
</mrow>
mspace
空要素は, 属性により設定された何らかの望ましい大きさの空白を表します. また, mspace
要素は, 視覚的な描画ソフトウェアに改行の提案をするのにも利用できます. 属性の既定値は, 典型的に描画に何の影響も与えないように選ばれていることに注意して下さい. よって, mspace
要素は一般に, 明確に指定された1つ以上の属性値と一緒に利用されます.
An mspace
empty element represents a blank
space of any desired size, as set by its attributes. It can also be
used to make linebreaking suggestions to a visual renderer.
Note that the default values for attributes have been chosen so that
they typically will have no effect on rendering. Thus, the mspace
element is generally used with one
or more attribute values explicitly specified.
後で書く空白のような要素
の正式なグループ化についての警告と, [MathMLメモ]の中の微調整
に対するそのような要素の利用についての警告に注意して下さい. 空白として描画できる他の要素, すなわちmtext
, mphantom
, maligngroup
についても参照して下さい.
Note the warning about the legal grouping of space-like
elements
given below, and the warning about the use of such
elements for tweaking
in [MathML-Notes].
See also the other elements that can render as
whitespace, namely mtext
, mphantom
, and
maligngroup
.
下に一覧にした属性に加えて, mspace
要素は3.2.2 素子要素に共通の数学書式属性で述べた属性を持っています. ただし, mathvariant
とmathcolor
は何の効果もなく, mathsize
は大きさを決める属性の単位(2.1.5.2 長さの値の属性参照)の解釈にのみ影響することに注意して下さい. mspace
は, 3.2.5.2.3 字下げの属性で述べた字下げの属性も持っています.
In addition to the attributes listed below,
mspace
elements accept the attributes described in 3.2.2 Mathematics style attributes common to token elements,
but note that mathvariant
and mathcolor
have no effect and that
mathsize
only affects the interpretation of units in sizing
attributes (see 2.1.5.2 Length Valued Attributes).
mspace
also accepts the indentation attributes described in 3.2.5.2.3 Indentation attributes.
名前 Name |
値 values |
既定値 default |
width | 長さ length |
0em |
空白の望ましい幅を指定します. Specifies the desired width of the space. |
||
height | 長さ length |
0ex |
空白の(欧文ベースラインから上の)望ましい高さを指定します. Specifies the desired height (above the baseline) of the space. |
||
depth | 長さ length |
0ex |
空白の(欧文ベースラインから下の)望ましい深さを指定します. Specifies the desired depth (below the baseline) of the space. |
改行は, 元はと言えばMathML2でmspace
に対して指定されました. しかしながら, 改行や字下げのよりたくさんの制御が, MathML 3でmo
に加えられました. mspace
における改行は, MathML 4では非推奨です.
Linebreaking was originally specified on mspace
in MathML2,
but much greater control over linebreaking and indentation was add to mo
in MathML 3. Linebreaking on mspace
is deprecated in MathML 4.
<mspace height="3ex" depth="2ex"/>
数々のMathMLプレゼンテーション要素が, 典型的に空白として描画され, それらが現れても式の数学的意味に影響を与えないという点で空白のような要素
です. 結果として, それらの要素は, 他のMathMLの式の中で多少異なる機能を持っています. 例えば, 空白のような要素は, 3.2.5 演算子, かっこ, 区切り, アクセント <mo>
で示されたmo
に対して提案された描画の決まりにおいて特別に扱われます. 次に示すMathML要素が空白のような要素
であるとされています.
A number of MathML presentation elements are space-like
in the
sense that they typically render as whitespace, and do not affect the
mathematical meaning of the expressions in which they appear. As a
consequence, these elements often function in somewhat exceptional
ways in other MathML expressions. For example, space-like elements are
handled specially in the suggested rendering rules for
mo
given in 3.2.5 Operator, Fence, Separator or Accent
<mo>
.
The following MathML elements are defined to be space-like
:
mtext
要素, mspace
要素, maligngroup
要素, malignmark
要素
an mtext
, mspace
,
maligngroup
, or malignmark
element;
直下の式全てが空白のような要素であるmstyle
要素, mphantom
要素, mpadded
要素
an mstyle
, mphantom
, or
mpadded
element, all of whose direct sub-expressions
are space-like;
最初の引数が存在し, その引数が空白のような要素だった場合のsemantics
要素
a semantics
element whose first argument exists
and is space-like;
maction
要素が対象としている式があり, その式が空白のような要素だった場合のmaction
要素
an maction
element whose selected
sub-expression exists and is space-like;
直下の式全てが空白のような要素であるmrow
要素
an mrow
all of whose direct
sub-expressions are space-like.
mphantom
は, その中身が空白のような要素でない場合, 自動的には空白のような要素と定義されていないことに注意して下さい. これは, 演算子の間隔が隣接する要素が空白の要素であるかどうかによって影響を受けるためです. mphantom
要素は第一に式を揃えることの助けとなることを意図しているので, mphantom
に隣接する要素は, mphantom
と同じ大きさの空白とではなく, mphantom
の中身に隣接しているかのように動作すべきです.
Note that an mphantom
is not
automatically defined to be space-like, unless its content is
space-like. This is because operator spacing is affected by whether
adjacent elements are space-like. Since the
mphantom
element is primarily intended as an aid
in aligning expressions, operators adjacent to an
mphantom
should behave as if they were adjacent
to the contents of the mphantom
,
rather than to an equivalently sized area of whitespace.
既存のMathMLの式に空白のような要素やmphantom
要素を挿入する著者は, 式の要素が特定の数を引数と必要としていたり, 引数の場所の違いによって解釈を変えたりする場合に, 挿入する要素が引数と見なされることに注意すべきです.
Authors who insert space-like elements or
mphantom
elements into an existing MathML
expression should note that such elements are counted as
arguments, in elements that require a specific number of arguments,
or that interpret different argument positions differently.
したがって, そのような要素に挿入された空白のような要素は, グループ化するためのmrow
を挿入することによって隣接する引数とグループ化すべきです. 例えば, 上付き添え字の基となる式の左端で縦に揃えようとする場合, 次の式は不当です.
Therefore, space-like elements inserted into such a MathML element
should be grouped with a neighboring argument of that element by
introducing an mrow
for that purpose. For example,
to allow for vertical alignment on the right edge of the base of a
superscript, the expression
<msup>
<mi> x </mi>
<malignmark edge="right"/>
<mn> 2 </mn>
</msup>
なぜなら, msup
はちょうど2つの引数を持つからです. 正しい表現は次のとおりです.
is illegal, because msup
must have exactly 2 arguments;
the correct expression would be:
<msup>
<mrow>
<mi> x </mi>
<malignmark edge="right"/>
</mrow>
<mn> 2 </mn>
</msup>
[MathMLメモ]の中の微調整
についての警告についても参照して下さい.
See also the warning about tweaking
in
[MathML-Notes].
ms
要素は, 数式処理システムやプログラミング言語
を含む他のシステムで解釈されるであろう式の中の文字列
を表すのに使われます. 通常, 文字列は周りに余計な空白を加えず, 二重引用符で囲まれて表示されます. 3.2.6 文章 <mtext>
で説明しているように, 数式の中に埋め込まれる通常の文章はmtext
, 場合によってはmo
またはmi
で記述されるべきで, ms
によって絶対に記述されるべきではありません.
The ms
element is used to represent
string literals
in expressions meant to be interpreted by
computer algebra systems or other systems containing programming
languages
. By default, string literals are displayed surrounded by
double quotes, with no extra spacing added around the string.
As explained in 3.2.6 Text <mtext>
, ordinary text
embedded in a mathematical expression should be marked up with mtext
,
or in some cases mo
or mi
, but never with ms
.
ms
でコード化される文字列は, アスキー文字
というより, 文字, mglyph
, malignmark
から構成されています. 例えば, <ms>&</ms>
は単独の文字&
から成る文字列を表しており, <ms>&amp;</ms>
は最初の文字が&
である5つの文字から成る文字列を表しています.
Note that the string literals encoded by ms
are made up of characters, mglyph
s and
malignmark
s rather than ASCII
strings
. For
example, <ms>&</ms>
represents a string
literal containing a single character, &
, and
<ms>&amp;</ms>
represents a string literal
containing 5 characters, the first one of which is
&
.
ms
要素の内容は, まずは左右の引用符, もしくは個々の空白文字以外の空白を含む, 素子の中の特定の文字を視覚的にエスケープ
して描画されるべきです. その意図は, 見る人にその式が文字列であることを伝え, ちょうどその内容の文字を見せるためです. 例えば, <ms>double quote is "</ms>
は"double quote is \""と描画されるでしょう.
The content of ms
elements should be rendered with visible
escaping
of certain characters in the content,
including at least the left and right quoting
characters, and preferably whitespace other than individual
space characters. The intent is for the viewer to see that the
expression is a string literal, and to see exactly which characters
form its content. For example, <ms>double quote is
"</ms>
might be rendered as "double quote is \"".
全ての素子要素と同様に, ms
は2.1.7 入力された空白を縮小するにある決まりによって, 内容の中の空白を切り取ったり縮小したりします. そのため, 内容の中で残したい空白は, その節で説明されている方法でコード化すべきです.
Like all token elements, ms
does trim and
collapse whitespace in its content according to the rules of
2.1.7 Collapsing Whitespace in Input, so whitespace intended to remain in
the content should be encoded as described in that section.
ms
要素は3.2.2 素子要素に共通の数学書式属性で一覧にした属性に加えて次の属性を持ちます.
ms
elements accept the attributes listed in
3.2.2 Mathematics style attributes common to token elements, and additionally:
名前 Name |
値 values |
既定値 default |
lquote | 文字列 string |
U+0022 (実体 quot )(entity quot ) |
内容を囲む開始の引用符を指定します.(右から左(RTL)の文脈においては必ずしも‘左の引用符’ではありません.) Specifies the opening quote to enclose the content (not necessarily ‘left quote’ in RTL context). |
||
rquote | 文字列 string |
U+0022 (実体 quot )(entity quot ) |
内容を囲む終了の引用符を指定します.(右から左(RTL)の文脈においては必ずしも‘左の引用符’ではありません.) Specifies the closing quote to enclose the content (not necessarily ‘right quote’ in RTL context). |
素子の他に, 様々な種類のMathMLプレゼンテーション要素があります. ある種類の要素は上付き添え字や下付き添え字といった様々な添え字
の表記を扱います. もう1つの種類のものは行列や表に関係しています. この節で論じる残りの要素は, 分数や根号といった他の基本となる表記を記述したり, もしくは書式の特性を設定し, エラー処理を行うような一般的な機能を扱ったりします.
Besides tokens there are several families of MathML presentation
elements. One family of elements deals with various
scripting
notations, such as subscript and
superscript. Another family is concerned with matrices and tables. The
remainder of the elements, discussed in this section, describe other basic
notations such as fractions and radicals, or deal with general functions
such as setting style properties and error handling.
mrow
要素は, 任意の数の式を一緒にグループ化するのに使われます. グループは, 通常, その中で演算子
として働く1つ以上のmo
と, それらの被演算子
となる1つ以上の式から構成されます.
An mrow
element is used to group together any
number of sub-expressions, usually consisting of one or more mo
elements acting as operators
on one
or more other expressions that are their operands
.
様々な要素が, 引数がmrow
要素に囲まれているかのように, 自動的に引数を扱います. 省略されたmrow
についての議論は, 3.1.3 必要な引数を参照して下さい. コンマで区切られた引数を含むmrow
を効果的に形作ることができるmfenced
(3.3.8 かっこの組で囲まれた式<mfenced>
)も参照して下さい.
Several elements automatically treat their arguments as if they were
contained in an mrow
element. See the discussion of
inferred mrow
s in 3.1.3 Required Arguments.
See also mfenced
(3.3.8 Expression Inside Pair of Fences
<mfenced>
),
which can effectively form an mrow
containing its arguments separated by commas.
mrow
要素は, 典型的にその引数を水平の行として視覚的に描画します. 引数が左から右(LTR)を向いた文脈の中にあるときは左から右に, 右から左(RTL)を向いた文脈の中にあるときは右から左に描画します. dir
属性は特定のmrow
の方向を指定するのに利用できます. 指定されない場合, 文脈から方向を継承します. 聴覚ソフトウェアでは, 引数は, 引数の聴覚表現の一連のものとして聞き取れるように表現されるでしょう. mo
要素に対して提案されている描画の決まりの3.2.5 演算子, かっこ, 区切り, アクセント <mo>
における説明は, 演算子とその被演算子の間の全ての水平の間隔が, それらを含んでいるmrow
要素の描画によってではなく, mo
要素(または, もっと一般に装飾された演算子)の描画によって加えられることを前提にしています.
mrow
elements are typically rendered visually
as a horizontal row of their arguments, left to right in the order in
which the arguments occur within a context with LTR directionality,
or right to left within a context with RTL directionality.
The dir
attribute can be used to specify
the directionality for a specific mrow
, otherwise it inherits the
directionality from the context. For aural agents, the arguments would be
rendered audibly as a sequence of renderings of
the arguments. The description in 3.2.5 Operator, Fence, Separator or Accent
<mo>
of suggested rendering
rules for mo
elements assumes that all horizontal
spacing between operators and their operands is added by the rendering
of mo
elements (or, more generally, embellished
operators), not by the rendering of the mrow
s
they are contained in.
MathMLは, 自動と手動両方の式の改行(すなわち, 過度に長い式をいくつかの行へ分割すること)に対応しています. 全てのそのような改行は, 文書の中でmrow
が明確に記述されていようと, 省略されていようと(3.1.3.1 省略された<mrow>
参照), mrow
の中で起こります. 改行の制御は他の要素の属性を通じて効果的に行われるにも関わらずです(3.1.7 式の改行参照).
MathML provides support for both automatic and manual
linebreaking of expressions (that is, to break excessively long
expressions into several lines). All such linebreaks take place
within mrow
s, whether they are explicitly marked up
in the document, or inferred (see 3.1.3.1 Inferred <mrow>
s),
although the control of linebreaking is effected through attributes
on other elements (see 3.1.7 Linebreaking of Expressions).
mrow
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で一覧にした属性に加えて下に示した属性を持ちます.
mrow
elements accept the attribute listed below in addition to
those listed in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
dir | "ltr" | "rtl" | 継承する inherited |
行の子要素を配置するのに用いる全体の方向, ltr (左から右)またはrtl (右から左)を指定します. より詳しい議論は, 3.1.5.1 数式全体の方向を参照して下さい.specifies the overall directionality ltr (Left To Right) or
rtl (Right To Left) to use to layout the children of the row.
See 3.1.5.1 Overall Directionality of Mathematics Formulas for further discussion.
|
式の中の式は, 文書の著者によって式の数学上の解釈と同じ方法でグループ化されるべきです. すなわち, 式の根底にある構文ツリー構造
によるべきです. 特に, 演算子とそれらの数学上の引数は単一のmrow
の中に現れるべきです. 複数の演算子が1つのmrow
に直接現れるのは, それらの演算子が綴じ込まれた引数に一緒に影響すると(構文上の感覚で)考えられる場合のみです. 例えば, 単独のかっこでくくられた項とかっこ, つながっている関係する演算子, +
と-
で区切られた一連の項の場合です. 正確な決まりは後で示します.
Sub-expressions should be grouped by the document author in the same way
as they are grouped in the mathematical interpretation of the expression;
that is, according to the underlying syntax tree
of the
expression. Specifically, operators and their mathematical arguments should
occur in a single mrow
; more than one operator
should occur directly in one mrow
only when they
can be considered (in a syntactic sense) to act together on the interleaved
arguments, e.g. for a single parenthesized term and its parentheses, for
chains of relational operators, or for sequences of terms separated by
+
and -
. A precise rule is given below.
適切なグループ化はいくつかの意味を持っています. グループ化は, 効果的な間隔の取り方で表示を改善します. また, より聡明な改行と字下げを考慮します. そして, 数式処理システムや聴覚表現ソフトウェアによるプレゼンテーション要素の意味の起こり得る解釈を単純化します.
Proper grouping has several purposes: it improves display by possibly affecting spacing; it allows for more intelligent linebreaking and indentation; and it simplifies possible semantic interpretation of presentation elements by computer algebra systems, and audio renderers.
不適切はグループ化は, ときどき最善でない表示となったり, よく純粋な視覚的描画とは別の解釈を難しく, もしくは不可能にします. にもかかわらず, mrow
を用いた式の任意のグループ化がMathML構文では認められています. すなわち, 描画ソフトウェアは, 適切なグループ化の決まりが守られていると思うべきではありません.
Although improper grouping will sometimes result in suboptimal
renderings, and will often make interpretation other than pure visual
rendering difficult or impossible, any grouping of expressions using
mrow
is allowed in MathML syntax; that is,
renderers should not assume the rules for proper grouping will be
followed.
MathML描画ソフトウェアは, ちょうど1つの引数を含んでいるmrow
要素を, そのmrow
要素が何の属性も持っていないのならば, 引数が単独で現れた場合と常に等しいものとして扱う必要があります. mrow
要素が属性を持っているのならば, 等しい必要なありません. 等しい状況は, テンプレートを基にした数式を書くソフトウェアといったMathMLを生成するソフトウェアの実装を単純化します. このことは直接, 装飾された演算子や空白のような要素の定義や, mo
要素のform
属性の既定値を決定する決まりに直接影響します. 3.2.5 演算子, かっこ, 区切り, アクセント <mo>
と3.2.7 空白 <mspace/>
を参照して下さい. D.1 MathML適合でのMathMLの式の等しさについての議論も参照して下さい.
MathML renderers are required to treat an mrow
element containing exactly one argument as equivalent in all ways to
the single argument occurring alone, provided there are no attributes
on the mrow
element. If there are
attributes on the mrow
element, no
requirement of equivalence is imposed. This equivalence condition is
intended to simplify the implementation of MathML-generating software
such as template-based authoring tools. It directly affects the
definitions of embellished operator and space-like element and the
rules for determining the default value of the form
attribute of an mo
element;
see 3.2.5 Operator, Fence, Separator or Accent
<mo>
and 3.2.7 Space <mspace/>
. See also the discussion of equivalence of MathML
expressions in D.1 MathML Conformance.
mrow
を用いた式をいつどのように入れ子にするかという正確な決まりは, 式をどのように入れ子にするかいつも指定しているわけではない, TEXといった数学を表示するための書式から, 自動でMathMLを生成するときに特に求められます. グループ化の正確な決まりを求められたとき, 次の決まりが用いられます.
A precise rule for when and how to nest sub-expressions using
mrow
is especially desirable when generating
MathML automatically by conversion from other formats for displayed
mathematics, such as TEX, which don't always specify how sub-expressions
nest. When a precise rule for grouping is desired, the following rule
should be used:
2つの隣接した演算子, 場合によっては装飾されていたり, 被演算子(つまり, 演算子以外の何か)で分けられていたりする演算子は, 前に来る演算子が(場合によっては暗黙のうちに)中間または前置の形式で, 次に来る演算子が中間または後置で, 2つの演算子が演算子辞書(B. 演算子辞書)で同じ優先度を持つ場合に限り, 同じmrow
の中に現れるべきです. それ以外の全ての場合に入れ子になったmrow
が使用されるべきです.
Two adjacent operators, possibly embellished, possibly separated by operands (i.e. anything
other than operators), should occur in the same
mrow
only when the leading operator has an infix or
prefix form (perhaps inferred), the following operator has an infix or
postfix form, and the operators have the same priority in the
operator dictionary (B. Operator Dictionary).
In all other cases, nested mrow
s should be used.
上で形式を挙げた2つの連続した演算子のみを含む(MathMLの生成を通して)入れ子になったmrow
を形作る場合(これは, どちらかの演算子が原理的に間の被演算子に影響することを意味します), どちらの演算子が被演算子に影響するのか(または演算子が存在した場合に影響するのか)決める必要があります. 理想を言えば, このことは元々の式で決められているべきです. 例えば, 演算子の優先度を基にした書式からの変換においては, 影響するのはより高い優先度を持った演算子です.
When forming a nested mrow
(during generation
of MathML) that includes just one of two successive operators with
the forms mentioned above (which means that either operator could in
principle act on the intervening operand or operands), it is necessary
to decide which operator acts on those operands directly (or would do
so, if they were present). Ideally, this should be determined from the
original expression; for example, in conversion from an
operator-precedence-based format, it would be the operator with the
higher precedence.
上記の決まりは何らかのMathMLの式が有効かには何の影響もなく, 数学を表示する他の書式から, または書かれた表記から直接MathMLを生成する推奨される方法にのみ影響があることに注意して下さい.
Note that the above rule has no effect on whether any MathML expression is valid, only on the recommended way of generating MathML from other formats for displayed mathematics or directly from written notation.
(上記の決まりを述べるのに使用した用語の中には, 3.2.5 演算子, かっこ, 区切り, アクセント <mo>
で定義されているものもあります.)
(Some of the terminology used in stating the above rule is defined
in 3.2.5 Operator, Fence, Separator or Accent
<mo>
.)
例として, 2x+y-zは次のように書かれるべきです.
As an example, 2x+y-z should be written as:
<mrow>
<mrow>
<mn> 2 </mn>
<mo> ⁢<!--InvisibleTimes--> </mo>
<mi> x </mi>
</mrow>
<mo> + </mo>
<mi> y </mi>
<mo> - </mo>
<mi> z </mi>
</mrow>
(x, y)の適切なコード化は, 見れば簡単に分かるmrow
の入れ子の例を示してくれます.
The proper encoding of (x, y) furnishes a less obvious
example of nesting mrow
s:
<mrow>
<mo> ( </mo>
<mrow>
<mi> x </mi>
<mo> , </mo>
<mi> y </mi>
</mrow>
<mo> ) </mo>
</mrow>
この例では, 入れ子になったmrow
がかっこの中に必要です. なぜなら, かっことコンマが, 囲い文字と区切りの演算子
と考えられ, 一緒に引数に影響を与えないからです.
In this case, a nested mrow
is required inside
the parentheses, since parentheses and commas, thought of as fence and
separator operators
, do not act together on their arguments.
mfrac
要素は分数に使用されます. また, 二項係数やルジャンドル記号といった分数のようなものを記述するのにも利用されます. mfrac
の構文は次のとおりです.
The mfrac
element is used for fractions. It can
also be used to mark up fraction-like objects such as binomial coefficients
and Legendre symbols. The syntax for mfrac
is
<mfrac> 分子 分母 </mfrac>
<mfrac> numerator denominator </mfrac>
mfrac
要素は, 分子と分母に対し, displaystyle
をfalse
に設定するか, もし既にfalseであるならscriptlevel
を1つ増やします. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
The mfrac
element sets displaystyle
to false
, or if it
was already false increments scriptlevel
by 1,
within numerator and denominator.
(See 3.1.6 Displaystyle and Scriptlevel.)
mfrac
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で一覧にした属性に加えて下に示した属性を持ちます. 分数の線は, もし指定されていたなら, mathcolor
で指定された色を使って描かれるべきです.
mfrac
elements accept the attributes listed below
in addition to those listed in 3.1.9 Mathematics attributes common to presentation elements.
The fraction line, if any, should be drawn using the color specified by mathcolor
.
名前 Name |
値 values |
既定値 default |
linethickness | 長さ | "thin" | "medium" | "thick" length |
medium |
水平の分数の線または 罫線の太さを指定します. 既定値は medium で, thin はより細く, ただし見えるように, thick はより太くを表します. それらの実際の太さは, 描画プログラムに任されています. しかしながら, OpenType Mathフォントが利用可能な場合, 描画ソフトウェアは, medium を(MathMLコアの既定値である)値MATH.MathConstants.fractionRuleThickness に設定します.
注意: MathMLコアは, 長さや百分率の値のみ認めています. Specifies the thickness of the horizontal fraction bar, or rule. The default value is medium ;
thin is thinner, but visible;
thick is thicker.
The exact thickness of these is left up to the rendering agent.
However, if OpenType Math fonts are available then the renderer should set medium to
the value MATH.MathConstants.fractionRuleThickness
(the default in MathML-Core).
Note: MathML Core does only allow length-percentage values. |
||
numalign | "left" | "center" | "right" | center |
分数の上の分子の位置揃えを指定します. Specifies the alignment of the numerator over the fraction. |
||
denomalign | "left" | "center" | "right" | center |
分数の下の分母の位置揃えを指定します. Specifies the alignment of the denominator under the fraction. |
||
bevelled | "true" | "false" | false |
分数を, 縦に"組み立てられた"形式ではなく, 斜めになった形式(分子をわずかに上げ, 分母をわずかに下げ, 両方を斜線で区切る)で表示するかどうか指定します. 例については下記を参照して下さい. Specifies whether the fraction should be displayed in a beveled style (the numerator slightly raised, the denominator slightly lowered and both separated by a slash), rather than "build up" vertically. See below for an example. |
太い線(例えば, linethickness
="thick")は, 入れ子になった分数で使用されるでしょう. 値が"0"のときは, 二項係数のように線無しで描画されます.
Thicker lines (e.g. linethickness
="thick") might be used with nested fractions;
a value of "0" renders without the bar such as for binomial coefficients.
右から左(RTL)の文脈において, 分子は前に来て(右に行き), 分母は後ろに来て(左に行き), 対角線は右から左に向かって斜めに上がります(明瞭な説明については3.1.5.1 数式全体の方向参照). この形式が確立された慣習にも関わらず, 普遍的とはされていません. 上で示した斜線が右から左(RTL)の文脈で決められた状況で, mrow
の中のmo
といった代わりのマークアップが使用されるべきかもしれません.
In a RTL directionality context, the numerator leads (on the right),
the denominator follows (on the left) and the diagonal line slants upwards going from
right to left (see 3.1.5.1 Overall Directionality of Mathematics Formulas for clarification).
Although this format is an established convention, it is not universally
followed; for situations where a forward slash is desired in a RTL context,
alternative markup, such as an mo
within an mrow
should be used.
linethickness
の異なる値を利用する例です.
Here is an example which makes use of different values of linethickness
:
<mfrac linethickness="3px">
<mrow>
<mo> ( </mo>
<mfrac linethickness="0">
<mi> a </mi>
<mi> b </mi>
</mfrac>
<mo> ) </mo>
<mfrac>
<mi> a </mi>
<mi> b </mi>
</mfrac>
</mrow>
<mfrac>
<mi> c </mi>
<mi> d </mi>
</mfrac>
</mfrac>
次の例は, 斜めになった分数を描いています.
This example illustrates bevelled fractions:
<mfrac>
<mn> 1 </mn>
<mrow>
<msup>
<mi> x </mi>
<mn> 3 </mn>
</msup>
<mo> + </mo>
<mfrac>
<mi> x </mi>
<mn> 3 </mn>
</mfrac>
</mrow>
</mfrac>
<mo> = </mo>
<mfrac bevelled="true">
<mn> 1 </mn>
<mrow>
<msup>
<mi> x </mi>
<mn> 3 </mn>
</msup>
<mo> + </mo>
<mfrac>
<mi> x </mi>
<mn> 3 </mn>
</mfrac>
</mrow>
</mfrac>
もっと一般的な例は次のとおりです.
A more generic example is:
<mfrac>
<mrow>
<mn> 1 </mn>
<mo> + </mo>
<msqrt>
<mn> 5 </mn>
</msqrt>
</mrow>
<mn> 2 </mn>
</mfrac>
これらの要素は根号を構成します. msqrt
要素は平方根に利用され, 一方, mroot
要素は指数付きの根号, 例えば立方根を描くのに利用されます. これらの要素の構文は次のとおりです.
These elements construct radicals. The msqrt
element is
used for square roots, while the mroot
element is used
to draw radicals with indices, e.g. a cube root. The syntax for these
elements is:
<msqrt> 基となる式 </msqrt>
<msqrt> base </msqrt>
<mroot> 基となる式 指数 </mroot>
<mroot> base index </mroot>
mroot
要素は, ちょうど2つの引数を必要とします. 一方で, msqrt
要素は単独の引数を持ちます. その引数は, 複数の子要素から成る省略されたmrow
でも良いです. 3.1.3 必要な引数を参照して下さい. mroot
は, 指数のscriptlevel
を2つ増やし, displaystyle
をfalse
に設定しますが, 基となる式の両方の属性は変更しないままにしておきます. msqrt
は, 引数の両方の属性を変更しないままにしておきます. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
The mroot
element requires exactly 2 arguments.
However, msqrt
accepts a single argument, possibly
being an inferred mrow
of multiple children; see 3.1.3 Required Arguments.
The mroot
element increments scriptlevel
by 2,
and sets displaystyle
to false
, within
index, but leaves both attributes unchanged within base.
The msqrt
element leaves both
attributes unchanged within its argument.
(See 3.1.6 Displaystyle and Scriptlevel.)
右から左(RTL)の方向の中では, 根号はmroot
の場合は指数に沿って, 左ではなく右から始まることに注意して下さい.
Note that in a RTL directionality, the surd begins
on the right, rather than the left, along with the index in the case
of mroot
.
msqrt
要素とmroot
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で一覧にした属性を持っています. 根号および上の線は, mathcolor
で指定された色を使って描かれるべきです.
msqrt
and mroot
elements accept the attributes listed in
3.1.9 Mathematics attributes common to presentation elements. The surd and overbar should be drawn using the
color specified by mathcolor
.
平方根と立方根
Square roots and cube roots
<mrow>
<mrow>
<msqrt>
<mi>x</mi>
</msqrt>
<mroot>
<mi>x</mi>
<mn>3</mn>
</mroot>
<mrow>
<mo>=</mo>
<msup>
<mi>x</mi>
<mrow>
<mrow>
<mn>1</mn>
<mo>/</mo>
<mn>2</mn>
</mrow>
<mo>+</mo>
<mrow>
<mn>1</mn>
<mo>/</mo>
<mn>3</mn>
</mrow>
</mrow>
</msup>
</mrow>
mstyle
要素は, その中身の描画に影響を与える書式の変更を行うのに利用されます. プレゼンテーション要素として, 3.1.9 プレゼンテーション要素に共通の数学属性で説明されている属性を持ちます. 加えて, 後で説明する属性を除いて, 何らかのプレゼンテーション要素で利用されてている何らかの属性を持つことができます. さらに, mstyle
要素は次の小節で一覧にしてある属性を持つことができます.
The mstyle
element is used to make style
changes that affect the rendering of its
contents.
As a presentation element, it accepts
the attributes described in 3.1.9 Mathematics attributes common to presentation elements.
Additionally, it
can be given any attribute
accepted by any other presentation element, except for the
attributes described below.
Finally,
the mstyle
element can be given certain special
attributes listed in the next subsection.
mstyle
要素は単独の引数を持ちます. その引数は, 複数の子要素から成る省略されたmrow
でも良いです. 3.1.3 必要な引数を参照して下さい.
The mstyle
element accepts a single argument,
possibly being an inferred mrow
of multiple children;
see 3.1.3 Required Arguments.
大まかに言って, mstyle
要素の効果は, 含まれている要素の属性の既定値を変更します. 書式の変更は, 既定値が属性に対し指定されている状況に依存しながら, いくつかの方法の1つとして作用します. その状況は次のとおりです.
Loosely speaking, the effect of the mstyle
element
is to change the default value of an attribute for the elements it
contains. Style changes work in one of several ways, depending on
the way in which default values are specified for an attribute.
The cases are:
(後で説明する)displaystyle
やscriptlevel
といったいくつかの属性は, それらが明確に設定されていないとき, 周囲を囲っている文脈から継承されます. mstyle
要素でそのような属性を指定することで, 子要素に継承されるであろう値を設定します. 子要素が継承した値を上書きしない限り, 値は子要素からその子要素に渡り, それらの子要素からさらにその子要素に渡ると言った具合に, 渡っていきます. ただし, もし子要素が明確な値を設定するか(scriptlevel
で一般的なように)自動で計算するかしたことで値を上書きしたのなら, 新しい(上書きされた)値はその要素の子要素に, さらにその子要素にといった具合に, 再度上書きされない限り渡っていきます.
Some attributes, such as displaystyle
or
scriptlevel
(explained below), are inherited
from the surrounding context when they are not explicitly set. Specifying
such an attribute on an mstyle
element sets the
value that will be inherited by its child elements. Unless a child element
overrides this inherited value, it will pass it on to its children, and
they will pass it to their children, and so on. But if a child element does
override it, either by an explicit attribute setting or automatically (as
is common for scriptlevel
), the new (overriding)
value will be passed on to that element's children, and then to their
children, etc, unless it is again overridden.
mfrac
のlinethickness
といった他の属性は, 通常継承されない既定値を持っています. すなわち, linethickness
属性がmfrac
要素で設定されていなかった場合, 既定値のmedium
が使われます. それは, mfrac
要素が, その属性を別の値に設定するより大きなmfrac
要素に含まれている場合であってもです. このような属性に対し, mstyle
要素によって値を指定することは, mstyle
要素の範囲内にある全ての要素の既定値を変更する効果があります. 最終的な効果は, mstyle
の属性値を設定することが, mstyle
に直接的または間接的に含まれる全ての要素を変更するよう, 値を上書きしている個々の要素を除いて伝搬することです. 継承される属性の場合と違って, この属性をはっきり上書きしている要素は, それらの子要素の属性の値に何の効果も持っていません.
Other attributes, such as linethickness
on
mfrac
, have default values that are not normally
inherited. That is, if the linethickness
attribute
is not set on the mfrac
element,
it will normally use the default value of medium
, even if it was
contained in a larger mfrac
element that set this
attribute to a different value. For attributes like this, specifying a
value with an mstyle
element has the effect of
changing the default value for all elements within its scope. The net
effect is that setting the attribute value with mstyle
propagates the change to all the elements it
contains directly or indirectly, except for the individual elements on
which the value is overridden. Unlike in the case of inherited attributes,
elements that explicitly override this attribute have no effect on this
attribute's value in their children.
stretchy
やform
といったその他の種類の属性は, 演算子辞書の情報, 囲っているmrow
の中の位置, 他の同じような情報から計算されます. これらの属性に対し, 囲っているmstyle
の指定した値は, 通常どおり計算された値を上書きます.
Another group of attributes, such as stretchy
and form
, are
computed from operator dictionary information, position in the
enclosing mrow
, and other similar data. For
these attributes, a value specified by an enclosing mstyle
overrides the value that would normally be
computed.
何らかの慣習の中でmstyle
から継承した属性値は, mstyle
の中身である子孫要素に, その属性が子孫要素から値を与えられていない場合に限って効果があります. 属性が明確に設定されている何らかの要素において, 指定された値が継承した値を上書きします. この決まりの例外は, 属性値が, 要素が文脈や描画環境から継承した値を増加させるよう指定するものとして文書化されていた場合のみです.
Note that attribute values inherited from an
mstyle
in any manner affect a descendant element
in the mstyle
's content only if that attribute is
not given a value by the descendant element. On any element for
which the attribute is set explicitly, the value specified overrides the inherited
value. The only exception to this
rule is when the attribute value
is documented as
specifying an incremental change to the value inherited from that
element's context or rendering environment.
また, mstyle
によって設定された継承する属性と継承しない属性の間の, 上で説明した違いは, 属性がmstyle
の中の要素で設定され, その要素がその属性を指定している子孫要素を持っているときに重要なことに注意して下さい. したがって, 継承するかどうかによる違いは, mathsize
といった素子要素(またはmstyle
自身)のみで設定できる属性には全く重要では無いです.
Note also that the difference between inherited and non-inherited
attributes set by mstyle
, explained above, only
matters when the attribute is set on some element within the
mstyle
's contents that has descendants also
setting it. Thus it never matters for attributes, such as
mathsize
, which can only be set on token elements (or on
mstyle
itself).
MathMLは, 属性height
, depth
, width
がmstyle
要素で指定された場合, それらの属性がmspace
要素のみに適用され, mglyph
要素, mpadded
要素, mtable
要素の相当する属性には適用されたないことを仕様で定義しています. 同様に, rowalign
, columnalign
がmstyle
要素で指定された場合, それらの属性はmtable
要素にのみ適用され, mtr
要素, mlabeledtr
要素, mtd
要素, maligngroup
要素には適用されません. lspace
属性がmstyle
要素で設定された場合, mo
要素にのみ適用され, mpadded
要素には適用されません. 一貫性のため, mpadded
要素のvoffset
属性はmstyle
要素では設定できません. align
属性がmstyle
要素で設定された場合, munder
要素, mover
要素, munderover
要素にのみ適用され, mtable
要素やmstack
要素には適用されません. 必要とされる属性, mglyph
要素におけるsrc
やalt
, maction
要素におけるactiontype
は, mstyle
要素で設定できません.
MathML specifies that when
the attributes height
, depth
or width
are specified on an mstyle
element, they apply only to
mspace
elements, and not to the corresponding attributes of
mglyph
, mpadded
, or mtable
. Similarly, when
rowalign
or columnalign
are specified on an mstyle
element, they apply only to the
mtable
element, and not the mtr
, mlabeledtr
,
mtd
, and maligngroup
elements.
When the lspace
attribute is set with mstyle
, it
applies only to the mo
element and not to mpadded
.
To be consistent, the voffset
attribute of the
mpadded
element can not be set on mstyle
.
When the align
attribute is set with mstyle
, it
applies only to the munder
, mover
, and munderover
elements, and not to the mtable
and mstack
elements.
The required attributes src
and alt
on mglyph
,
and actiontype
on maction
, cannot be set on mstyle
.
プレゼンテーション要素として, mstyle
は直接mathcolor
属性とmathbackground
属性を持ちます. したがって, mathbackground
は, mstyle
要素自身の描画領域を塗り潰す色を指定します. 背景色の既定値を指定するわけではありません. このことは, MathML 2とは両立しない変更ですが, より利用しやすく直感的です. mathcolor
に対する既定値は継承するなので, mstyle
がmathcolor
を持つことは, 要素の挙動に何の変更もありません.
As a presentation element, mstyle
directly accepts
the mathcolor
and mathbackground
attributes.
Thus, the mathbackground
specifies the color to fill the bounding
box of the mstyle
element itself; it does not
specify the default background color.
This is an incompatible change from MathML 2, but it is more useful
and intuitive. Since the default for mathcolor
is inherited,
this is no change in its behavior.
上で説明したように, mstyle
は, 全てのMathMLプレゼンテーション要素の, 必要な値を持たない全ての属性を持ちます. つまり, 明確な既定値, または継承されるか自動で計算される既定値を持つ全ての属性をmstyle
要素は持ちます. それらの種類の属性は, MathMLコアでは認められていません.
As stated above, mstyle
accepts all
attributes of all MathML presentation elements which do not have
required values. That is, all attributes which have an explicit
default value or a default value which is inherited or computed are
accepted by the mstyle
element.
This group of attributes is not accepted in MathML Core.
mstyle
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で一覧にした属性を持っています.
mstyle
elements accept the attributes listed in
3.1.9 Mathematics attributes common to presentation elements.
加えて, mstyle
は, 暗黙のうちに描画環境の一部として全てのMathML要素に継承される, 次の特別な属性を持ちます.
Additionally, mstyle
can be given the following special
attributes that are implicitly inherited by every MathML element as
part of its rendering environment:
名前 Name |
値 values |
既定値 default |
scriptlevel | ( "+" | "-" )? 符号無し整数 unsigned-integer |
継承する inherited |
事実上, 子要素のscriptlevel を変更します. 符号無しの値が与えられた場合, scriptlevel を指定された値に設定します. 符号付きの場合, 現在の値を増やしたり("+"), または減らしたり("-")します. (大きく減らすことは, scriptlevel を負の値にすることに注意して下さい. ただし, それらの値は正当と見なされます.) 3.1.6 displaystyleとscriptlevelを参照して下さい.Changes the scriptlevel in effect for the children.
When the value is given without a sign, it sets scriptlevel to the specified value;
when a sign is given, it increments ("+") or decrements ("-") the current value.
(Note that large decrements can result in negative values of scriptlevel ,
but these values are considered legal.)
See 3.1.6 Displaystyle and Scriptlevel.
|
||
displaystyle | "true" | "false" | 継承する inherited |
事実上, 子要素のdisplaystyle を変更します. 3.1.6 displaystyleとscriptlevelを参照して下さい.Changes the displaystyle in effect for the children.
See 3.1.6 Displaystyle and Scriptlevel.
|
||
scriptsizemultiplier | 数 number |
0.71 |
scriptlevel の変更の際にフォントの大きさを調整するのに使用される, 乗数を指定します. 3.1.6 displaystyleとscriptlevelを参照して下さい.Specifies the multiplier to be used to adjust font size due to changes in scriptlevel .
See 3.1.6 displaystyleとscriptlevel.
|
||
scriptminsize | 長さ length |
8pt |
scriptlevel の変更の際に認められている, 最小のフォントの大きさを指定します. この属性は, mathsize の変更によるフォントの大きさを制限しないことに注意して下さい. 3.1.6 displaystyleとscriptlevelを参照して下さい.Specifies the minimum font size allowed due to changes in scriptlevel .
Note that this does not limit the font size due to changes to mathsize .
See 3.1.6 Displaystyle and Scriptlevel.
|
||
infixlinebreakstyle | "before" | "after" | "duplicate" | before |
中間の演算子に対して使用するlinebreakstyleの既定値を指定します. 3.2.5.2.2 改行の属性を参照して下さい. Specifies the default linebreakstyle to use for infix operators; see 3.2.5.2.2 Linebreaking attributes |
||
decimalpoint | 文字 character |
. |
mstack とmtable の中で, "decimalpoint"の値が位置揃えを指定するのに使われている場合に, 位置揃えの点を決めるのに用いられる文字を指定します. 既定値の"."は, 多くの国で浮動小数点数の整数部と小数部を区切るのに用いられる小数点です. (3.6 初等数学と3.5.5 位置揃えの記号 <maligngroup/> , <malignmark/> を参照して下さい.)Specifies the character used to determine the alignment point within mstack
and
mtable columns
when the "decimalpoint" value is used to specify the alignment.
The default, ".", is the decimal separator used to separate the integral
and decimal fractional parts of floating point numbers in many countries.
(See 3.6 Elementary Math and 3.5.5 Alignment Markers
<maligngroup/> , <malignmark/> ).
|
他の属性も設定しているmstyle
要素によってscriptlevel
が増加するように変更されているとしたら, その変更の全体への効果は, 属性が処理される順番に依存します. そのような場合に次の一覧にある属性は, mstyle
開始タグのXML形式の属性の一覧に現れる順番によらず, 次の順番で処理されるべきです. scriptsizemultiplier
, scriptminsize
, scriptlevel
, mathsize
.
If scriptlevel
is changed incrementally by an
mstyle
element that also sets certain other
attributes, the overall effect of the changes may depend on the order
in which they are processed. In such cases, the attributes in the
following list should be processed in the following order, regardless
of the order in which they occur in the XML-format attribute list of
the mstyle
start tag:
scriptsizemultiplier
, scriptminsize
,
scriptlevel
, mathsize
.
連分数において, 入れ子になった分数は縮小されるべきではありません. その代わり, それらの分数は, 同じ大きさを保つべきです. このことは, それぞれのmfrac
の子要素におけるdisplaystyle
やscriptlevel
を, mstyle
を用いて再設定することで達成することができます.
In a continued fraction, the nested fractions should not shrink. Instead, they should remain the same size.
This can be accomplished by resetting displaystyle
and
scriptlevel
for the children of each mfrac
using mstyle
as shown below:
<mrow>
<mi>π</mi>
<mo>=</mo>
<mfrac>
<mstyle displaystyle="true" scriptlevel="0"> <mn>4</mn> </mstyle>
<mstyle displaystyle="true" scriptlevel="0">
<mn>1</mn>
<mo>+</mo>
<mfrac>
<mstyle displaystyle="true" scriptlevel="0">
<msup> <mn>1</mn> <mn>2</mn> </msup>
</mstyle>
<mstyle displaystyle="true" scriptlevel="0">
<mn>2</mn>
<mo>+</mo>
<mfrac>
<mstyle displaystyle="true" scriptlevel="0">
<msup> <mn>3</mn> <mn>2</mn> </msup>
</mstyle>
<mstyle displaystyle="true" scriptlevel="0">
<mn>2</mn>
<mo>+</mo>
<mfrac>
<mstyle displaystyle="true" scriptlevel="0">
<msup> <mn>5</mn> <mn>2</mn> </msup>
</mstyle>
<mstyle displaystyle="true" scriptlevel="0">
<mn>2</mn>
<mo>+</mo>
<mfrac>
<mstyle displaystyle="true" scriptlevel="0">
<msup> <mn>7</mn> <mn>2</mn> </msup>
</mstyle>
<mstyle displaystyle="true" scriptlevel="0">
<mn>2</mn>
<mo>+</mo>
<mo>⋱</mo>
</mstyle>
</mfrac>
</mstyle>
</mfrac>
</mstyle>
</mfrac>
</mstyle>
</mfrac>
</mstyle>
</mfrac>
</mrow>
merror
要素は, その中身をエラーメッセージ
として表示します. このことは, 例えば, 中身を赤で表示したり, 中身をぴかっと光らせたり, 背景色を変更したりして実現されます. 中身は, 何らかの式か, 何らかの一連の式にできます.
The merror
element displays its contents as an
error message
. This might be done, for example, by displaying the
contents in red, flashing the contents, or changing the background
color. The contents can be any expression or expression sequence.
merror
は単独の引数を持ちます. その引数は, 複数の子要素から成る省略されたmrow
でも良いです. 3.1.3 必要な引数を参照して下さい.
merror
accepts
a single argument possibly being an inferred mrow
of multiple children;
see 3.1.3 Required Arguments.
この要素の意図は, 他から入力を受けたときにその入力の構文エラーを報告するための, MathMLを生成する標準の方法をプログラムに提供することです. 簡単な手入力のために設計された入力構文を解析する前処理プログラムが, MathMLを生成するために開発されるであろうことが期待されています. そのため, それらのプログラムが, ある場所で起こった構文エラーを示す能力を持つことが重要です. D.2 エラーの扱いを参照して下さい.
The intent of this element is to provide a standard way for programs that generate MathML from other input to report syntax errors in their input. Since it is anticipated that preprocessors that parse input syntaxes designed for easy hand entry will be developed to generate MathML, it is important that they have the ability to indicate that a syntax error occurred at a certain point. See D.2 Handling of Errors.
構文エラーを報告するために提案されたmerror
の利用は, 前処理プログラムが, 入力のエラー部分を, 周囲を囲っている式を可能な限り標準的に処理しながら, エラーの説明を含むmerror
要素と置き換えることです. このことが意味するところによれば, エラーメッセージは, 正しく表現されるのなら, エラーのある入力が現れていたところに描かれるでしょう. このことは, 描画された出力から, 入力のどの部分がエラーか著者が判断することを簡単にします.
The suggested use of merror
for reporting
syntax errors is for a preprocessor to replace the erroneous part of
its input with an merror
element containing a
description of the error, while processing the surrounding expressions
normally as far as possible. By this means, the error message will be
rendered where the erroneous input would have appeared, had it been
correct; this makes it easier for an author to determine from the
rendered output what portion of the input was in error.
指定されたエラーメッセージの書式は, ここでは何も提案されていません. しかしながら, 何らかのプログラムからのエラーメッセージについて, その書式は, 入力の何が間違っていたか, どのように修正できるのか, (指定されたエラーメッセージを見る人にとって)可能な限り明確にするよう設計されるべきです. 間違った入力が正しい書式の部分を含んでいる場合, 間違った入力が, 標準的に前処理されることや, 文字列だけでなく何らかのMathMLの式を含むことのできるmerror
の能力の利点を通して, (merror
要素の中身の)エラーメッセージに含まれることは役に立つでしょう.
No specific error message format is suggested here, but as with
error messages from any program, the format should be designed to make
as clear as possible (to a human viewer of the rendered error message)
what was wrong with the input and how it can be fixed. If the
erroneous input contains correctly formatted subsections, it may be
useful for these to be preprocessed normally and included in the error
message (within the contents of the merror
element), taking advantage of the ability of
merror
to contain arbitrary MathML expressions
rather than only text.
merror
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で一覧にした属性を持っています.
merror
elements accept the attributes listed in
3.1.9 Mathematics attributes common to presentation elements.
MathMLの構文を確認するプログラムが次の入力を受け取ったとします.
If a MathML syntax-checking preprocessor received the input
<mfraction>
<mrow> <mn> 1 </mn> <mo> + </mo> <msqrt> <mn> 5 </mn> </msqrt> </mrow>
<mn> 2 </mn>
</mfraction>
この式は, (恐らくMathML要素mfrac
の場所に)MathMLでない要素mfraction
を含んでいます. この式は, 次のエラーメッセージを生成してもよいでしょう.
which contains the non-MathML element mfraction
(presumably in place of the MathML element mfrac
),
it might generate the error message
<merror>
<mtext> Unrecognized element: mfraction; arguments were: </mtext>
<mrow> <mn> 1 </mn> <mo> + </mo> <msqrt> <mn> 5 </mn> </msqrt> </mrow>
<mtext> and </mtext>
<mn> 2 </mn>
</merror>
前処理プログラムの入力は, この場合, 有効なMathMLではありませんが, 出力されたエラーメッセージは有効なMathMLであることに注意して下さい.
Note that the preprocessor's input is not, in this case, valid MathML, but the error message it outputs is valid MathML.
mpadded
要素は, 子要素の中身と同じものを描画しますが, 子要素の描画領域の大きさや相対的な描画位置を, mpadded
の属性に従って修正して描画します. mpadded
要素は, 中身の大きさを変更しません(引き伸ばしたり, 縮めたりしません). この要素の名前は, mpadded
の典型的な利用方法である中身の周囲に余白を設けたり(訳注:原文ではpadding), 追加の余白を加えることを反映しています. しかしながら, mpadded
はより一般的な大きさや位置の調整や, 例えば, mpadded
の中身を隣接する要素と重ねて描画することができる負の間隔を設けるといったいくつかの組み合わされた描画に利用できます. この効果の様々な潜在的な落とし穴についての警告は, [MathMLメモ]を参照して下さい.
An mpadded
element renders the same as its child content,
but with the size of the child's bounding box and the relative positioning
point of its content modified according to
mpadded
's attributes. It
does not rescale (stretch or shrink) its content. The name of the
element reflects the typical use of mpadded
to add padding,
or extra space, around its content. However, mpadded
can be
used to make more general adjustments of size and positioning, and some
combinations, e.g. negative padding, can cause the content of
mpadded
to overlap the rendering of neighboring content. See
[MathML-Notes] for warnings about several
potential pitfalls of this effect.
mpadded
要素は単独の引数を持ちます. その引数は, 複数の子要素から成る省略されたmrow
でも良いです. 3.1.3 必要な引数を参照して下さい.
The mpadded
element accepts
a single argument which may be an inferred mrow
of multiple children;
see 3.1.3 Required Arguments.
音声表現ソフトウェアは, 水平の間隔を表現する属性(width
やlspace
)に基づいて, 空ける時間を加えたり(短くしたり)することが提案されています.
It is suggested that audio renderers add (or shorten) time delays
based on the attributes representing horizontal space
(width
and lspace
).
mpadded
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
mpadded
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
height | ( "+" | "-" )?
符号無し数
( ("%" 疑似単位?)
| 疑似単位
| 単位
| 名前付き空白
)? ( "+" | "-" )? unsigned-number ( ("%" pseudo-unit?) | pseudo-unit | unit | namedspace )? |
要素の中身と同じ same as content |
mpadded 要素の高さを設定するか増加させます. 下記の議論を参照して下さい.Sets or increments the height of the mpadded element.
See below for discussion.
|
||
depth | ( "+" | "-" )?
符号無し数
(("%" 疑似単位?)
| 疑似単位
| 単位
| 名前付き空白
)? ( "+" | "-" )? unsigned-number ( ("%" pseudo-unit?) | pseudo-unit | unit | namedspace )? |
要素の中身と同じ same as content |
mpadded 要素の深さを設定するか増加させます. 下記の議論を参照して下さい.Sets or increments the depth of the mpadded element.
See below for discussion.
|
||
width | ( "+" | "-" )?
符号無し数
( ("%" 疑似単位?)
| 疑似単位
| 単位
| 名前付き空白
)? ( "+" | "-" )? unsigned-number ( ("%" pseudo-unit?) | pseudo-unit | unit | namedspace )? |
要素の中身と同じ same as content |
mpadded 要素の幅を設定するか増加させます. 下記の議論を参照して下さい.Sets or increments the width of the mpadded element.
See below for discussion.
|
||
lspace | ( "+" | "-" )?
符号無し数
( ("%" 疑似単位?)
| 疑似単位
| 単位
| 名前付き空白
)? ( "+" | "-" )? unsigned-number ( ("%" pseudo-unit?) | pseudo-unit | unit | namedspace )? |
0em |
子要素の水平の位置を設定します. 下記の議論を参照して下さい. Sets the horizontal position of the child content. See below for discussion. |
||
voffset | ( "+" | "-" )?
符号無し数
( ("%" 疑似単位?)
| 疑似単位
| 単位
| 名前付き空白
)? ( "+" | "-" )? unsigned-number ( ("%" pseudo-unit?) | pseudo-unit | unit | namedspace )? |
0em |
子要素の縦の位置を設定します. 下記の議論を参照して下さい. Sets the vertical position of the child content. See below for discussion. |
注意: [MathMLコア]は上記の属性に対応しているにも関わらず, 有効な長さや百分率である値のみ認めています. 必須でない"+"記号や"-"記号を伴う増減や疑似単位に, MathMLコアは対応していません.
Note: while [MathML-Core] supports the above attributes, it only allows the value to be a valid length-percentage. Increments with the optional "+" or "-" signs are not supported in MathML Core nor are pseudo-units.
疑似単位については後で述べます. また, height
属性, depth
属性, width
属性は, 大きさの属性として参照され, lspace
属性とvoffset
属性は位置の属性です.
The pseudo-unit syntax symbol is described below.
Also, height
, depth
and
width
attributes are
referred to as size attributes, while lspace
and voffset
attributes
are position attributes.
これらの属性は, 子要素の描画領域の大きさに関係する, mpadded
要素の描画領域の大きさを指定します. また, mpadded
要素の自然な位置からの, 子要素の相対的な位置を指定します. これらの属性によって決められる印刷の配置の性質は, 次の節で説明します. 属性値の形式に依存して, 寸法は新しい値を設定されるか, 子要素の周囲を囲っているものの寸法に対して相対的に指定されてもよいです. 値は, 疑似単位と呼ばれる子要素が通常描画される寸法の倍数や百分率で与えられてもよいですし, 直接, 標準の単位を用いて設定することもできます. 2.1.5.2 長さの値の属性を参照して下さい.
These attributes specify the size of the bounding box of the mpadded
element relative to the size of the bounding box of its child content, and specify
the position of the child content of the mpadded
element relative to the
natural positioning of the mpadded
element. The typographical
layout parameters determined by these attributes are described in the next subsection.
Depending on the form of the attribute value, a dimension may be set to a new value,
or specified relative to the child content's corresponding dimension. Values may
be given as
multiples or percentages of any of the
dimensions of the normal rendering of the child content using so-called pseudo-units,
or they can be set directly using standard units, see 2.1.5.2 Length Valued Attributes.
大きさの属性の値が+
または-
記号で始まるとき, その記号は, 後ろに続く長さの値の分だけ対象となる寸法を増加させるか減少させるか指定します. そうでなければ, 対象となる寸法は後ろに続く長さの値で直接決定されます. 先頭に来るマイナス記号は減少を示すことから, 大きさの属性(height
, depth
, width
)は, 直接負の値を設定することができません. 加えて, これらの属性を最終的に負の値とするであろう減少を指定することは, 属性を0と設定することと同じ効果があります. 言い換えれば, mpadded
要素の効果的な描画領域は, いつでも負でない寸法を持っています. しかしながら, 負の値は, 相対的な位置の属性lspace
とvoffset
には認められています.
If the value of a size attribute begins with a +
or -
sign,
it specifies an increment or decrement to the corresponding
dimension by the following length value. Otherwise the corresponding
dimension is set directly to the following length value.
Note that since a leading minus sign indicates a decrement, the size
attributes (height
, depth
, width
)
cannot be set directly to negative values. In addition, specifying a
decrement that would produce a net negative value for these attributes
has the same effect as
setting the attribute to zero. In other words, the effective
bounding box of an mpadded
element always has non-negative
dimensions. However, negative values are allowed for the relative positioning
attributes lspace
and voffset
.
(何らかの記号を取り除いた)長さの値は, 様々な書式で指定できます. それぞれの書式は, 符号無し数で始まり, その後に(数を効果的に拡大・縮小する)%
記号と必須でない疑似単位, 単独の疑似単位, (%
を除く)単位が続いてもよいです. 利用可能な疑似単位は, height
, depth
, width
という用語です. それらは, mpadded
要素の子要素の同じ名前の寸法の長さを表します.
Length values (excluding any sign) can be specified in several formats.
Each format begins with an unsigned-number,
which may be followed by
a %
sign (effectively scaling the number)
and an optional pseudo-unit,
by a pseudo-unit alone,
or by a unit (excepting %
).
The possible pseudo-units are the keywords height
,
depth
, and width
. They represent the length of the same-named dimension of the
mpadded
element's child content.
どの長さの書式であっても, 最終的な長さは, (%
を含んでも良い)数と, それに続く疑似単位, 単位, 名前付き空白, そのような単位等が与えられなかった場合の属性の既定値との積になります.
For any of these length formats, the resulting length
is the product of the number (possibly including the %
)
and the following pseudo-unit,
unit,
namedspace
or the default value for the attribute if no such unit or space is given.
(明確にまたは既定値として)疑似単位を利用した属性の書式の例をいくつか示します. depth="100%height"
とdepth="1.0height"
は, 両方ともmpadded
要素の深さを要素の中身の高さに設定します. depth="105%"
は, 深さを要素の中身の深さの1.05倍に設定します. また, depth="+100%"
またはdepth="200%"
のどちらも, 深さを要素の中身の深さの2倍に設定します.
Some examples of attribute formats using pseudo-units (explicit or
default) are as follows: depth="100%height"
and
depth="1.0height"
both set the depth of the
mpadded
element to the height of its content.
depth="105%"
sets the depth to 1.05 times the content's
depth, and either depth="+100%"
or
depth="200%"
sets the depth to twice the content's
depth.
上で示した決まりは, 全ての次の属性の設定が, 要素の中身の寸法を変更しないままにしておくという, 同じ効果を持つことを意味しています.
The rules given above imply that all of the following attribute settings have the same effect, which is to leave the content's dimensions unchanged:
<mpadded width="+0em"> ... </mpadded>
<mpadded width="+0%"> ... </mpadded>
<mpadded width="-0em"> ... </mpadded>
<mpadded width="-0height"> ... </mpadded>
<mpadded width="100%"> ... </mpadded>
<mpadded width="100%width"> ... </mpadded>
<mpadded width="1width"> ... </mpadded>
<mpadded width="1.0width"> ... </mpadded>
<mpadded> ... </mpadded>
MathML仕様書のバージョン2の例は, 属性値の中に, 字下げした書式を意図した空白を入れていました. 正式には, それらの値の中に空白は認められませんが, 実装者は, 以前との互換性を最大化するために, そのような空白を無視することを望んでもよいです.
Note that the examples in the Version 2 of the MathML specification showed spaces within the attribute values, suggesting that this was the intended format. Formally, spaces are not allowed within these values, but implementers may wish to ignore such spaces to maximize backward compatibility.
mpadded
要素の内容は, 文字や分数や式といった数学表記の断片を定義しています. それらは, 自然な描画領域とそれに関係する自然な描画位置を持った単独の印刷要素と見なされます.
The content of an mpadded
element defines a fragment of mathematical
notation, such as a character, fraction, or expression, that can be regarded as
a single typographical element with a natural positioning point relative to its
natural bounding box.
mpadded
要素の描画領域の大きさは, mpadded
要素のheight
属性, depth
属性, width
属性によって修正される場合を除いて, 要素の中身の描画領域の大きさと定義されています. mpadded
要素の子要素の自然な描画位置は, lspace
属性やvoffset
属性によって修正される場合を除いて, mpadded
要素の自然な描画位置と一致するように決められます. したがって, mpadded
の大きさの属性は, 子要素の見掛け上の描画領域を拡大したり縮小したりするのに利用でき, mpadded
の位置の属性は, 描画領域から(また隣接する要素からも)相対的に内容を移動するのに利用できます. MathMLは, "印刷物"と, 描画領域や描画位置の特定の実装との間の, 正確な関係について定義していないことに注意して下さい. よって, mpaddedの属性に対する絶対的な値は, 実装間を行ったり来たりできなくてもよいです.
The size of the bounding box of an mpadded
element is
defined as the size of the bounding box of its content, except as
modified by the mpadded
element's
height
, depth
, and
width
attributes. The natural positioning point of the
child content of the mpadded
element is located to coincide
with the natural positioning point of the mpadded
element,
except as modified by the lspace
and voffset
attributes. Thus, the size attributes of mpadded
can be used
to expand or shrink the apparent bounding box of its content, and the
position attributes of mpadded
can be used to move the
content relative to the bounding box (and hence also neighboring elements).
Note that MathML doesn't define the precise relationship between "ink",
bounding boxes and positioning points, which are implementation
specific. Thus, absolute values for mpadded attributes may not be
portable between implementations.
height
属性は, mpadded
要素の欧文ベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)から上の描画領域の縦の大きさを指定します. height
を増加することは, mpadded
要素の欧文ベースラインから上の内容を描画する空間を増やすこととなり, 子要素を描画した上側に余白を設けます. height
を減少させることは, mpadded
要素の欧文ベースラインから上の内容を描画する空間を減らすこととなり, 子要素を描画した際の上側の余白を取り除きます. height
を減少させることは, mpadded
要素の上にある要素と描画した子要素が重なることを引き起こすかもしれず, 一般に避けられるべきです.
The height
attribute specifies the vertical extent of the
bounding box of the mpadded
element above its baseline.
Increasing the height
increases the space between the baseline
of the mpadded
element and the content above it, and introduces
padding above the rendering of the child content. Decreasing the
height
reduces the space between the baseline of the
mpadded
element and the content above it, and removes
space above the rendering of the child content. Decreasing the
height
may cause content above the mpadded
element to overlap the rendering of the child content, and should
generally be avoided.
depth
属性は, mpadded
要素の欧文ベースラインから下の描画領域の縦の大きさを指定します. depth
を増加させることは, mpadded
要素の欧文ベースラインから下の内容を描画する空間を増やすこととなり, 子要素を描画した下側に余白を設けます. depth
を減少させることは, mpadded
要素の欧文ベースラインから下の内容を描画する空間を減らすこととなり, 子要素を描画した際の下側の余白を取り除きます. depth
を減少させることは, mpadded
要素の下にある要素と描画した子要素が重なることを引き起こすかもしれず, 一般に避けられるべきです.
The depth
attribute specifies the vertical extent of the
bounding box of the mpadded
element below its baseline.
Increasing the depth
increases the space between the baseline
of the mpadded
element and the content below it, and introduces
padding below the rendering of the child content. Decreasing the
depth
reduces the space between the baseline of the mpadded
element and the content below it, and removes space below the rendering
of the child content. Decreasing the depth
may cause content
below the mpadded
element to overlap the rendering of the child
content, and should generally be avoided.
width
属性は, mpadded
要素の描画位置と次に続く要素の描画位置との間の水平距離を指定します. width
を増加させることは, mpadded
要素の描画位置と次に続く要素の間の空間を増やすこととなり, 子要素を描画した後に余白を設けます. width
を減少させることは, mpadded
の描画位置と次に続く要素の間の空間を減らすこととなり, 子要素を描画した後の余白を取り除きます. width
を0に設定することは, 次に続く要素をmpadded
要素の描画位置に描画することを引き起こします. width
を減少させることは一般に避けられるべきであり, 次に続く要素と重ねて表示することになるかもしれません.
The width
attribute specifies the horizontal distance
between the positioning point of the mpadded
element and the
positioning point of the following content.
Increasing the width
increases the space between the
positioning point of the mpadded
element and the content
that follows it, and introduces padding after the rendering of the
child content. Decreasing the width
reduces the space
between the positioning point of the mpadded
element and
the content that follows it, and removes space after the rendering
of the child content. Setting the width
to zero causes
following content to be positioned at the positioning point of the
mpadded
element. Decreasing the width
should
generally be avoided, as it may cause overprinting of the following
content.
lspace
属性("前に来る"(訳注:原文ではleading)空白, 3.1.5.1 数式全体の方向参照)は, mpadded
要素の描画位置に対する子要素の描画位置を水平方向のどこにするのか指定します. 通常, それらの描画位置は一致するので, lspaceに対する絶対的な値は, 相対的な値と同じ効果があります. lspace
に対する正の値は, 前に来る要素と子要素の間隔を増加させ, 描画した子要素の前に余白を設けます. lspace
属性に対する負の値は, 前に来る要素と子要素の間隔を減少させ, 前に来る要素と重なって表示することを引き起こすかもしれず, 避けられるべきです. lspace
は, mpadded
要素のwidth
に影響を与えないことに注意して下さい. そのため, lspace
属性は子要素と次に続く要素の間隔にも影響を与えるでしょうし, そのことは, それに従ってwidth
が調整されない限り, 次に続く要素と重ねて表示することを引き起こすかもしれません.
The lspace
attribute ("leading" space;
see 3.1.5.1 Overall Directionality of Mathematics Formulas) specifies the horizontal
location of the positioning point of the child content with respect to
the positioning point of the mpadded
element. By default they
coincide, and therefore absolute values for lspace have the same effect
as relative values.
Positive values for the lspace
attribute increase the space
between the preceding content and the child content, and introduce padding
before the rendering of the child content. Negative values for the
lspace
attributes reduce the space between the preceding
content and the child content, and may cause overprinting of the
preceding content, and should generally be avoided. Note that the
lspace
attribute does not affect the width
of
the mpadded
element, and so the lspace
attribute
will also affect the space between the child content and following
content, and may cause overprinting of the following content, unless
the width
is adjusted accordingly.
voffset
属性は, mpadded
要素の描画位置に対する子要素の描画位置を縦方向のどこにするのか指定します. voffset
属性に対する正の値は, 欧文ベースラインから上方向に子要素を上げて描画します. voffset
属性に対する負の値は, 欧文ベースラインから下方向に子要素を下げて描画します. どちらの場合も, voffset
属性は, 隣接する要素と重ねて表示することを引き起こすかもしれず, それは避けられるべきです. voffset
属性は, mpadded
要素のheight
にもdepth
にも影響を与えないことに注意して下さい. そのため, voffset
属性は, 子要素と隣接する要素の間隔にも影響を与えるでしょうし, そのことは, それに従ってheight
またはdepth
が調整されない限り, 隣接する要素と重ねて表示することを引き起こすかもしれません.
The voffset
attribute specifies the vertical location
of the positioning point of the child content with respect to the
positioning point of the mpadded
element. Positive values
for the voffset
attribute raise the rendering of the child
content above the baseline. Negative values for the voffset
attribute lower the rendering of the child content below the baseline.
In either case, the voffset
attribute may cause overprinting
of neighboring content, which should generally be avoided. Note that
the voffset
attribute does not affect the height
or depth
of the mpadded
element, and so the voffset
attribute will also affect the space between the child content and neighboring
content, and may cause overprinting of the neighboring content, unless the
height
or depth
is adjusted accordingly.
MathML描画ソフトウェアは, 属性の効果を除いて, mpadded
要素の内容と周囲を囲っているMathML要素の相対的な間隔について, 次のことを確かなものにすべきです. それは, たとえmpadded
要素の途中で改行されても, mpadded
要素が同じ内容を持つmrow
要素で置き換えられた場合に何も変わらないことです. MathMLは, どのようにmpadded
要素の既定値でない属性値が, 改行の仕組みと相互作用するか定義していません.
MathML renderers should ensure that, except for the effects of the
attributes, the relative spacing between the contents of the
mpadded
element and surrounding MathML elements would
not be modified by replacing an mpadded
element with an
mrow
element with the same content, even if linebreaking
occurs within the mpadded
element. MathML does not define
how non-default attribute values of an mpadded
element interact
with the linebreaking algorithm.
大きさと位置の属性の効果について下記で説明します. 次の図は, mpadded
の描画領域を修正せずに, 子要素の位置をずらすlspace
とvoffset
の利用について図解しています.
The effects of the size and position attributes are illustrated
below. The following diagram illustrates the use of lspace
and voffset
to shift the position of child content without
modifying the mpadded
bounding box.
対応するMathMLは次のとおりです.
The corresponding MathML is:
<mrow>
<mi>x</mi>
<mpadded lspace="0.2em" voffset="0.3ex">
<mi>y</mi>
</mpadded>
<mi>z</mi>
</mrow>
次の図は, 子要素の相対的な位置を変えずに, mpadded
の描画領域を修正するwidth
, height
, depth
の利用について図解しています.
The next diagram illustrates the use of
width
, height
and depth
to modifying the mpadded
bounding box without changing the relative position
of the child content.
対応するMathMLは次のとおりです.
The corresponding MathML is:
<mrow>
<mi>x</mi>
<mpadded width="+90%width" height="+0.3ex" depth="+0.3ex">
<mi>y</mi>
</mpadded>
<mi>z</mi>
</mrow>
最後の図は, 子要素の描画領域と相対的な位置の両方を修正するための, mpadded
の一般的な利用について図解しています.
The final diagram illustrates the generic use of mpadded
to modify both
the bounding box and relative position of child content.
対応するMathMLは次のとおりです.
The corresponding MathML is:
<mrow>
<mi>x</mi>
<mpadded lspace="0.3em" width="+0.6em">
<mi>y</mi>
</mpadded>
<mi>z</mi>
</mrow>
<mphantom>
<mphantom>
mphantom
要素は見えないように, ただし, 欧文ベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)の位置も含め, 要素の中身が通常通り描画された場合に持つのと同じフォントサイズや寸法で描画します. mphantom
は, 見えない大きさを保った式によって, 式の部分部分を揃えるのに利用できます.
The mphantom
element renders invisibly, but
with the same size and other dimensions, including baseline position,
that its contents would have if they were rendered
normally. mphantom
can be used to align parts of
an expression by invisibly duplicating sub-expressions.
mphantom
要素は単独の引数を持ちます. その引数は, 複数の子要素から成る省略されたmrow
でも良いです. 3.1.3 必要な引数を参照して下さい.
The mphantom
element accepts
a single argument possibly being an inferred mrow
of multiple children;
see 3.1.3 Required Arguments.
<mphantom><mpadded 属性の設定> ... </mpadded></mphantom>
といった具合に1つのMathMLの式の周りで, 大きさを変更すると同時に見えなくするために, mphantom
要素とmpadded
要素を重ねて利用することが可能なことに注意して下さい.
Note that it is possible to wrap both an
mphantom
and an mpadded
element around one MathML expression, as in
<mphantom><mpadded attribute-settings>
... </mpadded></mphantom>
, to change its size and make it
invisible at the same time.
MathML描画ソフトウェアは, mphantom
要素の中身と周囲を囲っているMathML要素の相対的な間隔を, mphantom
要素が同じ中身を持つmrow
要素で置き換えられたとしても, 変わらないことを確実なものにすべきです. このことは, mphantom
要素の中で改行が起こったとしても保たれるべきです.
MathML renderers should ensure that the relative spacing between
the contents of an mphantom
element and the
surrounding MathML elements is the same as it would be if the
mphantom
element were replaced by an
mrow
element with the same content. This holds
even if linebreaking occurs within the mphantom
element.
上記の理由から, mphantom
の中身が空白のような要素(3.2.7 空白 <mspace/>
)でない限り, mphantom
は空白のような要素とは見なされません. なぜなら, 提案されている演算子に対する描画の決まりは, 近接する要素が空白のような要素であるかどうかに影響されるからです. ただ, そうだとしても, 空白のような要素の正当なグループ化についての警告が, mphantom
の利用に適用されてもよいです.
For the above reason, mphantom
is
not considered space-like (3.2.7 Space <mspace/>
) unless its
content is space-like, since the suggested rendering rules for
operators are affected by whether nearby elements are space-like. Even
so, the warning about the legal grouping of space-like elements may
apply to uses of mphantom
.
mphantom
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で一覧にした属性を持っています(mathcolor
は何の効果も持ちません).
mphantom
elements accept the attributes listed in
3.1.9 Mathematics attributes common to presentation elements (the mathcolor
has no effect).
mphantom
の描画に対して前に示した決まりが, 望まれた効果を発揮しないかもしれない状況が1つあります. mphantom
がmrow
の引数の一部を囲っているとき, その一部の中のmo
要素に対するform
属性の決定方法は変更されてもよいです. (3.2.5 演算子, かっこ, 区切り, アクセント <mo>
で説明しているform
属性の既定値を参照して下さい.) このような状況では, そのようなmo
に明確なform
属性を与えることが必要かもしれません. このことは, 次の例で説明しています.
There is one situation where the preceding rules for rendering an
mphantom
may not give the desired effect. When an
mphantom
is wrapped around a subsequence of the
arguments of an mrow
, the default determination
of the form
attribute for an mo
element within the subsequence can change. (See the default value of
the form
attribute described in 3.2.5 Operator, Fence, Separator or Accent
<mo>
.) It may be
necessary to add an explicit form
attribute to such an
mo
in these cases. This is illustrated in the
following example.
この例では, 分数と分子の対応する部分の位置揃えを確実にするために, mphantom
を利用しています.
In this example, mphantom
is used to ensure
alignment of corresponding parts of the numerator and denominator of a
fraction:
<mfrac>
<mrow>
<mi> x </mi>
<mo> + </mo>
<mi> y </mi>
<mo> + </mo>
<mi> z </mi>
</mrow>
<mrow>
<mi> x </mi>
<mphantom>
<mo form="infix"> + </mo>
<mi> y </mi>
</mphantom>
<mo> + </mo>
<mi> z </mi>
</mrow>
</mfrac>
この例は, 次のようなものとして描画されるでしょう.
This would render as something like
次のようにではなくです.
rather than as
mphantom
の中のmo
要素におけるform
="infix"
という明確な属性の設定は, form
属性を周囲を囲っているmphantom
が無い場合のものに設定します. こうしなければ, +
記号がわずかに違う間隔を持つであろう前置の演算子と解釈されることから, この設定は必要です.
The explicit attribute setting form
="infix"
on the
mo
element inside the mphantom
sets the
form
attribute to what it would have been in the absence of the
surrounding mphantom
. This is necessary since
otherwise, the +
sign would be interpreted as a prefix
operator, which might have slightly different spacing.
この代わりとして, 例えば<mo>+</mo>
と<mi>y</mi>
という引数それぞれを別個のmphantom
要素で囲うことで, この問題は明確な属性の設定を避けることができます.
Alternatively, this problem could be avoided without any explicit
attribute settings, by wrapping each of the arguments
<mo>+</mo>
and <mi>y</mi>
in its
own mphantom
element, i.e.
<mfrac>
<mrow>
<mi> x </mi>
<mo> + </mo>
<mi> y </mi>
<mo> + </mo>
<mi> z </mi>
</mrow>
<mrow>
<mi> x </mi>
<mphantom>
<mo> + </mo>
</mphantom>
<mphantom>
<mi> y </mi>
</mphantom>
<mo> + </mo>
<mi> z </mi>
</mrow>
</mfrac>
mfenced
要素は, 囲い文字(例えば, 大がっこ, 角がっこ, 丸かっこ)を含む, 場合によっては引数の間に(コンマのような)区切り文字を含む, 一般的な構造を表すのに便利な形式を提供します.
The mfenced
element provides a convenient form
in which to express common constructs involving fences (i.e. braces,
brackets, and parentheses), possibly including separators (such as
comma) between the arguments.
例えば, <mfenced> <mi>x</mi> </mfenced>
は, (x)
として描画され, 次の式と等しいです.
For example, <mfenced> <mi>x</mi> </mfenced>
renders as (x)
and is equivalent to
<mrow> <mo> ( </mo> <mi>x</mi> <mo> ) </mo> </mrow>
また, <mfenced> <mi>x</mi> <mi>y</mi> </mfenced>
は(x, y)
として描画され, 次の式と等しいです.
and <mfenced> <mi>x</mi> <mi>y</mi> </mfenced>
renders as (x, y)
and is equivalent to
<mrow>
<mo> ( </mo>
<mrow> <mi>x</mi> <mo>,</mo> <mi>y</mi> </mrow>
<mo> ) </mo>
</mrow>
個々の囲み文字や区切り文字は, 3.2.5 演算子, かっこ, 区切り, アクセント <mo>
で述べたように, mo
要素を利用して表現できます. したがって, 何らかのmfenced
要素は, 完全に後で説明する展開された形式に等しいです. mfenced
は著者や編集ソフトウェアにとってより便利であるにも関わらず, 展開された形式のみにしか, [MathMLコア]は対応していません. この勧告に対応した描画ソフトウェアは, それらのどちらの形式も, 正確に同じ方法で描画する必要があります.
Individual fences or separators are represented using
mo
elements, as described in 3.2.5 Operator, Fence, Separator or Accent
<mo>
. Thus, any mfenced
element is completely equivalent to an expanded form described below.
While mfenced
might be more convenient for authors or authoring software,
only the expanded form is supported in [MathML-Core].
A renderer that supports this recommendation is required to
render either of these forms in exactly the same way.
一般に, mfenced
要素は, 0以上の引数を含むことができ, 囲い文字の間のものをmrow
で囲うでしょう. 複数の引数があったとき, 隣接する要素の間に区切り文字を挿入し, 適切なグループ化(3.3.1 式の水平のまとまり <mrow>
)のために, 引数と区切り文字の周りで, 追加の入れ子になったmrow
を利用するでしょう. 一般的な展開された形式は後で示します. 囲い文字と区切り文字は, 通常, 丸かっことコンマとなりますが, 次の表で示すように属性を使用して変更できます.
In general, an mfenced
element can contain
zero or more arguments, and will enclose them between fences in an
mrow
; if there is more than one argument, it will
insert separators between adjacent arguments, using an additional
nested mrow
around the arguments and separators
for proper grouping (3.3.1 Horizontally Group Sub-Expressions
<mrow>
). The general expanded form is
shown below. The fences and separators will be parentheses and comma
by default, but can be changed using attributes, as shown in the
following table.
mfenced
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます. 前後の囲い文字や区切り文字は, mathcolor
で指定された色を用いて描かれるべきです.
mfenced
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
The delimiters and separators should be drawn using the color specified by mathcolor
.
名前 Name |
値 values |
既定値 default |
open | 文字列 string |
( |
開始の囲い文字を指定します. mo 要素の中身として利用されることから, 何らかの空白は2.1.7 入力された空白を縮小するで述べたように取られたり縮小されたりするでしょう.Specifies the opening delimiter. Since it is used as the content of an mo element, any whitespace
will be trimmed and collapsed as described in 2.1.7 Collapsing Whitespace in Input.
|
||
close | 文字列 string |
) |
終了の囲い文字を指定します. mo 要素の中身として利用されることから, 何らかの空白は2.1.7 入力された空白を縮小するで述べたように取られたり縮小されたりするでしょう.Specifies the closing delimiter. Since it is used as the content of an mo element, any whitespace
will be trimmed and collapsed as described in 2.1.7 Collapsing Whitespace in Input.
|
||
separators | 文字列 string |
, |
空白文字で区切ることもできる, 0個以上の区切り文字の文字列を指定します. それぞれの引数の組は, 対応する区切り文字で分けられて表示されます(最後の引数の後には付きません). 区切り文字が多すぎる場合, 超過している分は無視されます. 区切り文字が少な過ぎる場合, 最後の区切り文字が繰り返されます. separators の中の何らかの空白は全て無視されます.Specifies a sequence of zero or more separator characters, optionally separated by whitespace. Each pair of arguments is displayed separated by the corresponding separator (none appears after the last argument). If there are too many separators, the excess are ignored; if there are too few, the last separator is repeated. Any whitespace within separators is ignored.
|
全ての属性を明確に指定した一般的なmfenced
要素は, 次のように見えます.
A generic mfenced
element, with all attributes
explicit, looks as follows:
<mfenced open="開始の囲み文字"
close="終了の囲み文字"
separators="区切り文字#1 区切り文字#2 ... 区切り文字#(n-1)" >
引数#1
...
引数#n
</mfenced>
<mfenced open="opening-fence"
close="closing-fence"
separators="sep#1 sep#2 ... sep#(n-1)" >
arg#1
...
arg#n
</mfenced>
右から左(RTL)の方向の文脈では, 文字列の方向の初期値は右から左(RTL)なので, open
属性とclose
属性の文字は, 鏡になった形式で描画される鏡文字に対応したものを持ちます. 特に, 既定値は左から右(LTR)と右から左(RTL)の両方の文脈で, かっこで囲まれた文字列として正確に描画されるでしょう.
In an RTL directionality context, since the initial text
direction is RTL, characters in the open
and close
attributes that have a mirroring counterpart will be rendered in that
mirrored form. In particular, the default values will render correctly
as a parenthesized sequence in both LTR and RTL contexts.
上で示された一般的なmfenced
要素は, 次の展開された形式に等しいです.
The general mfenced
element shown above is
equivalent to the following expanded form:
<mrow>
<mo fence="true"> 開始の囲い文字 </mo>
<mrow>
引数#1
<mo separator="true"> 区切り文字#1 </mo>
...
<mo separator="true"> 区切り文字#(n-1) </mo>
引数#n
</mrow>
<mo fence="true"> 終了の囲い文字 </mo>
</mrow>
<mrow>
<mo fence="true"> opening-fence </mo>
<mrow>
arg#1
<mo separator="true"> sep#1 </mo>
...
<mo separator="true"> sep#(n-1) </mo>
arg#n
</mrow>
<mo fence="true"> closing-fence </mo>
</mrow>
最後を除くそれぞれの引数は, 区切り文字が後ろに来ます. 中のmrow
は, 3.3.1 式の水平のまとまり <mrow>
で述べた適切なグループ化のために加えられました.
Each argument except the last is followed by a separator. The inner
mrow
is added for proper grouping, as described in
3.3.1 Horizontally Group Sub-Expressions
<mrow>
.
引数が1つだけのときは, 上記の形式は区切り文字を持ちません. <mrow> 引数#1 </mrow>
は, (3.3.1 式の水平のまとまり <mrow>
で述べたように)引数#1
に等しいので, この場合は次の式に等しいです.
When there is only one argument, the above form has no separators;
since <mrow> arg#1 </mrow>
is equivalent to
arg#1
(as described in 3.3.1 Horizontally Group Sub-Expressions
<mrow>
), this case is also equivalent to:
<mrow>
<mo fence="true"> 開始の囲い文字 </mo>
引数#1
<mo fence="true"> 終了の囲い文字 </mo>
</mrow>
<mrow>
<mo fence="true"> opening-fence </mo>
arg#1
<mo fence="true"> closing-fence </mo>
</mrow>
区切り文字が多すぎる場合, 余分なものは無視されます. 区切り文字が与えられているが, 少な過ぎる場合, 最後の文字が必要なだけ繰り返されます. よって既定値であるseparators
=","は, separators
=",,"やseparators
=",,,"等と等しいです. 必要にも関わらず, 区切り文字が提供されなかった場合, 例えばseparators
=" "または""で複数の引数がある場合, 1つも区切り文字は挿入されません. つまり, <mo separator="true"> 区切り文字#i </mo>
は完全に省かれます. このことは, 空の内容のmo
要素から成る区切り文字を挿入するのとは異なるので注意して下さい.
If there are too many separator characters, the extra ones are
ignored. If separator characters are given, but there are too few, the
last one is repeated as necessary. Thus, the default value of
separators
="," is equivalent to
separators
=",,", separators
=",,,", etc. If
there are no separator characters provided but some are needed, for
example if separators
=" " or "" and there is more than
one argument, then no separator elements are inserted at all — that
is, the elements <mo separator="true"> sep#i
</mo>
are left out entirely. Note that this is different
from inserting separators consisting of mo
elements with empty content.
最後に, 例えば次のような引数の無い場合について述べます.
Finally, for the case with no arguments, i.e.
<mfenced open="開始の囲い文字"
close="終了の囲い文字"
separators="任意の文字列" >
</mfenced>
<mfenced open="opening-fence"
close="closing-fence"
separators="anything" >
</mfenced>
この式の展開された形式は, >mrow
の中に単に囲い文字だけを含むと定義されています.
the equivalent expanded form is defined to include just
the fences within an mrow
:
<mrow>
<mo fence="true"> 開始の囲い文字 </mo>
<mo fence="true"> 終了の囲い文字 </mo>
</mrow>
<mrow>
<mo fence="true"> opening-fence </mo>
<mo fence="true"> closing-fence </mo>
</mrow>
全ての囲まれた式
がmfenced
要素でコード化できるわけではないことに注意して下さい. そのような例外の式は, 装飾された
区切り文字や囲い文字, mstyle
要素で囲まれたそれらの文字, 足りないか余分な区切り文字や囲い文字, 複数の文字から構成される区切り文字から成る式を含みます. それらの状況では, 適切に修正された展開された形式を使用して, 式をコード化する必要があります. 上で論じたように, 展開された形式を直接利用することは, 必要ないときも含めいつでも認められています. 特に, MathML前処理プログラムが, 展開された形式に等しいmfenced
を生成して置換しないことを, 著者は保証できません.
Note that not all fenced expressions
can be encoded by an
mfenced
element. Such exceptional expressions
include those with an embellished
separator or fence or one
enclosed in an mstyle
element, a missing or extra
separator or fence, or a separator with multiple content
characters. In these cases, it is necessary to encode the expression
using an appropriately modified version of an expanded form. As
discussed above, it is always permissible to use the expanded form
directly, even when it is not necessary. In particular, authors cannot
be guaranteed that MathML preprocessors won't replace occurrences of
mfenced
with equivalent expanded forms.
上で示したmfenced
と等しい展開された形式は, mo
要素が, 囲い文字か区切り文字かを特定する属性を含むことに注意して下さい. 最も一般的な囲い文字か区切り文字かの選択は, 自動で演算子辞書の中のmo
要素の属性によって見い出され, 著者は展開された形式を直接利用するときも, それらの属性を明確に指定する必要はありません. また. form
属性の既定値についての決まり(3.2.5 演算子, かっこ, 区切り, アクセント <mo>
) は, 開始と終了の囲い文字それぞれに値form
="prefix"
と値form
="postfix"
を, 区切り文字に値form
="infix"
を効果的に与えます.
Note that the equivalent expanded forms shown above include
attributes on the mo
elements that identify them as fences or
separators. Since the most common choices of fences and separators
already occur in the operator dictionary with those attributes,
authors would not normally need to specify those attributes explicitly
when using the expanded form directly. Also, the rules for the default
form
attribute (3.2.5 Operator, Fence, Separator or Accent
<mo>
) cause the
opening and closing fences to be effectively given the values
form
="prefix"
and
form
="postfix"
respectively, and the
separators to be given the value
form
="infix"
.
例えば通常の演算子として+
を利用している式を略すために, mfenced
と区切り文字としての+
を使用することは, 不当であることに注意して下さい.
Note that it would be incorrect to use mfenced
with a separator of, for instance, +
, as an abbreviation for an
expression using +
as an ordinary operator, e.g.
<mrow>
<mi>x</mi> <mo>+</mo> <mi>y</mi> <mo>+</mo> <mi>z</mi>
</mrow>
なぜなら, このことは+
記号を中間の演算子ではなく, 区切り文字として扱うことになるからです. つまり, それらは, 適切に描画されないかもしれない<mo separator="true">+</mo>
と記述されているものとして描画されます.
This is because the +
signs would be treated as separators,
not infix operators. That is, it would render as if they were marked up as
<mo separator="true">+</mo>
, which might therefore
render inappropriately.
<mfenced>
<mrow>
<mi> a </mi>
<mo> + </mo>
<mi> b </mi>
</mrow>
</mfenced>
上記のmrow
は, mfenced
がちょうど1つの引数を持っているようにするために必要です. これが無いと, この式は, (a, +, b)
として不正確に描画されます.
Note that the above mrow
is necessary so that
the mfenced
has just one argument. Without it, this
would render incorrectly as (a, +,
b)
.
<mfenced open="[">
<mn> 0 </mn>
<mn> 1 </mn>
</mfenced>
<mrow>
<mi> f </mi>
<mo> ⁡<!--ApplyFunction--> </mo>
<mfenced>
<mi> x </mi>
<mi> y </mi>
</mfenced>
</mrow>
menclose
要素は, その中身をnotation
属性で指定された表記で囲まれた中に描画します. menclose
は単独の引数を持ちます. 場合によっては, その引数は, 複数の子要素から成る省略されたmrow
でも良いです. 3.1.3 必要な引数を参照して下さい.
The menclose
element renders its content
inside the enclosing notation specified by its notation
attribute.
menclose
accepts
a single argument possibly being an inferred mrow
of multiple children;
see 3.1.3 Required Arguments.
menclose
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます. 表記は, mathcolor
で指定された色で描かれるべきです.
menclose
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
The notations should be drawn using the color specified by mathcolor
.
notation
で認められている値には制限がありません. 適合するソフトウェアは, 下の一覧で示した値を可能な限り多く描画するよう促されていますが, 処理できない値を無視するかもしれません.
The values allowed for notation
are open-ended.
Conforming renderers may ignore any value they do not handle, although
renderers are encouraged to render as many of the values listed below as
possible.
名前 Name |
値 values |
既定値 default |
notation | (actuarial | phasorangle | box | roundedbox | circle |
left | right | top | bottom |
updiagonalstrike | downdiagonalstrike | verticalstrike | horizontalstrike | northeastarrow
| madruwb | 任意の用語) + text |
何もしない do nothing |
子要素を囲むために使われる表記の空白で区切られた一覧を指定します. 表記の各型の説明は, 下記を参照して下さい. MathML 4は, longdiv とradical の使用を非推奨にしています. これらの表記は, それぞれmlongdiv とmsqrt によって提供される機能と重複しています. それらの要素が, 代わりに使用されるべきです. 既定値は変更されており, 何もnotation が与えられていなかったり, 空の文字列だったりした場合, menclose は描画されるべきではありません.Specifies a space separated list of notations to be used to enclose the children. See below for a description of each type of notation. MathML 4 deprecates the use of longdiv and radical .
These notations duplicate functionality provided by mlongdiv and msqrt respectively;
those elements should be used instead.
The default has been changed so that if no notation is given,
or if it is an empty string,
then menclose should not draw.
|
何個の値でも, 空白で区切ってnotation
に与えることができます. 与えられ, MathML描画ソフトウェアに理解された全ての値は, 描画されるべきです. それぞれの表記は, 他の表記が存在しないかのように描画されるべきです. それらの表記は, 他のものの内側に入れ子になるべきではありません. 例えば, notation
="circle box
"は, menclose
の中身の周りに丸と四角を描くべきで, 丸と四角は重ならないでしょう. これは, 後の例で示します. 既に定義されている表記の中で, phasorangle
だけが方向(3.1.5.1 数式全体の方向参照)に影響されます.
Any number of values can be given for
notation
separated by whitespace; all of those given and
understood by a MathML renderer should be rendered.
Each should be rendered as if the others were not present; they should not nest one
inside of the other. For example,
notation
="circle box
" should
result in circle and a box around the contents of menclose
; the circle and box may overlap. This is shown in the first example below.
Of the predefined notations, only phasorangle
is
affected by the directionality (see 3.1.5.1 Overall Directionality of Mathematics Formulas):
notation
が値actuarial
として指定されたとき, 中身はアクチュアリー記号で囲まれて描かれます. 同じような結果に, 値top right
が指定された場合もなります.
When notation
is specified as
actuarial
, the contents are drawn enclosed by an
actuarial symbol. A similar result can be achieved
with the value top right
.
値box
(訳注:"四角"の意味), 値roundedbox
(訳注:"角の丸い四角"の意味), 値circle
(訳注:"丸"の意味)は, 中身を値が意図しているもので囲みます. 四角, 角の丸い四角, 丸と中身の間の距離の大きさは, MathMLでは指定されておらず, 描画ソフトウェアに任されています. 実例としては, 両側の余白は, 水平方向が0.4em, 縦の方向が0.5emだとうまく描画されると思われます.
The values box
,
roundedbox
, and circle
should
enclose the contents as indicated by the values. The amount of
distance between the box, roundedbox, or circle, and the contents are
not specified by MathML, and left to the renderer. In practice,
paddings on each side of 0.4em in the horizontal direction and .5ex in
the vertical direction seem to work well.
値left
(訳注:"左"の意味), 値right
(訳注:"右"の意味), 値top
(訳注:"上"の意味), 値bottom
(訳注:"下"の意味)は, それらが示す側の中身の端に線を描くべきです. 値northeastarrow
(訳注:"北東向き矢印"の意味), 値updiagonalstrike
(訳注:"上向きの対角線"の意味), 値downdiagonalstrike
(訳注:"下向きの対角線"の意味), 値verticalstrike
(訳注:"縦線"の意味), 値horizontalstrike
(訳注:"横線"の意味)は, menclose
の中身の上に, 貫こうとする線を描くべきです. 例えば, 値updiagonalstrike
の場合は, menclose
要素の左下の角から右上の角に向かって貫く線を描くといった具合です.
The values left
,
right
, top
and
bottom
should result in lines drawn on those sides of
the contents. The values northeastarrow
,
updiagonalstrike
,
downdiagonalstrike
, verticalstrike
and horizontalstrike
should result in the indicated
strikeout lines being superimposed over the content of the
menclose
, e.g. a strikeout that extends from the lower left
corner to the upper right corner of the menclose
element for
updiagonalstrike
, etc.
値northeastarrow
は実装することを推奨されている値です. なぜなら, TeXの\canceltoコマンドを実装するために利用できるからです. 描画ソフトウェアがmenclose
に対する他の矢印を実装する場合, 描画ソフトウェアの一貫性と標準化のために, 矢印の名前を次の名前の完全な集合から選ぶことが推奨されます.
The value northeastarrow
is a recommended value to implement because it can be
used to implement TeX's \cancelto command. If a renderer implements other arrows for
menclose
, it is recommended that the arrow names are chosen from the following full set of
names for consistency and standardization among renderers:
uparrow
(訳注:"上向き矢印"の意味)
rightarrow
(訳注:"右向き矢印"の意味)
downarrow
(訳注:"下向き矢印"の意味)
leftarrow
(訳注:"左向き矢印"の意味)
northwestarrow
(訳注:"北西向き矢印"の意味)
southwestarrow
(訳注:"南西向き矢印"の意味)
southeastarrow
(訳注:"南東向き矢印"の意味)
northeastarrow
(訳注:"北東向き矢印"の意味)
updownarrow
(訳注:"上下両方を向いた矢印"の意味)
leftrightarrow
(訳注:"左右両方を向いた矢印"の意味)
northwestsoutheastarrow
(訳注:"北西と南東を向いた矢印"の意味)
northeastsouthwestarrow
(訳注:"北東と南西を向いた矢印"の意味)
値"madruwb"は, アラビアの階乗(‘madruwb’は階乗に対するアラビア語のمضروبの訳)を表す囲った表記を生成すべきです. これは, 後の4番目の例で示しています.
The value madruwb
should generate an enclosure
representing an Arabic factorial (‘madruwb’ is the transliteration
of the Arabic مضروب for factorial).
This is shown in the third example below.
menclose
要素の欧文ベースラインは, (省略されたmrow
かも知れない)子要素の欧文ベースラインです.
The baseline of an menclose
element is the baseline of its child (which might be an implied mrow
).
複数の属性値を用いた例は次のとおりです.
An example of using multiple attributes is
<menclose notation='circle box'>
<mi> x </mi><mo> + </mo><mi> y </mi>
</menclose>
アクチュアリー表記に対してmenclose
を用いた例は次のとおりです.
An example of using menclose
for actuarial
notation is
<msub>
<mi>a</mi>
<mrow>
<menclose notation='actuarial'>
<mi>n</mi>
</menclose>
<mo>⁣<!--InvisibleComma--></mo>
<mi>i</mi>
</mrow>
</msub>
回路解析で使用されるphasorangle
の例は次のとおりです.
An example of phasorangle
, which is used in circuit analysis, is:
<mi>C</mi>
<mrow>
<menclose notation='phasorangle'>
<mrow>
<mo>−</mo>
<mfrac>
<mi>π</mi>
<mn>2</mn>
</mfrac>
</mrow>
</menclose>
</mrow>
madruwb
の例は次のとおりです.
An example of madruwb
is:
<menclose notation="madruwb">
<mn>12</mn>
</menclose>
この節で説明する要素は, 基となる式の周りで1つ以上の添え字の位置を定めます. 様々な種類の添え字や装飾を記号に付け加えることは, 数学ではとても一般的な表記方法です. 純粋な視覚的な配置においては, 与えられた基となる式の周りに何らかの伝統的な添え字を配置する場合, 単独の一般的な目的の要素で添え字や装飾の位置を十分に定められます. しかしながら, 一般的な表記の抽象的な構造をより良く表現するために, MathMLは, 様々なより特別な添え字の要素を提供しています.
The elements described in this section position one or more scripts around a base. Attaching various kinds of scripts and embellishments to symbols is a very common notational device in mathematics. For purely visual layout, a single general-purpose element could suffice for positioning scripts and embellishments in any of the traditional script locations around a given base. However, in order to capture the abstract structure of common notation better, MathML provides several more specialized scripting elements.
下付きや上付きの添え字の要素に加えて, MathMLは, 基となる式の上や下に添え字を配置する上側添え字や下側添え字の要素を持っています. これらの要素は大きな演算子に添え字を配置したり, 基となる式の上や下にアクセントや線を配置するのに利用できます. アクセントを描画する決まりは, 上側添え字や下側添え字とは異なります. その違いは, 後の適切な節で説明するようにaccent
属性やaccentunder
属性で制御できます.
In addition to sub-/superscript elements, MathML has overscript
and underscript elements that place scripts above and below the base. These
elements can be used to place limits on large operators, or for placing
accents and lines above or below the base. The rules for rendering accents
differ from those for overscripts and underscripts, and this difference can
be controlled with the accent
and accentunder
attributes, as described in the appropriate
sections below.
添え字の描画は, scriptlevel
属性とdisplaystyle
属性に影響されます. これらの属性は, それぞれのMathMLの式を描画する過程から継承される環境の一部で, 3.1.6 displaystyleとscriptlevelで説明されています. これらの属性は, 添え字となっている要素に明確に与えることはできませんが, どうしてもというなら, 周囲を囲うmstyle
要素の開始タグで指定することができます.
Rendering of scripts is affected by the scriptlevel
and displaystyle
attributes, which are part of the environment inherited by the rendering
process of every MathML expression, and are described in 3.1.6 Displaystyle and Scriptlevel.
These attributes cannot be given explicitly on a scripting element, but can be
specified on the start tag of a surrounding mstyle
element if desired.
MathMLは, テンソル添え字を付け加えるための要素も提供しています. テンソル添え字は, 縦の列を揃えなければならない通常の下付き添え字や上付き添え字とは別個のものです. また, 全ての上側のテンソル添え字は欧文ベースラインで揃えられるべきで, 全ての下側のテンソル添え字も欧文ベースラインで揃えられるべきです. テンソル添え字は, 前の位置に付けることもできます. 通常の添え字は基となる式の後ろに付く(左から右(LTR)の文脈では右に, 一方, 右から左(RTL)の文脈では左に付く)ことに注意して下さい. 前の位置というのは基となる式に先行する(左から右(LTR)の文脈では左に, 一方, 右から左(RTL)の文脈では右に付く)ことです.
MathML also provides an element for attachment of tensor indices. Tensor indices are distinct from ordinary subscripts and superscripts in that they must align in vertical columns. Also, all the upper scripts should be baseline-aligned and all the lower scripts should be baseline-aligned. Tensor indices can also occur in prescript positions. Note that ordinary scripts follow the base (on the right in LTR context, but on the left in RTL context); prescripts precede the base (on the left (right) in LTR (RTL) context).
プレゼンテーション要素は, 式の抽象的な表記の構造を説明するのに使われるべきであることから, 全ての"添え字"要素の基となる式(つまり, 最初の引数の式)は, 添え字の付く全体の式であるべきで, 単に末尾の文字では無いことが重要です. 例えば, は次のように書かれます.
Because presentation elements should be used to describe the abstract
notational structure of expressions, it is important that the base
expression in all scripting
elements (i.e. the first
argument expression) should be the entire expression that is being
scripted, not just the trailing character. For example,
should be written as:
<msup>
<mrow>
<mo> ( </mo>
<mrow>
<mi> x </mi>
<mo> + </mo>
<mi> y </mi>
</mrow>
<mo> ) </mo>
</mrow>
<mn> 2 </mn>
</msup>
msub
要素は, 次の構文で基となる式に下付き添え字を付け加えます.
The msub
element attaches a subscript to a base using the syntax
<msub> 基となる式 下付き添え字 </msub>
<msub> base subscript </msub>
msub
要素は, 下付き添え字のscriptlevel
を1つ増やし, displaystyle
をfalse
に設定しますが, 基となる式の両方の属性は変更しないままにしておきます. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
It increments scriptlevel
by 1, and sets displaystyle
to
false
, within subscript, but leaves both attributes
unchanged within base. (See 3.1.6 Displaystyle and Scriptlevel.)
msub
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
msub
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
subscriptshift | 長さ length |
自動 automatic |
下付き添え字の欧文ベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)を下にずらす最小の量を指定します. 既定値は, 位置を決める独自の決まりを使用している描画ソフトウェアによります. Specifies the minimum amount to shift the baseline of subscript down; the default is for the rendering agent to use its own positioning rules. |
msup
要素は, 次の構文で基となる式に上付き添え字を付け加えます.
The msup
element attaches a superscript to a base using the syntax
<msup> 基となる式 上付き添え字 </msup>
<msub> base superscript </msub>
msup
要素は, 上付き添え字のscriptlevel
を1つ増やし, displaystyle
をfalse
に設定しますが, 基となる式の両方の属性は変更しないままにしておきます. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
It increments scriptlevel
by 1, and sets displaystyle
to false
, within
superscript, but leaves both attributes unchanged within
base. (See 3.1.6 Displaystyle and Scriptlevel.)
msup
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
msup
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
superscriptshift | 長さ length |
自動 automatic |
上付き添え字の欧文ベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)を上にずらす最小の量を指定します. 既定値は, 位置を決める独自の決まりを使用している描画ソフトウェアによります. Specifies the minimum amount to shift the baseline of superscript up; the default is for the rendering agent to use its own positioning rules. |
msubsup
要素は, 基となる式に, 下付き添え字と上付き添え字の両方を付け加えます.
The msubsup
element is used to attach both a subscript and
superscript to a base expression.
<msubsup> 基となる式 下付き添え字 上付き添え字 </msubsup>
<msubsup> base subscript superscript </msubsup>
msubsup
要素は, 下付き添え字と上付き添え字のscriptlevel
を1つ増やし, displaystyle
をfalse
に設定しますが, 基となる式の両方の属性は変更しないままにしておきます. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
It increments scriptlevel
by 1, and sets displaystyle
to
false
, within subscript and superscript,
but leaves both attributes unchanged within base.
(See 3.1.6 Displaystyle and Scriptlevel.)
両方の添え字は, ここで示すのように基となる式に隙間なく寄せて配置されることに注意して下さい. これは, ここで示すのように入れ子になった添え字を互い違いに配置するわけではありません. 後者は, msup
の中にmsub
を入れ子にすることで表現することができます.
Note that both scripts are positioned tight against the base as shown here
versus the staggered positioning of nested scripts as shown here
;
the latter can be achieved by nesting an msub
inside an msup
.
msubsup
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
msubsup
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
subscriptshift | 長さ length |
自動 automatic |
下付き添え字の欧文ベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)を下にずらす最小の量を指定します. 既定値は, 位置を決める独自の決まりを使用している描画ソフトウェアによります. Specifies the minimum amount to shift the baseline of subscript down; the default is for the rendering agent to use its own positioning rules. |
||
superscriptshift | 長さ length |
自動 automatic |
上付き添え字の欧文ベースラインを上にずらす最小の量を指定します. 既定値は, 位置を決める独自の決まりを使用している描画ソフトウェアによります. Specifies the minimum amount to shift the baseline of superscript up; the default is for the rendering agent to use its own positioning rules. |
msubsup
は, 上で図解したように識別子に下付き添え字と上付き添え字の組を加えるのに最も一般的に利用されます. しかしながら, 他の重要な利用法として, ある大きな演算子に添え字を配置することがあります. そのとき, 添え字は, ディスプレイ形式で描画する際の添え字の位置に伝統的に表示されます. 最も一般的なものとしては, 積分記号があります. 例えば, 次のようにです.
The msubsup
is most commonly used for adding
sub-/superscript pairs to identifiers as illustrated above. However,
another important use is placing limits on certain large operators
whose limits are traditionally displayed in the script positions even
when rendered in display style. The most common of these is the
integral. For example,
この式は, 次のように表されます.
would be represented as
<mrow>
<msubsup>
<mo> ∫ </mo>
<mn> 0 </mn>
<mn> 1 </mn>
</msubsup>
<mrow>
<msup>
<mi> ⅇ </mi>
<mi> x </mi>
</msup>
<mo> ⁢<!--InvisibleTimes--> </mo>
<mrow>
<mo> ⅆ </mo>
<mi> x </mi>
</mrow>
</mrow>
</mrow>
munder
要素は, 次の構文で基となる式の下にアクセントや添え字を付け加えます.
The munder
element attaches an accent or limit placed under a base using the syntax
<munder> 基となる式 下側添え字 </munder>
<munder> base underscript </munder>
munder
要素は, 下側添え字のdisplaystyle
をfalse
にいつも設定しますが, accentunder
がfalse
のときだけscriptlevel
を1つ増やします. 基となる式については, 両方の属性をいつも変更しないままにしておきます. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
It always sets displaystyle
to false
within the underscript,
but increments scriptlevel
by 1 only when accentunder
is false
.
Within base, it always leaves both attributes unchanged.
(See 3.1.6 Displaystyle and Scriptlevel.)
基となる式が, movablelimits
=true
の演算子(または, 核となるmo
がmovablelimits
=true
を持つ装飾された演算子)で, かつdisplaystyle
=false
ならば, 下側添え字は, 下付き添え字の位置に描かれます. この場合, accentunder
属性は無視されます. これは, U+2211 (実体 sum
)といった記号の添え字でよく用いられます.
If base is an operator with movablelimits
=true
(or an embellished operator whose mo
element core has movablelimits
=true
),
and displaystyle
=false
,
then underscript is drawn in a subscript position.
In this case, the accentunder
attribute is ignored.
This is often used for limits on symbols such as U+2211 (entity sum
).
munder
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
munder
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
accentunder | "true" | "false" | 自動 automatic |
下側添え字をアクセントとして描くか, 添え字として描くか指定します. アクセントは( scriptlevel を増やすことなく)基となる式と同じ大きさで, 基となる式に近付けて描きます.Specifies whether underscript is drawn as an accentor as a limit. An accent is drawn the same size as the base (without incrementing scriptlevel )
and is drawn closer to the base.
|
||
align | "left" | "right" | "center" | center |
添え字が基となる式の下または上で, 左寄せするか("left"), 中央寄せするか("center"), 右寄せするか("right")を指定します. 3.2.5.7.3 水平に引き伸ばすときの決まりで指定したように, 装飾された演算子である下側添え字の核となる要素は, 基となる式を覆うように引き伸ばされるべきです. ただし, 位置揃えは下側添え字全体に合わせて行われるべきです. Specifies whether the script is aligned left, center, or right under/over the base. As specified in 3.2.5.7.3 Horizontal Stretching Rules, the core of underscripts that are embellished operators should stretch to cover the base, but the alignment is based on the entire underscript. |
下側添え字がmo
要素か装飾された演算子(3.2.5 演算子, かっこ, 区切り, アクセント <mo>
参照)でない限り, accentunder
の既定値はfalseです. 下側添え字がmo
要素の場合, そのaccent
属性の値が, accentunder
の既定値として使われます. 下側添え字が装飾された演算子の場合, 核であるmo
要素のaccent
属性の値が既定値として使われます. 全ての属性において, 明確に与えられた値は既定値を上書きします.
The default value of accentunder
is false, unless
underscript is an mo
element or an
embellished operator (see 3.2.5 Operator, Fence, Separator or Accent
<mo>
). If
underscript is an mo
element, the
value of its accent
attribute is used as the default
value of accentunder
. If underscript is an
embellished operator, the accent
attribute of the
mo
element at its core is used as the default
value. As with all attributes, an explicitly given value overrides
the default.
[MathMLコア] は, 3.2.5 演算子, かっこ, 区切り, アクセント <mo>
のaccent
属性に対応していません. MathMLコアとの互換性のために, accentunder
がmunder
で設定されるべきです.
[MathML-Core] does not support the accent
attribute on 3.2.5 Operator, Fence, Separator or Accent
<mo>
.
For compatibility with MathML Core, the accentunder
should be set on munder
.
どのようにaccentunder
が描画に影響するか明示した例.
An example demonstrating how accentunder
affects rendering:
<mrow>
<munder accentunder="true">
<mrow>
<mi> x </mi>
<mo> + </mo>
<mi> y </mi>
<mo> + </mo>
<mi> z </mi>
</mrow>
<mo> ⏟ </mo>
</munder>
<mtext> <!--nbsp-->versus <!--nbsp--></mtext>
<munder accentunder="false">
<mrow>
<mi> x </mi>
<mo> + </mo>
<mi> y </mi>
<mo> + </mo>
<mi> z </mi>
</mrow>
<mo> ⏟ </mo>
</munder>
</mrow>
mover
要素は, 次の構文で基となる式の上にアクセントや添え字を付け加えます.
The mover
element attaches an accent or limit placed over a base using the syntax
<mover> 基となる式 上側添え字 </mover>
<mover> base overscript </mover>
mover
要素は, 上側添え字のdisplaystyle
をfalse
にいつも設定しますが, accent
がfalse
のときだけscriptlevel
を1つ増やします. 基となる式については, 両方の属性をいつも変更しないままにしておきます. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
It always sets displaystyle
to false
within overscript,
but increments scriptlevel
by 1 only when accent
is false
.
Within base, it always leaves both attributes unchanged.
(See 3.1.6 Displaystyle and Scriptlevel.)
基となる式が, movablelimits
=true
の演算子(または, 核となるmo
がmovablelimits
=true
を持つ装飾された演算子)で, かつdisplaystyle
=false
ならば, 上側添え字は, 上付き添え字の位置に描かれます. この場合, accent
属性は無視されます. これは, U+2211 (実体 sum
)といった記号の添え字でよく用いられます.
If base is an operator with movablelimits
=true
(or an embellished operator whose mo
element core has movablelimits
=true
),
and displaystyle
=false
,
then overscript is drawn in a superscript position.
In this case, the accent
attribute is ignored.
This is often used for limits on symbols such as U+2211 (entity sum
).
mover
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
mover
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
accent | "true" | "false" | 自動 automatic |
上側添え字をアクセントとして描くか, 添え字として描くか指定します. アクセントは( scriptlevel を増やすことなく)基となる式と同じ大きさで, 基となる式に近付けて描きます.Specifies whether overscript is drawn as an accentor as a limit. An accent is drawn the same size as the base (without incrementing scriptlevel )
and is drawn closer to the base.
|
||
align | "left" | "right" | "center" | center |
添え字が基となる式の下または上で, 左寄せするか("left"), 中央寄せするか("center"), 右寄せするか("right")を指定します. 3.2.5.7.3 水平に引き伸ばすときの決まりで指定したように, 装飾された演算子である上側添え字の核となる要素は, 基となる式を覆うように引き伸ばされるべきです. ただし, 位置揃えは上側添え字全体に合わせて行われるべきです. Specifies whether the script is aligned left, center, or right under/over the base. As specified in 3.2.5.7.3 Horizontal Stretching Rules, the core of overscripts that are embellished operators should stretch to cover the base, but the alignment is based on the entire overscript. |
アクセントと添え字の間の違いは, 例で示しています.
The difference between an accent versus limit is shown in the examples.
上側添え字がmo
要素か装飾された演算子(3.2.5 演算子, かっこ, 区切り, アクセント <mo>
参照)でない限り, accentの既定値はfalseです. 上側添え字がmo
要素の場合, そのaccent
属性の値が, mover
のaccent
の既定値として使われます. 上側添え字が装飾された演算子の場合, 核であるmo
要素のaccent
属性の値が既定値として使われます. 全ての属性において, 明確に与えられた値は既定値を上書きします.
The default value of accent is false, unless
overscript is an mo
element or an
embellished operator (see 3.2.5 Operator, Fence, Separator or Accent
<mo>
). If
overscript is an mo
element, the value
of its accent
attribute is used as the default value
of accent
for mover
. If
overscript is an embellished operator, the accent
attribute of the mo
element at its core is used as the default value.
[MathMLコア] は, 3.2.5 演算子, かっこ, 区切り, アクセント <mo>
のaccent
属性に対応していません. MathMLコアとの互換性のために, accentunder
がmunder
で設定されるべきです.
[MathML-Core] does not support the accent
attribute on 3.2.5 Operator, Fence, Separator or Accent
<mo>
.
For compatibility with MathML Core, the accentunder
should be set on munder
.
どのようにaccent
が描画に影響するか明示した2つの例.
Two examples demonstrating how accent
affects rendering:
<mrow>
<mover accent="true">
<mi> x </mi>
<mo> ^ </mo>
</mover>
<mtext> <!--nbsp-->versus <!--nbsp--></mtext>
<mover accent="false">
<mi> x </mi>
<mo> ^ </mo>
</mover>
</mrow>
<mrow>
<mover accent="true">
<mrow>
<mi> x </mi>
<mo> + </mo>
<mi> y </mi>
<mo> + </mo>
<mi> z </mi>
</mrow>
<mo> ⏞ </mo>
</mover>
<mtext> <!--nbsp-->versus <!--nbsp--></mtext>
<mover accent="false">
<mrow>
<mi> x </mi>
<mo> + </mo>
<mi> y </mi>
<mo> + </mo>
<mi> z </mi>
</mrow>
<mo> ⏞ </mo>
</mover>
</mrow>
<munderover>
<munderover>
munderover
要素は, 次の構文で基となる式の上と下にアクセントまたは添え字を付け加えます.
The munderover
element attaches accents or limits placed both over and under a base using the syntax
<munderover> 基となる式 下側添え字 上側添え字 </munderover>
<munderover> base underscript overscript </munderover>
munderover
要素は, 下側添え字と上側添え字のdisplaystyle
をfalse
にいつも設定しますが, accentunder
またはaccent
がそれぞれfalse
のときだけscriptlevel
を1つ増やします. 基となる式については, 両方の属性をいつも変更しないままにしておきます. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
It always sets displaystyle
to false
within underscript and overscript,
but increments scriptlevel
by 1 only when
accentunder
or accent
, respectively, are false
.
Within base, it always leaves both attributes unchanged.
(see 3.1.6 Displaystyle and Scriptlevel).
基となる式が, movablelimits
=true
の演算子(または, 核となるmo
がmovablelimits
=true
を持つ装飾された演算子)で, かつdisplaystyle
=false
ならば, 下側添え字と上側添え字は, 下付き添え字と上付き添え字の位置に描かれます. この場合, accentunder
属性とaccent
属性は無視されます. これは, U+2211 (実体 sum
)といった記号の添え字でよく用いられます.
If base is an operator with movablelimits
=true
(or an embellished operator whose mo
element core has movablelimits
=true
),
and displaystyle
=false
,
then underscript and overscript are drawn in a subscript and superscript position,
respectively. In this case, the accentunder
and accent
attributes are ignored.
This is often used for limits on symbols such as U+2211 (entity sum
).
munderover
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
munderover
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
accent | "true" | "false" | 自動 automatic |
上側添え字をアクセントとして描くか, 添え字として描くか指定します. アクセントは( scriptlevel を増やすことなく)基となる式と同じ大きさで, 基となる式に近付けて描きます.Specifies whether overscript is drawn as an accentor as a limit. An accent is drawn the same size as the base (without incrementing scriptlevel )
and is drawn closer to the base.
|
||
accentunder | "true" | "false" | 自動 automatic |
下側添え字をアクセントとして描くか, 添え字として描くか指定します. アクセントは( scriptlevel を増やすことなく)基となる式と同じ大きさで, 基となる式に近付けて描きます.Specifies whether underscript is drawn as an accentor as a limit. An accent is drawn the same size as the base (without incrementing scriptlevel )
and is drawn closer to the base.
|
||
align | "left" | "right" | "center" | center |
添え字が基となる式の下または上で, 左寄せするか("left"), 中央寄せするか("center"), 右寄せするか("right")を指定します. 3.2.5.7.3 水平に引き伸ばすときの決まりで指定したように, 装飾された演算子である下側添え字と上側添え字の核となる要素は, 基となる式を覆うように引き伸ばされるべきです. ただし, 位置揃えは下側添え字全体や上側添え字全体に合わせて行われるべきです. Specifies whether the scripts are aligned left, center, or right under/over the base. As specified in 3.2.5.7.3 Horizontal Stretching Rules, the core of underscripts and overscripts that are embellished operators should stretch to cover the base, but the alignment is based on the entire underscript or overscript. |
munderover
要素は, 別々のmunder
要素とmover
要素の代わりに利用します. そのため, 下側添え字と上側添え字の, 基となる式と関係する縦の間隔は等しいです. そのため, 例で示したように傾いた基となる式の後ろに続きます.
The munderover
element is used instead of separate
munder
and mover
elements so that the
underscript and overscript are vertically spaced equally in relation
to the base and so that they follow the slant of the base as shown in the example.
accent
とaccentunder
の既定値は, それぞれmunder
とmover
と同じ方法で計算されます.
The defaults for accent
and accentunder
are computed in the same way as for
munder
and
mover
, respectively.
この例は, (msubsup
と同様に描画される)movablelimits
=true
でdisplaystyle
のときの, mover
の中にmunder
を入れ子にした場合と, munderover
を使用した場合の違いについて示しています.
This example shows the difference between nesting munder
inside
mover
and using munderover
when
movablelimits
=true
and in displaystyle
(which renders the same as msubsup
).
<mstyle displaystyle="false">
<mover>
<munder>
<mo>∑</mo>
<mi>i</mi>
</munder>
<mi>n</mi>
</mover>
<mo>+</mo>
<munderover>
<mo>∑</mo>
<mi>i</mi>
<mi>n</mi>
</munderover>
</mstyle>
<mmultiscripts>
, <mprescripts/>
, <none/>
<munder>
<mmultiscripts>
,
<mprescripts/>
,
<none/>
<munder>
前置添え字とテンソル表記は, 単独の要素mmultiscripts
によって, 次の構文を利用して表されます.
Presubscripts and tensor notations are represented by a single
element, mmultiscripts
, using the syntax:
<mmultiscripts>
基となる式
(下付き添え字 上付き添え字)*
[ <mprescripts/> (前置の下付き添え字 前置の上付き添え字)* ]
</mmultiscripts>
<mmultiscripts>
base
(subscript superscript)*
[ <mprescripts/> (presubscript presuperscript)* ]
</mmultiscripts>
この要素は, 何らかの数の縦に揃えられた下付き添え字と上付き添え字の組を, 基となる1つの式に付け加える表現を可能にします. この要素は, 後置添え字と前置添え字の両方に対応しています. 添え字を付けない箇所は, 空要素none
で表されなければなりません. 全ての上側の添え字は欧文ベースラインで揃えられるべきで, 全ての下側の添え字も欧文ベースラインで揃えられるべきです.
This element allows the representation of any number of vertically-aligned pairs of
subscripts
and superscripts, attached to one base expression. It supports both
postscripts and prescripts.
Missing scripts must be represented by the empty element
none
.
All of the upper scripts should be baseline-aligned and all the lower scripts should be baseline-aligned.
前置添え字は必須でなく, 後置添え字の後の位置に置かれます. 前置添え字がテンソル表記に比べて比較的珍しいことから, この順番が選ばれました.
The prescripts are optional, and when present are given after the postscripts. This order was chosen because prescripts are relatively rare compared to tensor notation.
一連の引数は, 基となる式と, それに続く0個以上の全て後置添え字を表す, 縦に揃えられた下付き添え字と上付き添え字の(この順番から成る)組から構成されます. この一連のものには, その後に, 空要素mprescripts
と, 0個以上の全て前置添え字を表す, 縦に揃えられた前置の下付き添え字と上付き添え字の組の一覧が付くこともあります. 後置添え字と前置添え字の組の一覧は, 書かれた並びと同じ順番で(つまり, 左から右(LTR)の文脈では左から右の順番で)表示されます. 下付き添え字または上付き添え字が与えられた場所に何も書くべきでないときは, 空要素none
がその場所に用いられるべきです. それぞれの下付き添え字と上付き添え字の組に対して, 組の中にある要素の水平方向の位置揃えは, mmultiscripts
の基となる式の方へ向かって行われるべきです. すなわち, 前置添え字は右側に寄せられ, 後置添え字は左側に寄せれるべきです.
The argument sequence consists of the base followed by zero or more
pairs of vertically-aligned subscripts and superscripts (in that
order) that represent all of the postscripts. This list is optionally
followed by an empty element mprescripts
and a
list of zero or more pairs of vertically-aligned presubscripts and
presuperscripts that represent all of the prescripts. The pair lists
for postscripts and prescripts are displayed in the same order as the
directional context (i.e. left-to-right order in LTR context). If
no subscript or superscript should be rendered in a given position,
then the empty element none
should be used in
that position.
For each sub- and superscript pair,
horizontal-alignment of the elements in the pair should be
towards the base of the mmultiscripts
.
That is, pre-scripts should be right aligned,
and post-scripts should be left aligned.
基となる式, 下付き添え字, 上付き添え字, 必須でない演算子要素mprescripts
, 前置の下付き添え字, 前置の上付き添え字は, 全てmmultiscripts
要素直下の式になります. つまり, それらは全て式のツリー構造の同じ階層となります. 添え字の引数が下付き添え字または上付き添え字かどうか, もしくは添え字の引数が前置の下付き添え字また上付き添え字かどうか, 位置を数えるのに空要素mprescripts
を無視した際に, それぞれの引数の場所が偶数番目にあるか, 奇数番目にあるかどうかで決めます. 最初の引数は基となる式で, 1の場所と見なされます. 引数の合計は, mprescripts
が無い場合に奇数, ある場合に偶数となります.
The base, subscripts, superscripts, the optional separator element
mprescripts
, the presubscripts, and the
presuperscripts are all direct sub-expressions of the
mmultiscripts
element, i.e. they are all at the
same level of the expression tree. Whether a script argument is a
subscript or a superscript, or whether it is a presubscript or a
presuperscript is determined by whether it occurs in an even-numbered
or odd-numbered argument position, respectively, ignoring the empty
element mprescripts
itself when determining the
position. The first argument, the base, is considered to be in
position 1. The total number of arguments must be odd, if
mprescripts
is not given, or even, if it is.
空要素mprescripts
は, mmultiscripts
直下の式としてのみ利用できます.
The empty element mprescripts
is only allowed as direct sub-expression
of mmultiscripts
.
msubsup
と同じ属性を持ちます. 3.4.3.2 属性を参照して下さい.
Same as the attributes of msubsup
. See
3.4.3.2 Attributes.
mmultiscripts
要素は, 基となる式を除くそれぞれの引数のscriptlevel
を1つ増やし, displaystyle
をfalse
に設定しますが, 基となる式の両方の属性は変更しないままにしておきます. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
The mmultiscripts
element increments scriptlevel
by 1, and sets displaystyle
to false
, within
each of its arguments except base, but leaves both attributes
unchanged within base. (See 3.1.6 Displaystyle and Scriptlevel.)
この超幾何関数の例は, 前置と後置の下付き添え字の使用方法について説明しています.
This example of a hypergeometric function demonstrates the use of pre and post subscripts:
<mrow>
<mmultiscripts>
<mi> F </mi>
<mn> 1 </mn>
<none/>
<mprescripts/>
<mn> 0 </mn>
<none/>
</mmultiscripts>
<mo> ⁡<!--ApplyFunction--> </mo>
<mrow>
<mo> ( </mo>
<mrow>
<mo> ; </mo>
<mi> a </mi>
<mo> ; </mo>
<mi> z </mi>
</mrow>
<mo> ) </mo>
</mrow>
</mrow>
この例はテンソル添え字を表しています. 例の中で, kとlは, 別々の序数です.
This example shows a tensor. In the example, k and l are different indices
<mmultiscripts>
<mi> R </mi>
<mi> i </mi>
<none/>
<none/>
<mi> j </mi>
<mi> k </mi>
<none/>
<mi> l </mi>
<none/>
</mmultiscripts>
この例は, 基となる式の方向への添え字の位置揃えを明示しています.
This example demonstrates alignment towards the base of the scripts:
<mmultiscripts>
<mi> X </mi>
<mn> 123 </mn>
<mn> 1 </mn>
<mprescripts/>
<mn> 123 </mn>
<mn> 1 </mn>
</mmultiscripts>
このmmultiscripts
の最後の例は, どのようにアラビア語圏で二項係数が表示されるかを表しています.
This final example of mmultiscripts
shows how the binomial
coefficient can be displayed in Arabic style
<mstyle dir="rtl">
<mmultiscripts><mo>ل</mo>
<mn>12</mn><none/>
<mprescripts/>
<none/><mn>5</mn>
</mmultiscripts>
</mstyle>
行列, 配列, その他の表のような数学表記は, mtable
要素, mtr
要素, mlabeledtr
要素, mtd
要素を使用して記述します. これらの要素は, 可換図式やブロック行列などの良好な配置の制御に必要な特別な属性を提供することを除いて, HTMLのtable
要素, tr
要素, td
要素に類似しています.
Matrices, arrays and other table-like mathematical notation are marked
up using mtable
,
mtr
, mlabeledtr
and
mtd
elements. These elements are similar to the
table
, tr
and td
elements of HTML, except that they provide
specialized attributes for the fine layout control
necessary for commutative diagrams, block matrices and so on.
足し算や掛け算といった初等数学で用いられる2次元の配置には, 多少表に似たものもありますが, それらは重大な点で異なっています. 配置やアクセシビリティの理由から, 3.6 初等数学で論じているmstack
要素やmlongdiv
要素を初等数学の表記に使用すべきです.
While the two-dimensional layouts used for elementary math such as addition and multiplication
are somewhat similar to tables, they differ in important ways.
For layout and for accessibility reasons, the mstack
and mlongdiv
elements discussed
in 3.6 Elementary Math should be used for elementary math notations.
上で示した表の要素に加えて, mlabeledtr
要素は, 表の番号の付いた行に利用されます. これは, 番号付きの等式には使い勝手が良いです. mlabeledtr
の最初の子要素は番号です. 番号は行列の中の式と見なされず, 行の列数を決めるときに数えられないという点で少し特別です.
In addition to the table elements mentioned above, the mlabeledtr
element is used for labeling rows
of a table. This is useful for numbered equations.
The first child of mlabeledtr
is the label.
A label is somewhat special in that it is not considered an expression
in the matrix and is not counted when determining the number of columns
in that row.
行列や表は, mtable
要素を用いて記述します. mtable
要素の中には, mtr
要素またはmlabeledtr
要素のみ現れてもよいです.
A matrix or table is specified using the mtable
element. Inside of the mtable
element, only mtr
or mlabeledtr
elements may appear.
同じ表の他の行(その行より前または後ろにある他の行)より少ない列を持つ行では, 効果的に右側(右から左(RTL)の文脈では左側)に空のmtd
要素が詰め込まれます. そのため, それぞれの行の列数は, その表の行の中で最大の列数を持つ行のものと等しいです. rowspan
属性またはcolumnspan
属性が既定値とは異なるmtd
要素の利用は, 与えられた列数を囲っている次に来るmtr
要素で与えられるべき, mtd
要素の数に影響するかもしれないことに注意して下さい. また, mlabeledtr
要素の番号は, 表の中の列と見なされないことにも注意して下さい.
Table rows that have fewer columns than other rows of the same
table (whether the other rows precede or follow them) are effectively
padded on the right (or left in RTL context) with empty mtd
elements so
that the number of columns in each row equals the maximum number of
columns in any row of the table. Note that the use of
mtd
elements with non-default values of the
rowspan
or columnspan
attributes may affect
the number of mtd
elements that should be given
in subsequent mtr
elements to cover a given
number of columns.
Note also that the label in an mlabeledtr
element
is not considered a column in the table.
MathMLは, 表の配置アルゴリズムを指定していません. 特に, width
属性と他の表の幅を拘束する条件の間の衝突を解決することは, MathML描画ソフトウェアの責務となります. 幅を拘束する条件というのは, columnwidth
属性の明確な値や表の要素の中身の最小の大きさといったものです. 表の配置アルゴリズムの議論については, Cascading Style Sheets, level 2を参照して下さい.
MathML does not specify a table layout algorithm. In
particular, it is the responsibility of a MathML renderer to resolve
conflicts between the width
attribute and other
constraints on the width of a table, such as explicit values for columnwidth
attributes,
and minimum sizes for table cell contents. For a discussion of table layout algorithms,
see
Cascading
Style Sheets, level 2.
mtable
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます. mtable
の一部を描くどの罫線も, mathcolor
で指定された色を用いて描かれるべきです.
mtable
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
Any rules drawn as part of the mtable
should be drawn using the color
specified by mathcolor
.
名前 Name |
値 values |
既定値 default |
align | ("top" | "bottom" | "center" | "baseline" | "axis"), 行番号? rownumber |
axis |
表の周りの描画環境に対する縦方向の位置揃えを指定します. axis は, 表の縦の中心を描画環境の軸に揃えることを意味します. (式の軸は, 植字によって利用される位置揃えの線です. その線は, 典型的にマイナス記号が置かれる位置の線です.) center とbaseline は両方とも, 表の中心を描画環境の欧文ベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)に揃えます. top またはbottom は, 表の上端または下端を描画環境の欧文ベースラインに揃えます. align 属性の値が行番号で終わっているならば, 表全体ではなく(上端の行から1と数えて)指定された行を基に, 下の注意書きの場合を除いて, 上で述べた方法で揃えられます. 行番号が負の場合, 下端から行を数えます. 行番号の値が範囲外か整数でない場合, その値は無視されます. 行番号が指定されていて位置揃えの値がbaseline またはaxis の場合, 行の欧文ベースラインまたは軸が位置揃えに利用されます. rowalign の値がbaseline またはaxis の場合のみ, その値は明確に定義されていることに注意して下さい. MathMLは, どのようにbaseline またはaxis の位置揃えがrowalign の別の値に対して挙動すべきか指定していません.specifies the vertical alignment of the table with respect to its environment. axis means to align the vertical center of the table on
the environment's axis.
(The axis of an equation is an alignment line used by typesetters.
It is the line on which a minus sign typically lies.)
center and baseline both mean to align the center of the table
on the environment's baseline.
top or bottom aligns the top or bottom of the table on the environment's baseline.
If the align attribute value ends with a rownumber,
the specified row (counting from 1 for the top row), rather than the table as a whole, is aligned in the way described above with the
exceptions noted below.
If rownumber is negative, it counts rows from the bottom.
When the value of rownumber is out of range or not an integer, it is ignored.
If a row number is specified and the alignment value is baseline or axis ,
the row's baseline or axis is used for alignment. Note this is only well defined when
the rowalign
value is baseline or axis ; MathML does not specify how
baseline or axis alignment should occur for other values of rowalign .
|
||
rowalign | ("top" | "bottom" | "center" | "baseline" | "axis") + | baseline |
同じ行の中の他の要素に対する要素の縦方向の位置揃えを指定します. top は, 行の中に各要素の上端を揃えます. bottom は, 要素の下端を揃えます. center は要素を中央揃えします. baseline は, 要素の欧文ベースラインを揃えます. axis は, 各要素の軸を揃えます. (複数の値については後の注意書きを参照して下さい.)specifies the vertical alignment of the cells with respect to other cells within the same row: top aligns the tops of each entry across the row;
bottom aligns the bottoms of the cells,
center centers the cells;
baseline aligns the baselines of the cells;
axis aligns the axis of each cells.
(See the note below about multiple values.)
|
||
columnalign | ("left" | "center" | "right") + | center |
同じ列の中の他の要素に対する要素の水平方向の位置揃えを指定します. left は, 要素の左端を揃えます. center は, 各要素を中央揃えします. right は, 要素の右端を揃えます. (複数の値については後の注意書きを参照して下さい.)specifies the horizontal alignment of the cells with respect to other cells within the same column: left aligns the left side of the cells;
center centers each cells;
right aligns the right side of the cells.
(See the note below about multiple values.)
|
||
alignmentscope | ("true" | "false") + | true |
[この属性は, 3.5.5 位置揃えの記号 <maligngroup/> , <malignmark/> の位置揃えの要素maligngroup とmalignmark と一緒に説明します.][this attribute is described with the alignment elements, maligngroup and malignmark ,
in 3.5.5 Alignment Markers
<maligngroup/> , <malignmark/> .]
|
||
columnwidth | ("auto" | 長さ | "fit") + length |
auto |
どのように列の幅を決めるべきか指定します. auto は, 列を必要とされる幅にすべきであることを意味します. 明確な長さは, 列は正確にその幅であることを意味し, その列の中身は, 描画ソフトウェアの判断で改行されたり切り抜かれたりすることで幅に合わせられます. fit は, auto や決められた幅の列を引いた後に残ったページの幅をfit の列で等しく分けることを意味します. fit の列の中身を保つのに十分な余地が残っていない場合, 描画ソフトウェアはfit の列の中身を改行したり切り抜いたりするかもしれません. columnwidth が百分率で指定されているとき, その値は表の幅に対する相対的な値で, (auto である)既定値の百分率ではないことに注意して下さい. つまり, 描画ソフトウェアは, 列が表全体の幅の指定された百分率を満たすように列の幅を調整するよう試みるべきです. (複数の値については後の注意書きを参照して下さい.)specifies how wide a column should be: auto means that the column should be as wide as needed;
an explicit length means that the column is exactly that wide and the contents of
that column are made to fit
by linewrapping or clipping at the discretion of the renderer;
fit means that the page width
remaining after subtracting the auto or fixed width columns
is divided equally among the fit columns.
If insufficient room remains to hold the
contents of the fit columns, renderers may
linewrap or clip the contents of the fit columns.
Note that when the columnwidth is specified as
a percentage, the value is relative to the width of the table, not
as a percentage of the default (which is auto ). That
is, a renderer should try to adjust the width of the column so that it
covers the specified percentage of the entire table width.
(See the note below about multiple values.)
|
||
width | "auto" | 長さ length |
auto |
表全体の望ましい幅を指定します. また, 視覚的なソフトウェアを対象と想定しています. 値が百分率の場合, その値はMathML描画ソフトウェアが利用可能な水平方向の空間に対する相対的な値です. この空間は, 3.1.7 式の改行で指定された改行のために利用される現在の対象となる幅です. このことは, 著者に, 例えば画面いっぱいの幅の表を指定することを認めています. 値がauto のとき, MatML描画ソフトウェアは, そのソフトウェアが選んだ配置アルゴリズムを用いて, 表の内容から幅を計算すべきです. 注意: 単位無しの数字は, MathML 3では認められていて, 百分率の値と同じように扱われていましたが, MathML 4では非推奨です.specifies the desired width of the entire table and is intended for visual user agents. When the value is a percentage value, the value is relative to the horizontal space that a MathML renderer has available, this is the current target width as used for linebreaking as specified in 3.1.7 Linebreaking of Expressions; this allows the author to specify, for example, a table being full width of the display. When the value is auto , the MathML
renderer should calculate the table width from its contents using
whatever layout algorithm it chooses.
Note: numbers without units were allowed in MathML 3 and treated similarly to percentage values,
but unitless numbers are deprecated in MathML 4.
|
||
rowspacing | (長さ) + length |
1.0ex |
行の間にどれくらいの間隔を加えるか指定します. (複数の値については後の注意書きを参照して下さい.) specifies how much space to add between rows. (See the note below about multiple values.) |
||
columnspacing | (長さ) + length |
0.8em |
列の間にどれくらいの間隔を加えるか指定します. (複数の値については後の注意書きを参照して下さい.) specifies how much space to add between columns. (See the note below about multiple values.) |
||
rowlines | ("none" | "solid" | "dashed") + | none |
どんな種類の線が各行の間に加えられるべきかどうか指定します. none は, 線無しを意味します. solid は, 実線を意味します. dashed は, 破線を意味します(どのような間隔の破線になるかは実装に依存します). (複数の値については後の注意書きを参照して下さい.)specifies whether and what kind of lines should be added between each row: none means no lines;
solid means solid lines;
dashed means dashed lines (how the dashes are spaced is implementation dependent).
(See the note below about multiple values.)
|
||
columnlines | ("none" | "solid" | "dashed") + | none |
どんな種類の線が各列の間に加えられるべきかどうか指定します. none は, 線無しを意味します. solid は, 実線を意味します. dashed は, 破線を意味します(どのような間隔の破線になるかは実装に依存します). (複数の値については後の注意書きを参照して下さい.)specifies whether and what kind of lines should be added between each column: none means no lines;
solid means solid lines;
dashed means dashed lines (how the dashes are spaced is implementation dependent).
(See the note below about multiple values.)
|
||
frame | "none" | "solid" | "dashed" | none |
どんな種類の線が表の周りに描かれるべきかどうか指定します. none は, 線無しを意味します. solid は, 実線を意味します. dashed は, 破線を意味します(どのような間隔の破線になるかは実装に依存します). (複数の値については後の注意書きを参照して下さい.)specifies whether and what kind of lines should be drawn around the table. none means no lines;
solid means solid lines;
dashed means dashed lines (how the dashes are spaced is implementation dependent).
|
||
framespacing | 長さ, 長さ length, length |
0.4em 0.5ex |
frame がnone で無い場合の, 表と枠の間に加えられる間隔を指定します. 1番目の値は, 右と左の間隔を指定します. 2番目の値は, 上と下の間隔を指定します.specifies the additional spacing added between the table and frame, if frame is not none .
The first value specifies the spacing on the right and left;
the second value specifies the spacing above and below.
|
||
equalrows | "true" | "false" | false |
全ての行を同じ高さにするかどうか指定します. specifies whether to force all rows to have the same total height. |
||
equalcolumns | "true" | "false" | false |
全ての列を同じ幅にするかどうか指定します. specifies whether to force all columns to have the same total width. |
||
displaystyle | "true" | "false" | false |
各要素のdisplaystyle の値を指定します. (scriptlevel は変更しません.) 3.1.6 displaystyleとscriptlevelを参照して下さい.specifies the value of displaystyle within each cell
(scriptlevel is not changed);
see 3.1.6 Displaystyle and Scriptlevel.
|
||
side | "left" | "right" | "leftoverlap" | "rightoverlap" | right |
(もしあったならば)囲っているmlabeledtr の番号を表のどちらの端に置くべきか指定します. 特殊な値であるleftoverlap とrightoverlap は, 認められた幅に表を合わせる場合で, 番号を幅には含めずに行の中に含める場合に便利です. そのような場合, 番号は, その行のrowalign がtop の場合は行の上に重ねられ, それ以外の場合は行の下に重ねられます.specifies on what side of the table labels from enclosed mlabeledtr (if any) should be placed.
The variants leftoverlap and rightoverlap
are useful when the table fits with the allowed width
when the labels are omitted, but not when they are included:
in such cases, the labels will overlap the row placed above it
if the rowalign for that row is top ,
otherwise it is placed below it.
|
||
minlabelspacing | 長さ length |
0.8em |
行の中の番号と隣接する要素の間に認められる最小の間隔を指定します. specifies the minimum space allowed between a label and the adjacent cell in the row. |
行(列, 行または列の間隔それぞれ)に影響する属性に対する仕様で, 表記(...)+
は複数の値を空白で区切られた一覧(2.1.5 MathML属性の値参照)として, 属性に与えることができることを意味します. この文脈で, 単独の値は全ての行(列, 間隔それぞれ)に使用される値を指定します. 値の一覧は, 順番に対応する行(列, 間隔, それぞれ)に適用されます. 順番は, 行に対しては上の行から始まり, 列に対しては1番目の列から(方向に依存して左から右に)始まります. 与えられた値よりも行(列, 間隔それぞれ)が多いならば, 最後の値が必要なだけ繰り返されます. 多すぎる値が与えられた場合は, 超過した分が無視されます.
In the above specifications for attributes affecting rows
(respectively, columns, or the gaps between rows or columns),
the notation (...)+
means that multiple values can be given for the attribute
as a space separated list (see 2.1.5 MathML Attribute Values).
In this context, a single value specifies the value to be used for all rows (resp.,
columns or gaps).
A list of values are taken to apply to corresponding rows (resp., columns or gaps)
in order, that is starting from the top row for rows or first column (left or right,
depending on directionality) for columns.
If there are more rows (resp., columns or gaps) than supplied values, the last value
is repeated as needed.
If there are too many values supplied, the excess are ignored.
frame
, rowlines
, columnlines
の線の占める範囲, またはframespacing
, rowspacing
, columnspacing
の間隔, またはmlabeledtr
の番号は, 少しも行や列として計算されないことに注意して下さい.
Note that none of the areas occupied by lines
frame
, rowlines
and columnlines
,
nor the spacing framespacing
, rowspacing
or columnspacing
,
nor the label in mlabeledtr
are counted as rows or columns.
displaystyle
属性は, mtable
要素の中で属性の継承される値として設定することが認められています. 属性が存在しない場合, mtable
要素はdisplaystyle
をfalse
に設定します. (3.1.6 displaystyleとscriptlevelを参照して下さい.)
The displaystyle
attribute is allowed on the mtable
element to set the inherited value of the attribute. If the attribute is
not present, the mtable
element sets displaystyle
to
false
within the table elements.
(See 3.1.6 Displaystyle and Scriptlevel.)
3×3の単位行列は次のように表すことができます.
A 3 by 3 identity matrix could be represented as follows:
<mrow>
<mo> ( </mo>
<mtable>
<mtr>
<mtd> <mn>1</mn> </mtd>
<mtd> <mn>0</mn> </mtd>
<mtd> <mn>0</mn> </mtd>
</mtr>
<mtr>
<mtd> <mn>0</mn> </mtd>
<mtd> <mn>1</mn> </mtd>
<mtd> <mn>0</mn> </mtd>
</mtr>
<mtr>
<mtd> <mn>0</mn> </mtd>
<mtd> <mn>0</mn> </mtd>
<mtd> <mn>1</mn> </mtd>
</mtr>
</mtable>
<mo> ) </mo>
</mrow>
かっこは, 明確に表現されなければならないことに注意して下さい. かっこは, mtable
の描画の一部ではありません. 角がっこといった他の周囲を囲う囲い文字の利用や, 何も付けないことも認められています.
Note that the parentheses must be represented explicitly; they are not
part of the mtable
element's rendering. This allows
use of other surrounding fences, such as brackets, or none at all.
mtr
要素は, 表または行列の1つの行を表します. mtr
要素は, mtable
要素の直下の式としてのみ認められており, その中身は表の1つの行を形作るべきとされています. mtr
の各引数は, 表の別々の列に位置付けられ, 左から右(LTR)の文脈では左端の列から, 右から左(RTL)の文脈では右端の列から始まります.
An mtr
element represents one row in a table
or matrix. An mtr
element is only allowed as a
direct sub-expression of an mtable
element, and
specifies that its contents should form one row of the table. Each
argument of mtr
is placed in a different column
of the table, starting at the leftmost column in a LTR context or rightmost
column in a RTL context.
3.5.1 表と行列 <mtable>
で説明したように, mtr
要素は表の他の行よりmtd
要素の数が少ない時, 効果的にmtd
要素を詰め込みます.
As described in 3.5.1 Table or Matrix
<mtable>
,
mtr
elements are
effectively padded with mtd
elements when they are shorter than other rows in a table.
mtr
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
mtr
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
rowalign | "top" | "bottom" | "center" | "baseline" | "axis" | 継承する inherited |
この行において, mtable のrowalign 属性で指定された要素の縦方向の位置揃えを上書きします.overrides, for this row, the vertical alignment of cells specified by the rowalign attribute on the mtable .
|
||
columnalign | ("left" | "center" | "right") + | 継承する inherited |
この行において, mtable のcolumnalign 属性で指定された要素の水平方向の位置揃えを上書きします.overrides, for this row, the horizontal alignment of cells specified by the columnalign attribute on the mtable .
|
mlabeledtr
要素は, side
属性によって決められた左端または右端に番号の付いた表の1つの行を表します. 番号はmlabeledtr
の最初の子要素で, mtd
要素で囲まれているべきです. 残りの子要素は行の中身を表し, mtr
の子要素と完全に同様に扱われます. その結果として, 全ての子要素はmtd
要素でなければなりません.
An mlabeledtr
element represents one row in
a table that has a label on either the left or right side, as
determined by the side
attribute. The label is
the first child of mlabeledtr
, and should be enclosed in an mtd
.
The rest of the children represent the contents of the row and are treated identically
to the children of mtr
; consequently all of the children
must be mtd
elements.
mlabeledtr
要素は, mtable
要素の直下の式としてのみ認められています. mlabeledtr
の各引数は, 最初の引数(番号)を除いて, 表の別々の列に位置付けられ, 左端の列から始まります.
An mlabeledtr
element is only allowed as a
direct sub-expression of an mtable
element.
Each argument of mlabeledtr
except for the first
argument (the label) is placed in a different column
of the table, starting at the leftmost column.
番号要素は, 表の行の要素と見なされないことに注意して下さい. 特に番号要素は, 表の配置において幅や位置揃えの計算の際に考慮されません. 例えば, 番号と中央揃えされたmtd
子要素を持つmlabeledtr
の場合, まず囲っているmtable
の中央に子要素が配置され, それから番号が配置されます. 特に, 子要素は, 番号を配置した後の表の中の残った空間の中央に配置されるわけではありません.
Note that the label element is not considered to be a cell in the
table row. In particular, the label element is not taken into
consideration in the table layout for purposes of width and alignment
calculations. For example, in the case of an mlabeledtr
with a label and a single centered mtd
child, the child is first centered in the
enclosing mtable
, and then the label is
placed. Specifically, the child is not centered in the
space that remains in the table after placing the label.
MathMLは番号を配置するアルゴリズムを指定していないにも関わらず, 視覚的な描画ソフトウェアの実装者は, 次の書式モデルが使いやすいと考えてもよいです. 番号を配置するのに, 実装者は, 両端に追加の列があるより大きな表を作る観点から考えるとします. その表の端の列のcolumnwidth
属性はfit
に設定され, 内側の列が配置された後に残った空間を埋めるように広げられるでしょう. 最終的に, side
とminlabelspacing
の値に従って, 番号は適切な端の列に配置され, 必要ならば可能なだけ下にずらされ, columnalignment
の値に従って位置揃えされます.
While MathML does not specify an algorithm for placing labels,
implementers of visual renderers may find the following formatting
model useful. To place a label, an implementor might think in terms
of creating a larger table, with an extra column on both ends. The
columnwidth
attributes of both these border
columns would be set to fit
so that they expand
to fill whatever space remains after the inner columns have been laid
out. Finally, depending on the values of side
and minlabelspacing
, the label is placed
in whatever border column is appropriate, possibly shifted down if
necessary, and aligned according to columnalignment
.
mlabeledtr
の属性はmtr
のものと同じです. mtable
要素の属性とは異なり, 列の要素に適用されるmlabeledtr
の属性は, 番号にも適用されます.
The attributes for mlabeledtr
are the same
as for mtr
. Unlike the attributes for the
mtable
element, attributes of
mlabeledtr
that apply to column elements
also apply to the label. For example, in a one column table,
<mlabeledtr rowalign='top'>
例えば, 表の1つの列において, 上の式は, 番号と行の中の他の要素をそれらの上端で縦方向に揃えることを意味します. 番号において特定の位置揃えを強制する場合は, 番号の中身を囲っているmtd
要素で適切な属性を通常決定します.
means that the label and other entries in the row are vertically aligned
along their top. To force a particular alignment on the label,
the appropriate attribute would normally be set on the
mtd
element that surrounds the label content.
mlabeledtr
の重要な用途の1つは番号の付いていた式に対してです. mlabeledtr
において, 番号は式番号を表し, 行の中の要素は番号の付けられた式です. mtable
のside
属性やminlabelspacing
属性は式番号の位置を設定します.
One of the important uses of mlabeledtr
is
for numbered equations. In an mlabeledtr
, the
label represents the equation number and the elements in the row are
the equation being numbered. The side
and minlabelspacing
attributes of mtable
determine the placement of the equation
number.
たくさんの番号の付いた式を伴う大きな文書では, 自動の番号付けが重要です. 自動での式への番号付けと式番号の参照先の自動での解決は, MathMLの範囲外です. これらの問題は, スタイルシートの利用や別の方法によって取り組まれています. mlabeledtrの構造は, XSLT処理を促進しようとする方法でそれらの両方の機能に対応しようとしています. mlabeledtr
要素は, 番号付きの式の存在を示すために使用でき, 最初の子要素はグローバル変数である式番号を増やすことで最新の式番号に変更することができます. 相互に参照するために, mlabeledtr要素もしくは最初の子要素自身のいずれかのid
が何らかのリンクの対象として利用されるでしょう. 代わりに, CSSの文脈では, mlabeledtr
の最初の子要素として空のmtd
要素を利用して, 次のようにCSS書式を利用して式番号を埋めるために, CSSカウンタと生成した中身を利用できるでしょう.
In larger documents with many numbered equations, automatic
numbering becomes important. While automatic equation numbering and
automatically resolving references to equation numbers is outside the
scope of MathML, these problems can be addressed by the use of style
sheets or other means. The mlabeledtr construction provides support
for both of these functions in a way that is intended to facilitate
XSLT processing. The mlabeledtr
element can be
used to indicate the presence of a numbered equation, and the first
child can be changed to the current equation number, along with
incrementing the global equation number. For cross references, an
id
on either the mlabeledtr element or on the first element
itself could be used as a target of any link.
Alternatively, in a CSS context, one could use an empty mtd
as the first child of mlabeledtr
and use CSS counters and generated content
to fill in the equation number using a CSS style such as
body {counter-reset: eqnum;}
mtd.eqnum {counter-increment: eqnum;}
mtd.eqnum:before {content: "(" counter(eqnum) ")"}
<mtable>
<mlabeledtr id='e-is-m-c-square'>
<mtd>
<mtext> (2.1) </mtext>
</mtd>
<mtd>
<mrow>
<mi>E</mi>
<mo>=</mo>
<mrow>
<mi>m</mi>
<mo>⁢<!--InvisibleTimes--></mo>
<msup>
<mi>c</mi>
<mn>2</mn>
</msup>
</mrow>
</mrow>
</mtd>
</mlabeledtr>
</mtable>
mtd
要素は, 表または行列の1つの要素またはマス目を表します. mtd
要素は, mtr
要素またはmlabeledtr
要素の直下の式としてのみ認められています.
An mtd
element represents one entry, or cell, in a
table or matrix. An mtd
element is only
allowed as a direct sub-expression of an mtr
or an mlabeledtr
element.
mtd
要素は単独の引数を持ちます. その引数は, 複数の子要素から成る省略されたmrow
でも良いです. 3.1.3 必要な引数を参照して下さい.
The mtd
element accepts
a single argument possibly being an inferred mrow
of multiple children;
see 3.1.3 Required Arguments.
mtd
要素は, 3.1.9 プレゼンテーション要素に共通の数学書式属性で指定された属性に加えて下に示した属性を持ちます.
mtd
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
rowspan | 正の整数 positive-integer |
1 |
指定された行の数を占めているマス目として扱われるようにします. 後に続くrowspan -1個の行の対応するmtd は省略されなければなりません. 実装は, HTMLの表の類似した属性と一致します.causes the cell to be treated as if it occupied the number of rows specified. The corresponding mtd in the following rowspan -1 rows must be omitted.
The interpretation corresponds with the similar attributes for HTML tables.
|
||
columnspan | 正の整数 positive-integer |
1 |
指定された列の数を占めているマス目として扱われるようにします. 後に続くrowspan -1個のmtd は省略されなければなりません. 実装は, HTMLの表の類似した属性と一致します.causes the cell to be treated as if it occupied the number of columns specified. The following rowspan -1 mtd s must be omitted.
The interpretation corresponds with the similar attributes for HTML tables.
|
||
rowalign | "top" | "bottom" | "center" | "baseline" | "axis" | 継承する inherited |
この要素の縦方向の位置揃えを指定します. この要素を含んでいるmrow やmtable で指定された値を上書きします. mtable のrowalign 属性を参照して下さい.specifies the vertical alignment of this cell, overriding any value specified on the containing mrow and mtable .
See the rowalign attribute of mtable .
|
||
columnalign | "left" | "center" | "right" | 継承する inherited |
この要素の水平方向の位置揃えを指定します. この要素を含んでいるmrow やmtable で指定された値を上書きします. mtable のcolumnalign 属性を参照して下さい.specifies the horizontal alignment of this cell, overriding any value specified on the containing mrow and mtable .
See the columnalign attribute of mtable .
|
rowspan
属性とcolumnspan
属性は, mlabeledtr
要素の番号を表すmtd
要素でも利用できます. また, mlabeledtr
要素の番号は, 前のrowspan
とcolumnspan
の一部とは見なされません.
The rowspan
and columnspan
attributes
can be used around an mtd
element that represents
the label in an mlabeledtr
element.
Also, the label of an mlabeledtr
element is not
considered to be part of a previous rowspan
and
columnspan
.
ある重要な異議により, <maligngroup/>
と<malignmark/>
は, 最小限の採用と実装とされました. その異議は, 位置揃えの基本的なもののみ使用するとしています. このことから, MathMLにおける位置揃えは, 現在の利用において位置揃えすることを明確に単純化され, 将来の実装を単純化しました. 特に, 次の単純化が行われました.
With one significant exception, <maligngroup/>
and <malignmark/>
have had minimal adoption and implementation.
The one exception only uses the basics of alignment. Because of this, alignment in MathML is significantly
simplified to align with the current usage and make future implementation simplier. In particular, the following simplifications are made:
<maligngroup/>
と<malignmark/>
に対する属性は削除されました.<maligngroup/>
and <malignmark/>
have been removed.mtable
, mtr
, mtr
で以前は認められていたgroupalign
属性は削除されました.groupalign
attribute previously allowed on
mtable
, mtr
, and
mtr
is removed<malignmark/>
は, 素子要素の中を含め, どこでも利用されてきました. 現在は, <maligngroup/>
が認められている場所(下記参照)のみ認められています.<malignmark/>
used to be allowed anywhere, including inside of token elements;
it is now allowed in only the locations that <maligngroup/>
is allowed (see below)位置揃えの記号は, MathMLの式の列の中の, 縦に揃えるために指定された位置の記号として利用される空白のような要素(3.2.7 空白 <mspace/>
)です。指定された式の間に必要な量の水平方向の空白を自動的に挿入することで揃えます.
Alignment markers are space-like elements (see 3.2.7 Space <mspace/>
) that can be used
to vertically align specified points within a column of MathML
expressions by the automatic insertion of the necessary amount of
horizontal space between specified sub-expressions.
次の議論は, それぞれの項の定数と変数を縦に揃えるように描画されるべき連立方程式の例を用います. ここで示しているような形で空白を挿入します.
The discussion that follows will use the example of a set of simultaneous equations that should be rendered with vertical alignment of the coefficients and variables of each term, by inserting spacing somewhat like that shown here:
8.44x | + | 55 | y= | 0 |
3.1 | x− | 0.7y | = | −1.1 |
この上に示した例の式が列で揃えられなかった場合, 次のように表されるでしょう.
If the example expressions shown above were arranged in a column but not aligned, they would appear as:
8.44x + 55.7y = 0 |
3.1x − 50.7y = −1.1 |
部分部分が(上の例で方程式ごとに)揃えられる数式は, mtable
の1列の表の要素として(すなわちmtd
要素として)与えられなければなりません. 混同を避けるために表の要素
より表のマス目
という用語をこの節の残りの部分では用います.
The expressions whose parts are to be aligned (each equation, in the
example above) must be given as the table elements (i.e. as the mtd
elements) of one column of an
mtable
. To avoid confusion, the term table
cell
rather than table element
will be used in the
remainder of this section.
位置揃えの要素間の相互作用は, それらが現れたmtable
の列に限られます. すなわち, mtable
要素で指定された表の各列が, 列の中の要素による全ての位置揃えの影響範囲を限定する位置揃えの範囲
として機能します. その直下の位置揃えの要素と, さらに下に含まれるかもしれない何らかの入れ子になった位置揃えの範囲の中の位置揃えの要素との間の, 相互作用は全て取り除かれます.
All interactions between alignment elements are limited to the
mtable
column they arise in. That is, every
column of a table specified by an mtable
element
acts as an alignment scope
that contains within it all alignment
effects arising from its contents. It also excludes any interaction
between its own alignment elements and the alignment elements inside
any nested alignment scopes it might contain.
位置揃えの基準が1つのみの場合, もう1つの方法は, 3.1.7 式の改行で述べたmo
要素の改行や字下げの属性を用いることです.
If there is only one alignment point, an alternative is to use linebreaking and indentation attributes
on mo
elements as described in 3.1.7 Linebreaking of Expressions.
mtable
要素は, その列が位置揃えの範囲として機能しない属性alignmentscope
=false
を与えられることもあります. このことは, この節の最後で詳しく論じます. それ以外の場合, この節の議論は, その属性が既定値true
であると仮定しています.
An mtable
element can be given the attribute
alignmentscope
=false
to cause
its columns not to act as alignment scopes. This is discussed further at
the end of this section. Otherwise, the discussion in this section assumes
that this attribute has its default value of true
.
揃えられる式の部分部分は, maligngroup
の中にあるべきです. 位置揃えの基準は, maligngroup
要素の間にmalignmark
要素がある場合を除いて, maligngroup
の後に来る要素の左端(右から左(RTL)では右端)です. maligngroup
要素の間にある場合, malignmark
の後に来る要素の左端(右から左(RTL)では右端)が, そのグループの位置揃えの基準です.
Each part of expression to be aligned should be in an maligngroup
.
The point of alignment is the left edge (right edge if for RTL) of the element that follows an maligngroup
element
unless an malignmark
element
is between maligngroup
elements. In that case, the left edge (right edge if for RTL) of the element that follows the
malignmark
is the point of alignment for that group.
mtable
の外でmaligngroup
またはmaligngroup
が現れた場合, それらは幅0で描かれます.
If maligngroup
or maligngroup
occurs outside of an
mtable
, they are rendered with zero width.
上の例では, 各式は, 右辺の係数, 変数, 演算子それぞれの前に1つのmaligngroup
要素を持ち, =
記号の前にも1つ持ち, 左辺の定数の前にも1つ持ちます. なぜなら, それらが揃えられるべき部分だからです.
In the example above, each equation would have one
maligngroup
element before each coefficient,
variable, and operator on the left-hand side, one before the
=
sign, and one before the constant on the right-hand
side because these are the parts that should be aligned.
一般に, n個のmaligngroup
要素を含んでいる表のマス目は, n個の位置揃えグループを含み, i番目のmaligngroup
より後で, (i+1)番目のmaligngroup
より前の, 全ての要素から成るi番目のグループを含んでいます. 表のマス目の内容の中の要素は, 最初のmaligngroup
要素の前に絶対に現れるべきではありません.
In general, a table cell containing n
maligngroup
elements contains n
alignment groups, with the ith group consisting of the
elements entirely after the ith
maligngroup
element and before the
(i+1)-th; no element within the table cell's content
should occur entirely before its first
maligngroup
element.
位置揃えグループの中の分割は, グループを含むMathMLの式の入れ子になった式の構造に適合する必要はないことに注意して下さい. すなわち, 1つの位置揃えグループにおいて, 例えば, 1つのmrow
の終了タグ, もう1つのmrow
全体, 3番目のmrow
の開始タグから構成されることは差し支えありません. このことは, この節の最後で示している例に対するMathMLマークアップで見られます.
Note that the division into alignment groups does not
necessarily fit the nested expression structure of the MathML
expression containing the groups — that is, it is permissible for one
alignment group to consist of the end of one
mrow
, all of another one, and the beginning of a
third one, for example. This can be seen in the MathML markup for the
example given at the end of this section.
位置揃えグループが, 配置要素の入れ子となった式の構造と一致しないにも関わらず, maligngroup
要素とmalignmark
要素が表のマス目の中で認められている場所には制限があります. それらの要素は, (表のマス目の中に直接含まれる)次の形式の要素に直接的もしくは間接的に含まれることしかないでしょう.
Although alignment groups need not
coincide with the nested expression structure of layout schemata,
there are nonetheless restrictions on where maligngroup
and malignmark
elements are allowed within a table cell. These
elements may only be contained within elements (directly or indirectly) of the following types
(which are themselves contained in the table cell):
複数の子要素を持つmtd
要素から形作られるような省略されたmrow
を含む, ただしdir
属性を用いて方向の変更を含むmrow
を除いた, mrow
要素.
an mrow
element, including an inferred
mrow
such as the one formed by a multi-child
mtd
element, but excluding mrow
which
contains a change of direction using the dir
attribute;
dir
属性を用いて方向を変更するものを除いた, mstyle
要素.
an mstyle
element
, but excluding those which change direction
using the dir
attribute;
mphantom
要素
an mphantom
element;
mfenced
要素
an mfenced
element;
中の式を選択済みのものに限った, maction
要素
an maction
element, though only its
selected sub-expression is checked;
semantics
要素
a semantics
element.
これらの制限は, 上側添え字, 根号, 分数の線といったものを含む複雑さを避けて, 位置揃えを明確に指定できることを確かなものにすることを意図しています. これらは, 決められた位置揃えを成し遂げるのに, 単純なアルゴリズムで十分であることを確かなものにもします.
These restrictions are intended to ensure that alignment can be unambiguously specified, while avoiding complexities involving things like overscripts, radical signs and fraction bars. They also ensure that a simple algorithm suffices to accomplish the desired alignment.
位置揃えグループに分割される表のマス目において, その中身の全ての要素は, 確実に1つの位置揃えグループの一部でなければなりません. ただし, 前に一覧にした要素の中にmaligngroup
要素を含んでいる場合や, maligngroup
要素自身のみからなる要素の場合は除きます. このことはつまり, 位置揃えグループを含む表のマス目の中で, 他の要素の開始タグの後になる場合も含め, 最初の完全な要素はmaligngroup
要素でなければならないことを意味しています. この必要性は, 最初のmaligngroup
要素の前の要素をどのように位置揃えするかといった潜在的な混乱を取り除き, 完全に表の列の位置揃えの流れから省かれたマス目を特定することを簡単にします.
For the table cells that are divided into alignment groups, every
element in their content must be part of exactly one alignment group,
except for the elements from the above list that contain
maligngroup
elements inside them and the
maligngroup
elements themselves. This means
that, within any table cell containing alignment groups, the first
complete element must be an maligngroup
element,
though this may be preceded by the start tags of other elements.
This requirement removes a potential confusion about how to align
elements before the first maligngroup
element,
and makes it easy to identify table cells that are left out of their
column's alignment process entirely.
位置揃えグループに分割された, 同じ列の中の表のマス目は, それぞれ同じ数のグループを含む必要は無いことに注意して下さい. 同じ数を含まない場合, 幅0の位置揃えグループが, 同じ列のマス目より少ないグループを持つ表のマス目それぞれの右端に(もしくは, 右から左(RTL)の文脈では左端に)効果的に追加されます.
It is not required that the table cells in a column that are divided into alignment groups each contain the same number of groups. If they don't, zero-width alignment groups are effectively added on the right side (or left side, in a RTL context) of each table cell that has fewer groups than other table cells in the same column.
これらのことを明確にし, 全ての列で同じ数のmaligngroup
要素を持つようにしたいでしょうか?
Do we want to tighten this so that all rows have the same number of maligngroup
elements?
この節で述べられているようなmaligngroup
無しの行を未だに認めたいでしょうか?
Do we still want to allow rows without maligngroup
as described in this section?
位置揃えグループを持たない列の式は, maligngroup
要素を含むべきではありません. 位置揃えグループを持たない式は, 表の列全体に適用されるcolumnalign
属性のみを用いて位置揃えされます. 位置揃えグループを含む表のマス目に必要とされる列の幅より, そのような式が幅を取る場合, 位置揃えグループを含む全ての表のマス目は, 列のcolumnalign
属性で述べられている列の中で一体のものとしてずらされるでしょう. 例えば, 内部の位置揃えを持たない列の見出しを, 前で示した2つの等式の列に, 見出しのためのmtext
要素を含む表の他の行として, それらの前に加えることができます. そして, 表に対して既定値のcolumnalign
="center"を用いて, 次のように表されます.
Expressions in a column that are to have no alignment groups
should contain no maligngroup
elements. Expressions with no alignment groups are aligned using only
the columnalign
attribute that applies to the table
column as a whole. If such an expression is wider than the
column width needed for the table cells containing alignment groups,
all the table cells containing alignment groups will be shifted as a
unit within the column as described by the columnalign
attribute for that column. For example, a column heading with no
internal alignment could be added to the column of two equations given
above by preceding them with another table row containing an
mtext
element for the heading, and using the
default columnalign
="center" for the table, to
produce:
equations with aligned variables | ||||||
8.44x | + | 55 | y= | 0 | ||
3.1 | x− | 0.7y | = | −1.1 |
また, 短い見出しの場合は次のように表されます.
or, with a shorter heading,
some equations | ||||
8.44x | + | 55 | y= | 0 |
3.1 | x− | 0.7y | = | −1.1 |
位置揃えグループの中のどこにあるmalignmark
要素も, (そのグループの中に完全に含まれる他の位置揃えの範囲の中にある場合を除いて)maligngroup
要素の始まりでの位置揃えを上書きします.
An malignmark
element anywhere within the
alignment group (except within another alignment scope wholly
contained inside it) overrides alignment at the start of an maligngroup
element.
malignmark
要素は, 位置揃えの基準が後に来る要素の左端(右から左(RTL)では右端)になるべきであることを意図しています.
The malignmark
element indicates that the
alignment point should occur on the left edge (right edge in a RTL context) of the following element.
素子の中にmalignmark
要素は現れることができるでしょうか?
Can malignmark
elements occur inside of tokens?
malignmark
要素が位置揃えグループの中で提供された場合, malignmark
要素は, maligngroup
要素に対して認められた要素の中(3.5.5.3 位置揃えグループを指定する参照)にのみ現れるべきです. 位置揃えグループの中に複数のmalignmark
要素がある場合, 最初のものを除いて無視されます. MathMLソフトウェアは, この状況に対して警告するモードを提供しようとしてもよいです. ただし, この状況はエラーではなく, 通常は何も警告を誘発しません. この対応に対する根拠としては, 自動で生成されたデータから, 必要ないmalignmark
要素を取り除くことは不便であろうからです.
When an malignmark
element is provided within an
alignment group, it should only occur within the elements allowed for maligngroup
(see 3.5.5.3 Specifying alignment groups).
If there is more than one malignmark
element
in an alignment group, all but the first one will be ignored. MathML
applications may wish to provide a mode in which they will warn about
this situation, but it is not an error, and should trigger no warnings
by default. The rationale for this is that it would
be inconvenient to have to remove all
unnecessary malignmark
elements from
automatically generated data.
上に示した決まりは, この節の最初の方で示した例のMathMLの式を説明するのに十分です.
The above rules are sufficient to explain the MathML representation of the example given near the start of this section.
課題180
issue 180
この式をMathMLで表す方法の1つは, 次のように表すことです.
One way to represent that in MathML is:
<mtable groupalign="{decimalpoint left left decimalpoint left left decimalpoint}">
<mtr>
<mtd>
<mrow>
<mrow>
<mrow>
<maligngroup/>
<mn> 8.44 </mn>
<mo> ⁢<!--InvisibleTimes--> </mo>
<maligngroup/>
<mi> x </mi>
</mrow>
<maligngroup/>
<mo> + </mo>
<mrow>
<maligngroup/>
<mn> 55 </mn>
<mo> ⁢<!--InvisibleTimes--> </mo>
<maligngroup/>
<mi> y </mi>
</mrow>
</mrow>
<maligngroup/>
<mo> = </mo>
<maligngroup/>
<mn> 0 </mn>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mrow>
<mrow>
<maligngroup/>
<mn> 3.1 </mn>
<mo> ⁢<!--InvisibleTimes--> </mo>
<maligngroup/>
<mi> x </mi>
</mrow>
<maligngroup/>
<mo> - </mo>
<mrow>
<maligngroup/>
<mn> 0.7 </mn>
<mo> ⁢<!--InvisibleTimes--> </mo>
<maligngroup/>
<mi> y </mi>
</mrow>
</mrow>
<maligngroup/>
<mo> = </mo>
<maligngroup/>
<mrow>
<mo> - </mo>
<mn> 1.1 </mn>
</mrow>
</mrow>
</mtd>
</mtr>
</mtable>
MathML描画ソフトウェアが, この節で指定された位置揃えを果たす際の単純なアルゴリズムをここで示します. 位置揃えの仕様は(文字の左端と右端の定義を除いて)決定論的なので, 何らかの正しいMathML位置揃えアルゴリズムは, 同じものに対して同じ挙動を持つでしょう. それぞれのmtable
の列(位置揃えの範囲)は独立して扱うことが可能です. ここで示すアルゴリズムは, 1つのmtable
の列に適用され, 位置揃えの要素, mtable
(3.5.1 表と行列 <mtable>
)で述べたcolumnalign
属性を考慮します. 右から左(RTL)では, アルゴリズムの中の左端と右端を入れ換えます.
A simple algorithm by which a MathML renderer can perform the
alignment specified in this section is given here. Since the alignment
specification is deterministic (except for the definition of the left
and right edges of a character), any correct MathML alignment
algorithm will have the same behavior as this one. Each
mtable
column (alignment scope) can be treated
independently; the algorithm given here applies to one
mtable
column, and takes into account the
alignment elements and the columnalign
attribute described
under mtable
(3.5.1 Table or Matrix
<mtable>
).
In an RTL context, switch left and right edges in the algorithm.
このアルゴリズムは, 実装によって確認されるべきです.
This algorithm should be verified by an implementation.
maligngroup
要素とmalignmark
要素に幅0を用いて計算されます. 最終的な描画は, それぞれの位置揃えグループや表のマス目に適用される水平方向の移動を除いて同一のものになるでしょう.maligngroup
and malignmark
elements. The final rendering will be identical except for horizontal
shifts applied to each alignment group and/or table cell.malignmark
によって指定される場合, そうでなければ左端), 右端の水平の位置は記録され, 位置揃えの基準の(左と右)両側のグループを決めます. この2つの両側の幅の和, すなわち, 位置揃えの基準の左と右の幅の和が, 位置揃えグループの幅と等しくなるでしょう.
malignmark
, otherwise the left edge),
and right edge are noted, allowing the width of
the group on each side of the alignment point (left and right) to be
determined. The sum of these two side-widths, i.e. the sum of the widths to the left and right of the alignment point, will equal the width of the alignment group.
何も位置揃えグループを持たない表のマス目の幅は, 最初の描画の部分として計算され, 他のマス目と違ったり, 位置揃えグループを持つマス目に使用される単独の幅と異なってもよいです. 全てのマス目の(両方のマス目に対して)最大の幅が, 表の列全体の幅になります.
The widths of the table cells that contain no alignment groups were computed as part of the initial rendering, and may be different for each cell, and different from the single width used for cells containing alignment groups. The maximum of all the cell widths (for both kinds of cells) gives the width of the table column as a whole.
列の中の各マス目の位置は, 明確なcolumnalign
属性の値を持つ, 囲っているmtable
要素, mtr
要素, mtd
要素の中の最も内側にある, その属性の値の適用可能な部分によって決められます. columnalign
属性は, それらの要素の節で説明したとおりです. このことは, 位置揃えグループを含むマス目が, それらの列の中でずらされ, 加えて, その中の位置揃えグループが上で述べたようにマス目の中をずらされることを意味します. ただし, そのようなマス目は同じ幅を持つので, 列の中を同じ量だけずらされるでしょうし, そのようにして, 各マス目の中の対応する位置揃えグループの位置揃えの基準の縦方向の位置揃えを調整します.
The position of each cell in the column is determined by the
applicable part of the value of the columnalign
attribute
of the innermost surrounding mtable
,
mtr
, or mtd
element that
has an explicit value for it, as described in the sections on those
elements. This may mean that the cells containing alignment groups
will be shifted within their column, in addition to their alignment
groups having been shifted within the cells as described above, but
since each such cell has the same width, it will be shifted the same
amount within the column, thus maintaining the vertical alignment of
the alignment points of the corresponding alignment groups in each
cell.
足し算, 掛け算, 割り算の筆算のような初等数学で利用される数学は, 自然に表のようになります. しかしながら, 利用される特定の表記は, 高等数学に対する表現よりも, 国々の間で多様です. さらに, 初等数学は中間の例を表すことがよくあり, MathMLはそれらの中間のもの, もしくは故意に一部を失った形式を捉えられなければなりません. それどころか, それらの構造は数学を表すのと同じぐらい, 記憶の手助け, または手続きの見本を表します.
Mathematics used in the lower grades such as two-dimensional addition, multiplication, and long division tends to be tabular in nature. However, the specific notations used varies among countries much more than for higher level math. Furthermore, elementary math often presents examples in some intermediate state and MathML must be able to capture these intermediate or intentionally missing partial forms. Indeed, these constructs represent memory aids or procedural guides, as much as they represent ‘mathematics’.
初等数学で基となる位置揃えのために利用される要素は次のとおりです.
The elements used for basic alignments in elementary math are:
mstack
数字と演算子の行を揃えます
align rows of digits and operators
msgroup
同じような位置揃えの行をまとめます
groups rows with similar alignment
msrow
数字と演算子を行にまとめます
groups digits and operators into a row
msline
縦に並んだ行の間に線を描きます
draws lines between rows of the stack
mscarries
後に続く行に, 場所によって付けたり付けなかったりする繰り下がり・繰り上がりや取消し線を付け加えます
annotates the following row with optional borrows/carries and/or crossouts
mscarry
単独の数字に対する繰り下がり・繰り上がりや取消し線
a borrow/carry and/or crossout for a single digit
mlongdiv
中間の計算が縦に並んだ割り算の筆算に対する除数や商を指定します
specifies a divisor and a quotient for long division, along with a stack of the intermediate computations
mstack
とmlongdiv
は全ての初等数学の配置における親要素です. mstack
, mlongdiv
, msgroup
の何らかの子要素に加えて, msrow
, msgroup
, mscarries
, msline
は暗黙のうちにmsrow
で囲まれているものとして扱われます(行について詳しくは3.6.4 初等数学の行 <msrow>
を参照して下さい).
mstack
and mlongdiv
are the parent elements for all elementary
math layout.
Any children of mstack
, mlongdiv
, and msgroup
,
besides msrow
, msgroup
, mscarries
and msline
,
are treated as if implicitly surrounded by an msrow
(see 3.6.4 Rows in Elementary Math <msrow>
for more details about rows).
これらの縦に並んだ構造の主な利用は, その中の1つ1つの数字を揃えた数字の行を並べることであり, 数字は常に左から右の書式であることから, mstackの列はいつも左から右に処理されます. 数式全体の方向(すなわちdir
属性)は, 実際のところ, 行の中の列または繰り上がりの表示の順番に影響を与えず, 特に, 行の中の何らかの演算子の順番に影響を与えません(3.1.5 方向参照).
Since the primary use of these stacking constructs is to
stack rows of numbers aligned on their digits,
and since numbers are always formatted left-to-right,
the columns of an mstack are always processed left-to-right;
the overall directionality in effect (i.e. the dir
attribute)
does not affect to the ordering of display of columns or carries in rows
and, in particular, does not affect the ordering of any operators within a row
(see 3.1.5 Directionality).
これらの要素は, 利用例を示しながらこの節で説明されています. 足し算, 引き算, 掛け算, 割り算に加えて, これらの要素は, 数字の繰り返しに利用される表記などを表すのに利用できます.
These elements are described in this section followed by examples of their use. In addition to two-dimensional addition, subtraction, multiplication, and long division, these elements can be used to represent several notations used for repeating decimals.
足し算の筆算のとても単純な例は次のとおりです.
A very simple example of two-dimensional addition is shown below:
<mstack>
<mn>424</mn>
<msrow> <mo>+</mo> <mn>33</mn> </msrow>
<msline/>
</mstack>
よりたくさんの例が, 3.6.8 初等数学の例で示されています.
Many more examples are given in 3.6.8 Elementary Math Examples.
mstack
は, 各文字で揃えられる数字の行を配置するのに使われます. この要素は, 筆算の足し算, 引き算, 掛け算といった, たくさん初等数学の表記で共通です.
mstack
is used to lay out rows of numbers that are aligned on each digit.
This is common in many elementary math notations such as 2D addition, subtraction,
and multiplication.
mstack
の子要素は, 前の行の下に各行を並べることで, 行を表したり, 行をまとめたりします. msrow
が行を表します. msgroup
が行の集合を一緒にまとめるので, それらの行の水平方向の位置揃えは一緒に調整されます. mscarries
が, その次の行に適用される繰り上がりの集合を表します. msline
が, 行を分割する線を表します. 何らかの他の要素は, 暗黙のうちにmsrow
に囲まれているものとして扱われます.
The children of an mstack
represent rows, or groups of them,
to be stacked each below the previous row; there can be any number of rows.
An msrow
represents a row;
an msgroup
groups a set of rows together
so that their horizontal alignment can be adjusted together;
an mscarries
represents a set of carries to be
applied to the following row;
an msline
represents a line separating rows.
Any other element is treated as if implicitly surrounded by msrow
.
各行は, 列に並べられる‘1つ1つの数字’を含みます. (より詳しくは3.6.4 初等数学の行 <msrow>
を参照して下さい). stackalign
属性は, msgroup
, mscarries
, msrow
のposition
属性やshift
属性と一緒に, 文字がどの列に属するのかを決めます.
Each row contains ‘digits’ that are placed into columns.
(see 3.6.4 Rows in Elementary Math <msrow>
for further details).
The stackalign
attribute together with
the position
and shift
attributes of msgroup
,
mscarries
, and msrow
determine
to which column a character belongs.
列の幅は, その列の‘1つ1つの数字’それぞれの最大の幅です. 繰り上がりは, 幅の計算に関与しません. 繰り上がりは0の幅を持っているものとして扱われます. 要素が列に収まるには幅が広過ぎる場合, charalign
属性で決まられたように隣の列にはみ出します. 列に文字が何も無い場合, 列の幅は, 現在使用されている言語の(たくさんのフォントで全ての数字が同じ幅を持っている)0の幅が使用されます.
The width of a column is the maximum of the widths of each ‘digit’ in that
column — carries do not participate in the
width calculation; they are treated as having zero width.
If an element is too wide to fit into a column, it overflows into the adjacent
column(s) as determined by the charalign
attribute.
If there is no character in a column, its width is taken to be the width of a 0
in the current language (in many fonts, all digits have the same width).
mstackを配置する方法は次のとおりです.
The method for laying out an mstack is:
行の中の‘1つ1つの数字’を決めます.
The ‘digits’ in a row are determined.
行の中の全ての1つ1つの数字をstackalign
の値によって最初の位置揃えを行います.
All of the digits in a row are initially aligned according to the stackalign
value.
position
属性が(少しでも)行を制御しているのであれば, それに基づく位置揃えに合わせて各行を配置します.
Each row is positioned relative to that alignment based on the position
attribute (if any)
that controls that row.
列の中の1つ1つの数字の最大の幅を決め, その列の中のより狭いかより広い要素をcharalign
属性によって位置揃えします.
The maximum width of the digits in a column are determined and
shorter and wider entries in that column are aligned according to
the charalign
attribute.
mstack要素の幅と高さを行と列に基づいて計算します. 何らかの列からはみ出している部分は, この計算の一部としては使用しません.
The width and height of the mstack element are computed based on the rows and columns. Any overflow from a column is not used as part of that computation.
mstack要素の欧文ベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)をalign
属性により決めます.
The baseline of the mstack element is determined by the align
attribute.
mstack
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
mstack
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
align | ("top" | "bottom" | "center" | "baseline" | "axis"), 行番号? rownumber |
baseline |
描画環境に対するmstack の縦方向の位置揃えを指定します. 正当な値とその意味は, mtable のalign 属性を同じです.specifies the vertical alignment of the mstack with respect to its environment.
The legal values and their meanings are the same as that for mtable 's
align attribute.
|
||
stackalign | "left" | "center" | "right" | "decimalpoint" | decimalpoint |
どの列が行の水平方向の位置揃えを行うのに利用されるか指定します. left のとき, 行はちょうど左端の列に揃えられます. 同様にright のとき, 行は右端の列に揃えられます. center のとき, 真ん中の列(または, 列の数が偶数の場合, 真ん中の右側の列)が位置揃えに利用されます. 0でないposition を持つかshift の影響を受ける列は, 必要な数の空の列が適切な端に加えられたものとして扱われます. 3.6.3 同じような位置の行をまとめる <msgroup> と3.6.4 初等数学の行 <msrow> を参照して下さい. decimalpoint のとき, 使用される列は, 各行の中の, mstyle のdecimalpoint 属性(既定値 ".")を用いて指定された小数点の文字を含む列の中で最も左の列です. 行の中に小数点の文字が無い場合, 行の最初の数字の右端を, 暗黙のうちに小数点と見なします. decimalpoint の議論についてはdecimalpoint を参照して下さい.specifies which column is used to horizontally align the rows. For left , rows are aligned flush on the left;
similarly for right , rows are flush on the right;
for center , the middle column (or to the right of the middle, for an even number of columns)
is used for alignment.
Rows with non-zero position , or affected by a shift ,
are treated as if the
requisite number of empty columns were added on the appropriate side;
see 3.6.3 Group Rows with Similar Positions <msgroup> and 3.6.4 Rows in Elementary Math <msrow> .
For decimalpoint , the column used is the left-most column in each
row that contains the decimalpoint character specified
using the decimalpoint attribute of mstyle (default ".").
If there is no decimalpoint character in the row, an implied decimal is assumed on
the right of the first number in the row;
see decimalpoint for a discussion
of decimalpoint .
|
||
charalign | "left" | "center" | "right" | right |
列の中の1つ1つの数字の水平方向の位置揃えを指定します. 中身が列の幅より大きい場合, 位置揃えの反対の方へはみ出します. 例えば, right のとき, 中身は左側にはみ出します. "center"のとき, 両側にはみ出します. はみ出した部分は列の幅の計算には関与せず, mstack 全体の幅にも関与しません. はみ出す場合, 著者は, 列のはみ出した部分どうしの衝突を避けるよう注意すべきです.specifies the horizontal alignment of digits within a column. If the content is larger than the column width, then it overflows the opposite side from the alignment. For example, for right , the content will overflow on the left side; for center,
it overflows on both sides.
This excess does not participate in the column width calculation, nor does it participate
in the overall width of the mstack .
In these cases, authors should take care to avoid collisions between column overflows.
|
||
charspacing | 長さ | "loose" | "medium" | "tight" length |
medium |
各列の間に配置する空白の量を指定します. 大きい空白は, 繰り上がりが上に配置されないときや, 特に幅が広いときに便利でしょう. loose , medium , tight という値は, 列の繰り上がりまたは他の要素の幅が広いときに, 自動で空白を調整します. この3つの値は著者に, 何の値が上手く働くか計算することなく, 何の配置が良く見えるのかを選ぶ際の柔軟性を認めています. 全ての場合において, 列の間の空白は固定の値で, 異なる列の間で変わることはありません.specifies the amount of space to put between each column. Larger spacing might be useful if carries are not placed above or are particularly wide. The keywords loose , medium , and tight
automatically adjust spacing to when carries or other entries in a column are wide.
The three values allow authors to some flexibility in choosing what the layout looks
like
without having to figure out what values work well.
In all cases, the spacing between columns is a fixed amount and does not vary between
different columns.
|
割り算の筆算の表記は, 表記の本質は似通っているにも関わらず, 世界中で相当変化に富んでいます. mlongdiv
は, mstack
に似ており, 割り算の筆算を配置するために使用されます. mlongdiv
の最初の2つの子要素は, 順番に, 除数と割り算の商です. 残りの子要素は, mstack
の子要素であるかのように扱われます. 割り算の筆算を表示する際に用いられる, これらの要素と線や区切りの場所は, longdivstyle
属性によって制御されます.
Long division notation varies quite a bit around the world,
although the heart of the notation is often similar.
mlongdiv
is similar to mstack
and used to layout long division.
The first two children of mlongdiv
are the divisor and the result of the division, in that order.
The remaining children are treated as if they were children of mstack
.
The placement of these and the lines and separators used to display long division
are controlled
by the longdivstyle
attribute.
商または除数は, 初等数学の要素か, もしくはnone
でしょう. 特に, msgroup
が使われている場合, そのグループの中の要素は, longdivstyle
属性に従って, それら自身のmstackを形作ったりそうでなかったり, 被除数のmstack
の一部となったりならなかったりしてもよいです. 例えば, 割り算のアメリカ合衆国の形式では, 商は, 被除数のmstack
の一部として扱われますが, 除数はそうではありません. MathMLは, 商や除数がそれら自身のmstack
を形作るときのことを指定していません. また, msline
や他の初等数学の要素が商や除数として使用されていて, それらが被除数のmstack
の配置に関与しないときに, 何が起こるべきかも指定していません.
The result or divisor may be an elementary math element or may be none
.
In particular, if msgroup
is used,
the elements in that group may or may not form their own mstack or be part of the
dividend's mstack
,
depending upon the value of the longdivstyle
attribute.
For example, in the US style for division,
the result is treated as part of the dividend's mstack
, but divisor is not.
MathML does not specify when the result and divisor form their own mstack
,
nor does it specify what should happen if msline
or other elementary math elements
are used for the result or divisor and they do not participate in the dividend's mstack
layout.
初等数学についてのこの節の残りの部分で, 何かmstack
について述べたことは, 他のことが述べられていない限りmlongdiv
に適用されます.
In the remainder of this section on elementary math, anything that is said about mstack
applies
to mlongdiv
unless stated otherwise.
mlongdiv
要素は, (3.1.9 プレゼンテーション要素に共通の数学属性で指定されている属性も含め)mstack
が持っている全ての属性を, 下で一覧にした属性と一緒に持ちます.
mlongdiv
elements accept all of the attributes that mstack
elements
accept (including those specified in 3.1.9 Mathematics attributes common to presentation elements), along with the attribute listed below.
longdivstyle
で認められている値には制限がありません. 適合している描画ソフトウェアは, 可能な限り多くの下に示した値を描画するよう促されていますが, 処理できない値を無視してもよいです. 割り算の一部として描く何らかの罫線は, mathcolor
で指定された色を用いて描かれるべきです.
The values allowed for longdivstyle
are open-ended.
Conforming renderers may ignore any value they do not handle,
although renderers are encouraged to render as many of the values listed below as
possible.
Any rules drawn as part of division layout should be drawn using the color specified
by
mathcolor
.
名前 Name |
値 values |
既定値 default |
longdivstyle | "lefttop" | "stackedrightright" | "mediumstackedrightright" | "shortstackedrightright" | "righttop" | "left/\right" | "left)(right" | ":right=right" | "stackedleftleft" | "stackedleftlinetop" | lefttop |
割り算の筆算の配置の書式を制御します. 名称は, 被除数に対する除数と商の位置を説明する大まかな覚えやすい略称です. Controls the style of the long division layout. The names are meant as a rough mnemonic that describes the position of the divisor and result in relation to the dividend. |
これらの表記がどのように扱われるかは, 3.6.8.3 割り算の筆算の例を参照して下さい. 上に一覧にした値は, 世界中の異なる国々の割り算の筆算の表記として使用されています.
See 3.6.8.3 Long Division for examples of how these notations are drawn. The values listed above are used for long division notations in different countries around the world:
lefttop
アメリカ合衆国やイギリスや他の国で一般に利用される表記
a notation that is commonly used in the United States, Great Britain, and elsewhere
stackedrightright
フランスや他の国で一般に利用される表記
a notation that is commonly used in France and elsewhere
mediumrightright
ロシアや他の国で一般に利用される表記
a notation that is commonly used in Russia and elsewhere
shortstackedrightright
ブラジルや他の国で一般に利用される表記
a notation that is commonly used in Brazil and elsewhere
righttop
中国やスウェーデンや他の国で一般に利用される表記
a notation that is commonly used in China, Sweden, and elsewhere
left/\right
ニュージーランドで一般に利用される表記
a notation that is commonly used in Netherlands
left)(right
インドで一般に利用される表記
a notation that is commonly used in India
:right=right
ドイツで一般に利用される表記
a notation that is commonly used in Germany
stackedleftleft
アラブの国で一般に利用される表記
a notation that is commonly used in Arabic countries
stackedleftlinetop
アラブの国で一般に利用される表記
a notation that is commonly used in Arabic countries
msgroup
は, mstack
要素やmlongdiv
要素の中にある, 縦の並びの位置揃えに関して同じような位置となる行をまとめます. この要素が明確に与えられていないとき, mstack
やmlongdiv
の中の縦の並びを表している子要素は, 暗黙のうちにmsgroup
要素で囲まれているものとして扱われます.
msgroup
is used to group rows inside of the mstack
and mlongdiv
elements
that have a similar position relative to the alignment of stack.
If not explicitly given, the children representing the stack in mstack
and mlongdiv
are treated as if they are implicitly surrounded by an msgroup
element.
msgroup
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
msgroup
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
position | 整数 integer |
0 |
グループの中の水平方向の位置を, 囲っているmsgroup (のposition 属性とshift 属性)によって決められた位置に対して相対的に指定します. 結果としてpositionの値は, 囲っているmstack またはmlongdiv のstackalign によって指定された列からの相対的な値になります. 正の値は, 各行を10の位の方へ, 10の乗数を掛けたかのように, 右側に効果的に空の列を詰め込みながら動かします. 負の値は, 1の位の方へ, 左側に効果的に空の列を詰め込みながら動かします. 小数点は列として数えられ, 負の値の計算に使用されるべきです.specifies the horizontal position of the rows within this group relative to the position determined by the containing msgroup (according to its
position and shift attributes).
The resulting position value is relative to the column specified by stackalign of the containing mstack or mlongdiv .
Positive values move each row towards the tens digit,
like multiplying by a power of 10,
effectively padding with empty columns on the right;
negative values move towards the ones digit,
effectively padding on the left.
The decimal point is counted as a column and should be taken into account for negative
values.
|
||
shift | 整数 integer |
0 |
グループの中の連続する子要素(行やグループ)の位置を少しずつずらします. 値は位置として解釈されますが, (最初のものを除いて)各子要素のグループの中の前の子要素に対する位置を指定します. specifies an incremental shift of position for successive children (rows or groups) within this group. The value is interpreted as with position, but specifies the position of each child (except the first) with respect to the previous child in the group. |
msrow
はmstack
の中の行を表します. ほとんどの場合, 文脈によって暗黙のうちに指定されるものですが, 足し算や引き算の中で数字の横に演算子"+"または"-"を置く場合といった, 単独の行の中に明確に複数の要素を置くのに便利です.
An msrow
represents a row in an mstack
.
In most cases it is implied by the context, but is useful
explicitly for putting multiple elements in a single row,
such as when placing an operator "+" or "-" alongside a number
within an addition or subtraction.
mn
要素が(暗黙のうちに, もしくは明確に)msrow
の子要素である場合, 数字は1つ1つの数字に分割され, その数字は連続する列に位置付けられます. 他の何らかの要素は, mstyle
を除いて, 次の列を占める単独の1つの数字として効果的に扱われます. mstyle
は, その子要素が直接msrow
の子要素であるかのように扱われますが, mstyle
の属性によって, それらの子要素の書式は影響を受けます. 空要素none
は, 空の列を創り出すのに使われてもよいです.
If an mn
element is a child of msrow
(whether implicit or not), then the number is split into its digits
and the digits are placed into successive columns.
Any other element, with the exception of mstyle
is treated effectively
as a single digit occupying the next column.
An mstyle
is treated as if its children were
directly the children of the msrow
, but with their style affected
by the attributes of the mstyle
.
The empty element none
may be used to create an empty column.
行は, 主に数字であると考えられていて, その数字は左から右に表示され, 列が表示されるのに使用される方向はいつも左から右であることに注意して下さい. (mn
以外の)素子要素の中の文字列の双方向性はそれでも, (単独の数字として扱われるもので終わる)msrow
の何らかの子要素の中の全体の方向が適用されます. 3.1.5 方向を参照して下さい.
Note that a row is considered primarily as if it were a number,
which is always displayed left-to-right,
and so the directionality used to display the columns is always left-to-right;
textual bidirectionality within token elements (other than mn
) still applies,
as does the overall directionality within any children of the msrow
(which end up treated as single digits);
see 3.1.5 Directionality.
msrow
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
msrow
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
position | 整数 integer |
0 |
グループの中の水平方向の位置を, 囲っているmsgroup (のposition 属性とshift 属性)によって決められた位置に対して相対的に指定します. 結果としてpositionの値は, 囲っているmstack またはmlongdiv のstackalign によって指定された列からの相対的な値になります. 正の値は, 各行を10の位の方へ, 10の乗数を掛けたかのように, 右側に効果的に空の列を詰め込みながら動かします. 負の値は, 1の位の方へ, 左側に効果的に空の列を詰め込みながら動かします. 小数点は列として数えられ, 負の値の計算に使用されるべきです.specifies the horizontal position of the rows within this group relative to the position determined by the containing msgroup (according to its
position and shift attributes).
The resulting position value is relative to the column specified by stackalign of the containing mstack or mlongdiv .
Positive values move each row towards the tens digit,
like multiplying by a power of 10,
effectively padding with empty columns on the right;
negative values move towards the ones digit,
effectively padding on the left.
The decimal point is counted as a column and should be taken into account for negative
values.
|
mscarries
要素は, 初等数学で現れる繰り上がり, 繰り下がり, 取消し線といった様々な付加情報に利用されます. 子要素は, mstack
の中の次に来る行の要素と結び付けられます. mscarries
が, mstack
要素またはmlongdiv
要素の最後の要素となることはエラーになります. mscarries
の各子要素は, 次に来る行の同じ列に適用されます. これらの付加情報は, 数字として扱われている何かを装飾するのに利用され, 列に繰り上がりなどを紐付けるのは, 左から右に行います. 数式全体の方向は, 繰り上がりなどの順番には適用されませんが, 繰り上がりなどのそれぞれの中身には適用されます. 3.1.5 方向を参照して下さい.
The mscarries
element is used for various annotations such as carries, borrows, and crossouts that
occur in elementary math.
The children are associated with elements in the following row of the mstack
.
It is an error for mscarries
to be the last element of an mstack
or mlongdiv
element. Each child of the mscarries
applies to the same column in the following row.
As these annotations are used to adorn what are treated as
numbers, the attachment of carries to columns proceeds from left to right;
the overall directionality does not apply to the ordering of the carries,
although it may apply to the contents of each carry;
see 3.1.5 Directionality.
mscarry
またはnone
以外のmscarries
の子要素は, 暗黙のうちにmscarry
で囲まれているものとして扱われます. 要素none
は, 特定の列に繰り上がりが必要ないときに使用されます. mscarries
要素は, displaystyle
をfalse
に設定し, scriptlevel
を1つ増やすので, 子要素は典型的に小さいフォントで表示されます. (3.1.6 displaystyleとscriptlevelを参照して下さい.) また, mscarries
要素は, scriptsizemultiplier
の既定値を変更します. 結果として, それでもなおscriptsizemultiplier
の継承された値が既定値を上書きすべきですが, mscarries
の中の既定値は0.6
であるべきです. scriptsizemultiplier
はmscarries
要素で設定でき, その値は通常継承された値を上書きすべきです.
Each child of mscarries
other than mscarry
or none
is
treated as if implicitly surrounded by mscarry
;
the element none
is used when no carry for a particular column is needed.
The mscarries
element sets displaystyle
to false
, and increments scriptlevel
by 1, so the children are
typically displayed in a smaller font. (See 3.1.6 Displaystyle and Scriptlevel.)
It also changes the default value of scriptsizemultiplier
.
The effect is that the inherited value of
scriptsizemultiplier
should still override the default value,
but the default value, inside mscarries
, should be 0.6
.
scriptsizemultiplier
can be set on the mscarries
element,
and the value should override the inherited value as usual.
繰り上がりなどの2つの行が互いに隣接している場合, 繰り上がりなどの1番目の行が, あたかも2番目の行がlocation
=n
であるかのように, 2番目の(次に来る)行に付け加わります. このことは, 2番目の行が例え描かれなかったとしても, 表示される際に視覚的に(この仕様書では定義されていない)何らかの量の空白を使用することを意味します.
If two rows of carries are adjacent to each other,
the first row of carries annotates the second (following) row as if the second row
had
location
=n
.
This means that the second row, even if it does not draw,
visually uses some (undefined by this specification) amount of space when displayed.
mscarries
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
mscarries
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
position | 整数 integer |
0 |
グループの中の水平方向の位置を, 囲っているmsgroup (のposition 属性とshift 属性)によって決められた位置に対して相対的に指定します. 結果としてpositionの値は, 囲っているmstack またはmlongdiv のstackalign によって指定された列からの相対的な値になります. 値の解釈は, msgroup またはmsrow のposition と同じですが, 各繰り上がりと下の列の結び付けを変更します. 例えば, position =1は, 右端の繰り上がりを右から2番目の数字に結び付けるでしょう.specifies the horizontal position of the rows within this group relative to the position determined by the containing msgroup (according to its
position and shift attributes).
The resulting position value is relative to the column specified by stackalign of the containing mstack or mlongdiv .
The interpretation of the value is the same as position for msgroup or msrow ,
but it alters the association of each carry with the column below.
For example, position =1 would cause the rightmost carry to be associated with
the second digit column from the right.
|
||
location | "w" | "nw" | "n" | "ne" | "e" | "se" | "s" | "sw" | n |
繰り上がりや繰り下がりの場所を, 結び付けられた列の文字からの相対的な方向で指定します. 方位磁針の方向が値に使用されます. 既定値は, 繰り上がりを文字の上に配置することです. specifies the location of the carry or borrow relative to the character below it in the associated column. Compass directions are used for the values; the default is to place the carry above the character. |
||
crossout | ("none" | "updiagonalstrike" | "downdiagonalstrike" | "verticalstrike" | "horizontalstrike")* | none |
どのように各繰り上がりの下の列の内容を"線で取り消す"のか指定します. 1つ以上の値が与えられることもあり, 与えられた全ての値が描かれます. none が他の値と一緒に与えられた場合, 無視されます. 異なる値の例は, 3.6.8 初等数学の例を参照して下さい. 取消し線は対応するmscarry を持つ列にのみ適用されます. 取消し線は, mathcolor で指定された色を使って描かれるべきです.specifies how the column content below each carry is "crossed out"; one or more values may be given and all values are drawn. If none is given with other values, it is ignored.
See 3.6.8 Elementary Math Examples for examples of the different values.
The crossout is only applied for columns which have a corresponding
mscarry .
The crossouts should be drawn using the color specified by mathcolor .
|
||
scriptsizemultiplier | 数 number |
継承する (0.6) inherited (0.6) |
フォントの大きさを変更する際の係数を指定します. どのように, この値がscriptsize 属性と一緒に動作するかの説明については, 3.1.6 displaystyleとscriptlevelを参照して下さい.specifies the factor to change the font size by. See 3.1.6 Displaystyle and Scriptlevel for a description of how this works with the scriptsize attribute.
|
mscarry
は, mscarries
の中で個々の列に対する繰り上がりを表すのに利用されます. 繰り上がりは幅0であるかのように扱われます. mscarry
は, 対応する列の幅の計算に加わりません. そのため, mscarry
は, 列の範囲を超えて拡張されてもよいです. mscarry
は通常省略されますが, この要素は, 自身を含んでいるmscarries
のlocation
属性やcrossout
属性を明確に上書きするために利用されます. mscarry
は, 何ら繰り上がりは表示せずに, 囲っているmscarries
に与えられるcrossout
を対象の列に描かれるようにするために, 中身にnone
を伴って利用することもできます.
mscarry
is used inside of mscarries
to
represent the carry for an individual column.
A carry is treated as if its width were zero; it does not participate in
the calculation of the width of its corresponding column;
as such, it may extend beyond the column boundaries.
Although it is usually implied, the element may be used explicitly to override the
location
and/or crossout
attributes of
the containing mscarries
.
It may also be useful with none
as its content in order
to display no actual carry, but still enable a crossout
due to the enclosing mscarries
to be drawn for the given column.
mscarry
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
The mscarry
element accepts the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
名前 Name |
値 values |
既定値 default |
location | "w" | "nw" | "n" | "ne" | "e" | "se" | "s" | "sw" | 継承する inherited |
繰り上がりや繰り下がりの場所を, その下の行にある同じ列の文字からの相対的な方向で指定します. 方位磁針の方向が値に使用されます. specifies the location of the carry or borrow relative to the character in the corresponding column in the row below it. Compass directions are used for the values. |
||
crossout | ("none" | "updiagonalstrike" | "downdiagonalstrike" | "verticalstrike" | "horizontalstrike")* | 継承する inherited |
どのように繰り上がりが結び付けられた列の内容を"線で取り消す"のか指定します. 1つ以上の値が与えられることもあり, 与えられた全ての値が描かれます. none が他の値と一緒に与えられた場合, 本質的に無視されます. 取消し線は, mathcolor で指定された色を使って描かれるべきです.specifies how the column content associated with the carry is "crossed out"; one or more values may be given and all values are drawn. If none is given with other values, it is essentially ignored.
The crossout should be drawn using the color specified by mathcolor .
|
msline
は, mstack
要素の中の水平線を描きます. 線の位置, 長さ, 太さは, 属性で指定します. 長さが指定されている場合, 線は数字の数で与えられた長さであるかのように配置され描かれます.
msline
draws a horizontal line inside of an mstack
element.
The position, length, and thickness of the line are specified as attributes.
If the length is specified, the line is positioned and drawn as if it were a number
with the given number of digits.
msline
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます. 線は, mathcolor
で指定された色を使って描かれるべきです.
msline
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
The line should be drawn using the color specified by mathcolor
.
名前 Name |
値 values |
既定値 default |
position | 整数 integer |
0 |
グループの中の水平方向の位置を, 囲っているmsgroup (のposition 属性とshift 属性)によって決められた位置に対して相対的に指定します. 結果としてpositionの値は, 囲っているmstack またはmlongdiv のstackalign によって指定された列からの相対的な値になります. 正の値は, 各行を10の位の方へ(10の乗数を掛けたかのように)動かします. 負の値は, 1の位の方へ動かします. 小数点は列として数えられ, 負の値の計算に使用されるべきです. 既定値の線の長さはmstack 全体に及ぶので, length に0でない値が指定されていない限り, positionは何の効果も無いことに注意して下さい.specifies the horizontal position of the rows within this group relative to the position determined by the containing msgroup (according to its
position and shift attributes).
The resulting position value is relative to the column specified by stackalign of the containing mstack or mlongdiv .
Positive values move towards the tens digit (like multiplying by a power of 10);
negative values move towards the ones digit.
The decimal point is counted as a column and should be taken into account for negative
values.
Note that since the default line length spans the entire mstack ,
the position has no effect unless the length is specified as non-zero.
|
||
length | 符号無し整数 unsigned-integer |
0 |
線が引かれるべき列の数を指定します. '0'という値(既定値)は, 行の全ての列に対して(position とstackalign が何も影響を与えない状況で)線が引かれることを意味します.Specifies the number of columns that should be spanned by the line. A value of '0' (the default) means that all columns in the row are spanned (in which case position and stackalign have no effect).
|
||
leftoverhang | 長さ length |
0 |
線が引かれている左端の列の左側に張り出すべき追加の量を指定します. Specifies an extra amount that the line should overhang on the left of the leftmost column spanned by the line. |
||
rightoverhang | 長さ length |
0 |
線が引かれている右端の列の右側に張り出すべき追加の量を指定します. Specifies an extra amount that the line should overhang on the right of the rightmost column spanned by the line. |
||
mslinethickness | 長さ | "thin" | "medium" | "thick" length |
medium |
どのような太さで線が描かれるべきか指定します. 線は, 高さ=0で, 深さ=mslinethicknessであるべきなので, msline の上は, (あれば)囲っている文脈の欧文ベースライン(訳注:欧文書体で水平の基準線で大文字の下端の位置)になります. (太さの値medium , thin , thick についての議論は3.3.2 分数 <mfrac> を参照して下さい.)Specifies how thick the line should be drawn. The line should have height=0, and depth=mslinethickness so that the top of the msline is on the baseline of the surrounding context (if any).
(See 3.3.2 Fractions <mfrac> for discussion of the thickness keywords
medium , thin and thick .)
|
足し算, 引き算, 掛け算の筆算は, 典型的に数字, 繰り上がり・繰り下がり, 線, 演算の記号を含んでいます.
Two-dimensional addition, subtraction, and multiplication typically involve numbers, carries/borrows, lines, and the sign of the operation.
下記は, この節の最初に示した例です. mn
要素の中の数字は, "+"がそうであるようにそれぞれ列を占めます. none
は, "4"の下の列を埋めるために使用され, "+"を全ての被演算子の左側に現れるようにします. 何の属性も, msline
が列全体に引かれるようには与えられていないことに気を付けて下さい.
Below is the example shown at the start of the section:
the digits inside the mn
elements each occupy a column as does the "+".
none
is used to fill in the column under the "4" and make the "+" appear to the left of all of the operands.
Notice that no attributes are given on msline
causing it to span all of the columns.
<mstack>
<mn>424</mn>
<msrow> <mo>+</mo> <none/> <mn>33</mn> </msrow>
<msline/>
</mstack>
次の例は, どのように演算子を右側に付けるか明示しています. 演算子を右側に置くことは, ニュージーランドなどのいくつかの国で標準です. 例には全部で4つの行があるにも関わらず, 通常の位置揃えは, 数字の右側の暗黙の小数点なので, どの行も空白を入れたりずらしたりする必要はないことに気を付けて下さい.
The next example illustrates how to put an operator on the right. Placing the operator on the right is standard in the Netherlands and some other countries. Notice that although there are a total of four columns in the example, because the default alignment is on the implied decimal point to the right of the numbers, it is not necessary to pad or shift any row.
<mstack>
<mn>123</mn>
<msrow> <mn>456</mn> <mo>+</mo> </msrow>
<msline/>
<mn>579</mn>
</mstack>
次の2つの例は, 列を埋めるのにnone
を利用している, mscarries
, mscarry
の利用例を図解しています. この例は, 繰り下がりを表示する2つの異なった方法も描いています.
The following two examples illustrate the use of mscarries
,
mscarry
and using none
to fill in a column.
The examples also illustrate two different ways of displaying a borrow.
<mstack>
<mscarries crossout='updiagonalstrike'>
<mn>2</mn> <mn>12</mn> <mscarry crossout='none'> <none/> </mscarry>
</mscarries>
<mn>2,327</mn>
<msrow> <mo>-</mo> <mn> 1,156</mn> </msrow>
<msline/>
<mn>1,171</mn>
</mstack>
<mstack>
<mscarries location='nw'>
<none/>
<mscarry crossout='updiagonalstrike' location='n'> <mn>2</mn> </mscarry>
<mn>1</mn>
<none/>
</mscarries>
<mn>2,327</mn>
<msrow> <mo>-</mo> <mn> 1,156</mn> </msrow>
<msline/>
<mn>1,171</mn>
</mstack>
2つ目の例に対するMathMLは, 取消し線が1つの列にのみ現れるようにmscarry
を使用しています.
The MathML for the second example uses mscarry
because a crossout should only happen on a single column:
次の引き算の例は, 下線付きの繰り下がりを示しています(この例はスウェーデンの書き方です). 注意すべきことが2つあります. menclose
が繰り下がりで利用されていること, そして, none
が空要素に対して用いられているので, mscarry
が取消し線を描くのに利用できることです.
The next example of subtraction shows a borrowed
amount that is underlined (the example is from a Swedish
source).
There are two things to notice:
an menclose
is used in the carry, and none
is used for
the empty element so that mscarry
can be used to create a crossout.
<mstack>
<mscarries>
<mscarry crossout='updiagonalstrike'><none/></mscarry>
<menclose notation='bottom'> <mn>10</mn> </menclose>
</mscarries>
<mn>52</mn>
<msrow> <mo>-</mo> <mn> 7</mn> </msrow>
<msline/>
<mn>45</mn>
</mstack>
下記は, msgroup
要素とshift
属性の利用について図解した, 単純な掛け算の例です. 1番目のmsgroup
は必要ですが, 配置を変更しません. 2番目のmsgroup
は取り除くこともできますが, msrow
が最後の2つの子要素に対して必要になるでしょう. それらのmsrow
は, position
属性またはshift
属性を設定するか, 右側を数字で埋めるためにnone
を加える必要があるでしょう.
Below is a simple multiplication example that illustrates the use of msgroup
and
the shift
attribute. The first msgroup
is implied and doesn't
change the layout.
The second msgroup
could also be removed, but msrow
would be needed for last two children.
They msrow
would need to set the
position
or shift
attributes,
or would add none
elements to pad the digits on the right.
<mstack>
<msgroup>
<mn>123</mn>
<msrow><mo>×</mo><mn>321</mn></msrow>
</msgroup>
<msline/>
<msgroup shift="1">
<mn>123</mn>
<mn>246</mn>
<mn>369</mn>
</msgroup>
<msline/>
</mstack>
次の例は, 複数の繰り上がりの行を持っている, より複雑な掛け算の例です. この例は(やや人為的に)数字の区切り文字としてコンマ(",")を含んでもいます. コードは, これらの区切り文字を, ASCIIでない文字と一緒に間隔を取る属性の中に含みます.
The following is a more complicated example of multiplication that has multiple rows of carries. It also (somewhat artificially) includes commas (",") as digit separators. The encoding includes these separators in the spacing attribute value, along non-ASCII values.
<mstack>
<mscarries><mn>1</mn><mn>1</mn><none/></mscarries>
<mscarries><mn>1</mn><mn>1</mn><none/></mscarries>
<mn>1,234</mn>
<msrow><mo>×</mo><mn>4,321</mn></msrow>
<msline/>
<mscarries position='2'>
<mn>1</mn>
<none/>
<mn>1</mn>
<mn>1</mn>
<mn>1</mn>
<none/>
<mn>1</mn>
</mscarries>
<msgroup shift="1">
<mn>1,234</mn>
<mn>24,68</mn>
<mn>370,2</mn>
<msrow position="1"> <mn>4,936</mn> </msrow>
</msgroup>
<msline/>
<mn>5,332,114</mn>
</mstack>
割り算の筆算に用いられる表記は, 国によってかなり異なります. ほとんどの表記は, 途中の計算結果や被演算子に引き算を行うための線を描くといった共通の特徴を持っています. マイナス記号はときどき途中計算で見られたり, 見られなかったりします. 引かれている線は, 上にある表記に合わせて長さが変化します. 表記の間の最も大きな外見上の違いは, 除数の場所が変化したり, 同じように商, 余り, 途中の項の場所が変化したりすることです.
The notation used for long division varies considerably among countries. Most notations share the common characteristics of aligning intermediate results and drawing lines for the operands to be subtracted. Minus signs are sometimes shown for the intermediate calculations, and sometimes they are not. The line that is drawn varies in length depending upon the notation. The most apparent difference among the notations is that the position of the divisor varies, as does the location of the quotient, remainder, and intermediate terms.
使用される配置は, longdivstyle
属性により制御されます. 下記は3.6.2.2 属性で一覧にされた値に対する例です.
The layout used is controlled by the longdivstyle
attribute. Below are examples for the values listed in 3.6.2.2 Attributes.
lefttop |
stackedrightright |
mediumstackedrightright |
shortstackedrightright |
righttop |
|
|
|
|
|
left/\right |
left)(right |
:right=right |
stackedleftleft |
stackedleftlinetop |
|
|
|
|
|
最初の例に対するMathMLを下に示します. 入れ子になったmsgroup
の利用やそれらの利用においてposition
がどのように計算されるのか図解しています.
The MathML for the first example is shown below. It illustrates the use of nested
msgroup
s and how the position
is calculated in those usages.
<mlongdiv longdivstyle="lefttop">
<mn> 3 </mn>
<mn> 435.3</mn>
<mn> 1306</mn>
<msgroup position="2" shift="-1">
<msgroup>
<mn> 12</mn>
<msline length="2"/>
</msgroup>
<msgroup>
<mn> 10</mn>
<mn> 9</mn>
<msline length="2"/>
</msgroup>
<msgroup>
<mn> 16</mn>
<mn> 15</mn>
<msline length="2"/>
<mn> 1.0</mn> <!-- 右端('0')ではなく, '.'で位置揃えする -->
<!-- aligns on '.', not the right edge ('0') -->
</msgroup>
<msgroup position='-1'> <!-- "."の右まで移動するように追加でずらす -->
<!-- extra shift to move to the right of the "." -->
<mn> 9</mn>
<msline length="3"/>
<mn> 1</mn>
</msgroup>
</msgroup>
</mlongdiv>
最後の例を除いて, 他の例に対するコードは, longdivstyle
に対する値が異なること, また, 小数点の"."の代わりに","が使われていることを除いて同じです. 最後の例において, longdivstyle
に異なる値を用いた他の例との違いは, アラビア文字の数字を, 下に示すとおりラテン文字の数字の場所に用いていることのみです.
With the exception of the last example,
the encodings for the other examples are the same except that the values for
longdivstyle
differ and that a "," is used instead of a "." for the decimal point.
For the last example, the only difference from the other examples besides a different
value for
longdivstyle
is that Arabic numerals have been used in place of Latin numerals,
as shown below.
<mstyle decimalpoint="٫">
<mlongdiv longdivstyle="stackedleftlinetop">
<mn> ٣ </mn>
<mn> ٤٣٥٫٣</mn>
<mn> ١٣٠٦</mn>
<msgroup position="2" shift="-1">
<msgroup>
<mn> ١٢</mn>
<msline length="2"/>
</msgroup>
<msgroup>
<mn> ١٠</mn>
<mn> ٩</mn>
<msline length="2"/>
</msgroup>
<msgroup>
<mn> ١٦</mn>
<mn> ١٥</mn>
<msline length="2"/>
<mn> ١٫٠</mn>
</msgroup>
<msgroup position='-1'>
<mn> ٩</mn>
<msline length="3"/>
<mn> ١</mn>
</msgroup>
</msgroup>
</mlongdiv>
</mstyle>
1/3(.3333...)のような無限に繰り返す数字を持つ小数は, 様々な表記を用いて表されます. ある共通の表記は, 繰り返す数字の上に水平線を引く方法です(ポルトガルでは下線が用いられます). 他の表記としては, 繰り返す数字の上に点を配置する方法があります. これらに対するMathMLは, 真っ当な方法としては, mstack
, msrow
, msline
を用いるものです. これらの表記は, 下記のとおり表されます.
Decimal numbers that have digits that repeat infinitely such as 1/3
(.3333...) are represented using several notations. One common notation
is to put a horizontal line over the digits that repeat (in Portugal an underline
is used).
Another notation involves putting dots over the digits that repeat.
The MathML for these involves using mstack
, msrow
, and msline
in a straightforward manner.
These notations are shown below:
<mstack stackalign="right">
<msline length="1"/>
<mn> 0.3333 </mn>
</mstack>
<mstack stackalign="right">
<msline length="6"/>
<mn> 0.142857 </mn>
</mstack>
<mstack stackalign="right">
<mn> 0.142857 </mn>
<msline length="6"/>
</mstack>
<mstack stackalign="right">
<msrow> <mo>.</mo> <none/><none/><none/><none/> <mo>.</mo> </msrow>
<mn> 0.142857 </mn>
</mstack>
maction
要素は, 式に動作を結び付ける仕組みを提供します. maction
要素は引数としていくつでも式を受け入れ, 起こるべき動作の種類をactiontype
属性で制御しています. MathML 3は, 4つの動作toggle
, statusline
, statusline
, input
を予め定義していました. しかしながら, どの動作を実装することも動作環境に強く依存することから, MathML 4は, もはやそれらの動作が何を行うか定義していません. さらに, ウェブの環境では, 動作を行うのにjavascriptと結び付けられるイベントがより力強い解決策ですが, maction
は, それらのイベントをくっつけるために便利な包み込む要素を提供します.
The maction
element provides a mechanism for binding actions to expressions.
This element accepts any
number of sub-expressions as arguments and the type of action that should happen
is controlled by the actiontype
attribute.
MathML 3 predefined the four actions:
toggle
,
statusline
,
statusline
, and
input
.
However, because the ability to implement any action depends very strongly on the platform,
MathML 4 no longer predefines what these actions do.
Furthermore, in the web environment events connected to javascript to perform actions are a
more powerful solution, although maction
provides a
convenient wrapper element on which to attach such an event.
math
要素の内部であったり, URLであったり他の要素をリンクすることは, maction
では扱えません. 代わりに, MathML要素に直接, 6.4.4 リンクで指定されているリンクを加えることで扱えます.
Linking to other elements, either locally within the math
element or to some URL,
is not handled by maction
.
Instead, it is handled by adding a link directly on a MathML element as specified
in 6.4.4 Linking.
maction
要素は, 3.1.9 プレゼンテーション要素に共通の数学属性で指定された属性に加えて下に示した属性を持ちます.
maction
elements accept the attributes listed
below in addition to those specified in 3.1.9 Mathematics attributes common to presentation elements.
通常, 指定されたactiontype
を受け入れないMathMLソフトウェアは, 下で定義されたように選択された式を描画すべきです. 選択された式が存在しない場合, MathMLエラーになります. この場合の適切な描画は, D.2 エラーの扱いで説明するとおりです.
By default, MathML applications that do not recognize the specified
actiontype
should render the selected sub-expression as
defined below. If no selected sub-expression exists, it is a MathML
error; the appropriate rendering in that case is as described in
D.2 Handling of Errors.
名前 Name |
値 values |
既定値 default |
actiontype | 文字列 string |
必要 required |
この要素に対し何が起こるべきか指定します. 値には制限がありません. 適合した描画ソフトウェアは, 後で一覧にした値を描画するように促されているにも関わらず, 処理しない何らかの値を無視してもよいです. Specifies what should happen for this element. The values allowed are open-ended. Conforming renderers may ignore any value they do not handle, although renderers are encouraged to render the values listed below. |
||
selection | 正の整数 positive-integer |
1 |
どの子要素が表示に用いられるべきか指定します. この値は, 1とこの要素の子要素の数の間であるべきです. 指定された子要素は, maction 要素の選択された式として参照されます. 値が範囲外であるとき, エラーになります. selection 属性が指定されていないとき, (それに対する動作の種類が何ら意味を持たない場合も含めて)既定値は1です. そのため, 選択された式は最初の式になるでしょう.Specifies which child should be used for viewing. Its value should be between 1 and the number of children of the element. The specified child is referred to as the selected sub-expressionof the maction element. If the value specified is out of range, it is an error. When the
selection attribute is not specified (including for
action types for which it makes no sense), its default value is 1, so
the selected sub-expression will be the first sub-expression.
|
MathMLソフトウェアが, 利用者のMathMLの式を全体環境のクリップボード
(6.3 MathMLを受け渡す参照)にコピーする命令に応じるのであれば, コピーされるものの中のどのmaction
要素も, コピーされるときにselection
の値によって選択されMathMLで描画される状態の式とされるべきです.
If a MathML application responds to a user command to copy a MathML sub-expression
to
the environment's clipboard
(see 6.3 Transferring MathML), any maction
elements present in what is copied should
be given selection
values that correspond to their selection
state in the MathML rendering at the time of the copy command.
MathMLソフトウェアが, 複数の入れ子になったmaction要素によって処理されるであろうマウスの動作を受け取ったとき, それぞれの動作の種類の中で最も内側のmaction要素が, その動作を受け取るべきです.
When a MathML application receives a mouse event that may be processed by two or more nested maction elements, the innermost maction element of each action type should respond to the event.
actiontype
の値は無制限です. 他の値が与えられたり, 追加の属性が必要になったりした場合, XMLにおいては, 属性は別の名前空間にいなければなりません. HTMLにおいては, 属性は"data-"で始まらなければなりません. XMLの例を下記に示します.
The actiontype
values are open-ended. If another value is given and it requires additional attributes,
the attributes must be in a different namespace
in XML;
in HTML the attributes must begin with "data-".
An XML example is shown below:
この例では, 他の名前空間の標準でない属性が, それらに対応した描画ソフトウェアに, MathML構文を破ることなしに, 追加の情報を渡すのに使われています(D.3 指定されていないデータに対する属性参照). my:color
属性は, 表示されている文字の色を変えるでしょうし, my:background
属性は文字の背景の色を変えるでしょう.
In the example,
non-standard attributes from another namespace are being used to pass
additional information to renderers that support them,
without violating the MathML Schema (see D.3 Attributes for unspecified data).
The my:color
attributes
might change the color of the characters in the presentation, while the
my:background
attribute might change the color of the background
behind the characters.
MathMLは, プレゼンテーションMathML要素に意味情報を付け加えることができるように, semantics
要素を利用します. この要素は, コンテントMathMLでも他の表記でも良いです. semantics
自体は, プレゼンテーションMathMLとコンテントMathML両方の一部と見なされるべきです. MathML処理ソフトウェアは, それらのマークアップのうち1つしか処理できないとしても, semantics
要素を処理すべきです.
MathML uses the semantics
element to allow specifying semantic annotations to
presentation MathML elements; these can be content MathML or other notations. As
such,
semantics
should be considered part of both presentation MathML and content
MathML. All MathML processors should process the semantics
element, even if they
only process one of those subsets.
意味情報を付け加える際に, プレゼンテーションMathMLの式は, 典型的にsemantics
要素の最初の子要素になります. しかしながら, semantics
要素は, semantics
要素の中のannotation-xml
要素の中で与えられることもできます. semantics
要素がannotation-xml
要素の一部の場合, encoding
=application/mathml-presentation+xml
またはencoding
=MathML-Presentation
が利用されてもよいです. また, プレゼンテーションMathML処理ソフトウェアは, プレゼンテーションMathMLに対する値を使用すべきです.
In semantic annotations a presentation MathML expression is typically the first child
of the semantics
element. However, it can also be given inside of an
annotation-xml
element inside the semantics
element. If it is part of an
annotation-xml
element, then
encoding
=application/mathml-presentation+xml
or
encoding
=MathML-Presentation
may be used and presentation
MathML processors should use this value for the presentation.
semantics
要素とannotation-xml
要素の詳細について, より詳しくは5.2 付加情報の枠組みを参照して下さい.
See 5.2 Annotation Elements for more details about the
semantics
and annotation-xml
elements.
現在のところ, 描画の"例"はあります. intent
を使用した例を作成しましょう.
There are currently "sample" renderings. Let's make this use intent
.
コンテントマークアップの目的は, 式に対する何らかの特定の表記ではなく, 式の基本的な数学的意味の明確なコード化を提供することです. 数学表記は, 時として, あいまいで, 文脈に依存し, 分野ごとに変化します. 多くの場合に, 基本となる整然とした数学事象に直接働きかけることが好まれます. コンテントマークアップは, 論理的で拡張可能な意味の枠組と, その目的のためのマークアップ言語を提供します.
The purpose of Content Markup is to provide an explicit encoding of the underlying mathematical meaning of an expression, rather than any particular notation for the expression. Mathematical notation is at times ambiguous, context-dependent, and varies from community to community. In many cases, it is preferable to work directly with the underlying, formal, mathematical objects. Content Markup provides a rigorous, extensible semantic framework and a markup language for this purpose.
どう表されるかを尊重せずに, 基本となる数学的構造を明確にコード化することで, 数学事象を意味的に処理するシステム間で, より正確な情報を交換することが可能です. 重要な応用分野は, 数式処理システム, 自動推論システム, 産業や科学での応用, 多言語の翻訳システム, 数学の研究, オンライン試験の自動評価, 対話方式の教科書を含みます.
By encoding the underlying mathematical structure explicitly, without regard to how it is presented, it is possible to interchange information more precisely between systems that semantically process mathematical objects. Important application areas include computer algebra systems, automatic reasoning systems, industrial and scientific applications, multi-lingual translation systems, mathematical search, automated scoring of online assessments, and interactive textbooks.
この章は, コンテントマークアップを定義するのに用いられる基本となる概念の概要を提案し, 厳格なコンテントマークアップを含む要素の核となる集合について述べ, 一般的な数学表現に対応する要素の完全な集合を定義しています. 厳格なコンテントマークアップは, 意味的に厳格な方法で一般的な式のツリーをコード化します. 一方, コンテントMathML要素の完全な集合は, コンテントマークアップの従前版との下位互換性を提供します. 完全なコンテントマークアップと厳格なコンテントマークアップとの間の対応は, 任意のコンテントマークアップを厳格なコンテントマークアップに変換するアルゴリズムについて詳細を示したF. 厳格なコンテントMathMLへの変換で定義されています.
This chapter presents an overview of basic concepts used to define Content Markup, describes a core collection of elements that comprise Strict Content Markup, and defines a full collection of elements to support common mathematical idioms. Strict Content Markup encodes general expression trees in a semantically rigorous way, while the full set of Content MathML elements provides backward-compatibility with previous versions of Content Markup. The correspondence between full Content Markup and Strict Content Markup is defined in F. The Strict Content MathML Transformation, which details an algorithm to translate arbitrary Content Markup into Strict Content Markup.
コンテントMathMLは, 式のツリー構造として数学事象を表現します. 一般に, 式のツリー構造は, 演算子を一連の部分的な式に適用することで構成されます. 例えば, 和x+y
は, 足し算の演算子を2つの引数xとyに適用するものとして構成できます. また, 式cos(π)
は, 余弦関数を数πに適用するものとして構成できます.
Content MathML represents mathematical objects as expression
trees. In general, an expression tree is constructed by applying
an operator to a sequence of sub-expressions. For example, the sum
x+y
can be constructed
as the application of the addition operator to two arguments
x and y, and the expression
cos(π)
as the application of the cosine function to the
number π.
ツリー構造の末端の要素は, 数字, 変数, 四則演算子などの基本となる数学の対象物です. ツリー構造の中間の要素は, 関数の適用や, 複合したものを組み立てる他の数学の構造を表します.
The terminal nodes in an expression tree represent basic mathematical objects such as numbers, variables, arithmetic operations, and so on. The internal nodes in the tree represent function application or other mathematical constructions that build up compound objects.
MathMLは, 広い範囲の応用事例の中から十分なように選んだ, 比較的少数のごく普通の数学的構造を定義しています. 加えて, MathMLは, 定義した集合以外の数学的概念を, それらを適切に表現することを認めることで, 参照する仕組みを提供します.
MathML defines a relatively small number of commonplace mathematical constructs, chosen to be sufficient in a wide range of applications. In addition, it provides a mechanism to refer to concepts outside of the collection it defines, allowing them to be represented as well.
コンテント要素の定義された集合は, アメリカ合衆国の幼稚園から大学の最初の2年間を通じて典型的に利用される公式を, 単純にコード化するのに十分なものとなるよう設計されました. それらの公式は, ヨーロッパでのAレベル(訳注:イギリスの大学入学資格として認められる統一試験)または大学入試レベルに当たります.
The defined set of content elements is designed to be adequate for simple coding of formulas typically used from kindergarten through the first two years of college in the United States, that is, up to A-Level or Baccalaureate level in Europe.
MathMLコンテント要素の集合の第一の役割は, 式の数学的構造を, それらを表現するのに使われる表記とは独立して, コード化することです. ただし, 描画の課題は無視できません. MathML要素を直接実装することから, 表記の定義の宣言やXSLTスタイルシートに至るまでの, コンテントMathMLの式を描画するたくさんの様々な方法があります. コンテントMathMLの描画の必要事項は多岐に渡ることから, MathMLは, 標準となる描画の仕様を提供していません. その代わり, 典型的な描画は, プレゼンテーションマークアップを使用して得られた例を通じて提案されています.
The primary role of the MathML content element set is to encode the mathematical structure of an expression independent of the notation used to present it. However, rendering issues cannot be ignored. There are many different approaches to render Content MathML formulae, ranging from native implementations of the MathML elements, to declarative notation definitions, to XSLT style sheets. Because rendering requirements for Content MathML vary widely, MathML does not provide a normative rendering specification. Instead, typical renderings are suggested by way of examples given using presentation markup.
コンテントMathMLの式の組み立ての基本となる部分は, 数字, 識別子, 記号です. これらの基本となる部分は, 関数の適用や束縛する演算子を使用して組合せられます.
The basic building blocks of Content MathML expressions are numbers, identifiers, and symbols. These building blocks are combined using function application and binding operators.
式において, 数字は, 固定値の数字を表しています. コンテントMathMLは, 数量を表すのにcn
要素を使用します. 識別子は, 数学変数, すなわち, 前もって決められた値を持たない量を表す識別子です. コンテントMathMLは, 変数識別子を表すのにci
要素を使用します.
In the expression
,
the numeral
represents a number with a fixed value. Content MathML uses the
cn
element to represent numerical quantities. The identifier
is a mathematical variable, that is, an identifier
that represents a quantity with no predetermined value. Content MathML
uses the
ci
element to represent variable identifiers.
プラス記号は, 固定された外部で定義されたもので, すなわち加算の関数を表します. このような識別子は, 変数と区別するために記号と呼ばれます. 一般的な初等関数と演算子は, そういった意味で全て記号です。コンテントMathMLは, 記号を表すのにcsymbol
要素を使用します.
The plus sign is an identifier that represents a fixed, externally
defined object, namely, the addition function. Such an identifier is
called a symbol, to distinguish it from a variable. Common
elementary functions and operators are all symbols in this sense.
Content MathML uses the
csymbol
element to represent symbols.
数字、変数、記号を組合せる基本的な方法は, 関数の適用です. コンテントMathMLは, 関数自体(正弦関数といった記号, fといった変数, 他の式でもよい)と, その関数を引数に適用した結果とを区別します. apply
要素は, 関数と引数を構造上まとめ, 引数に関数を適用した場合に返される式を表します.
The fundamental way to combine numbers, variables, and symbols
is function application. Content MathML distinguishes between the
function itself (which may be a symbol such as the sine function,
a variable such as f, or some other expression)
and the result of applying the function to its arguments. The
apply
element groups the function with its arguments syntactically, and
represents the expression that results from applying the function
to its arguments.
式において, 変数は, 束縛変数または自由変数として説明されてもよいです. 束縛変数は, 束縛された式の範囲内で特別な役割を持っています. それらの変数は, 式の意味を変えることなく, 束縛範囲の中でいつでも名前が変えられてもよいです. 自由変数は, 式の中で束縛されていない変数です. コンテントMathMLは, (例えばf(x)といった)自由変数への関数の適用と, 束縛範囲の中で変数を束縛する演算を区別します. bind
要素は, 束縛変数の束縛範囲を表すのに利用され, bvar
要素を使用して供給された, 束縛する演算子と束縛変数をまとめます.
In an expression, variables may be described as bound or
free variables. Bound variables have a special role within
the scope of a binding expression, and may be renamed consistently
within that scope without changing the meaning of the expression.
Free variables are those that are not bound within an expression.
Content MathML differentiates between the application of a function
to a free variable (e.g. f(x))
and an operation that binds a variable within a binding scope. The
bind
element is used to delineate the binding scope of a bound variable
and to group the binding operator with its bound variables, which
are supplied using the
bvar
element.
厳格なコンテントマークアップにおいて, 変数を束縛した状態にする唯一の方法は, bind
要素を使用することです. 厳格でないコンテントマークアップにおいて, 他のマークアップ要素が, 総和や積分のlimit
といった, よく知られた慣用表現にとてもよく似たものを提供します. それらの構成は, 積分変数や総和の添え字変数といった具合に, 暗に変数を束縛してもよいです. MathMLは, それらの構成で必要な補助データを表すのに利用される要素を参照するのに, 修飾要素という用語を使用します.
In Strict Content markup, the only way to perform variable binding
is to use the bind
element. In non-Strict
Content markup, other markup elements are provided that more closely
resemble well-known idiomatic notations, such as limit
-style
notations for sums and integrals. These constructs may implicitly
bind variables, such as the variable of integration, or the index variable
in a sum. MathML uses the term qualifier element to refer to
those elements used to represent the auxiliary data required by these
constructs.
修飾要素を含む式は, それぞれが同じような束縛する演算子の種類に適用される, 少ない数の慣用的なパターンの1つに従います. 例えば, 総和と総積は, 同じパターンに従う添え字変数を使用することから同じ種類です. コンテントMathMLの演算子の種類は4.3.4 演算子の種類で詳しく説明されています.
Expressions involving qualifiers follow one of a small number of idiomatic patterns, each of which applies to a class of similar binding operators. For example, sums and products are in the same class because they use index variables following the same pattern. The Content MathML operator classes are described in detail in 4.3.4 Operator Classes.
MathML3の初期段階から, 厳格なコンテントMathMLは, 均一の構造を用いて数学の意味を表現するのに十分な, コンテントMathMLの最小の部分集合として定義されています. 完全なコンテントMathML要素の集合は, MathML2との下位互換性のために残されており, 冗長性と整然性の実用的なバランスを取っています.
Beginning in MathML 3, Strict Content MathML is defined as a minimal subset of Content MathML that is sufficient to represent the meaning of mathematical expressions using a uniform structure. The full Content MathML element set retains backward compatibility with MathML 2, and strikes a pragmatic balance between verbosity and formality.
コンテントMathMLは, 巨大な数の空要素としてコード化される定義済の関数(例えば, sin
, log
など)や複合したものを形作る様々な構造(例えば, set
, interval
など)を提供しています. 対照的に, 厳格なコンテントMathMLは, 拡張可能なコンテント辞書の定義を指し示す属性と一緒に, 単独の要素(csymbol
)を使用して, 全ての既知の関数を表します. また, 複合した式を組み立てるのにapply
要素とbind
要素のみを使用します. cn
やci
といった素子要素は, 厳格なコンテントMathMLの一部と見なされますが, 属性の種類と文字列の内容がより制限されています.
Content MathML provides a considerable number of predefined functions
encoded as empty elements (e.g. sin
,
log
, etc.) and a variety of constructs for
forming compound objects (e.g. set
,
interval
, etc.). In contrast, Strict
Content MathML represents all known functions using a single element
(csymbol
) with an attribute that points
to its definition in an extensible content dictionary, and uses only
apply
and bind
elements to build up compound expressions. Token elements such as
cn
and ci
are
considered part of Strict Content MathML, but with a more restricted set
of attributes and with content restricted to text.
公式な意味のコンテントMathMLの式は, それに等価な厳格なコンテントMathMLの式を指定することで示されます. それらの式は, 全て, コンテント辞書によって定義された公式な意味を持っています. それぞれの厳格でないコンテントMathMLの構成と, それと等価な厳格なコンテントMathMLとの間の厳密な対応は, F. 厳格なコンテントMathMLへの変換で与えられる変換アルゴリズムの一部として使われる, 書き換えの決まりによって説明されます.
The formal semantics of Content MathML expressions are given by specifying equivalent Strict Content MathML expressions, which all have formal semantics defined in terms of content dictionaries. The exact correspondence between each non-Strict Content MathML structure and its Strict Content MathML equivalent is described in terms of rewrite rules that are used as part of the transformation algorithm given in F. The Strict Content MathML Transformation.
F. 厳格なコンテントMathMLへの変換で説明するアルゴリズムは, 全てのコンテントMathMLの式に厳格なコンテントMathMLによって特定の意味を与える上で完璧です. 状況に応じて, そのアルゴリズムは, MathML2では自身の意味が十分に指定されなかった式に, 特定の厳格な解釈を与えます. このアルゴリズムの目標は, 自然な数学的直観に忠実であることです. しかしながら, 極端な状況では, アルゴリズムによって与えられた解釈が過去の見込みと矛盾する状況が残されることがあってもよいです.
The algorithm described in F. The Strict Content MathML Transformation is complete in the sense that it gives every Content MathML expression a specific meaning in terms of a Strict Content MathML expression. In some cases, it gives a specific strict interpretation to an expression whose meaning was not sufficiently specified in MathML 2. The goal of this algorithm is to be faithful to natural mathematical intuitions, however, some edge cases may remain where the specific interpretation given by the algorithm may be inconsistent with earlier expectations.
適合したMathML処理ソフトウェアは, これらのアルゴリズムを実装する必要はありません. それらの変換の決まりの存在は, ソフトウェアが等しい式を同一と扱わなければならないことを意味しません. 特に, ソフトウェアは, 変換の決まりが数学的に同一であると示されている式に対して, 異なった表現の描画をしてもよいです. 一般に, コンテントMathMLは, 特定の式が等しいかを含め, ただし, それだけに限らず, コード化した式のコンピュータ計算の挙動を何ら定義していません.
A conformant MathML processor need not implement this algorithm. The existence of these transformation rules does not imply that a system must treat equivalent expressions identically. In particular, systems may give different presentation renderings for expressions that the transformation rules imply are mathematically equivalent. In general, Content MathML does not define any expectations for the computational behavior of the expressions it encodes, including, but not limited to, the equivalence of any specific expressions.
厳格なコンテントMathMLは, 正式な数学事象と意味を表現するための標準であるOpenMathと互換性があるように設計されています. 厳格なコンテントMathMLは, [OpenMath]の見解によるOpenMathオブジェクトのXMLコード化です. 次の表は, 厳格なコンテントMathML要素とそれらに等価なOpenMathの対応を示しています.
Strict Content MathML is designed to be compatible with OpenMath, a standard for representing formal mathematical objects and semantics. Strict Content MathML is an XML encoding of OpenMath Objects in the sense of [OpenMath]. The following table gives the correspondence between Strict Content MathML elements and their OpenMath equivalents.
数式の意味を形式化するどの方法も, 拡張可能でなければなりません. すなわち, それらの方法は, 論説の分野を広げるために, 新しい関数や他の記号を定義する能力を提供しなければなりません. コンテントMathMLは, 新しい記号を表現するのにcsymbol
要素を使用し, それらの数学的意味を説明するのにコンテント辞書を使用します. 記号とその意味の説明との間の結び付けは, コンテント辞書の記号の定義を指し示す, csymbol
要素の属性を用いて成し遂げられます.
Any method to formalize the meaning of mathematical expressions
must be extensible, that is, it must provide the ability to define
new functions and symbols to expand the domain of discourse. Content
MathML uses the
csymbol
element to represent new symbols, and uses Content Dictionaries
to describe their mathematical semantics. The association between a symbol
and its semantic description is accomplished using the attributes of the
csymbol
element to point to the definition
of the symbol in a Content Dictionary.
コンテントMathMLの演算子要素とコンテント辞書の記号の定義との間の対応は, E.3 コンテントMathML演算子で示されています. これらの定義済のMathML記号に対する定義は, OpenMath協会[OpenMath]がW3C数学作業部会と共同で開発したコンテント辞書を参照しています. この情報は有益ですが, 標準ではないことに注意することが重要です. 一般に定義済の記号の正確な数学的意味は, 完全にMathML勧告で指定されている訳ではなく, 記号の意味についての標準の内容は, この章の文章に存在する内容のみです. OpenMathコンテント辞書により提供される意味の定義は, ほとんどのソフトウェアにとって十分なものを意図されており, MathML勧告の類似した構造を特定している意味と一般に互換性があります. しかしながら, とても正確な意味が必要とされる状況(例えば, 数式処理システムの間の通信, 定理の証明といった整然としたシステムなど)で, OpenMathコンテント辞書により提供された定義を, 適切に検証したり拡張したり置き換えたりすることは, 実装を行う関係団体の責任です.
The correspondence between operator elements in Content MathML and symbol definitions in Content Dictionaries is given in E.3 The Content MathML Operators. These definitions for predefined MathML operator symbols refer to Content Dictionaries developed by the OpenMath Society [OpenMath] in conjunction with the W3C Math Working Group. It is important to note that this information is informative, not normative. In general, the precise mathematical semantics of predefined symbols are not fully specified by the MathML Recommendation, and the only normative statements about symbol semantics are those present in the text of this chapter. The semantic definitions provided by the OpenMath Content Dictionaries are intended to be sufficient for most applications, and are generally compatible with the semantics specified for analogous constructs in this Recommendation. However, in contexts where highly precise semantics are required (e.g. communication between computer algebra systems, within formal systems such as theorem provers, etc.) it is the responsibility of the relevant community of practice to verify, extend or replace definitions provided by OpenMath Content Dictionaries as appropriate.
この節では, コンテントMathMLの式の構造をコード化するための要素について紹介します. それらの要素は, 厳格なコンテントMathMLのコード化で使用される唯一のものです. 具体的に言うと次のものです.
In this section we will present the elements for encoding the structure of content MathML expressions. These elements are the only ones used for the Strict Content MathML encoding. Concretely, we have
基本の式, すなわち, 数字, 文字列, バイト列, 記号, 識別子.
basic expressions, i.e. Numbers, string literals, encoded bytes, Symbols, and Identifiers.
derived expressions, i.e. function applications and binding expressions, and
完全なコンテントMathMLは, さらに4.3 具体的な構造に対するコンテントMathMLと4.3 具体的な構造に対するコンテントMathMLで表された要素を含み, この節で表現するより豊かな内容モデルを持ちます. 厳格な利用と厳格でない利用は, それぞれの後で示す厳格な要素を論じる節で, 強調して表します.
Full Content MathML allows further elements presented in 4.3 Content MathML for Specific Structures and 4.3 Content MathML for Specific Structures, and allows a richer content model presented in this section. Differences in Strict and non-Strict usage of are highlighted in the sections discussing each of the Strict element below.
(厳格な)構文 Schema Fragment (Strict) |
(完全な)構文 Schema Fragment (Full) |
|||
---|---|---|---|---|
種類 Class |
Cn | Cn | ||
属性 Attributes |
CommonAtt , type |
CommonAtt , DefEncAtt , type ?, base ? |
||
type 属性の値type Attribute Values
|
integer |
real |
double |
hexdouble
|
integer |
real |
double |
hexdouble |
e-notation |
rational |
complex-cartesian |
complex-polar |
constant | 文字列text |
既定値はreal ddefault is real |
|
base 属性の値base Attribute Values
|
integer
|
既定値は10 default is 10 |
||
内容 Content |
文字列 text |
(文字列 | mglyph | sep | PresentationExpression )*text |
cn
要素は数字を表すのに使用されるコンテントMathML要素です. 厳格なコンテントMathMLは, 整数, 実数, 倍精度浮動小数点数に対応しています. 数字のこれらの型において, cn
の中身は文字列です. 加えて, cn
は, sep
要素を利用して別々の部分に分けられた有理数や複素数に対応しています. sep
を利用した構造は, 厳格なコンテントMathMLにおいては, 後で述べるapply
を使用した構造に書き換えられてもよいです.
The cn
element is the Content MathML element used to
represent numbers. Strict Content MathML supports integers, real numbers,
and double precision floating point numbers. In these types of numbers,
the content of cn
is text. Additionally, cn
supports rational numbers and complex numbers in which the different
parts are separated by use of the sep
element. Constructs
using sep
may be rewritten in Strict Content MathML as
constructs using apply
as described below.
type
属性は, cn
要素の中でどの種類の数字が表されているか指定します. 既定値はreal
です. 各型は, 中身が後で述べるある形式であることを示します.
The type
attribute specifies which kind of number is
represented in the cn
element. The default value is
real
. Each type implies that the content be of
a certain form, as detailed below.
cn
の中身の文字列に対する通常の描画は, プレゼンテーション要素mn
のものと同じで, 下で一覧にするように, 使用されている属性, またはsep
の状況に応じて提示される異なった形式があります.
The default rendering of the text content of cn
is the same as that of the Presentation element mn
, with suggested variants in the
case of attributes or sep
being used, as listed below.
厳格なコンテントMathMLでは, type
属性は, 値integer
, 値real
, 値hexdouble
, 値double
のみが使用されてもよいです.
In Strict Content MathML, the type
attribute is mandatory, and may only take the values
integer
, real
, hexdouble
or
double
:
整数は, 必須でない符号とそれに続く1つ以上の10進数の数字
で表されます.
An integer is represented by an optional sign followed by a string of
one or more decimal digits
.
実数は, 基数表記法で表されます. 基数表記法は, 必須ではない符号(+
または-
)と, それに続く小数点で整数部分と小数部分に分けられるであろう数字の文字列で構成されます. 例としては, 0.3, 1, -31.56があります.
A real number is presented in radix notation. Radix notation consists of an
optional sign (+
or -
) followed by a string of
digits possibly separated into an integer and a fractional part by a
decimal point. Some examples are 0.3, 1, and -31.56.
この型は, IEEE754標準書式[IEEE754]で表現できる倍精度浮動小数点数を記述するのに使用されます. この型は, (数学の)実数の集合, 負のゼロ, 正負の無限, 非数
値の集合を含みます. IEEE倍精度浮動小数点数としてcn
の文字列の中身を解釈するときの語彙の決まりは, XMLスキーマ第2部:データ型第2版[XMLスキーマデータ型]の第3.1.2.5節に従います. 例えば, -1E4, 1267.43233E12, 12.78e-2, 12 , -0, 0, INF(無限)は, 全てこの書式で有効な倍精度浮動小数点数です.
This type is used to mark up those double-precision
floating point numbers that can be represented in the IEEE 754
standard format [IEEE754]. This includes a subset of the (mathematical) real
numbers, negative zero, positive and negative real infinity
and a set of not a number
values. The lexical rules for
interpreting the text content of a cn
as an IEEE
double are specified by Section
3.1.2.5 of XML Schema Part 2: Datatypes Second Edition
[XMLSchemaDatatypes]. For example, -1E4, 1267.43233E12, 12.78e-2,
12, -0, 0 and INF are all valid doubles in this format.
この型は, IEEE754倍精度浮動小数点数の64ビットを16進数として直接表現するのに使用します. よって, その数字は, 仮数, 指数, 符号を, 最下位ビットから順番に一番下から一番上のビットに向かって表します. この型は, 0-9, A-Fの16個の数字の文字列から構成されます. 次の例は, NaN(非数)値を表しています. 例のNaN(非数)といったIEEE倍精度浮動小数点数を, double
型に対する語彙的な書式で表すことはできません.
This type is used to directly represent the 64 bits of an
IEEE 754 double-precision floating point number as a 16 digit
hexadecimal number. Thus the number represents mantissa, exponent, and sign
from lowest to highest bits using a least significant byte ordering.
This consists of a string of 16 digits 0-9, A-F.
The following example
represents a NaN value. Note that certain IEEE doubles, such as the
NaN in the example, cannot be represented in the lexical format for
the double
type.
<cn type="hexdouble">7F800000</cn>
表示例
Sample Presentation
<mn>0x7F800000</mn>
base
属性は, どのように中身が処理されるかを指定するのに利用されます. 属性値は, cn
の中身が解釈される際の基数の値を示す10進数の正の整数です. base
属性は, 要素の型がinteger
またはreal
の場合のみ利用されるべきです. cn
要素の他の型でのbase
属性の利用は非推奨です. base
の既定値は10
です.
The base
attribute is used to specify how the content is
to be parsed. The attribute value is a base 10 positive integer
giving the value of base in which the text content of the cn
is to be interpreted. The base
attribute should only be
used on elements with type integer
or
real
. Its use on cn
elements of other type
is deprecated. The default value for base
is
10
.
type
属性の追加の値は, e-notationsに対応するもの, 実数, 有理数, 複素数, 選ばれた重要な定数に対するものです. integer
型, real
型, double
型, hexdouble
型の場合, それらの各型は, 中身がどの形式かを示しています. type
属性が省略された場合, 既定値は"real"です.
Additional values for the type
attribute element for supporting
e-notations for real numbers, rational numbers, complex numbers and selected important
constants. As with the integer
, real
,
double
and hexdouble
types, each of these types
implies that the content be of a certain form. If the type
attribute is
omitted, it defaults to real
.
整数は, 10でない基数に対応したものを表現できます. base
が存在するなら, (10進数の)base
は, 数字をコード化する際の基数を指定します. よって, base
='16'は, 16進数でのコード化を指定します. base
> 10の場合, ラテン文字(A-Z, a-z)が, アルファベット順で数字として用いられます. 数字として用いられる文字の状態は記号ではありません. 次の例は, 10進数の32736をコード化したものです.
Integers can be represented with respect to a base different from
10: If base
is present, it specifies (in base 10) the base for the digit encoding.
Thus base
='16' specifies a hexadecimal
encoding. When base
> 10, Latin letters (A-Z, a-z) are used in
alphabetical order as digits. The case of letters used as digits is not
significant. The following example encodes the base 10 number 32736.
<cn base="16">7FE0</cn>
表示例
Sample Presentation
<msub><mn>7FE0</mn><mn>16</mn></msub>
base
> 36の場合, 整数の中には, 数字とアルファベットで表すことができないものもあります. 例えば, 次の例です.
When base
> 36, some integers cannot be represented using
numbers and letters alone. For example, while
<cn base="1000">10F</cn>
これは, ほぼ問題なく, 10進数で1,000,015と書いた数字を表しています. 10進数で1,000,037と書く数字は, base
が1000のとき, アルファベットと数字だけでは表せません. 結果として, base
> 36のとき, (もしある場合に)数字として用いられてもよい追加の文字の対応は, ソフトウェア次第です.
arguably represents the number written in base 10 as 1,000,015, the number
written in base 10 as 1,000,037 cannot be represented using letters and
numbers alone when base
is 1000. Consequently, support
for additional characters (if any) that may be used for digits when base
> 36 is application specific.
実数は, 10と異なる基数に関して表現することができます. base
属性が存在するなら, 1つ1つの数字は, (integer
型で述べたものと同じ方法で)基数に応じて計算された数字として解釈されます.
Real numbers can be represented with respect to a base
different than 10. If a base
attribute is present, then the digits are
interpreted as being digits computed relative to that base (in the same way as
described for type integer
).
実数は, この型を利用した特定の表記で表現されてもよいです. そのような数字は, <sep/>
要素で区切られた2つの部分(仮数部と指数部)を持ちます. 1つ目の部分は実数で, 一方, 2つ目の部分は, 基数の累乗を示す整数の指数です.
A real number may be presented in scientific notation using this type. Such
numbers have two parts (a significand and an exponent)
separated by a <sep/>
element. The
first part is a real number, while the
second part is an integer exponent indicating a power of the base.
例えば, <cn type="e-notation">12.3<sep/>5</cn>
は, 12.3掛ける105を表します. この例の通常の表示は, 12.3e5です. この型はMathML2との下位互換性における使い勝手を第一としていますが, ほとんどの場合に, 数字がIEEE倍精度浮動小数点数の範囲ならば, double
型を使用することが好まれることに注意して下さい.
For example, <cn type="e-notation">12.3<sep/>5</cn>
represents 12.3 times 105. The default presentation of this example is
12.3e5. Note that this type is primarily useful for backwards compatibility with
MathML 2, and in most cases, it is preferable to use the double
type, if the number to be represented is in the range of IEEE doubles:
有理数は, 比としての分子と分母として用いられる2つの整数として示されます. 分子と分母は<sep/>
で区切られます.
A rational number is given as two integers to be used as the numerator and
denominator of a quotient. The numerator and denominator are
separated by <sep/>
.
<cn type="rational">22<sep/>7</cn>
表示例
Sample Presentation
<mrow><mn>22</mn><mo>/</mo><mn>7</mn></mrow>
直交座標表示の複素数は, 実部と虚部を指定する2つの数字で示されます. 実部と虚部は<sep/>
要素で区切られ, それぞれの部分は前に述べた実数の形式を持ちます.
A complex cartesian number is given as two numbers specifying the real and
imaginary parts. The real and imaginary parts are separated
by the <sep/>
element, and each part has
the format of a real number as described above.
<cn type="complex-cartesian"> 12.3 <sep/> 5 </cn>
表示例
Sample Presentation
<mrow>
<mn>12.3</mn><mo>+</mo><mn>5</mn><mo>⁢<!--InvisibleTimes--></mo><mi>i</mi>
</mrow>
極座標表示の複素数は, 絶対値と角度を指定する2つの数字で示されます. 絶対値と角度は<sep/>
で区切られ, それぞれの部分は前に述べた実数の形式を持ちます.
A complex polar number is given as two numbers specifying
the magnitude and angle. The magnitude and angle are separated
by the <sep/>
element, and each part has
the format of a real number as described above.
<cn type="complex-polar"> 2 <sep/> 3.1415 </cn>
表示例
Sample Presentation
<mrow>
<mn>2</mn>
<mo>⁢<!--InvisibleTimes--></mo>
<msup>
<mi>e</mi>
<mrow><mi>i</mi><mo>⁢<!--InvisibleTimes--></mo><mn>3.1415</mn></mrow>
</msup>
</mrow>
<mrow>
<mi>Polar</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mn>2</mn><mo>,</mo><mn>3.1415</mn><mo>)</mo></mrow>
</mrow>
type
の値がconstant
の場合, 中身は, よく知られた定数のユニコード表現であるべきです. 重要な定数やそれらのユニコード表現については, いくつか後で一覧にしています.
If the value type
is constant
,
then the content should be a Unicode representation of a
well-known constant. Some important constants and their
common Unicode representations are listed below.
このcn
の型は, MathML1.0との下位互換性を主目的としています. MathML2.0は, 定数を表す<pi/>
といった, たくさんの空要素を導入しました. そして, それらの表現や厳格なcsymbolの表現を使用する方が好まれます.
This cn
type is primarily for backward
compatibility with MathML 1.0. MathML 2.0 introduced many
empty elements, such as <pi/>
to
represent constants, and using these representations or
a Strict csymbol representation is preferred.
type属性の追加の値に加えて, cn
要素の中身は, (厳格なコンテントMathMLで認められたsep
に加えて)現在ユニコードで利用できない文字を参照するmglyph
要素, または描画に利用される(4.1.2 コンテントマークアップの式参照)一般的な構造のプレゼンテーションマークアップ(3.1.8 プレゼンテーション要素の概要参照)を含むことができます.
In addition to the additional values of the type attribute, the
content of cn
element can contain (in addition to the
sep
element allowed in Strict Content MathML) mglyph
elements to refer to characters not currently available in Unicode, or
a general presentation construct (see 3.1.8 Summary of Presentation Elements),
which is used for rendering (see 4.1.2 Content Expressions).
base
属性が存在するなら, base
属性は, 両方の整数の数字のコード化に使われる基数を指定します. 有理数rational
と一緒にbase
を使用することは非推奨です.
If a base
attribute is present, it specifies the base used for the digit
encoding of both integers. The use of base
with
rational
numbers is deprecated.
(厳格な)構文 Schema Fragment (Strict) |
(完全な)構文 Schema Fragment (Full) |
|
---|---|---|
種類 Class |
Ci | Ci |
属性 Attributes |
CommonAtt , type ? |
CommonAtt , DefEncAtt , type ? |
type 属性の値type Attribute Values
|
integer |
rational |
real |
complex |
complex-polar |
complex-cartesian |
constant |
function |
vector |
list |
set |
matrix
|
文字列 string |
修飾要素 Qualifiers |
BvarQ ,
DomainQ ,
degree ,
momentabout ,
logbase
|
|
内容 Content |
文字列 text |
文字列 | mglyph | PresentationExpression text |
コンテントMathMLは, (コンテントマークアップの識別子
の覚えやすい略称である)ci
要素を, 変数を構築するのに使用します. コンテントマークアップの識別子は, 特性を持つが値は持たない数学変数
を表します. 例えば, xやyは, 式x+y
の中の変数で, 変数xは次のように表されるでしょう.
Content MathML uses the ci
element (mnemonic for content
identifier
) to construct a variable. Content identifiers
represent mathematical variables
which have
properties, but no fixed value. For example, x and y are variables
in the expression x+y
, and the variable
x would be represented as
<ci>x</ci>
MathMLでは, 変数は, 固定の外部の定義を持ち, csymbol要素で表される記号とは区別されています.
In MathML, variables are distinguished from symbols, which have fixed, external definitions, and are represented by the csymbol element.
空白の(正規化)処理の後, ci
要素の中身は, それ自身を識別する名前として解釈されます. 2つの変数の名前が同一のもので, 同じ適用範囲(議論については4.2.6 束縛と束縛変数 <bind>
と<bvar>
参照)にある場合, それらの変数が等しいと見なされます.
After white space normalization the content of a ci
element is interpreted as a
name that identifies it. Two variables are considered equal, if and only if their
names
are identical and in the same scope (see 4.2.6 Bindings and Bound Variables <bind>
and <bvar>
for a
discussion).
ci
要素は, 自身が表現する数学的事象の基本の型を指定するために, type
属性を使用します. 厳格なコンテントMathMLでは, 利用できる値の集合は, integer
, rational
, real
, complex
, complex-polar
, complex-cartesian
, constant
, function
, vector
, list
, set
, matrix
です. それらの値は, mathmltypesコンテント辞書の記号integer_type,
rational_type,
real_type,
complex_polar_type,
complex_cartesian_type,
constant_type,
fn_type,
vector_type,
list_type,
set_type,
matrix_typeに対応しています. この点で, 次の2つの式は等しいと見なされます.
The ci
element uses the type
attribute to specify the basic type of
object that it represents. In Strict Content MathML, the set of permissible values
is
integer
, rational
, real
,
complex
, complex-polar
,
complex-cartesian
, constant
, function
,
vector
, list
, set
, and matrix
. These values correspond
to the symbols
integer_type,
rational_type,
real_type,
complex_polar_type,
complex_cartesian_type,
constant_type,
fn_type,
vector_type,
list_type,
set_type, and
matrix_type in the
mathmltypes Content Dictionary: In this sense the following two expressions are considered equivalent:
<ci type="integer">n</ci>
<semantics>
<ci>n</ci>
<annotation-xml cd="mathmltypes" name="type" encoding="MathML-Content">
<csymbol cd="mathmltypes">integer_type</csymbol>
</annotation-xml>
</semantics>
complex
はcomplex-cartesian
の別名と見なされるべきで, 同じcomplex_cartesian_type記号に書き換えられることに注意して下さい. 直交座標系の形式と極座標系の形式との間の区別は, 実際のところcn
でのコード化された文字列の解釈にのみ影響するので, complex
は, ひょっとしたらci
で利用される自然な型かもしれません.
Note that complex
should be considered
an alias for complex-cartesian
and rewritten to the
same complex_cartesian_type
symbol. It is perhaps a more natural type name for use with
ci
as the distinction between cartesian and polar form really
only affects the interpretation of literals encoded with cn
.
ci
要素は, type
属性にどんな文字列の値でも利用できます. 特に, 何らかのMathML入れ物要素の名前やそれらの型の値を利用できます.
The ci
element allows any string value for the type
attribute, in particular any of the names of the MathML container elements or their
type
values.
型のより発達した取扱いとしては, type
属性は不適当です. 発達した型は, それ自身固有の有意義な構造(例えば, vector(complex))を必要とし, 数学的事象としておそらく最も良く構築されており, そのため, semantics
要素の利用を通してMathMLの式と結び付けられます. より多くの例については, [MathML型情報]を参照して下さい.
For a more advanced treatment of types, the type
attribute is
inappropriate. Advanced types require significant structure of their own (for example,
vector(complex)) and are probably best constructed as mathematical objects and
then associated with a MathML expression through use of the semantics
element. See [MathML-Types] for more examples.
ci
要素の中身がプレゼンテーションMathMLで構成されている場合, そのプレゼンテーションMathMLが使用されます. そのようなタグ付けがされていない場合, 中身の文字列が, mi
要素の中身であるかのように表現されます. ソフトウェアが双方向の文字列の描画に対応している場合, 描画は, ユニコードの双方向の描画に従います.
If the content of a ci
element consists of Presentation MathML, that
presentation is used. If no such tagging is supplied then the text
content is rendered as if it were the content of an mi
element. If an
application supports bidirectional text rendering, then the rendering follows the
Unicode bidirectional rendering.
type
属性は, 描画の情報を提供すると解釈されます. 例えば, 次の例があるとします.
The type
attribute can be interpreted to
provide rendering information. For example in
<ci type="vector">V</ci>
描画ソフトウェアは, ベクトルとして太字のVを表示するでしょう.
a renderer could display a bold V for the vector.
(厳格な)構文 Schema Fragment (Strict) |
(完全な)構文 Schema Fragment (Full) |
|
---|---|---|
種類 Class |
Csymbol | Csymbol |
属性 Attributes |
CommonAtt , cd |
CommonAtt , DefEncAtt , type ?, cd ? |
内容 Content |
SymbolName |
文字列 | mglyph | PresentationExpression text |
修飾要素 Qualifiers |
BvarQ , DomainQ , degree , momentabout , logbase |
csymbol
は, 特定の, 数学的に定義された概念を外部定義と一緒に参照するのに使用されます. 式x+y
では, プラス記号は, 特定の, 外部定義を持つ記号, つまり加算の関数です. MathML3は, そのような識別子を記号と呼びます. 初等関数と一般的な数学の演算子は全て, 記号の例です. 記号
という用語は, ここでは抽象的な意味で用いられ, 画面や紙に構築される, どの特定の表現とも関係がないことに注意して下さい.
A csymbol
is used to refer to a specific,
mathematically-defined concept with an external definition. In the
expression x+y
, the plus sign is
a symbol since it has a specific, external definition, namely the addition function.
MathML 3 calls such an identifier a
symbol. Elementary functions and common mathematical
operators are all examples of symbols. Note that the term
symbol
is used here in an abstract sense and has no
connection with any particular presentation of the construct on screen
or paper.
csymbol
は, 属性を通して特定の数学的概念の定義を参照することで表される, 自身の概念を指定します. 概念上, 外部定義への参照は単にURI, すなわち, 定義を唯一のものとして指定する名前です. ただし, 利用者のソフトウェア間の通信に使い勝手が良いように, 外部定義は共有されなければなりません.
The csymbol
identifies the specific mathematical concept
it represents by referencing its definition via attributes.
Conceptually, a reference to an external definition is merely a URI,
i.e. a label uniquely identifying the definition. However, to be
useful for communication between user agents, external definitions
must be shared.
この理由から, 様々な長年続いている努力は, 定型的な, 数学的定義の公式な保管場所を開発するために続けられてきました. それらの中で最も注目すべきことは, コンテント辞書(CDs)のOpenMath協会の保管場所が, 規模が大きく, 開かれていて活動的なことです. MathML3では, OpenMath CDsは, 外部定義の好ましい情報源です. 特に, 既に定義されたMathML3の演算子と関数の定義は, OpenMath CDsによって示されています.
For this reason, several longstanding efforts have been organized to develop systematic, public repositories of mathematical definitions. Most notable of these, the OpenMath Society repository of Content Dictionaries (CDs) is extensive, open and active. In MathML 3, OpenMath CDs are the preferred source of external definitions. In particular, the definitions of pre-defined MathML 3 operators and functions are given in terms of OpenMath CDs.
MathML3は, 外部定義またはコンテント辞書を参照する2つの仕組みを提供しています. 1つ目は, cd
属性を利用するもので, OpenMathにより確立された, 特にCDsを参照する慣習に従います. 2つ目は, definitionURL
属性を利用するもので, MathML2との下位互換性のためのもので, URIで指定されるであろうCDsまたは何らかの他の定義の情報を参照するのに利用できます. このことについては, 次の節で説明します.
MathML 3 provides two mechanisms for referencing external definitions or content
dictionaries. The first, using the cd
attribute, follows conventions
established by OpenMath specifically for referencing CDs. This is the
form required in Strict Content MathML. The second, using the
definitionURL
attribute, is backward compatible with MathML 2, and can be used
to reference CDs or any other source of definitions that can be
identified by a URI. It is described in the following section.
OpenMath CDsを参照するとき, 好ましい方法は, 次のようにcd
属性を利用することです. 概念上は, OpenMathの記号の定義は, 同じ名前のCDsのあいまいさを無くすURIである3つの値, 記号の名前, CDの名前, 基となるCDによって指定されます. その3つの値とcsymbol
を結び付けるため, csymbol
の中身は記号の名前を指定し, コンテント辞書の名前はcd
属性を用いて示されます. 基となるCDは, csymbol
を含むmath
要素を埋め込んでいる文書から, その文書によって示される仕組み, ソフトウェアの既定値, 囲っているmath
要素によって指定されている場合もあるcdgroup
属性のいずれかによって決められます. 2.2.1 属性を参照して下さい. 指定されている情報が無い場合, http://www.openmath.org/cd
が, 全てのcsymbol
要素, annotation
要素, annotation-xml
要素に対する基となるCDと見なされます. これは, OpenMath協会によって参照されている標準のCDsの集合に対する基となるCDです.
When referencing OpenMath CDs, the preferred method is to use the cd
attribute as follows. Abstractly, OpenMath symbol definitions are identified by a
triple
of values: a symbol name, a CD name, and a CD base,
which is a URI that disambiguates CDs of the same name. To associate such a triple
with a
csymbol
, the content of the csymbol
specifies the symbol name, and the
name of the Content Dictionary is given using the cd
attribute. The CD base is
determined either from the document embedding the math
element which contains the
csymbol
by a mechanism given by the embedding document format, or by system
defaults, or by the cdgroup
attribute, which is optionally specified on the
enclosing math
element; see 2.2.1 Attributes. In the absence
of specific information http://www.openmath.org/cd
is assumed as the CD base
for all csymbol
elements annotation
, and annotation-xml
. This
is the CD base for the collection of standard CDs maintained by the OpenMath Society.
cdgroup
は, OpenMath CDグループファイルのURLを指定します. CDグループファイルの書式の詳細な説明については, [OpenMath]の第4.4.2節(CDグループ)を参照して下さい. 概念上, CDグループファイルは, CDの名前と対応する基となるCDの組の一覧です. csymbol
がcd
属性を用いてCDの名前を参照しているとき, その名前はCDグループファイルの中を検索され, 結び付けられた基となるCDの値がそのcsymbol
に使用されます. CDグループファイルが指定されているが, 参照しているCDの名前がグループファイルの中で見つからない場合, またはグループファイルを検索する際にエラーが生じた場合, 参照しているcsymbol
は定義されません. しかしながら, エラーが生じた場合の取り扱いは定義されておらず, 利用者のソフトウェアの責務です.
The cdgroup
specifies a URL to an OpenMath CD Group file. For a detailed
description of the format of a CD Group file, see Section 4.4.2 (CDGroups)
in [OpenMath]. Conceptually, a CD group file is a list of
pairs consisting of a CD name, and a corresponding CD base. When a csymbol
references a CD name using the cd
attribute, the name is looked up in the CD
Group file, and the associated CD base value is used for that csymbol
. When a CD
Group file is specified, but a referenced CD name does not appear in the group file,
or
there is an error in retrieving the group file, the referencing csymbol
is not
defined. However, the handling of the resulting error is not defined, and is the
responsibility of the user agent.
外部定義への参照はURIであるにも関わらず, CDファイルは, URIをURLとして解釈して得られた場所で検索可能であることが強く推奨されます. 特に, 記号の定義された他の特性は, 指定されたコンテント辞書を詳しく調べることで利用できてもよいです. それらは, 記号の定義のみを含むのではなく, 例や他の公式な特性も含んでいます. ただし, OpenMathコンテント辞書には複数のコード化手法があり, CDを検索するときのコードを正確に決めるのは, 利用者のソフトウェア次第です.
While references to external definitions are URIs, it is strongly recommended that CD files be retrievable at the location obtained by interpreting the URI as a URL. In particular, other properties of the symbol being defined may be available by inspecting the Content Dictionary specified. These include not only the symbol definition, but also examples and other formal properties. Note, however, that there are multiple encodings for OpenMath Content Dictionaries, and it is up to the user agent to correctly determine the encoding when retrieving a CD.
上で説明した形式に加えて, csymbol
要素は, 現在ユニコードで利用できない文字を参照するmglyph
要素, または描画に利用される(4.1.2 コンテントマークアップの式参照)一般的な構造のプレゼンテーションマークアップ(3.1.8 プレゼンテーション要素の概要参照)を含むことができます. この場合に, 厳格なコンテントMathMLを書くときは, csymbolはci
要素として扱われるべきで, 書き換え: ci プレゼンテーションMathMLを用いて書き換えられるべきです.
In addition to the forms described above, the csymbol
and element can contain
mglyph
elements to refer to characters not currently available in Unicode, or a
general presentation construct (see 3.1.8 Summary of Presentation Elements), which is used for
rendering (see 4.1.2 Content Expressions). In this case, when
writing to Strict Content MathML, the csymbol should be treated as a
ci
element, and rewritten using Rewrite: ci presentation mathml.
(OpenMath CDsまたは他の)外部定義は, definitionURL
属性を用いて直接csymbol
に対して指定されてもよいです. OpenMath記号の定義を参照するのに用いられるときは, (記号の名前, CDの名前, 基となるCDの)3つの概念が, 次のように完全な形のURIに対応付けられるでしょう.
External definitions (in OpenMath CDs or elsewhere) may also be specified directly
for
a csymbol
using the definitionURL
attribute. When used to reference
OpenMath symbol definitions, the abstract triple of (symbol name, CD name, CD base)
is
mapped to a fully-qualified URI as follows:
URI = cdbase + '/' + cd-name + '#' + symbol-name
例えば, 次の3つの概念があるとします.
For example,
(plus, arith1, http://www.openmath.org/cd)
これらは次のように対応付けられます.
is mapped to
http://www.openmath.org/cd/arith1#plus
結果として生じるURIが, definitionURL
属性の値として指定されます.
The resulting URI is specified as the value of the definitionURL
attribute.
参照の形は, MathML2との下位互換性のために使い勝手が良く, (セマンティックウェブのRDF[RDF]またはOMDoc[OMDoc1.2]といった)URIに基づいた枠組みのなかでのコンテントMathMLの利用を容易にします. 他の恩恵としては, CDの記号の名前がcsymbol
要素の中身と一致する必要がないことです. ただし, 一般にこの方法は, とても長いMathMLデータになります. また, CDsが開発中の状況では, CDグループファイルの利用は, マークアップを変えることなく, CDsの場所の変更を可能にします。definitionURL
の3つめの不利な点としては. cd
属性とは違い, OpenMathコンテント辞書の記号の定義を参照しているとは限らないことです. よって, 一般に, 利用者のプログラムが, 文脈や, MathMLデータが現れた場所の共通の慣習についての詳細な情報無しに, definitionURL
の値の適切な解釈を自分で決めることは困難です.
This form of reference is useful for backwards compatibility with MathML2 and to
facilitate the use of Content MathML within URI-based frameworks (such as RDF [RDF] in the Semantic Web or OMDoc [OMDoc1.2]). Another benefit is
that the symbol name in the CD does not need to correspond to the content of the
csymbol
element. However, in general, this method results in much longer MathML
instances. Also, in situations where CDs are under development, the use of a CD Group
file allows the locations of CDs to change without a change to the markup. A third
drawback to definitionURL
is that unlike the cd
attribute, it is not
limited to referencing symbol definitions in OpenMath content dictionaries. Hence,
it is
not in general possible for a user agent to automatically determine the proper
interpretation for definitionURL
values without further information about the
context and community of practice in which the MathML instance occurs.
外部参照のcd
とdefinitionURL
両方の仕組みが, 単独のMathMLデータの中で使われてもよいです. ただし, cd
属性とdefinitionURL
属性の両方が, 単独のcsymbol
で指定されている場合, cd
属性が優先されます.
Both the cd
and definitionURL
mechanisms of external reference
may be used within a single MathML instance. However, when both a cd
and a
definitionURL
attribute are specified on a single csymbol
, the
cd
attribute takes precedence.
csymbol
要素の中身がプレゼンテーションMathMLで構成されている場合, そのプレゼンテーションMathMLが使用されています. そのようなタグ付けがされていない場合, 中身の文字列が, mi
要素の中身であるかのように表現されます. ソフトウェアが双方向の文字列の描画に対応している場合, 描画は, ユニコードの双方向の描画に従います.
If the content of a csymbol
element is tagged using presentation tags,
that presentation is used. If no such tagging is supplied then the text
content is rendered as if it were the content of an mi
element. In
particular if an application supports bidirectional text rendering, then the
rendering follows the Unicode bidirectional rendering.
(厳格な)構文 Schema Fragment (Strict) |
(完全な)構文 Schema Fragment (Full) |
|
---|---|---|
種類 Class |
Cs | Cs |
属性 Attributes |
CommonAtt |
CommonAtt , DefEncAtt |
内容 Content |
文字列 text |
文字列 text |
cs
要素は, コンテントMathMLの式で用いられてもよい文字列
をコード化します.
The cs
element encodes string literals
which may be used in Content MathML expressions.
csの中身は文字列です. プレゼンテーションMathMLの構成は, 厳格でないマークアップであっても何ら認められていません. とりわけ, cs
はmglyph
要素を含まなくてもよいですし, その中身は空白の(正規化)処理を受けません.
The content of cs is text; no
Presentation MathML constructs are allowed even when used in
non-strict markup. Specifically, cs
may not contain
mglyph
elements, and the content does not undergo white space
normalization.
コンテントMathML
Content MathML
<set>
<cs>A</cs><cs>B</cs><cs> </cs>
</set>
表示例
Sample Presentation
<mrow>
<mo>{</mo>
<ms>A</ms>
<mo>,</mo>
<ms>B</ms>
<mo>,</mo>
<ms>  </ms>
<mo>}</mo>
</mrow>
(厳格な)構文 Schema Fragment (Strict) |
(完全な)構文 Schema Fragment (Full) |
|
---|---|---|
種類 Class |
Apply | Apply |
属性 Attributes |
CommonAtt |
CommonAtt , DefEncAtt |
内容 Content |
ContExp + |
ContExp +
|
(ContExp ,
BvarQ ,
Qualifier ?,
ContExp *) |
数学の複雑な事象を組み立てる最も基本的な方法は, 関数や演算子を引数に適用することです.
The most fundamental way of building a compound object in mathematics is by applying a function or an operator to some arguments.
MathMLでは, apply
要素が, その引数に関数や演算子を適用することを表す式のツリー構造を組み立てるのに利用されます. 生じたツリー構造は, 完全な数式に対応します. ざっくり言うと, このツリー構造は, かっこや意味を変えることのない論理的なかっこ
で囲まれた数学の一部分を意味します.
In MathML, the apply
element is used to build an expression tree that
represents the application of a function or operator to its arguments. The
resulting tree corresponds to a complete mathematical expression. Roughly
speaking, this means a piece of mathematics that could be surrounded by
parentheses or logical brackets
without changing its meaning.
例えば, (x + y)は次のようにコード化されるでしょう.
For example, (x + y) might be encoded as
<apply><csymbol cd="arith1">plus</csymbol><ci>x</ci><ci>y</ci></apply>
apply
の開始タグと終了タグは, 何らかの演算子や関数の適用範囲を正確に指定します. 最も典型的なapply
の使い方は単純で再帰的です. 記号で, 内容モデルは次のように説明できます.
The opening and closing tags of apply
specify exactly the scope of any
operator or function. The most typical way of using apply
is simple and
recursive. Symbolically, the content model can be described as:
<apply> op [ a b ...] </apply>
被演算子 a, b, ... は, MathMLの式のツリー構造自身であり, opは, 演算子や関数を表すMathMLの式のツリー構造です. apply
の構造は, 任意の深さまで入れ子にできることに注意して下さい.
where the operands a, b, ... are MathML
expression trees themselves, and op is a MathML expression tree that
represents an operator or function. Note that apply
constructs can be
nested to arbitrary depth.
apply
は, 原則としていくつでも被演算子を持ってもよいです. 例えば, (x + y + z)は次のようにコード化できます.
An apply
may in principle have any number of operands. For example,
(x + y + z) can be encoded as
<apply><csymbol cd="arith1">plus</csymbol>
<ci>x</ci>
<ci>y</ci>
<ci>z</ci>
</apply>
MathMLは, 被演算子の無い関数の適用も, 例えば, random()
, またはcurrent-date()
のような関数を表すものも認めています.
Note that MathML also allows applications without operands, e.g. to represent functions
like random()
, or current-date()
.
演算を混合したものを意味するMathMLの式は, 入れ子になって出現するapply
となります. 例えば, a x + bは次のようにコード化されるでしょう.
Mathematical expressions involving a mixture of operations result in nested
occurrences of apply
. For example, a x + b
would be encoded as
<apply><csymbol cd="arith1">plus</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<ci>a</ci>
<ci>x</ci>
</apply>
<ci>b</ci>
</apply>
式を正確に処理するために, かっこを導入したり, また, 演算子の優先順位で並び替える必要はありません. apply
タグは, 他の構造の中で式を再利用するために, 適切なグループ化を提供します. apply
要素で囲まれた何らかの式は, 周囲の文脈にその解釈が依存しない, 明確で密着した事象です. このことは, 同じ式が違う文脈でとても違った意味を持ってもよいプレゼンテーションマークアップと鮮明に対比されます. 例えば, (F+G)(x)といった視覚的描画の式は, 次のような積かもしれません.
There is no need to introduce parentheses or to resort to
operator precedence in order to parse expressions correctly. The
apply
tags provide the proper grouping for the re-use
of the expressions within other constructs. Any expression
enclosed by an apply
element is well-defined, coherent
object whose interpretation does not depend on the surrounding
context. This is in sharp contrast to presentation markup,
where the same expression may have very different meanings in
different contexts. For example, an expression with a visual
rendering such as (F+G)(x)
might be a product, as in
<apply><csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">plus</csymbol>
<ci>F</ci>
<ci>G</ci>
</apply>
<ci>x</ci>
</apply>
もしくは, この式は, 関数F + Gを引数xに適用することを示しているかもしれません. この場合, 次のように和を構築することで示されます.
or it might indicate the application of the function F + G to the argument x. This is indicated by constructing the sum
<apply><csymbol cd="arith1">plus</csymbol><ci>F</ci><ci>G</ci></apply>
そして, この和が次のように引数xに適用されます.
and applying it to the argument x as in
<apply>
<apply><csymbol cd="arith1">plus</csymbol>
<ci>F</ci>
<ci>G</ci>
</apply>
<ci>x</ci>
</apply>
どちらの場合も, 外側のapply
の解釈は明確であいまいさが無く, 式がどこで使われるかに関わらず, 変わりません.
In both cases, the interpretation of the outer apply
is
explicit and unambiguous, and does not change regardless of
where the expression is used.
前の例は, apply
の構造の中で, 関数と引数両方とも, 単純な識別子, または, より複雑な式でもよいことを説明しています.
The preceding example also illustrates that in an
apply
construct, both the function and the arguments
may be simple identifiers or more complicated expressions.
apply
要素は, 概念的に関数または演算子とそれらの利用時のデータを区別する必要があります. 関数を0以上の引数に適用することで構築される式は, いつも関数の変域内の要素です. 適切な利用方法は, 適用される演算子に依存します. 例えば, plus
演算子は, 0以上の引数を持ってもよいですが, minus
演算子は, 適切な例とするために1つまたは2つの引数を必要とします.
The apply
element is conceptually necessary in order to distinguish
between a function or operator, and an instance of its use. The expression
constructed by applying a function to 0 or more arguments is always an element from
the codomain of the function. Proper usage depends on the operator that is being
applied. For example, the plus
operator may have zero or more arguments,
while the minus
operator requires one or two arguments in order to be properly
formed.
厳格なMathMLでの関数の適用は, 数学関数の適用として描画されます. <mi>F</mi>
が<ci>f</ci>
の描画を, <mi>Ai</mi>
が<ci>ai</ci>
の描画を示しているとすると, 単純な関数の適用の描画例は, 次のようになります.
Strict Content MathML applications are rendered as mathematical
function applications. If
<mi>F</mi>
denotes the rendering of
<ci>f</ci>
and
<mi>Ai</mi>
the rendering of
<ci>ai</ci>
, the sample
rendering of a simple application is as follows:
コンテントMathML
Content MathML
<apply><ci>f</ci>
<ci>a1</ci>
<ci>a2</ci>
<ci>...</ci>
<ci>an</ci>
</apply>
表示例
Sample Presentation
<mrow>
<mi>F</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo fence="true">(</mo>
<mi>A1</mi>
<mo separator="true">,</mo>
<mi>...</mi>
<mo separator="true">,</mo>
<mi>A2</mi>
<mo separator="true">,</mo>
<mi>An</mi>
<mo fence="true">)</mo>
</mrow>
</mrow>
厳格でないMathMLでの関数の適用は, 修飾要素と一緒に用いられてもよいです. よく知られた演算子に対する何らかのより明確な描画の決まりがないことから, 描画は, sum
の典型的な表現によって説明できる下記の表示例に従うべきです. <mi>Op</mi>
は<ci>op</ci>
の描画であり, <mi>X</mi>
は<ci>x</ci>
の描画であるなどとします. その場合, 次のようになります.
Non-Strict MathML applications may also be used with qualifiers. In the absence of
any more specific rendering rules for well-known operators, rendering
should follow the sample presentation below, motivated by the typical
presentation for sum
. Let
<mi>Op</mi>
denote the rendering of
<ci>op</ci>
,
<mi>X</mi>
the rendering of
<ci>x</ci>
, and so on. Then:
コンテントMathML
Content MathML
<apply><ci>op</ci>
<bvar><ci>x</ci></bvar>
<domainofapplication><ci>d</ci></domainofapplication>
<ci>expression-in-x</ci>
</apply>
表示例
Sample Presentation
<mrow>
<munder>
<mi>Op</mi>
<mrow><mi>X</mi><mo>∈</mo><mi>D</mi></mrow>
</munder>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo fence="true">(</mo>
<mi>Expression-in-X</mi>
<mo fence="true">)</mo>
</mrow>
</mrow>
たくさんの複雑な数式は, 束縛変数の利用により構築され, 束縛変数は, 論理言語や形式言語で重要な概念です. 変数は, 量化記号の利用を通して, 式の適用範囲に束縛されます. 形式ばらずに, それらは, 積分, 総和, 総積, 論理量化記号全称記号
と存在記号
といった式のダミー変数
と見なされます. 束縛変数は, 体系的に変数の名前を(式に他に現れていない名前に)変更することが, 式の意味を変更しないという特性によって特徴付けられます.
Many complex mathematical expressions are constructed with the use of bound
variables, and bound variables are an important concept of logic and formal
languages. Variables become bound in the scope of an expression through
the use of a quantifier. Informally, they can be thought of as the dummy variables
in expressions such as integrals, sums, products, and the logical quantifiers for
all
and there exists
. A bound variable is characterized by the property that
systematically renaming the variable (to a name not already appearing in the
expression) does not change the meaning of the expression.
(厳格な)構文 Schema Fragment (Strict) |
(完全な)構文 Schema Fragment (Full) |
|
---|---|---|
種類 Class |
Bind | Bind |
属性 Attributes |
CommonAtt |
CommonAtt , DefEncAtt |
内容 Content |
ContExp ,
BvarQ *,
ContExp
|
ContExp ,
BvarQ *,
Qualifier *,
ContExp +
|
式の束縛は, bind
要素を用いたMathMLの式のツリー構造として表されます. その最初の子要素は束縛する演算子を表す, 例えば積分記号といったMathMLの式です. この後に, 束縛変数を示すbvar
の空で無い一覧が続き, その最後の子要素は, 束縛される本体として知られる一般的なコンテントMathMLの式です.
Binding expressions are represented as MathML expression trees using the bind
element. Its first child is a MathML expression that represents a binding operator,
for
example integral operator. This is followed by a non-empty list of bvar
elements denoting the bound variables, and then the final child which is a general
Content MathML expression, known as the body of the binding.
(厳格な)構文 Schema Fragment (Strict) |
(完全な)構文 Schema Fragment (Full) |
|
---|---|---|
種類 Class |
BVar | BVar |
属性 Attributes |
CommonAtt |
CommonAtt , DefEncAtt |
内容 Content |
ci | semantics-ci |
(ci | semantics-ci ), degree ? |
degree ?, (ci | semantics-ci )
|
bvar
要素は, 例えば, 総和, 総積, 量化記号または利用者が定義した関数の中で, 式を束縛する際の束縛変数を表すのに用いられます.
The bvar
element is used to denote the bound variable of a binding
expression, e.g. in sums, products, and quantifiers or user defined functions.
bvar
の中身は, 付加情報の付いた変数, すなわち, ci
要素によって表されるコンテントマークアップの識別子, または, 最初の子要素が付加情報の付いた変数であるsemantics
要素です. 2種類目の付加情報の付いた変数の名前は, 最初の子要素の名前です. 束縛変数の名前は, bvar
要素の中の付加情報の付いた変数の名前です.
The content of a bvar
element is an annotated variable,
i.e. either a content identifier represented by a ci
element or a
semantics
element whose first child is an annotated variable. The
name of an annotated variable of the second kind is the name of its first
child. The name of a bound variable is that of the annotated variable
in the bvar
element.
束縛変数は, それらの名前を比較することで特定されます. このような特定は, bvar
要素の中のci
要素にid
を置き, 全ての他のデータからxref
属性を用いて参照することで明確にできます. この方法の例は次のとおりです.
Bound variables are identified by comparing their names. Such
identification can be made explicit by placing an id
on the ci
element in the bvar
element and referring to it using the xref
attribute on all other instances. An example of this approach is
<bind><csymbol cd="quant1">forall</csymbol>
<bvar><ci id="var-x">x</ci></bvar>
<apply><csymbol cd="relation1">lt</csymbol>
<ci xref="var-x">x</ci>
<cn>1</cn>
</apply>
</bind>
このid
を基にした方法は, 束縛変数を含む構造が入れ子になっているときに, 特に助けになります.
This id
based approach is especially helpful when constructions
involving bound variables are nested.
ときどき, 追加の情報を束縛変数に結び付ける必要があります. その情報は, 詳細な数学の型のようなもの, 代わりの表現やコード, 関数を適用する定義域かもしれません. そのような結び付けは, (ちょうどbvar
要素の中の)ci
要素を,ci
と追加の情報の両方を含むsemantics
要素で置き換える標準的な方法で成し遂げられます. 束縛変数のデータの評価は, それでもsemantics
要素または含まれていてもよいci
以外の何らかの要素ではなく, 実際のci
要素に基づきます. 上で示したid
に基づいた方法もまだ利用してもよいです.
It is sometimes necessary to associate additional
information with a bound variable. The information might be
something like a detailed mathematical type, an alternative
presentation or encoding or a domain of application. Such
associations are accomplished in the standard way by replacing
a ci
element (even inside the bvar
element)
by a semantics
element containing both the ci
and the additional information. Recognition of an instance of
the bound variable is still based on the actual ci
elements and not the semantics
elements or anything
else they may contain. The id
-based approach
outlined above may still be used.
次の例は, をコード化しています.
The following example encodes .
<bind><csymbol cd="quant1">forall</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="arith1">plus</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="arith1">plus</csymbol><ci>y</ci><ci>x</ci></apply>
</apply>
</bind>
厳格でないコンテントマークアップでは, bvar
要素は, 数々の慣用的な構成の中で用いられます. それらについては, 4.3.3 修飾要素と4.3 具体的な構造に対するコンテントMathMLで述べています.
In non-Strict Content markup, the bvar
element is used in
a number of idiomatic constructs. These are described in 4.3.3 Qualifiers and 4.3 Content MathML for Specific Structures.
束縛変数の親要素であるbind
要素の適用範囲の中でいつでも名前を変えられることが, 束縛変数の定義された特性です. ときどきα変換とし知られるこの操作は, 式の意味を保持します.
It is a defining property of bound variables that they can be renamed
consistently in the scope of their parent bind
element.
This operation, sometimes known as α-conversion,
preserves the semantics of the expression.
束縛変数は, そのが束縛された範囲, またはその束縛変数の何らかの付加情報で, 自由変数としてが現れなければ, もしくは, が後で現れる束縛変数でなければ, に名前を変えてもよいです.
A bound variable may be renamed to say so long as does not occur free in the body of the binding, or in any annotations of the bound variable, to be renamed, or later bound variables.
束縛変数に名前が変わる場合, bind
の中のbvar
要素, それに続く何らかのbvar
子要素の付加情報の中や, bind
の中身の式の中で, 自由変数として現れる全てのは名前を変えられるべきです.
If a bound variable
is renamed, all free occurrences of
in annotations in its bvar
element,
any following bvar
children of the bind
and in the expression in the body of the bind
should be renamed.
前の節の例の中で, をに名前を変更することが, どのように等価な式が提供されるか注意して下さい. 一方で, 束縛された範囲の中でが自由変数として入力されるかもしれず, 元の式と等価でない式を提供することから, はに名前を変更できないことに注意して下さい.
In the example in the previous section, note how renaming to produces the equivalent expression , whereas may not be renamed to , as is free in the body of the binding and would be captured, producing the expression which is not equivalent to the original expression.
<ci>b</ci>
と<ci>s</ci>
がプレゼンテーションMathMLの式<mi>B</mi>
と<mi>S</mi>
を描画するコンテントMathMLの式である場合, 束縛する要素の描画例は次のとおりです.
If
<ci>b</ci>
and
<ci>s</ci>
are Content MathML expressions
that render as the Presentation MathML expressions
<mi>B</mi>
and
<mi>S</mi>
then the sample rendering of a binding element is as follows:
コンテントMathML
Content MathML
<bind><ci>b</ci>
<bvar><ci>x1</ci></bvar>
<bvar><ci>...</ci></bvar>
<bvar><ci>xn</ci></bvar>
<ci>s</ci>
</bind>
表示例
Sample Presentation
<mrow>
<mi>B</mi>
<mrow>
<mi>x1</mi>
<mo separator="true">,</mo>
<mi>...</mi>
<mo separator="true">,</mo>
<mi>xn</mi>
</mrow>
<mo separator="true">.</mo>
<mi>S</mi>
</mrow>
コンテント要素は, semantics
要素によって追加の情報を付加されることができます. MathMLは, semantics
要素を, 付加される要素と, 付加情報自体を表しているannotation-xml
とannotation
を包み込むのに用います. semantics
, annotation
, annotation-xml
の利用については, 5. MathMLに注釈を付けるで詳しく説明しています.
Content elements can be annotated with additional information via the
semantics
element. MathML uses the
semantics
element to wrap the annotated element and the
annotation-xml
and annotation
elements used for representing the
annotations themselves. The use of the semantics
, annotation
and
annotation-xml
is described in detail in 5. Annotating MathML.
semantics
要素は, プレゼンテーションMathMLとコンテントMathMLの両方の一部と見なされています. MathMLは, semantics
要素の最初の子要素が(厳格な)コンテントMathMLであるなら, そのsemantics
要素を(厳格な)コンテントMathMLと見なします.
The semantics
element is considered part of both
presentation MathML and Content MathML. MathML considers a semantics
element
(strict) Content MathML, if and only if its first child is (strict) Content MathML.
(厳格な)構文 Schema Fragment (Strict) |
(完全な)構文 Schema Fragment (Full) |
|
---|---|---|
種類 Class |
Error | Error |
属性 Attributes |
CommonAtt |
CommonAtt , DefEncAtt |
内容 Content |
csymbol , ContExp *
|
csymbol , ContExp *
|
コンテントMathMLのエラー表現は, csymbol
とそれに続く0個以上の一連のMathMLの式で作られます. 最初の式は, エラーの種類を示すcsymbol
でなければなりません. その後の一連の子要素は, 存在するなら, エラーが起こった文脈を示します.
A content error expression is made up of a csymbol
followed by a sequence of zero or more MathML expressions. The
initial expression must be a csymbol
indicating the kind of
error. Subsequent children, if present, indicate the context in
which the error occurred.
cerror
要素は, 直接の数学的意味を持ちません. 式のツリー構造において行われた何らかの動作の結果としてエラーが起こったとき, 何らかのエラーが, いつ起こったかのみが実際に注目されます. エラーは, 他の事象の中で起こってもよく, また, 他のエラーの中で起こってもよいです.
The cerror
element has no direct mathematical meaning.
Errors occur as the result of some action performed on an expression
tree and are thus of real interest only when some sort of
communication is taking place. Errors may occur inside other objects
and also inside other errors.
例えば, ゼロ除算エラーをコード化するために, 次に示す式のように, DivisionByZero
記号を含むaritherror
コンテント辞書を使用するとします.
As an example, to encode a division by zero error, one might
employ a hypothetical aritherror
Content Dictionary
containing a DivisionByZero
symbol, as in the following
expression:
<cerror>
<csymbol cd="aritherror">DivisionByZero</csymbol>
<apply><csymbol cd="arith1">divide</csymbol><ci>x</ci><cn>0</cn></apply>
</cerror>
エラーのマークアップは, 一般に最小限の間違った式のみを囲むべきであることに注意して下さい. よって, cerror
は大きな式の一部の式にたびたびなります. 例えば, 次のようにです.
Note that error markup generally should enclose only the smallest
erroneous sub-expression. Thus a cerror
will often be a sub-expression of
a bigger one, e.g.
<apply><csymbol cd="relation1">eq</csymbol>
<cerror>
<csymbol cd="aritherror">DivisionByZero</csymbol>
<apply><csymbol cd="arith1">divide</csymbol><ci>x</ci><cn>0</cn></apply>
</cerror>
<cn>0</cn>
</apply>
cerror
要素の通常の表現は, 最初の子要素がエラー記号を表し, その後の一連の子要素が, cerror
の残りの子要素の通常の表現を表す, merror
の式です. 特に, cerror
の残りの子要素の一部がプレゼンテーションMathMLの式であるなら, 文字どおりmerror
に囲まれた中で使用されるでしょう.
The default presentation of a cerror
element is an
merror
expression whose first child is a presentation of the
error symbol, and whose subsequent children are the default
presentations of the remaining children of the cerror
. In
particular, if one of the remaining children of the cerror
is
a presentation MathML expression, it is used literally in the
corresponding merror
.
<cerror>
<csymbol cd="aritherror">DivisionByZero</csymbol>
<apply><csymbol cd="arith1">divide</csymbol><ci>x</ci><cn>0</cn></apply>
</cerror>
表示例
Sample Presentation
<merror>
<mtext>DivisionByZero: </mtext>
<mfrac><mi>x</mi><mn>0</mn></mfrac>
</merror>
エラーが起こった文脈が無意味で, その通常の表現が使い勝手が悪い場合, ソフトウェアはエラーの文脈の代わりの表現を提供してもよいです. 例えば, 次のようにです.
Note that when the context where an error occurs is so nonsensical that its default presentation would not be useful, an application may provide an alternative representation of the error context. For example:
<cerror>
<csymbol cd="error">Illegal bound variable</csymbol>
<cs> <bvar><plus/></bvar> </cs>
</cerror>
(厳格な)構文 Schema Fragment (Strict) |
(完全な)構文 Schema Fragment (Full) |
|
---|---|---|
種類 Class |
Cbytes | Cbytes |
属性 Attributes |
CommonAtt |
CommonAtt , DefEncAtt |
内容 Content |
base64 |
base64 |
cbytes
の中身は, Base64でコード化された一連の文字列としてバイト列を表します. これは, [XMLスキーマデータ型]で定義されたbase64Binaryデータ型と一致します. 全ての空白は無視されます.
The content of cbytes
represents a stream of bytes as a
sequence of characters in Base64 encoding, that is it matches the
base64Binary data type defined in [XMLSchemaDatatypes]. All white space is ignored.
cbytes
要素は, 主にOpenMathとの互換性のために利用されますが, OpenMathでのように, MathMLでコード化するのが難しい, ソフトウェアの内部状態に関係したバイナリデータや画像データといったソフトウェアの出力を包み込むために利用されてもよいです.
The cbytes
element is mainly used for OpenMath
compatibility, but may be used, as in OpenMath, to encapsulate output
from a system that may be hard to encode in MathML, such as binary
data relating to the internal state of a system, or image data.
cbytes
の描画は, 内容を表すことが期待されておらず, 提案されている描画は, 空のmrow
です. 典型的にcbytes
は, annotation-xml
の中で使用されたり, プレゼンテーションMathMLに付加されたりするので, 通常の描画は特別な場合にのみ利用されるべきです.
The rendering of cbytes
is not expected to represent the
content and the proposed rendering is that of an empty
mrow
. Typically cbytes
is used in an
annotation-xml
or is itself annotated with Presentation
MathML, so this default rendering should rarely be used.
前の節で説明した厳格なコンテントMathMLの要素は, 論理的主張や式の構造をコード化するのに十分であり, 数学の基礎となる数学論理の標準構造を綿密に形作る方法によってコード化します. 結果として, 厳格なマークアップは, 数学の全てを表現するのに利用でき, 全てのコンテントMathMLの式に一貫した数学的意味を提供するのに理想的です.
The elements of Strict Content MathML described in the previous section are sufficient to encode logical assertions and expression structure, and they do so in a way that closely models the standard constructions of mathematical logic that underlie the foundations of mathematics. As a consequence, Strict markup can be used to represent all of mathematics, and is ideal for providing consistent mathematical semantics for all Content MathML expressions.
同時に, たくさんの数学の自然な表記方法は, 厳格なコンテントMathMLで直接表現するには, すっきりリしたものではありません. 例えば, 総和, 積分, 集合, 区分的関数や他の一般的な構造のための標準的な表記方法は, 厳格なマークアップを用いて厳密にコード化しようとすると, ラムダ関数の導入といった技術的な工夫が必要です. 結果として, コンテントMathMLを使いやすくするために, 追加の要素の集合が, そのような慣用的な構造をより直接コード化するために提供されます. この節では, そのような慣用的な構造をコード化する一般的な利用方法や, それらと等価な厳格なコンテントMathMLについて議論しています. 特定の構成は, 4.3 具体的な構造に対するコンテントMathMLで詳細を議論しています.
At the same time, many notational idioms of mathematics are not straightforward to represent directly with Strict Content markup. For example, standard notations for sums, integrals, sets, piecewise functions and many other common constructions require non-obvious technical devices, such as the introduction of lambda functions, to rigorously encode them using Strict markup. Consequently, in order to make Content MathML easier to use, a range of additional elements have been provided for encoding such idiomatic constructs more directly. This section discusses the general approach for encoding such idiomatic constructs, and their Strict Content equivalents. Specific constructions are discussed in detail in 4.3 Content MathML for Specific Structures.
コンテントMathMLが処理するほとんどの慣用的な構造は, たくさんの種類に及びます. 入れ物要素といったように, それらの種類の中には, 固有の構文を持っているものもあります. 同じように, 厳格でない構造の中には少し, 例えばpartialdiff
といった例外的な構文を持つ単独の要素も含まれます. それらの例外的な要素は, 4.3 具体的な構造に対するコンテントMathMLの中で状況に応じて議論されています. しかしながら, 構造の大部分は, 全て修飾要素の個々の利用で共通の演算子要素の種類から成ります. それらの演算子の種類は, 4.3.4 演算子の種類で説明されています.
Most idiomatic constructions which Content markup addresses fall
into about a dozen classes. Some of these classes, such as container elements, have
their own syntax. Similarly, a small number of non-Strict
constructions involve a single element with an exceptional syntax,
for example partialdiff
. These exceptional elements are
discussed on a case-by-case basis in 4.3 Content MathML for Specific Structures. However, the majority of constructs consist of
classes of operator elements which all share a particular usage of
qualifiers.
These classes of operators are described in 4.3.4 Operator Classes.
全ての場合に, 厳格でない式は, 厳格なマークアップのみを用いて書き換えられてもよいです. 変換は, 完全にアルゴリズムとして確立されており, 自動で行われてもよいです. 厳格でないマークアップの情報に対する書き換えの決まりは, この節の後の方で紹介し議論しています. 単独の要素を含む例外的な構造に対する書き換えの決まりは, 4.3 具体的な構造に対するコンテントMathMLで示されています. 任意のコンテントMathMLを厳格なコンテントマークアップに書き換えるための完全なアルゴリズムは, この章の最後, F. 厳格なコンテントMathMLへの変換の中で要約されています.
In all cases, non-Strict expressions may be rewritten using only Strict markup. In most cases, the transformation is completely algorithmic, and may be automated. Rewrite rules for classes of non-Strict constructions are introduced and discussed later in this section, and rewrite rules for exceptional constructs involving a single operator are given in 4.3 Content MathML for Specific Structures. The complete algorithm for rewriting arbitrary Content MathML as Strict Content markup is summarized at the end of the Chapter in F. The Strict Content MathML Transformation.
たくさんの数学構造が, 部分的な式や変数によって構築されています. 例えば, 集合は, 要素を集めたものを含む数学事象で, そのため, 集合に対するマークアップには, その集合を構成する要素のマークアップを含むことが自然です. 集合に対するマークアップは, 含んでいる要素を列挙したり, 暗に修飾要素を使用する決まりに従ったりすることで, 集合要素を定義してもよいです. どちらの場合も, 要素に対するマークアップは, 集合に対するマークアップの中に含まれ, 結果として, この表現の形式は, MathMLにおける入れ物マークアップと呼ばれます. 対照的に厳格なマークアップは, 集合のデータを, 関数または構築要素記号を引数に適用した結果として表します. 厳格なマークアップの形式では, 集合構造に対するマークアップは, 囲っているapply
要素の中の集合要素に対するマークアップの兄弟要素です.
Many mathematical structures are constructed from subparts or
parameters. For example, a set is a mathematical object that
contains a collection of elements, so it is natural for the
markup for a set to contain the markup for its constituent
elements. The markup for a set may define the set of elements
explicitly by enumerating them, or implicitly by rule that uses
qualifier elements. In either case, the markup for the elements is
contained in the markup for the set, and this style of
representation is called container markup in MathML. By
contrast, Strict markup represents an instance of a set as the
result of applying a function or constructor symbol to
arguments. In this style of markup, the markup for the set
construction is a sibling of the markup for the set elements in an
enclosing apply
element.
MathMLは, 次に示す数学構造, すなわち, 集合, リスト, 区間, ベクトル, 行列(2つの要素), 区分的関数(3つの要素), ラムダ関数に対する入れ物マークアップを提供します. 厳格なマークアップの束縛記号に対応するラムダ関数を除いて, それら入れ物マークアップの1つ1つに対応する厳格なマークアップの構築要素記号があります.
MathML provides container markup for the following mathematical constructs: sets, lists, intervals, vectors, matrices (two elements), piecewise functions (three elements) and lambda functions. There are corresponding constructor symbols in Strict markup for each of these, with the exception of lambda functions, which correspond to binding symbols in Strict markup.
入れ物マークアップから等価な厳格なコンテントマークアップを得る書き換えの決まりは, 含まれている個々の演算子の種類に依存します. 特定の入れ物マークアップの詳細に対して, E. コンテントMathML演算子での, その要素に対する構文の表や議論を調べることで, 演算子の種類(や何らかの適用可能な特別な状況の情報)を得られます. そして, F. 厳格なコンテントMathMLへの変換で説明されている具体的な演算子の種類に対する書き換えの決まりが適用されます.
The rewrite rules for obtaining equivalent Strict Content markup from container markup depend on the operator class of the particular operator involved. For details about a specific container element, obtain its operator class (and any applicable special case information) by consulting the syntax table and discussion for that element in E. The Content MathML Operators. Then apply the rewrite rules for that specific operator class as described in F. The Strict Content MathML Transformation.
構築要素に対する入れ物要素の引数は, 一連の子要素として明確に与えられても, 修飾要素で用いられる決まりによって暗に与えられてもよいです. 例外は, interval
要素, piecewise
要素, piece
要素, otherwise
要素です. それらの引数は明確に指定されなければなりません.
The arguments to container elements that correspond to
constructors may be explicitly given as a sequence of child
elements, or implicitly given by a rule using qualifiers. The
exceptions are the interval
, piecewise
, piece
, and
otherwise
elements. The
arguments of these elements must be specified explicitly.
ここに, 明確に指定された引数を含む入れ物マークアップの例があります.
Here is an example of container markup with explicitly specified arguments:
<set><ci>a</ci><ci>b</ci><ci>c</ci></set>
この式は, 次の厳格なコンテントMathMLの式と等価です.
This is equivalent to the following Strict Content MathML expression:
<apply><csymbol cd="set1">set</csymbol><ci>a</ci><ci>b</ci><ci>c</ci></apply>
入れ物マークアップの他の例があります. 引数の一覧は, 間接的に束縛変数の式として与えられます. 偶数の集合に対する入れ物マークアップは次のとおりです.
Another example of container markup, where the list of arguments is given indirectly as an expression with a bound variable. The container markup for the set of even integers is:
<set>
<bvar><ci>x</ci></bvar>
<domainofapplication><integers/></domainofapplication>
<apply><times/><cn>2</cn><ci>x</ci></apply>
</set>
この式は, 厳格なコンテントMathMLで次のように書き換えられてもよいです.
This may be written as follows in Strict Content MathML:
<apply><csymbol cd="set1">map</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="arith1">times</csymbol>
<cn>2</cn>
<ci>x</ci>
</apply>
</bind>
<csymbol cd="setname1">Z</csymbol>
</apply>
lambda
要素は, fns1コンテント辞書のlambda記号に対応する入れ物要素です. しかしながら, 前の節の入れ物要素と異なり, 引数から数学事象を純粋に構築するlambda
要素は, 束縛変数としてふるまいます. よって, lambda
の子要素は, 別々の役割を持っています. 特に, lambda
要素は, 最終的に, 1つのbvar
子要素, それに続く必須でない修飾要素, それに続くコンテントMathML要素を持たなければなりません. lambda
入れ物要素と他の構築要素の入れ物要素との基本的な違いは, それらの対応するOpenMath記号に反映されています. 構築要素記号は, 関数の適用
のOpenMathの役割を持っている一方, ラムダ記号は, 束縛
の役割を持っています.
The lambda
element is a container element
corresponding to the lambda symbol
in the fns1 Content Dictionary. However, unlike the
container elements of the preceding section, which purely
construct mathematical objects from arguments, the lambda
element performs variable binding as well. Therefore, the child
elements of lambda
have distinguished roles. In
particular, a lambda
element must have at least one
bvar
child, optionally followed by qualifier elements, followed by a
Content MathML element. This basic difference between the
lambda
container and the other constructor container
elements is also reflected in the OpenMath symbols to which they
correspond. The constructor symbols have an OpenMath role of
application
, while the lambda symbol has a role of bind
.
次の例は, lambda
入れ物要素の使用方法と厳格なコンテント要素で等価なbind
の使用方法を示しています.
This example shows the use of lambda
container element and the equivalent use of bind
in Strict Content MathML
<lambda><bvar><ci>x</ci></bvar><ci>x</ci></lambda>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar><ci>x</ci>
</bind>
MathMLは, bind
要素の代わりに厳格でない構造で, 変数を束縛するように働くapply
要素の利用を認めています. この利用方法は, MathML2との下位互換性を維持するものです. このことは, 後で示すように束縛変数と修飾要素を伴う様々な構造をコード化するのを単純にします.
MathML allows the use of the apply
element to perform
variable binding in non-Strict constructions instead of
the bind
element. This usage conserves backwards
compatibility with MathML 2. It also simplifies the encoding of
several constructs involving bound variables with qualifiers as
described below.
変数を束縛するのにapply
要素を利用することは, 2つの場合に認められています. 1つは, 適用する演算子が束縛する演算子自体のときで, apply
要素は単にbind
要素の代わりに用いられます. 論理量化要素<forall/>
, <exists/>
, 入れ物要素lambda
が, この形式の主な例です.
Use of the apply
element to bind variables is allowed
in two situations. First, when the operator to be applied is
itself a binding operator, the apply
element merely
substitutes for the bind
element. The logical quantifiers
<forall/>
, <exists/>
and the
container element lambda
are the primary examples of this
type.
2つ目は, 適用される演算子が修飾要素と一緒に束縛変数を利用することを認めている場合です. 最も一般的な例は, 総和と積分です. それらの場合のほとんどで, 変数は, 表記の中で暗黙のうちに何らかの範囲に束縛され, 等価な厳格な表現は, 形式の正しさのために, ラムダ式といった補助的な構造を必要とします.
The second situation arises when the operator being applied allows the use of bound variables with qualifiers. The most common examples are sums and integrals. In most of these cases, the variable binding is to some extent implicit in the notation, and the equivalent Strict representation requires the introduction of auxiliary constructs such as lambda expressions for formal correctness.
修飾要素と一緒に束縛変数を利用する式は, 通常慣用的で, いつも本当に変数を束縛している訳ではないので, 全ての場合に表記を維持したまま, apply
と一緒の束縛
変数の定型的な名前の変更(アルファ変換)が期待できます. この場合の例としては, bvar
の項が技術的に全く束縛されていないdiff
要素があります.
Because expressions using bound variables with qualifiers are
idiomatic in nature, and do not always involve true variable
binding, one cannot expect systematic renaming (alpha-conversion)
of variables bound
with apply
to preserve meaning in
all cases. An example for this is the diff
element where
the bvar
term is technically not bound at all.
次の例は, 束縛する演算子と一緒にapply
を利用する例を説明しています. これらの場合において, 対応する等価な厳格な表現は, 単にapply
要素をbind
要素で置き換えます.
The following example illustrates the use of apply
with a binding operator. In these cases, the corresponding Strict
equivalent merely replaces the apply
element with a
bind
element:
<apply><forall/>
<bvar><ci>x</ci></bvar>
<apply><geq/><ci>x</ci><ci>x</ci></apply>
</apply>
対応する等価な厳格な表現は次のとおりです.
The equivalent Strict expression is:
<bind><csymbol cd="logic1">forall</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="relation1">geq</csymbol><ci>x</ci><ci>x</ci></apply>
</bind>
この例では, sum演算子自体は束縛する演算子ではありませんが, 修飾要素と一緒の束縛変数は, 厳格でないマークアップで反映された標準的な表記の中で暗黙のものです. 等価な厳格な表現は, 被加数をラムダ式に変換し, 修飾要素を引数の式として役割を変える必要があります.
In this example, the sum operator is not itself a binding operator, but bound variables with qualifiers are implicit in the standard notation, which is reflected in the non-Strict markup. In the equivalent Strict representation, it is necessary to convert the summand into a lambda expression, and recast the qualifiers as an argument expression:
<apply><sum/>
<bvar><ci>i</ci></bvar>
<lowlimit><cn>0</cn></lowlimit>
<uplimit><cn>100</cn></uplimit>
<apply><power/><ci>x</ci><ci>i</ci></apply>
</apply>
対応する等価な厳格な表現は次のとおりです.
The equivalent Strict expression is:
<apply><csymbol cd="arith1">sum</csymbol>
<apply><csymbol cd="interval1">integer_interval</csymbol>
<cn>0</cn>
<cn>100</cn>
</apply>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>i</ci></bvar>
<apply><csymbol cd="arith1">power</csymbol>
<ci>x</ci>
<ci>i</ci>
</apply>
</bind>
</apply>
たくさんの一般的な数学的構造は, 演算子と一緒に追加の情報を含んでいます. 追加の情報は, 束縛変数といった従来の表記法に暗に含まれるか, 定積分の範囲の場合のように演算子の一部と思われているかのどちらかです. MathML3は, 修飾要素を, このような場合に追加の情報を表現するために使用します.
Many common mathematical constructs involve an operator together with some additional data. The additional data is either implicit in conventional notation, such as a bound variable, or thought of as part of the operator, as is the case with the limits of a definite integral. MathML 3 uses qualifier elements to represent the additional data in such cases.
修飾要素は, いつも演算子や入れ物要素と結び付けられて使用されます. それらの意味は慣用的で, 使用される文脈に依存します. 演算子と一緒に用いられる場合, 修飾要素は, いつも演算子の後に続き, 存在するどの引数より前に来ます. 全ての場合において, 複数の修飾要素が存在する場合, それらは, bvar
, lowlimit
, uplimit
, interval
, condition
, domainofapplication
, degree
, momentabout
, logbase
の順で現れます.
Qualifier elements are always used in conjunction with operator or container
elements. Their meaning is idiomatic, and depends on the context in which they are
used. When used with an operator, qualifiers always follow the operator and precede
any arguments that are present. In all cases, if more than one qualifier is present,
they appear in the order bvar
, lowlimit
, uplimit
,
interval
, condition
, domainofapplication
, degree
,
momentabout
, logbase
.
修飾要素の正確な機能は, それらが修飾している演算子や入れ物要素に依存します. 使用例の大半は, 後で議論するいくつかの種類のうちの1つに落とし込めます. そして, 具体的な演算子や修飾要素に対する利用上の注意は, 4.3 具体的な構造に対するコンテントMathMLで示されています.
The precise function of qualifier elements depends on the operator or container that they modify. The majority of use cases fall into one of several categories, discussed below, and usage notes for specific operators and qualifiers are given in 4.3 Content MathML for Specific Structures.
<domainofapplication>
, <interval>
, <condition>
, <lowlimit>
, <uplimit>
の利用<domainofapplication>
,
<interval>
,
<condition>
,
<lowlimit>
and
<uplimit>
種類 Class |
qualifier |
---|---|
属性 Attributes |
CommonAtt |
内容 Content |
ContExp |
(interval
の構文については, 4.3.10.3 範囲 <interval>
を参照して下さい.)
(For the syntax of interval
see 4.3.10.3 Interval <interval>
.)
domainofapplication
, interval
, uplimit
, lowlimit
condition
の主な利用目的は, 束縛変数の値を限定することです. 最も一般的な修飾要素は, domainofapplication
です. この要素は, 演算が行われる上での(場合によっては, 順番や測定基準といった追加の構造を持つ)集合を指定するのに用いられます. interval
修飾要素や, lowlimit
とuplimit
の組みは, 特別な場合として, 束縛変数をそれらの組が表す区間内に制限します. interval
は, bvar
に後に直接続く場合のみ修飾要素として解釈されることに注意して下さい. condition
修飾要素は, domainofapplication
のように一般的な要素で, 束縛変数を任意の集合の中に制限するのに利用できます. ただし, 他の修飾要素とは異なり, この要素は, 束縛変数に対するブール値の関数を指定することで, 束縛変数を制限します. よって, condition
修飾要素は, いつも束縛変数のデータを含んでおり, 他の修飾要素では必要のない前に来るbvar
を必要とします. 他の修飾要素は, 例えば, 関数の定義域を一部に制限するといった, 変数が何ら束縛されていない時にさえ利用されてもよいです.
The primary use of domainofapplication
, interval
,
uplimit
, lowlimit
and condition
is to
restrict the values of a bound variable. The most general qualifier
is domainofapplication
. It is used to specify a set (perhaps
with additional structure, such as an ordering or metric) over which
an operation is to take place. The interval
qualifier, and
the pair lowlimit
and uplimit
also restrict a bound
variable to a set in the special case where the set is an
interval.
Note that interval
is only interpreted as a qualifier if it immediately
follows bvar
.
The condition
qualifier, like
domainofapplication
, is general, and can be used to restrict
bound variables to arbitrary sets. However, unlike the other
qualifiers, it restricts the bound variable by specifying a
Boolean-valued function of the bound variable. Thus,
condition
qualifiers always contain instances of the bound
variable, and thus require a preceding bvar
, while the other
qualifiers do not. The other qualifiers may even be used when no
variables are being bound, e.g. to indicate the restriction of a
function to a subdomain.
ほとんどの場合に, 影響範囲を表現できるどの修飾要素も, 交換可能なものとして利用されています. 最も一般的な修飾要素はdomainofapplication
で, そのため特別な役割を持っています. この要素は, 例えば積分の極限といった他の修飾要素の1つを利用する特に慣用的な理由が無い限り, 好ましい形式です. MathML3では, 他の形式は, それらが全て等価なdomainofapplication
の構造に書き換えられてもよいことから, domainofapplication
の簡潔な表記として扱われます. この書き換えの決まりは後で示します. 他の修飾要素は, 一般的な表記に合致し, よく知られた用語により簡単に結び付くことから提供されています. よって, それらの要素が自然に現れる状況では, それらの要素は, domainofapplication
より便利で直接的でしょう.
In most cases, any of the qualifiers capable of representing the
domain of interest can be used interchangeably. The most general
qualifier is domainofapplication
, and therefore has a
privileged role. It is the preferred form, unless there are
particular idiomatic reasons to use one of the other qualifiers,
e.g. limits for an integral. In MathML 3, the other forms are treated
as shorthand notations for domainofapplication
because they
may all be rewritten as equivalent domainofapplication
constructions. The rewrite rules to do this are given below. The other
qualifier elements are provided because they correspond to common
notations and map more easily to familiar presentations. Therefore,
in the situations where they naturally arise, they may be more
convenient and direct than domainofapplication
.
この考え方を説明するために, 定積分の代わりの表現を示す次の例を考えます. Cは0から1までの区間を表し, f(x) = x2です. このとき, domainofapplication
は, 区間Cでの関数fの積分を次の形で表すように用いられます.
To illustrate these ideas, consider the following examples showing alternative
representations of a definite integral. Let C denote the interval from 0 to 1,
and f(x) = x2. Then
domainofapplication
could be used to express the integral of a
function f over
C in this way:
<apply><int/>
<domainofapplication>
<ci type="set">C</ci>
</domainofapplication>
<ci type="function">f</ci>
</apply>
このコードの中に何ら明確な束縛変数は確認されず, 被積分関数は関数の表記であることに注意して下さい. その代わりに, interval
修飾要素は, 明確な束縛変数を伴って用いられます.
Note that no explicit bound variable is identified in this
encoding, and the integrand is a function. Alternatively, the
interval
qualifier could be used with an explicit bound variable:
<apply><int/>
<bvar><ci>x</ci></bvar>
<interval><cn>0</cn><cn>1</cn></interval>
<apply><power/><ci>x</ci><cn>2</cn></apply>
</apply>
lowlimit
とuplimit
の組みも用いられます. この方法は, ひょっとしたら定積分で最も標準的な
表現かもしれません.
The pair lowlimit
and uplimit
can also be used.
This is perhaps the most standard
representation of this integral:
<apply><int/>
<bvar><ci>x</ci></bvar>
<lowlimit><cn>0</cn></lowlimit>
<uplimit><cn>1</cn></uplimit>
<apply><power/><ci>x</ci><cn>2</cn></apply>
</apply>
最終的に, ここに, 束縛変数に対してcondition
を用いて表現した同じ定積分を示します.
Finally, here is the same integral, represented using
a condition
on the bound variable:
<apply><int/>
<bvar><ci>x</ci></bvar>
<condition>
<apply><and/>
<apply><leq/><cn>0</cn><ci>x</ci></apply>
<apply><leq/><ci>x</ci><cn>1</cn></apply>
</apply>
</condition>
<apply><power/><ci>x</ci><cn>2</cn></apply>
</apply>
condition
の式と一緒に明確な束縛変数を利用していることに注意して下さい. また, 束縛変数が用いられるとき, 被積分関数は, 関数の表記ではなく, 束縛変数の式の表記であることに注意して下さい.
Note the use of the explicit bound variable within the
condition
term. Note also that when a bound
variable is used, the integrand is an expression in the bound
variable, not a function.
domainofapplication
と一緒にcondition
要素を用いる一般的な手法はとても強力です. 例えば, 前に示した例を多変数の範囲に拡張するのに, 追加の束縛変数と, デカルト積に対応する関数の範囲を利用してもよいです.
The general technique of using a condition
element
together with domainofapplication
is quite powerful. For
example, to extend the previous example to a multivariate domain, one
may use an extra bound variable and a domain of application
corresponding to a cartesian product:
<apply><int/>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<domainofapplication>
<set>
<bvar><ci>t</ci></bvar>
<bvar><ci>u</ci></bvar>
<condition>
<apply><and/>
<apply><leq/><cn>0</cn><ci>t</ci></apply>
<apply><leq/><ci>t</ci><cn>1</cn></apply>
<apply><leq/><cn>0</cn><ci>u</ci></apply>
<apply><leq/><ci>u</ci><cn>1</cn></apply>
</apply>
</condition>
<list><ci>t</ci><ci>u</ci></list>
</set>
</domainofapplication>
<apply><times/>
<apply><power/><ci>x</ci><cn>2</cn></apply>
<apply><power/><ci>y</ci><cn>3</cn></apply>
</apply>
</apply>
内側と外側の束縛変数の順番は意味があることに注意して下さい.
Note that the order of the inner and outer bound variables is significant.
種類 Class |
qualifier |
---|---|
属性 Attributes |
CommonAtt |
内容 Content |
ContExp |
degree
要素は, 演算の次数
または階数
を指定するのに使用される修飾要素です. MathMLは, degree
要素を3つの文脈においてこの方法で使用します. 根号の次数や積率を指定するときや, 様々な微分係数の中でです. これらの各利用方法に対する特別な要素を導入する代わりに, MathMLは, 3つの状況全てに, 単独の一般的な構造degree
要素を提供しています.
The degree
element is a qualifier used to specify the
degree
or order
of an operation. MathML uses the
degree
element in this way in three contexts: to specify the degree of a
root, a moment, and in various derivatives. Rather than introduce special elements
for
each of these families, MathML provides a single general construct, the
degree
element in all three cases.
degree
修飾要素は, 前の方で議論した修飾要素と同じ意味合いで, 束縛変数を制限するのに使用しないことに注意して下さい. 実際に, 根号や積率と一緒に, 束縛変数が明確にも暗黙のうちにも何ら含まれることはありません. 微分の場合には, degree
要素はbvar
と結合されて用いられますが, この場合でさえ, 変数は純粋には束縛されていなくてもよいです.
Note that the degree
qualifier is not used to restrict a bound variable in
the same sense of the qualifiers discussed above. Indeed, with roots and moments,
no
bound variable is involved at all, either explicitly or implicitly. In the case of
differentiation, the degree
element is used in conjunction with a
bvar
, but even in these cases, the variable may not be genuinely bound.
root
演算子やmoment
演算子とのdegree
の利用については, 後で示すそれらの演算子の議論を参照して下さい. 微分でのdegree
の利用はより複雑です. 一般に, degree
要素は, 変数に関する微分係数の階数を示します. degree
要素は, 微分係数が適用される変数に対して変数を同一視するbvar
要素の2番目の子要素として利用できます. ここに, degree
修飾要素を使用した2階微分の例を示します.
For the usage of degree
with the root
and moment
operators, see the discussion of those
operators below. The usage of degree
in differentiation is more complex. In
general, the degree
element indicates the order of the derivative with
respect to that variable. The degree element is allowed as the second child of a
bvar
element identifying a variable with respect to which the derivative is
being taken. Here is an example of a second derivative using the degree
qualifier:
<apply><diff/>
<bvar>
<ci>x</ci>
<degree><cn>2</cn></degree>
</bvar>
<apply><power/><ci>x</ci><cn>4</cn></apply>
</apply>
詳細については, 4.3.8.2 微分 <diff/>
と4.3.8.3 偏微分 <partialdiff/>
を参照して下さい.
For details see 4.3.8.2 Differentiation <diff/>
and 4.3.8.3 Partial Differentiation <partialdiff/>
.
修飾要素momentabout
と修飾要素logbase
は, それぞれmoment
演算子やlog
演算子と明確に一緒に利用される特別な要素です. それらの利用方法については, 後で示すそれらの演算子の説明を参照して下さい.
The qualifiers momentabout
and logbase
are
specialized elements specifically for use with the moment
and log
operators
respectively. See the descriptions of those operators below for their usage.
次の節で詳細について説明されているコンテントMathML要素は, 大まかにいくつかの演算子の種類に分けられてもよいです. 各要素の演算子の種類は, E.3 コンテントMathML演算子で与えられた演算子構文の表で一覧にしています. その種類は, 要素の一般的に意図された数学的な利用方法を暗示したり, 構文によって決められる利用方法を決定したりもします. 各要素に対する演算子の構文とスキーマの種類へのリンクは, その要素を紹介する節で提供されています.
The Content MathML elements described in detail in the following sections may be broadly separated into classes. The class of each element is listed in the operator syntax table given in E.3 The Content MathML Operators. The class gives an indication of the general intended mathematical usage of the element, and also determines its usage as determined by the schema. Links to the operator syntax and schema class for each element are provided in the sections that introduce the elements.
演算子の種類は, 厳格なコンテントMathMLへ対応付ける適用可能な書き換えの決まりも決定します. それらの書き換えの決まりは, F. 厳格なコンテントMathMLへの変換で詳細に提案しています. それらは, 特定の演算子の種類に適用可能な使用事例, 個々の要素に対する特別な場合の書き換えの決まり, ほとんど全ての演算子の種類での演算子で用いられる一般的な書き換えの決まりF.8 演算子の書き換えを含みます.
The operator class also determines the applicable rewrite rules for mapping to Strict Content MathML. These rewrite rules are presented in detail in F. The Strict Content MathML Transformation. They include use cases applicable to specific operator classes, special-case rewrite rules for individual elements, and a generic rewrite rule F.8 Rewrite operators used by operators from almost all operator classes.
次に示す節は, 数学演算子, 関数, 定数の核となる集合を表す要素を提案します. ほとんどは空要素で, 微積分学の水準までの標準的な数学教育課程の主なものを網羅しています. 残りの要素は, 集合, 範囲, ベクトルなどに対する入れ物要素です. 簡潔さのために, この節で定義された要素はときどき 演算子要素と呼ばれます.
The following sections present elements representing a core set of mathematical operators, functions and constants. Most are empty elements, covering the subject matter of standard mathematics curricula up to the level of calculus. The remaining elements are container elements for sets, intervals, vectors and so on. For brevity, all elements defined in this section are sometimes called operator elements.
たくさんのMathML演算子は, 任意の数の引数と一緒に利用されてもよいです. それらの種類の要素に対応するOpenMath記号も, 任意の数の引数を必要とします. 全てのそのような場合に, apply
要素またはbind
要素の子要素として, 引数が明確に示されてもよいですし, もしくは, 修飾要素の利用を通じて, 一覧が暗に指定されてもよいです.
Many MathML operators may be used with an arbitrary number of
arguments. The corresponding OpenMath symbols for elements in these classes
also take an arbitrary number of arguments.
In all such cases, either the arguments may be given
explicitly as children of the apply
or bind
element, or
the list may be specified implicitly via the use of qualifier
elements.
<plus/>
,
<times/>
,
<gcd/>
,
<lcm/>
<plus/>
,
<times/>
,
<gcd/>
,
<lcm/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
plus
要素とtimes
要素は, 足し算演算子と掛け算演算子を表します. それらの引数は通常, 明確にapply
要素で囲まれて指定されます. 複数項の交換法則を満たす演算子として, 引数を指定する修飾要素と一緒に使用できます. しかしながら, このことは避けられるべきで, 代わりにsum
演算子やproduct
演算子がそのような式を表すのに使われるべきです.
The plus
and times
elements represent the addition and multiplication operators. The
arguments are normally specified explicitly in the enclosing
apply
element. As an n-ary commutative operator, they can
be used with qualifiers to specify arguments, however,
this is discouraged, and the sum
or product
operators should be
used to represent such expressions instead.
コンテントMathML
Content MathML
<apply><plus/><ci>x</ci><ci>y</ci><ci>z</ci></apply>
表示例
Sample Presentation
<mrow><mi>x</mi><mo>+</mo><mi>y</mi><mo>+</mo><mi>z</mi></mrow>
gcd
要素とlcm
要素は, 引数の最大公約数と最小公倍数を返す複数項の演算子を表します. それらの引数は, 明確にapply要素で囲まれて指定されるか, 量化記号によって指定されるかしてもよいです.
The gcd
and lcm
elements represent the n-ary operators which return the greatest common divisor, or least common multiple of their arguments. The arguments may be explicitly specified in the enclosing apply element, or specified by quantifiers.
この通常の描画は英語圏特有のものです. 他の場所では, 通常の描画は違ったものとなってもよいです.
This default renderings are English-language locale specific: other locales may have different default renderings.
コンテントMathML
Content MathML
<apply><gcd/><ci>a</ci><ci>b</ci><ci>c</ci></apply>
表示例
Sample Presentation
<mrow>
<mi>gcd</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo>)</mo></mrow>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
sum
要素は, 複数項の加算演算子を表します. 総和の各項は, 通常, 修飾要素の利用を通じて定められた決まりによって指定されます. この要素は, 引数の明確な一覧と一緒に利用できますが, その利用方法は避けられるべきで, そのような状況では代わりにplus
演算子が使われるべきです.
The sum
element represents the n-ary addition operator.
The terms of the sum are normally specified by rule through the use of
qualifiers. While it can be used with an explicit list of
arguments, this is strongly discouraged, and the plus
operator should be used instead in such situations.
sum
演算子は, 明確な束縛変数と一緒に利用されてもよいですし, されなくてもよいです. 束縛変数が用いられる場合, sum
要素の後に, 添え字変数を示す1つ以上のbvar
要素が続き, 添え字変数に対する定義域を示す修飾要素が続きます. apply
で囲まれた最後の子要素は, 束縛変数による式で, 総和の各項は, 添え字変数の定義域の各点で, その式を計算することで得られます. 定義域の構造に従って, 総和の定義域は, 総和の上限と下限を指定するuplimit
とlowlimit
を用いてよく示されます.
The sum
operator may be used either with or without
explicit bound variables. When a bound variable is used, the
sum
element is followed by one or more bvar
elements giving the index variables, followed by qualifiers giving
the domain for the index variables. The final child in the enclosing
apply
is then an expression in the bound variables, and the
terms of the sum are obtained by evaluating this expression at each
point of the domain of the index variables. Depending on the
structure of the domain, the domain of summation is often given
by using uplimit
and lowlimit
to specify upper and
lower limits for the sum.
何も束縛変数が示されていない場合, apply
要素で囲まれた最後の子要素は関数でなければならず, 総和の各項は, 修飾要素で指定された定義域の各点で関数を計算することで得られます.
When no bound variables are explicitly given, the final child of
the enclosing apply
element must be a function, and the
terms of the sum are obtained by evaluating the function at
each point of the domain specified by qualifiers.
コンテントMathML
Content MathML
<apply><sum/>
<bvar><ci>x</ci></bvar>
<lowlimit><ci>a</ci></lowlimit>
<uplimit><ci>b</ci></uplimit>
<apply><ci>f</ci><ci>x</ci></apply>
</apply>
<apply><sum/>
<bvar><ci>x</ci></bvar>
<condition>
<apply><in/><ci>x</ci><ci type="set">B</ci></apply>
</condition>
<apply><ci type="function">f</ci><ci>x</ci></apply>
</apply>
<apply><sum/>
<domainofapplication>
<ci type="set">B</ci>
</domainofapplication>
<ci type="function">f</ci>
</apply>
表示例
Sample Presentation
<mrow>
<munderover>
<mo>∑</mo>
<mrow><mi>x</mi><mo>=</mo><mi>a</mi></mrow>
<mi>b</mi>
</munderover>
<mrow><mi>f</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow>
</mrow>
<mrow>
<munder>
<mo>∑</mo>
<mrow><mi>x</mi><mo>∈</mo><mi>B</mi></mrow>
</munder>
<mrow><mi>f</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow>
</mrow>
<mrow><munder><mo>∑</mo><mi>B</mi></munder><mi>f</mi></mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
product
要素は, 複数項の乗算演算子を表します. 総積の各項は, 通常, 修飾要素の利用を通じて定められた決まりによって指定されます. この要素は, 引数の明確な一覧と一緒に利用できますが, その利用方法は避けられるべきで, そのような状況では代わりにtimes
演算子が使われるべきです.
The product
element represents the n-ary multiplication operator.
The terms of the product are normally specified by rule through the use of
qualifiers. While it can be used with an explicit list of
arguments, this is strongly discouraged, and the times
operator should be used instead in such situations.
product
演算子は, 明確な束縛変数と一緒に利用されてもよいですし, されなくてもよいです. 束縛変数が用いられる場合, product
要素の後に, 添え字変数を示す1つ以上のbvar
要素が続き, 添え字変数に対する定義域を示す修飾要素が続きます. apply
で囲まれた最後の子要素は, 束縛変数による式で, 総積の各項は, 添え字変数の定義域の各点で, その式を計算することで得られます. 定義域の構造に従って, 定義域は, 一般にuplimit
とlowlimit
を用いて示されます.
The product
operator may be used either with or without
explicit bound variables. When a bound variable is used, the
product
element is followed by one or more bvar
elements giving the index variables, followed by qualifiers giving
the domain for the index variables. The final child in the enclosing
apply
is then an expression in the bound variables, and the
terms of the product are obtained by evaluating this expression at
each point of the domain. Depending on the structure of the domain,
it is commonly given using uplimit
and lowlimit
qualifiers.
何も束縛変数が示されていない場合, apply
要素で囲まれた最後の子要素は関数でなければならず, 総積の各項は, 修飾要素で指定された定義域の各点で関数を計算することで得られます.
When no bound variables are explicitly given, the final child of
the enclosing apply
element must be a function, and the
terms of the product are obtained by evaluating the function
at each point of the domain specified by qualifiers.
コンテントMathML
Content MathML
<apply><product/>
<bvar><ci>x</ci></bvar>
<lowlimit><ci>a</ci></lowlimit>
<uplimit><ci>b</ci></uplimit>
<apply><ci type="function">f</ci>
<ci>x</ci>
</apply>
</apply>
<apply><product/>
<bvar><ci>x</ci></bvar>
<condition>
<apply><in/>
<ci>x</ci>
<ci type="set">B</ci>
</apply>
</condition>
<apply><ci>f</ci><ci>x</ci></apply>
</apply>
表示例
Sample Presentation
<mrow>
<munderover>
<mo>∏</mo>
<mrow><mi>x</mi><mo>=</mo><mi>a</mi></mrow>
<mi>b</mi>
</munderover>
<mrow><mi>f</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow>
</mrow>
<mrow>
<munder>
<mo>∏</mo>
<mrow><mi>x</mi><mo>∈</mo><mi>B</mi></mrow>
</munder>
<mrow><mi>f</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
compose
要素は, 関数の合成の演算子を表します. MathMLは, 合成される関数の定義域や値域について, 何も想定していないことに注意して下さい. 合成された関数の定義域は空集合でもよいです.
The compose
element represents the function
composition operator. Note that MathML makes no assumption about the domain
and codomain of the constituent functions in a composition; the domain of the
resulting composition may be empty.
compose
要素は, 交換法則を満たす複数項の演算子です. 結果として, この演算子は, 4.3.5.4 複数項の関数演算子: <compose/>
で説明されている修飾要素を用いて, (場合によっては無限の)集合が並んだ式の一覧で定義された, 合成された演算子に引き上げられてもよいです.
The compose
element is a commutative n-ary operator. Consequently, it may be
lifted to the induced operator defined on a collection of arguments indexed by a (possibly
infinite) set by using qualifier elements as described in 4.3.5.4 N-ary Functional Operators:
<compose/>
.
コンテントMathML
Content MathML
<apply><compose/><ci>f</ci><ci>g</ci><ci>h</ci></apply>
<apply><eq/>
<apply>
<apply><compose/><ci>f</ci><ci>g</ci></apply>
<ci>x</ci>
</apply>
<apply><ci>f</ci><apply><ci>g</ci><ci>x</ci></apply></apply>
</apply>
表示例
Sample Presentation
<mrow>
<mi>f</mi><mo>∘</mo><mi>g</mi><mo>∘</mo><mi>h</mi>
</mrow>
<mrow>
<mrow>
<mrow><mo>(</mo><mi>f</mi><mo>∘</mo><mi>g</mi><mo>)</mo></mrow>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
</mrow>
<mo>=</mo>
<mrow>
<mi>f</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo>(</mo>
<mrow>
<mi>g</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
これらの要素は, ブール値の引数を受け取り, ブール値の値を返す複数項の関数を表します. この関数の引数は, apply
要素で囲まれて明確に指定されてもよいですし, 修飾要素を通じて指定されてもよいです.
These elements represent
n-ary functions taking Boolean arguments and returning a Boolean value.
The arguments may be explicitly specified
in the enclosing apply
element, or specified via qualifier elements.
and
は, 全ての引数が真値の場合は真値を返し, そうでない場合は偽値を返します.
or
は, 引数のどれかが真値の場合は真値を返し, そうでない場合は偽値を返します.
xor
は, 排他的論理和
関数です. 真値である引数の数が奇数の場合は真値を返し, そうでない場合は偽値を返します.
and
is true if all arguments are true, and false otherwise.
or
is true if any of the arguments are true, and false otherwise.
xor
is the logical exclusive or
function. It is true if there are an odd number of true arguments or false otherwise.
コンテントMathML
Content MathML
<apply><and/><ci>a</ci><ci>b</ci></apply>
<apply><and/>
<bvar><ci>i</ci></bvar>
<lowlimit><cn>0</cn></lowlimit>
<uplimit><ci>n</ci></uplimit>
<apply><gt/><apply><selector/><ci>a</ci><ci>i</ci></apply><cn>0</cn></apply>
</apply>
厳格なコンテントMathML
Strict Content MathML
<apply><csymbol cd="logic1">and</csymbol><ci>a</ci><ci>b</ci></apply>
<apply><csymbol cd="fns2">apply_to_list</csymbol>
<csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="list1">map</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>i</ci></bvar>
<apply><csymbol cd="relation1">gt</csymbol>
<apply><csymbol cd="linalg1">vector_selector</csymbol>
<ci>i</ci>
<ci>a</ci>
</apply>
<cn>0</cn>
</apply>
</bind>
<apply><csymbol cd="interval1">integer_interval</csymbol>
<cn type="integer">0</cn>
<ci>n</ci>
</apply>
</apply>
</apply>
表示例
Sample Presentation
<mrow><mi>a</mi><mo>∧</mo><mi>b</mi></mrow>
<mrow>
<munderover>
<mo>⋀</mo>
<mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow>
<mi>n</mi>
</munderover>
<mrow>
<mo>(</mo>
<msub><mi>a</mi><mi>i</mi></msub>
<mo>></mo>
<mn>0</mn>
<mo>)</mo>
</mrow>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
selector
要素は, ベクトル, 行列, リストに添え字を付ける演算子です. この要素は, 1つ以上の引数を受け取ります. 最初の引数は, 選択が行われるベクトル, 行列, リストを特定し, 2番目や続く引数があるなら, 行われる選択の種類を指します.
The selector
element is the operator for indexing into vectors, matrices
and lists. It accepts one or more arguments. The first argument identifies the vector,
matrix or list from which the selection is taking place, and the second and subsequent
arguments, if any, indicate the kind of selection taking place.
selector
要素が単独の引数と一緒に用いられる場合, この要素は, 与えれたリスト, ベクトル, 行列の中の全ての一連の要素を示すものと解釈されます. 行列の一連の要素の順番は, 列の並び, 行の並びとなります. そのため, 出力されるリストは, 要素ごとの行列の行となります. つまり, 添え字が個々に行と列を示している行列(ai,j)に対して, 順番は, a1,1, a1,2, ..., a2,1, a2,2, ... などとなるでしょう.
When selector
is used with a single argument, it should be interpreted as
giving the sequence of all elements in the list, vector or matrix given. The ordering
of elements in the sequence for a matrix is understood to be first by column, then
by
row; so the resulting list is of matrix rows given entry by entry.
That is, for a matrix (ai,j), where the indices denote row
and column, respectively, the ordering would be a1,1,
a1,2, ..., a2,1, a2,2,
... etc.
2つの引数が与えられており, 最初のものがベクトルまたはリストの場合, 2番目の引数は, リストまたはベクトルの要素の添え字を提供します. 最初の引数が行列の場合, 2番目の引数は, 行列の行の添え字を指定します.
When two arguments are given, and the first is a vector or list, the second argument specifies the index of an entry in the list or vector. If the first argument is a matrix then the second argument specifies the index of a matrix row.
3つの引数が与えられる場合, 最初のものがリストまたはベクトルであれば無視され, 行列の場合は, 2番目と3番目の引数が, 選ばれた要素の行の添え字と列の添え字を指定します.
When three arguments are given, the last one is ignored for a list or vector, and in the case of a matrix, the second and third arguments specify the row and column indices of the selected element.
コンテントMathML
Content MathML
<apply><selector/><ci type="vector">V</ci><cn>1</cn></apply>
<apply><eq/>
<apply><selector/>
<matrix>
<matrixrow><cn>1</cn><cn>2</cn></matrixrow>
<matrixrow><cn>3</cn><cn>4</cn></matrixrow>
</matrix>
<cn>1</cn>
</apply>
<matrix>
<matrixrow><cn>1</cn><cn>2</cn></matrixrow>
</matrix>
</apply>
表示例
Sample Presentation
<msub><mi>V</mi><mn>1</mn></msub>
<mrow>
<msub>
<mrow>
<mo>(</mo>
<mtable>
<mtr><mtd><mn>1</mn></mtd><mtd><mn>2</mn></mtd></mtr>
<mtr><mtd><mn>3</mn></mtd><mtd><mn>4</mn></mtd></mtr>
</mtable>
<mo>)</mo>
</mrow>
<mn>1</mn>
</msub>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>2</mn></mtd></mtr></mtable>
<mo>)</mo>
</mrow>
</mrow>
<union/>
,
<intersect/>
,
<cartesianproduct/>
<union/>
,
<intersect/>
,
<cartesianproduct/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
union
要素は, 複数項の演算子である集合和を示すのに使われます. この要素は引数として集合を受け取り, それらの集合のいずれかに現れる要素を全て含む集合を示します.
The union
element is used to denote the n-ary union of sets. It takes sets as arguments,
and denotes the set that contains all the elements that occur in any
of them.
intersect
要素は, 複数項の演算子である集合積を示すのに使われます. この要素は引数として集合を受け取り, それらの集合全てに現れる要素を全て含む集合を示します.
The intersect
element is used to denote the n-ary union of sets. It takes sets as arguments,
and denotes the set that contains all the elements that occur in all
of them.
cartesianproduct
要素は, 直積演算子を表すのに使われます.
The cartesianproduct
element is used to represent the
Cartesian product operator.
引数は, 囲っているapply
要素によって明確に指定されてもよいですし, 4.3.5 複数項の演算子で述べた修飾要素を使って指定されてもよいです.
Arguments may be explicitly specified in the enclosing apply
element, or
specified using qualifier elements as described in 4.3.5 N-ary Operators.
コンテントMathML
Content MathML
<apply><union/><ci>A</ci><ci>B</ci></apply>
<apply><intersect/><ci>A</ci><ci>B</ci><ci>C</ci></apply>
<apply><cartesianproduct/><ci>A</ci><ci>B</ci></apply>
表示例
Sample Presentation
<mrow><mi>A</mi><mo>∪</mo><mi>B</mi></mrow>
<mrow><mi>A</mi><mo>∩</mo><mi>B</mi><mo>∩</mo><mi>C</mi></mrow>
<mrow><mi>A</mi><mo>×</mo><mi>B</mi></mrow>
コンテントMathML
Content MathML
<apply><union/>
<bvar><ci type="set">S</ci></bvar>
<domainofapplication>
<ci type="list">L</ci>
</domainofapplication>
<ci type="set"> S</ci>
</apply>
<apply><intersect/>
<bvar><ci type="set">S</ci></bvar>
<domainofapplication>
<ci type="list">L</ci>
</domainofapplication>
<ci type="set"> S</ci>
</apply>
表示例
Sample Presentation
<mrow><munder><mo>⋃</mo><mi>L</mi></munder><mi>S</mi></mrow>
<mrow><munder><mo>⋂</mo><mi>L</mi></munder><mi>S</mi></mrow>
<vector/>
,
<matrix/>
,
<matrixrow/>
<vector/>
,
<matrix/>
,
<matrixrow/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
ベクトルは, n次元のベクトル空間の要素を表す, 並べられたn個の値から成る要素です.
A vector is an ordered n-tuple of values representing an element of an n-dimensional vector space.
行列との相互作用や行列との掛け算の目的で, ベクトルは, 単独の列から成る行列と等価と見なされ, 転置したベクトルは, 単独の行から成る行列と等価と見なされます.
For purposes of interaction with matrices and matrix multiplication, vectors are regarded as equivalent to a matrix consisting of a single column, and the transpose of a vector as a matrix consisting of a single row.
vector
の各要素は, 子要素として明確に示されてもよいですし, 4.3.1.1 構築要素記号に対する入れ物マークアップで述べた決まりによって指定されてもよいです.
The components of a vector
may be given explicitly as
child elements, or specified by rule as described in 4.3.1.1 Container Markup for Constructor Symbols.
コンテントMathML
Content MathML
<vector>
<apply><plus/><ci>x</ci><ci>y</ci></apply>
<cn>3</cn>
<cn>7</cn>
</vector>
表示例
Sample Presentation
<mrow>
<mo>(</mo>
<mtable>
<mtr><mtd><mrow><mi>x</mi><mo>+</mo><mi>y</mi></mrow></mtd></mtr>
<mtr><mtd><mn>3</mn></mtd></mtr>
<mtr><mtd><mn>7</mn></mtd></mtr>
</mtable>
<mo>)</mo>
</mrow>
<mrow>
<mo>(</mo>
<mrow><mi>x</mi><mo>+</mo><mi>y</mi></mrow>
<mo>,</mo>
<mn>3</mn>
<mo>,</mo>
<mn>7</mn>
<mo>)</mo>
</mrow>
行列は, 行列の行から形作られるものと見なされ, 各行はベクトルの特別な形と考えられます.
A matrix is regarded as made up of matrix rows, each of which can be thought of as a special type of vector.
matrix
要素とmatrixrow
要素の挙動は, mtable
プレゼンテーション要素やmtr
プレゼンテーション要素と実質的に異なることに注意して下さい.
Note that the behavior of the matrix
and matrixrow
elements is
substantially different from the mtable
and mtr
presentation
elements.
matrix
要素は, 構築要素です. そのため, 要素の中身は, 子要素として明確に示されてもよいですし, 4.3.1.1 構築要素記号に対する入れ物マークアップで述べた決まりによって指定されてもよいです. 後者の場合, 関数と, その適用範囲である2次元の定義域を提供することで指定します. 行列の中身は, 定義域の各点で関数を計算することで得られた値に一致します.
The matrix
element is a constructor
element, so the entries may be given explicitly as child elements,
or specified by rule as described in 4.3.1.1 Container Markup for Constructor Symbols. In the latter case, the
entries are specified by providing a function and a 2-dimensional
domain of application. The entries of the matrix correspond to
the values obtained by evaluating the function at the points of
the domain.
行列の行は, 行列の文脈の外では, それ自身で直接表示されることはありません.
Matrix rows are not directly rendered by themselves outside of the context of a matrix.
コンテントMathML
Content MathML
<matrix>
<bvar><ci type="integer">i</ci></bvar>
<bvar><ci type="integer">j</ci></bvar>
<condition>
<apply><and/>
<apply><in/>
<ci>i</ci>
<interval><ci>1</ci><ci>5</ci></interval>
</apply>
<apply><in/>
<ci>j</ci>
<interval><ci>5</ci><ci>9</ci></interval>
</apply>
</apply>
</condition>
<apply><power/><ci>i</ci><ci>j</ci></apply>
</matrix>
表示例
Sample Presentation
<mrow>
<mo>[</mo>
<msub><mi>m</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub>
<mo>|</mo>
<mrow>
<msub><mi>m</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub>
<mo>=</mo>
<msup><mi>i</mi><mi>j</mi></msup>
</mrow>
<mo>;</mo>
<mrow>
<mrow>
<mi>i</mi>
<mo>∈</mo>
<mrow><mo>[</mo><mi>1</mi><mo>,</mo><mi>5</mi><mo>]</mo></mrow>
</mrow>
<mo>∧</mo>
<mrow>
<mi>j</mi>
<mo>∈</mo>
<mrow><mo>[</mo><mi>5</mi><mo>,</mo><mi>9</mi><mo>]</mo></mrow>
</mrow>
</mrow>
<mo>]</mo>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
set
要素は, 引数から数学的集合を構築する関数を表します. set
要素は, set
やmultiset
の値を持ってもよい属性type
を持ちます. 構築される集合の中身は, 構築要素の子要素として明確に示されてもよいですし, 4.3.1.1 構築要素の記号に対する入れ物マークアップで述べた決まりによって指定されてもよいです. 集合の要素には, 暗黙の順番は何もありません.
The set
element represents the n-ary function which constructs a mathematical set from its arguments. The set
element takes the attribute type
which may have the values set
and multiset
. The members of the set to be constructed may be given explicitly as child elements of the constructor, or specified by rule as described in 4.3.1.1 Container Markup for Constructor Symbols. There is no implied ordering to the elements of a set.
list
要素は, 引数からリストを構築する複数項の関数を表します. リストは, 要素に明確な順番があるという点で, 集合と異なります. list
要素は, numeric
やlexicographic
の値を持ってもよい属性order
を持ちます. リストの中身や順番は, 4.3.1.1 構築要素の記号に対する入れ物マークアップで述べた決まりによって指定されてもよいです.
The list
element represents the n-ary function which constructs a list from its arguments. Lists differ from sets in that there is an explicit order to the elements. The list
element takes the attribute order
which may have the values numeric
and lexicographic
. The list entries and order may be given explicitly or specified by rule as described in 4.3.1.1 Container Markup for Constructor Symbols.
コンテントMathML
Content MathML
<set>
<ci>a</ci><ci>b</ci><ci>c</ci>
</set>
<list>
<ci>a</ci><ci>b</ci><ci>c</ci>
</list>
表示例
Sample Presentation
<mrow>
<mo>{</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo>}</mo>
</mrow>
<mrow>
<mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo>)</mo>
</mrow>
一般に, 集合やリストは, 関数や適用範囲を準備しておくことでも構築されるでしょう. 要素は, 範囲内の各点で関数の値を求めることで得られる値と一致します. リストに対してこの方法が利用される場合, リストの要素の順番は明確にはならなくてもよく, そのため, 順番の種類がorder
属性によって指定されてもよいです. lexicographic(訳注:辞書の順)とnumeric(訳注:数字の順)の2つの順番が用意されています.
In general sets and lists can be constructed by providing a function and
a domain of application. The elements correspond to the
values obtained by evaluating the function at the points of the
domain. When this method is used for lists, the ordering of the list elements
may not be clear, so the kind of ordering may be specified by the
order
attribute. Two orders are supported: lexicographic
and numeric.
コンテントMathML
Content MathML
<set>
<bvar><ci>x</ci></bvar>
<condition>
<apply><lt/><ci>x</ci><cn>5</cn></apply>
</condition>
<ci>x</ci>
</set>
<list order="numeric">
<bvar><ci>x</ci></bvar>
<condition>
<apply><lt/><ci>x</ci><cn>5</cn></apply>
</condition>
</list>
<set>
<bvar><ci type="set">S</ci></bvar>
<condition>
<apply><in/><ci>S</ci><ci type="list">T</ci></apply>
</condition>
<ci>S</ci>
</set>
<set>
<bvar><ci> x </ci></bvar>
<condition>
<apply><and/>
<apply><lt/><ci>x</ci><cn>5</cn></apply>
<apply><in/><ci>x</ci><naturalnumbers/></apply>
</apply>
</condition>
<ci>x</ci>
</set>
表示例
Sample Presentation
<mrow>
<mo>{</mo>
<mi>x</mi>
<mo>|</mo>
<mrow><mi>x</mi><mo><</mo><mn>5</mn></mrow>
<mo>}</mo>
</mrow>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>|</mo>
<mrow><mi>x</mi><mo><</mo><mn>5</mn></mrow>
<mo>)</mo>
</mrow>
<mrow>
<mo>{</mo>
<mi>S</mi>
<mo>|</mo>
<mrow><mi>S</mi><mo>∈</mo><mi>T</mi></mrow>
<mo>}</mo>
</mrow>
<mrow>
<mo>{</mo>
<mi>x</mi>
<mo>|</mo>
<mrow>
<mrow><mo>(</mo><mi>x</mi><mo><</mo><mn>5</mn><mo>)</mo></mrow>
<mo>∧</mo>
<mrow>
<mi>x</mi><mo>∈</mo><mi mathvariant="double-struck">N</mi>
</mrow>
</mrow>
<mo>}</mo>
</mrow>
<eq/>
,
<gt/>
,
<lt/>
,
<geq/>
,
<leq/>
<eq/>
,
<gt/>
,
<lt/>
,
<geq/>
,
<leq/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
MathMLは, a < b < c < dといった関係の連鎖
に自然な式を与えるため, 複数の引数と一緒に利用される推移的な関係演算子を認めています. ただし, 算術演算子の場合と異なり, 厳格なコンテントMathMLで使われる基本となる記号は, 二項演算子に分類されます. そのため, 前の節で示したapply_to_listを利用することは不可能ですが, 代わりに類似した関数predicate_on_listが使用され, その意味は本来, 同時に2つの範囲の要素に述語を適用して結合することです.
MathML allows transitive relations to be used with multiple
arguments, to give a natural expression to chains
of
relations such as a < b < c <
d. However unlike the case of the arithmetic operators, the
underlying symbols used in the Strict Content MathML are classed as
binary, so it is not possible to use
apply_to_list as in the previous
section, but instead a similar function
predicate_on_list is used, the
semantics of which is essentially to take the conjunction of applying
the predicate to elements of the domain two at a time.
要素eq
, gt
, lt
, geq
, leq
は, それぞれ等しい
, 大なり
, 小なり
, 大なりまたは等しい
, 小なりまたは等しい
関係を表します. それらの関係は, 最初の引数と2番目の引数の関係に応じて真値または偽値を返します.
The elements
eq
,
gt
,
lt
,
geq
,
leq
represent respectively the
equality
,
greater than
,
less than
,
greater than or equal to
and
less than or equal to
relations that return true or false depending on the relationship of the first argument to the second.
コンテントMathML
Content MathML
<apply><eq/>
<ci>x</ci>
<cn type="rational">2<sep/>4</cn>
<cn type="rational">1<sep/>2</cn>
</apply>
<apply><gt/><ci>x</ci><ci>y</ci></apply>
<apply><lt/><ci>y</ci><ci>x</ci></apply>
<apply><geq/><cn>4</cn><cn>3</cn><cn>3</cn></apply>
<apply><leq/><cn>3</cn><cn>3</cn><cn>4</cn></apply>
表示例
Sample Presentation
<mrow>
<mi>x</mi>
<mo>=</mo>
<mrow><mn>2</mn><mo>/</mo><mn>4</mn></mrow>
<mo>=</mo>
<mrow><mn>1</mn><mo>/</mo><mn>2</mn></mrow>
</mrow>
<mrow><mi>x</mi><mo>></mo><mi>y</mi></mrow>
<mrow><mi>y</mi><mo><</mo><mi>x</mi></mrow>
<mrow><mn>4</mn><mo>≥</mo><mn>3</mn><mo>≥</mo><mn>3</mn></mrow>
<mrow><mn>3</mn><mo>≤</mo><mn>3</mn><mo>≤</mo><mn>4</mn></mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
MathMLは, a < b < c < dといった関係の連鎖
に自然な式を与えるため, 複数の引数と一緒に利用される推移的な関係演算子を認めています. ただし, 算術演算子の場合と異なり, 厳格なコンテントMathMLで使われる基本となる記号は, 二項演算子に分類されます. そのため, 前の節で示したapply_to_listを利用することは不可能ですが, 代わりに類似した関数predicate_on_listが使用され, その意味は本来, 同時に2つの範囲の要素に述語を適用して結合することです.
MathML allows transitive relations to be used with multiple
arguments, to give a natural expression to chains
of
relations such as a < b < c <
d. However unlike the case of the arithmetic operators, the
underlying symbols used in the Strict Content MathML are classed as
binary, so it is not possible to use
apply_to_list as in the previous
section, but instead a similar function
predicate_on_list is used, the
semantics of which is essentially to take the conjunction of applying
the predicate to elements of the domain two at a time.
subset
要素とprsubset
要素は, それぞれ部分集合関係と真部分集合関係を表します. これらの要素は, 1番目の引数が2番目の部分集合または真部分集合であることを示すのに使われます. 前に説明したように, これらの要素は, 各引数がその後の引数の部分集合または真部分集合であることを表す, 複数項の演算子としても利用されてもよいです.
The subset
and prsubset
elements represent respectively the subset and proper subset relations. They are used to denote that the
first argument is a subset or proper subset of the second. As described above they may also be used as an n-ary operator to express
that each argument is a subset or proper subset of its predecessor.
コンテントMathML
Content MathML
<apply><subset/>
<ci type="set">A</ci>
<ci type="set">B</ci>
</apply>
<apply><prsubset/>
<ci type="set">A</ci>
<ci type="set">B</ci>
<ci type="set">C</ci>
</apply>
表示例
Sample Presentation
<mrow><mi>A</mi><mo>⊆</mo><mi>B</mi></mrow>
<mrow><mi>A</mi><mo>⊂</mo><mi>B</mi><mo>⊂</mo><mi>C</mi></mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
max
, min
といったMathML要素, mean
といった統計要素の中には, 前に示した種類の複数項の関数として使われてもよいものもあります. しかしながら, 単独の引数が提供されている場合には, 特別な解釈が行われます. 単独の引数が提供された場合, 関数が引数によって表された要素に適用されます.
The MathML elements max
, min
and some statistical
elements such as mean
may be used as an n-ary function as in
the above classes, however a special interpretation is given in the
case that a single argument is supplied. If a single argument is
supplied the function is applied to the elements represented by the
argument.
これらの要素に対して厳格なコンテントMathMLで用いられる, 基本となる記号は単一項の演算子です. そのため, 0個もしくは複数の引数と一緒にMathMLが利用される場合, 関数は, 次に示す決まりによって明確に提供された引数から構築される集合に適用されます.
The underlying symbol used in Strict Content MathML for these elements is Unary and so if the MathML is used with 0 or more than 1 argument, the function is applied to the set constructed from the explicitly supplied arguments according to the following rule.
min
要素は, この要素が適用された引数の中で最小のものを返す, 最小値関数を示します. それらの引数は, 明確にapply
要素で囲われて指定されてもよいですし, 4.3.5.12 複数項・単一項の算術演算子: <min/>
, <max/>
で説明した, 修飾要素を用いて指定されてもよいです. 数が無限である引数の集合に適用される場合, 最小の引数は存在しないであろうことに注意して下さい.
The min
element denotes the minimum function, which returns the smallest of
the arguments to which it is applied. Its arguments may be explicitly specified in
the
enclosing apply
element, or specified using qualifier
elements as described in 4.3.5.12 N-ary/Unary Arithmetic Operators:
<min/>
,
<max/>
. Note that when applied to infinite sets of arguments, no
minimal argument may exist.
max
要素は, この要素が適用された引数の中で最大のものを返す, 最大値関数を示します. それらの引数は, 明確にapply
要素で囲まれて指定されもよいですし, 4.3.5.12 複数項・単一項の算術演算子: <min/>
, <max/>
で説明した, 修飾要素を用いて指定されてもよいです. 数が無限である引数の集合に適用される場合, 最大の引数は存在しないであろうことに注意して下さい.
The max
element denotes the maximum function, which
returns the largest of the arguments to which it is applied. Its
arguments may be explicitly specified in the enclosing
apply
element, or specified using qualifier elements
as described in 4.3.5.12 N-ary/Unary Arithmetic Operators:
<min/>
,
<max/>
. Note that when applied to
infinite sets of arguments, no maximal argument may exist.
コンテントMathML
Content MathML
<apply><min/><ci>a</ci><ci>b</ci></apply>
<apply><max/><cn>2</cn><cn>3</cn><cn>5</cn></apply>
<apply><min/>
<bvar><ci>x</ci></bvar>
<condition>
<apply><notin/><ci>x</ci><ci type="set">B</ci></apply>
</condition>
<apply><power/><ci>x</ci><cn>2</cn></apply>
</apply>
<apply><max/>
<bvar><ci>y</ci></bvar>
<condition>
<apply><in/>
<ci>y</ci>
<interval><cn>0</cn><cn>1</cn></interval>
</apply>
</condition>
<apply><power/><ci>y</ci><cn>3</cn></apply>
</apply>
表示例
Sample Presentation
<mrow>
<mi>min</mi>
<mrow><mo>{</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>}</mo></mrow>
</mrow>
<mrow>
<mi>max</mi>
<mrow>
<mo>{</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>5</mn><mo>}</mo>
</mrow>
</mrow>
<mrow>
<mi>min</mi>
<mrow><mo>{</mo><msup><mi>x</mi><mn>2</mn></msup><mo>|</mo>
<mrow><mi>x</mi><mo>∉</mo><mi>B</mi></mrow>
<mo>}</mo>
</mrow>
</mrow>
<mrow>
<mi>max</mi>
<mrow>
<mo>{</mo><mi>y</mi><mo>|</mo>
<mrow>
<msup><mi>y</mi><mn>3</mn></msup>
<mo>∈</mo>
<mrow><mo>[</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>]</mo></mrow>
</mrow>
<mo>}</mo>
</mrow>
</mrow>
<mean/>
,
<median/>
,
<mode/>
,
<sdev/>
,
<variance/>
<mean/>
,
<median/>
,
<mode/>
,
<sdev/>
,
<variance/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
mean
といった統計要素の中には, 前に示した種類の複数項の関数として使われてもよいものもあります. しかしながら, 単独の引数が提供されている場合には, 特別な解釈が行われます. 単独の引数が提供された場合, 関数が引数によって表された要素に適用されます.
Some statistical MathML elements,
elements such as mean
may be used as an n-ary function as in
the above classes, however a special interpretation is given in the
case that a single argument is supplied. If a single argument is
supplied the function is applied to the elements represented by the
argument.
これらの要素に対して厳格なコンテントMathMLで用いられる, 基本となる記号は単一項の演算子です. そのため, 0個もしくは複数の引数と一緒にMathMLが利用される場合, 関数は, 次に示す決まりによって明確に提供された引数から構築される集合に適用されます.
The underlying symbol used in Strict Content MathML for these elements is Unary and so if the MathML is used with 0 or more than 1 argument, the function is applied to the set constructed from the explicitly supplied arguments according to the following rule.
mean
要素は, データの集合または確率変数の, 相加平均または平均を返す関数を表します.
The mean
element represents the function returning arithmetic mean or average of a
data set or random variable.
median
要素は, 引数の中央値を返す演算子を表します. 中央値は, 標本の下半分を上半分と分ける数です.
The median
element represents an operator returning the
median of its arguments. The median is a number separating the lower
half of the sample values from the upper half.
mode
要素は, 引数の最頻値を示すのに使われます. 最頻値は, 最もたくさん現れる値です.
The mode
element is used to denote the mode of its arguments. The mode is
the value which occurs with the greatest frequency.
sdev
要素は, データの集合または確立変数に対する標準偏差関数を示すのに使われます. 標準偏差は, 分散の平方根として与えられる, ばらつきの統計上の尺度です.
The sdev
element is used to denote the standard deviation
function for a data set or random variable. Standard deviation is a
statistical measure of dispersion given by the square root of the
variance.
variance
要素は, データの集合または確率変数の分散を表します. 分散は, ばらつきの統計上の尺度で, 平均からの正の値の偏差を二乗して平均したものです.
The variance
element represents the variance of a data set
or random variable. Variance is a statistical measure of dispersion,
averaging the squares of the deviations of possible values from their
mean.
コンテントMathML
Content MathML
<apply><mean/>
<cn>3</cn><cn>4</cn><cn>3</cn><cn>7</cn><cn>4</cn>
</apply>
<apply><mean/><ci>X</ci></apply>
<apply><sdev/>
<cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn>
</apply>
<apply><sdev/>
<ci type="discrete_random_variable">X</ci>
</apply>
<apply><variance/>
<cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn>
</apply>
<apply><variance/>
<ci type="discrete_random_variable">X</ci>
</apply>
表示例
Sample Presentation
<mrow>
<mo>⟨</mo>
<mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mn>3</mn>
<mo>,</mo><mn>7</mn><mo>,</mo><mn>4</mn>
<mo>⟩</mo>
</mrow>
<mrow>
<mo>⟨</mo><mi>X</mi><mo>⟩</mo>
</mrow>
<mtext> or </mtext>
<mover><mi>X</mi><mo>¯</mo></mover>
<mrow>
<mo>σ</mo>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo>(</mo>
<mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mn>2</mn><mo>,</mo><mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mo>σ</mo>
<mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow>
</mrow>
<mrow>
<msup>
<mo>σ</mo>
<mn>2</mn>
</msup>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo>(</mo>
<mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mn>2</mn><mo>,</mo><mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msup><mo>σ</mo><mn>2</mn></msup>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow>
</mrow>
二項演算子は2つの引数を伴い, 何らかの特別な書き換えの決まりを必要とせずに, 単純に書き換え: 要素の決まりによってOpenMath記号と結び付けられます. 二項の構築要素interval
は類似していますが, 引数が要素の子要素となる構築要素の構文を使用しており, 使用される記号は, 4.3.10.3 範囲 <interval>
で述べられているtype属性に依存します.
Binary operators take two arguments and simply map to OpenMath
symbols via Rewrite: element
without the need of any special rewrite rules. The binary
constructor interval
is similar but uses constructor syntax
in which the arguments are children of the element, and the symbol
used depends on the type element as described in 4.3.10.3 Interval <interval>
.
<quotient/>
,
<divide/>
,
<minus/>
,
<power/>
,
<rem/>
,
<root/>
<quotient/>
,
<divide/>
,
<minus/>
,
<power/>
,
<rem/>
,
<root/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
quotient
要素は, 整数の割り算演算子を表します. この演算子が整数の引数aとbに適用されたとき, 結果は, a割るbの商
になります. つまり, 整数aとbの商は, a = b * q + rといた整数qで, |r|は|b|より小さく, a * rは正となるものです. 一般的な利用で, qは商と呼ばれ, rは余りと呼ばれます.
The quotient
element represents the integer division
operator. When the operator is applied to integer arguments
a and b, the result is the quotient of
a divided by b
. That is, the quotient
of integers a and b is the integer
q such that a = b * q +
r, with |r| less than |b| and
a * r positive. In common usage, q
is called the quotient and r is the remainder.
divide
要素は, 数体での割り算演算子を表します.
The divide
element represents the division operator in a
number field.
minus
要素は, 単一項の算術演算子としても(つまり, - xを表すためにも), または二項算術演算子としても(つまり, x − yを表すためにも)利用されるでしょう. さらに, 4.3.7.2 単一項の算術演算子:
<factorial/>
,
<abs/>
,
<conjugate/>
,
<arg/>
,
<real/>
,
<imaginary/>
,
<floor/>
,
<ceiling/>
,
<exp/>
,
<minus/>
,
<root/>
で見ることのできる例もあります.
The minus
element can be used as
a unary arithmetic operator (e.g. to represent −x),
or as a binary arithmetic operator (e.g. to represent x
− y). Some further examples are given in 4.3.7.2 Unary Arithmetic Operators:
<factorial/>
,
<abs/>
,
<conjugate/>
,
<arg/>
,
<real/>
,
<imaginary/>
,
<floor/>
,
<ceiling/>
,
<exp/>
,
<minus/>
,
<root/>
.
power
要素は, 指数演算子を表します. 最初の引数が, 2番目の引数である次数まで累乗されます.
The power
element represents the exponentiation
operator. The first argument is raised to the power of the second
argument.
rem
要素は, 最初の引数を2番目の引数で割ったときの余りを返す標準的な演算子を表します. つまり, 整数の引数aとbに適用された場合, a = b * q + rといった式で, |r|が|b|より小さく, a * rが正となる唯一の整数rを返します.
The rem
element represents the modulus operator, which
returns the remainder that results from dividing the first argument by
the second. That is, when applied to integer arguments a
and b, it returns the unique integer r such that
a = b * q + r, with
|r| less than |b| and a *
r positive.
root
要素は, 根を求めるのに使用されます. 用いられる根の種類はdegree
要素で指定し, その要素は, root
要素を囲っているapply
要素の2番目の子要素として与えられるべきです. よって, 平方根はdegree
が値2を含んでいる場合に相当し, 立方根は3に相当しといった具合です. degree
が存在しない場合, 既定値の2が使用されます.
The root
element is used to extract roots. The kind of root to be taken is
specified by a degree
element, which should be given as the second child of
the apply
element enclosing the root
element. Thus, square roots
correspond to the case where degree
contains the value 2, cube roots
correspond to 3, and so on. If no degree
is present, a default value of 2 is
used.
コンテントMathML
Content MathML
<apply><quotient/><ci>a</ci><ci>b</ci></apply>
<apply><divide/>
<ci>a</ci>
<ci>b</ci>
</apply>
<apply><minus/><ci>x</ci><ci>y</ci></apply>
<apply><power/><ci>x</ci><cn>3</cn></apply>
<apply><rem/><ci> a </ci><ci> b </ci></apply>
<apply><root/>
<degree><ci type="integer">n</ci></degree>
<ci>a</ci>
</apply>
表示例
Sample Presentation
<mrow><mo>⌊</mo><mi>a</mi><mo>/</mo><mi>b</mi><mo>⌋</mo></mrow>
<mrow><mi>a</mi><mo>/</mo><mi>b</mi></mrow>
<mrow><mi>x</mi><mo>−</mo><mi>y</mi></mrow>
<msup><mi>x</mi><mn>3</mn></msup>
<mrow><mi>a</mi><mo>mod</mo><mi>b</mi></mrow>
<mroot><mi>a</mi><mi>n</mi></mroot>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
implies
要素は, 2つのブール値の式を引数に受け取る論理的含意関数を表します. 最初の引数が真値で, 2番目の引数が偽値の場合, この関数は偽値と評価し, そうでない場合は真値と評価します.
The implies
element represents the logical implication
function which takes two Boolean expressions as arguments. It
evaluates to false if the first argument is true and the second
argument is false, otherwise it evaluates to true.
equivalent
要素は, 2つのブール値の式が論理的に同値であると断定する関係を表します. 同値であるとは, どんな入力に対しても同じブール値となることです.
The equivalent
element represents the relation that
asserts two Boolean expressions are logically equivalent,
that is have the same Boolean value for any inputs.
コンテントMathML
Content MathML
<apply><implies/><ci>A</ci><ci>B</ci></apply>
<apply><equivalent/>
<ci>a</ci>
<apply><not/><apply><not/><ci>a</ci></apply></apply>
</apply>
表示例
Sample Presentation
<mrow><mi>A</mi><mo>⇒</mo><mi>B</mi></mrow>
<mrow>
<mi>a</mi>
<mo>≡</mo>
<mrow><mo>¬</mo><mrow><mo>¬</mo><mi>a</mi></mrow></mrow>
</mrow>
<neq/>
,
<approx/>
,
<factorof/>
,
<tendsto/>
<neq/>
,
<approx/>
,
<factorof/>
,
<tendsto/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
neq
要素は, 2項の不等式関係, すなわち, 2つの引数が等しくない限り真値を返す等しくない
関係を表します.
The neq
element represents the binary inequality
relation, i.e. the relation not equal to
which returns true unless
the two arguments are equal.
approx
要素は, 引数がおよそ等しいと断定する関係を表します.
The approx
element represents the relation that asserts
the approximate equality of its arguments.
factorof
要素は, 最初の引数が2番目の因子である
数学的関係を示すのに使われます. この関係は, b mod a = 0の場合にのみ真値を返します.
The factorof
element is used to indicate the
mathematical relationship that the first argument is a factor of
the second. This relationship is true if and only
if b mod a = 0.
コンテントMathML
Content MathML
<apply><neq/><cn>3</cn><cn>4</cn></apply>
<apply><approx/>
<pi/>
<cn type="rational">22<sep/>7</cn>
</apply>
<apply><factorof/><ci>a</ci><ci>b</ci></apply>
表示例
Sample Presentation
<mrow><mn>3</mn><mo>≠</mo><mn>4</mn></mrow>
<mrow>
<mi>π</mi>
<mo>≃</mo>
<mrow><mn>22</mn><mo>/</mo><mn>7</mn></mrow>
</mrow>
<mrow><mi>a</mi><mo>|</mo><mi>b</mi></mrow>
tendsto
要素は, 数量が特定の値に向かう関係を表すのに用いられます. この要素は本来, 数学の極限の状態の一部ですが, それ自身の構造ゆえに, xがyに向かう
といった数学の状態を捕えることを可能にすることや, より一般的な種類の極限を構築するための一部分を提供することがあります.
The tendsto
element is used to express the relation that
a quantity is tending to a specified value. While this is used
primarily as part of the statement of a mathematical limit, it
exists as a construct on its own to allow one to capture
mathematical statements such as As x tends to y,
and to provide a
building block to construct more general kinds of limits.
tendsto
要素は, 極限値に近づく方向を設定するために, 属性type
を利用します. この属性はどんな値を持ってもよいですが, 一般的な値はabove
やbelow
を含みます.
The tendsto
element takes the attribute type
to set the
direction from which the limiting value is approached. It may have any value, but common values include above
and below
.
コンテントMathML
Content MathML
<apply><tendsto type="above"/>
<apply><power/><ci>x</ci><cn>2</cn></apply>
<apply><power/><ci>a</ci><cn>2</cn></apply>
</apply>
<apply><tendsto/>
<vector><ci>x</ci><ci>y</ci></vector>
<vector>
<apply><ci type="function">f</ci><ci>x</ci><ci>y</ci></apply>
<apply><ci type="function">g</ci><ci>x</ci><ci>y</ci></apply>
</vector>
</apply>
表示例
Sample Presentation
<mrow>
<msup><mi>x</mi><mn>2</mn></msup>
<mo>→</mo>
<msup><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo></msup>
</mrow>
<mrow><mo>(</mo><mtable>
<mtr><mtd><mi>x</mi></mtd></mtr>
<mtr><mtd><mi>y</mi></mtd></mtr>
</mtable><mo>)</mo></mrow>
<mo>→</mo>
<mrow><mo>(</mo><mtable>
<mtr><mtd>
<mi>f</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow>
</mtd></mtr>
<mtr><mtd>
<mi>g</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow>
</mtd></mtr>
</mtable><mo>)</mo></mrow>
<vectorproduct/>
,
<scalarproduct/>
,
<outerproduct/>
<vectorproduct/>
,
<scalarproduct/>
,
<outerproduct/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
vectorproduct
要素は, 外積を表します. この要素は, 2つの3次元ベクトルを受け取り, 3次元ベクトルの値を返します.
The vectorproduct
element
represents the vector product. It takes two three-dimensional
vector arguments and represents as value a three-dimensional
vector.
scalarproduct
要素は, 内積関数を表します. この要素は, 2つのベクトルの引数を受け取り, スカラーの値を返します.
The scalarproduct
element
represents the scalar product function. It takes two vector
arguments and returns a scalar value.
outerproduct
要素は, テンソル積関数を表します. この要素は2つのベクトルの引数を受け取り, 行列の値を返します.
The outerproduct
element
represents the outer product function. It takes two vector
arguments and returns as value a matrix.
コンテントMathML
Content MathML
<apply><eq/>
<apply><vectorproduct/>
<ci type="vector"> A </ci>
<ci type="vector"> B </ci>
</apply>
<apply><times/>
<ci>a</ci>
<ci>b</ci>
<apply><sin/><ci>θ</ci></apply>
<ci type="vector"> N </ci>
</apply>
</apply>
<apply><eq/>
<apply><scalarproduct/>
<ci type="vector">A</ci>
<ci type="vector">B</ci>
</apply>
<apply><times/>
<ci>a</ci>
<ci>b</ci>
<apply><cos/><ci>θ</ci></apply>
</apply>
</apply>
<apply><outerproduct/>
<ci type="vector">A</ci>
<ci type="vector">B</ci>
</apply>
表示例
Sample Presentation
<mrow>
<mrow><mi>A</mi><mo>×</mo><mi>B</mi></mrow>
<mo>=</mo>
<mrow>
<mi>a</mi>
<mo>⁢<!--InvisibleTimes--></mo>
<mi>b</mi>
<mo>⁢<!--InvisibleTimes--></mo>
<mrow><mi>sin</mi><mo>⁡<!--ApplyFunction--></mo><mi>θ</mi></mrow>
<mo>⁢<!--InvisibleTimes--></mo>
<mi>N</mi>
</mrow>
</mrow>
<mrow>
<mrow><mi>A</mi><mo>.</mo><mi>B</mi></mrow>
<mo>=</mo>
<mrow>
<mi>a</mi>
<mo>⁢<!--InvisibleTimes--></mo>
<mi>b</mi>
<mo>⁢<!--InvisibleTimes--></mo>
<mrow><mi>cos</mi><mo>⁡<!--ApplyFunction--></mo><mi>θ</mi></mrow>
</mrow>
</mrow>
<mrow><mi>A</mi><mo>⊗</mo><mi>B</mi></mrow>
<in/>
,
<notin/>
,
<notsubset/>
,
<notprsubset/>
,
<setdiff/>
<in/>
,
<notin/>
,
<notsubset/>
,
<notprsubset/>
,
<setdiff/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
in
要素は, 集合の包摂関係を表します. この要素は2つの引数, 要素と集合を持ちます. in
要素は, その要素が与えられた集合に属することを示します.
The in
element represents the set inclusion relation.
It has two arguments, an element and a set. It is used to denote
that the element is in the given set.
notin
は, 否定された集合の包摂関係を表します. この要素は2つの引数, 要素と集合を持ちます. notin
は, その要素が与えられた集合に属さないことを示します.
The notin
represents the negated set inclusion
relation. It has two arguments, an element and a set. It is
used to denote that the element is not in the given set.
notsubset
要素は, 部分集合でない関係を表します. この要素は, 1番目の引数が2番目の部分集合でないことを示すのに使われます.
The notsubset
element represents the negated subset
relation. It is used to denote that the first argument is not a subset of the
second.
notprsubset
要素は, 真部分集合でない関係を表します. この要素は, 1番目の引数が2番目の真部分集合でないことを示すのに使われます.
The notprsubset
element represents the negated proper
subset relation. It is used to denote that the first argument is not
a proper subset of the second.
setdiff
要素は, 差集合演算子を表します. この要素は, 引数として2つの集合を受け取り, 1番目の集合に現れるが, 2番目の集合に現れない要素を全て含む集合を示します.
The setdiff
element represents the set difference
operator. It takes two sets as arguments, and denotes the set that
contains all the elements that occur in the first set, but not in
the second.
コンテントMathML
Content MathML
<apply><in/><ci>a</ci><ci type="set">A</ci></apply>
<apply><notin/><ci>a</ci><ci type="set">A</ci></apply>
<apply><notsubset/>
<ci type="set">A</ci>
<ci type="set">B</ci>
</apply>
<apply><notprsubset/>
<ci type="set">A</ci>
<ci type="set">B</ci>
</apply>
<apply><setdiff/>
<ci type="set">A</ci>
<ci type="set">B</ci>
</apply>
表示例
Sample Presentation
<mrow><mi>a</mi><mo>∈</mo><mi>A</mi></mrow>
<mrow><mi>a</mi><mo>∉</mo><mi>A</mi></mrow>
<mrow><mi>A</mi><mo>⊈</mo><mi>B</mi></mrow>
<mrow><mi>A</mi><mo>⊄</mo><mi>B</mi></mrow>
<mrow><mi>A</mi><mo>∖</mo><mi>B</mi></mrow>
単一項の演算子は単独の引数を必要とし, 何らかの特別な書き換えの決まりを必要とせずに, 書き換え: 要素の決まりによってOpenMath記号と結び付けられます.
Unary operators take a single argument and map to OpenMath symbols via Rewrite: element without the need of any special rewrite rules.
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
not
要素は, 1つのブール値の引数を受け取り, 逆のブール値の値を返す論理的否定関数を表します.
The not
element represents the logical not function
which takes one Boolean argument, and returns the opposite Boolean
value.
コンテントMathML
Content MathML
<apply><not/><ci>a</ci></apply>
表示例
Sample Presentation
<mrow><mo>¬</mo><mi>a</mi></mrow>
<factorial/>
,
<abs/>
,
<conjugate/>
,
<arg/>
,
<real/>
,
<imaginary/>
,
<floor/>
,
<ceiling/>
,
<exp/>
,
<minus/>
,
<root/>
<factorial/>
,
<abs/>
,
<conjugate/>
,
<arg/>
,
<real/>
,
<imaginary/>
,
<floor/>
,
<ceiling/>
,
<exp/>
,
<minus/>
,
<root/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
factorial
要素は, 負でない整数での単一項の階乗演算子を表します. 整数nの階乗は, n! = n×(n-1)×⋯×1で与えられます.
The factorial
element represents the unary factorial operator on non-negative integers.
The factorial of an integer n is given by n! = n×(n-1)×⋯×1.
abs
要素は, 絶対値関数を表します. 引数は, 数値の値であるべきです. 引数が複素数の場合, 絶対値はしばしば, 0点からの距離として参照されます(訳注:原文ではmodulusで, 複素数の絶対値ですが, 絶対値という言葉が繰り返されることからこのような表現にしています).
The abs
element represents the absolute value
function. The argument should be numerically valued. When the
argument is a complex number, the absolute value is often referred
to as the modulus.
conjugate
要素は, 引数の共役複素数を返す複素数で定義された関数を表します.
The conjugate
element represents the function defined
over the complex numbers which returns the complex conjugate of
its argument.
arg
要素は, 複素数の角度, すなわち, その数から0に向かって引いた直線と, 実数の数直線のなす(反時計回りに測った)角度を返す単一項の関数です.
The arg
element represents the unary function which
returns the angular argument of a complex number, namely the
angle which a straight line drawn from the number to zero makes
with the real line (measured anti-clockwise).
real
要素は, 複素数の実数
部分, すなわち, x + iyのx成分を表す式を構築するのに使われる単一項の演算子を表します.
The real
element represents the unary operator used to
construct an expression representing the real
part of a
complex number, that is, the x component in x + iy.
imaginary
要素は, 複素数の虚数
部分, すなわち, x + iyのy成分を表す式を構築するのに使われる単一項の演算子を表します.
The imaginary
element represents the unary operator used to
construct an expression representing the imaginary
part of a
complex number, that is, the y component in x + iy.
floor
要素は, 最も近い整数に(負の無限大の方向に)切り捨てる操作を表します. この関数は, 引数に1つの実数を受け取り, 整数を返します.
The floor
element represents the operation that rounds
down (towards negative infinity) to the nearest integer. This
function takes one real number as an argument and returns an
integer.
ceiling
要素は, 最も近い整数に(正の無限大の方向に)切り上げる操作を表します. この関数は, 引数に1つの実数を受け取り, 整数を返します.
The ceiling
element represents the operation that rounds
up (towards positive infinity) to the nearest integer. This function
takes one real number as an argument and returns an integer.
exp
要素は, 自然対数関数の逆関数に結び付けられる指数関数を表します. この要素は, 1つの引数を受け取ります.
The exp
element represents the exponentiation function
associated with the inverse of the ln function. It takes one
argument.
minus
要素は, 単一項の算術演算子としても(つまり, −xを表すためにも), または二項算術演算子としても(つまり, x − yを表すためにも)利用されるでしょう. 4.3.6.1 二項の算術演算子:
<quotient/>
,
<divide/>
,
<minus/>
,
<power/>
,
<rem/>
,
<root/>
で見ることのできる例もあります.
The minus
element can be used as
a unary arithmetic operator (e.g. to represent −x),
or as a binary arithmetic operator (e.g. to represent x
− y). Some further examples are given in 4.3.6.1 Binary Arithmetic Operators:
<quotient/>
,
<divide/>
,
<minus/>
,
<power/>
,
<rem/>
,
<root/>
.
MathMLのroot
要素は, 必須でないdegree
修飾要素を伴う単一項の要素として扱われます. ただし, この要素は, n乗根を扱う二項の演算を表し, 4.3.6.1 二項の算術演算子:
<quotient/>
,
<divide/>
,
<minus/>
,
<power/>
,
<rem/>
,
<root/>
で説明されています.
The root
element in MathML is
treated as a unary element taking an optional degree
qualifier, however it represents
the binary operation of taking an nth root, and is described in
4.3.6.1 Binary Arithmetic Operators:
<quotient/>
,
<divide/>
,
<minus/>
,
<power/>
,
<rem/>
,
<root/>
.
コンテントMathML
Content MathML
<apply><factorial/><ci>n</ci></apply>
<apply><abs/><ci>x</ci></apply>
<apply><conjugate/>
<apply><plus/>
<ci>x</ci>
<apply><times/><cn>ⅈ</cn><ci>y</ci></apply>
</apply>
</apply>
<apply><arg/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
<apply><real/>
<apply><plus/>
<ci>x</ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
<apply><imaginary/>
<apply><plus/>
<ci>x</ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
<apply><floor/><ci>a</ci></apply>
<apply><ceiling/><ci>a</ci></apply>
<apply><exp/><ci>x</ci></apply>
<apply><minus/><cn>3</cn></apply>
表示例
Sample Presentation
<mrow><mi>n</mi><mo>!</mo></mrow>
<mrow><mo>|</mo><mi>x</mi><mo>|</mo></mrow>
<mover>
<mrow>
<mi>x</mi>
<mo>+</mo>
<mrow><mn>ⅈ</mn><mo>⁢<!--InvisibleTimes--></mo><mi>y</mi></mrow>
</mrow>
<mo>¯</mo>
</mover>
<mrow>
<mi>arg</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo>(</mo>
<mrow>
<mi>x</mi>
<mo>+</mo>
<mrow><mi>i</mi><mo>⁢<!--InvisibleTimes--></mo><mi>y</mi></mrow>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mo>ℛ</mo>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo>(</mo>
<mrow>
<mi>x</mi>
<mo>+</mo>
<mrow><mi>i</mi><mo>⁢<!--InvisibleTimes--></mo><mi>y</mi></mrow>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mo>ℑ</mo>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo>(</mo>
<mrow>
<mi>x</mi>
<mo>+</mo>
<mrow><mi>i</mi><mo>⁢<!--InvisibleTimes--></mo><mi>y</mi></mrow>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
<mrow><mo>⌊</mo><mi>a</mi><mo>⌋</mo></mrow>
<mrow><mo>⌈</mo><mi>a</mi><mo>⌉</mo></mrow>
<msup><mi>e</mi><mi>x</mi></msup>
<mrow><mo>−</mo><mn>3</mn></mrow>
<determinant/>
,
<transpose/>
<determinant/>
,
<transpose/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
determinant
要素は, 正方行列であるべき引数の行列式を返す, 単一項の関数に用いられます.
The determinant
element is used for the unary function which returns the determinant of its argument, which should be a square matrix.
transpose
要素は, 与えられた行列やベクトルの転置行列を意味する単一項の関数を表します.
The transpose
element represents a unary function that signifies the transpose of the
given matrix or vector.
コンテントMathML
Content MathML
<apply><determinant/>
<ci type="matrix">A</ci>
</apply>
<apply><transpose/>
<ci type="matrix">A</ci>
</apply>
表示例
Sample Presentation
<mrow><mi>det</mi><mo>⁡<!--ApplyFunction--></mo><mi>A</mi></mrow>
<msup><mi>A</mi><mi>T</mi></msup>
<inverse/>
,
<ident/>
,
<domain/>
,
<codomain/>
,
<image/>
,
<ln/>
,<inverse/>
,
<ident/>
,
<domain/>
,
<codomain/>
,
<image/>
,
<ln/>
,
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
inverse
要素は, 関数の機能的に逆となる一般的な式を構築するために, その関数に適用されます.
The inverse
element is applied to a function in order to
construct a generic expression for the functional inverse of that
function.
ident
要素は, 恒等関数を表します. MathMLは, 表現された恒等関数の定義域や値域について何も想定していないことに注意して下さい. それらは, 関数が使われた文脈に依存します.
The ident
element represents the
identity function. Note that MathML makes no assumption about the
domain and codomain of the represented identity function, which
depends on the context in which it is used.
domain
要素は, この要素が適用される関数の定義域を表します. 定義域は, 関数が定義されているところの値の集合です.
The domain
element represents the domain of the
function to which it is applied. The domain is the set of values
over which the function is defined.
codomain
要素は, この要素が適用される関数の終域または値域を表します. 終域は, 関数の像と等しい必要は無く, 単に像を含む必要があるだけです.
The codomain
represents the codomain, or range, of the function
to which it is applied. Note that the codomain is not necessarily
equal to the image of the function, it is merely required to contain
the image.
image
要素は, この要素が適用される関数の像を表します. 関数の像は, 関数によって得られる値の集合です. 像の全ての点は, 定義域の何らかの点に適用された関数によって生み出されます.
The image
element represents the image of
the function to which it is applied. The image of a function is the
set of values taken by the function. Every point in the image is
generated by the function applied to some point of the domain.
ln
要素は, 自然対数関数を表します.
The ln
element represents the natural logarithm function.
これらの要素は, 引数に適用されてもよいですし, または単独で現れてもよいです. どちらの場合も, それらの要素は, 他の関数で役割を果たす抽象的な演算子を表します.
The elements may either be applied to arguments, or may appear alone, in which case they represent an abstract operator acting on other functions.
コンテントMathML
Content MathML
<apply><inverse/><ci>f</ci></apply>
<apply>
<apply><inverse/><ci type="matrix">A</ci></apply>
<ci>a</ci>
</apply>
<apply><eq/>
<apply><compose/>
<ci type="function">f</ci>
<apply><inverse/>
<ci type="function">f</ci>
</apply>
</apply>
<ident/>
</apply>
<apply><eq/>
<apply><domain/><ci>f</ci></apply>
<reals/>
</apply>
<apply><eq/>
<apply><codomain/><ci>f</ci></apply>
<rationals/>
</apply>
<apply><eq/>
<apply><image/><sin/></apply>
<interval><cn>-1</cn><cn> 1</cn></interval>
</apply>
<apply><ln/><ci>a</ci></apply>
表示例
Sample Presentation
<msup><mi>f</mi><mrow><mo>(</mo><mn>-1</mn><mo>)</mo></mrow></msup>
<mrow>
<msup><mi>A</mi><mrow><mo>(</mo><mn>-1</mn><mo>)</mo></mrow></msup>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>a</mi><mo>)</mo></mrow>
</mrow>
<mrow>
<mrow>
<mi>f</mi>
<mo>∘</mo>
<msup><mi>f</mi><mrow><mo>(</mo><mn>-1</mn><mo>)</mo></mrow></msup>
</mrow>
<mo>=</mo>
<mi>id</mi>
</mrow>
<mrow>
<mrow><mi>domain</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>f</mi><mo>)</mo></mrow></mrow>
<mo>=</mo>
<mi mathvariant="double-struck">R</mi>
</mrow>
<mrow>
<mrow><mi>codomain</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>f</mi><mo>)</mo></mrow></mrow>
<mo>=</mo>
<mi mathvariant="double-struck">Q</mi>
</mrow>
<mrow>
<mrow><mi>image</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>sin</mi><mo>)</mo></mrow></mrow>
<mo>=</mo>
<mrow><mo>[</mo><mn>-1</mn><mo>,</mo><mn>1</mn><mo>]</mo></mrow>
</mrow>
<mrow><mi>ln</mi><mo>⁡<!--ApplyFunction--></mo><mi>a</mi></mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
card
要素は, 集合の引数を受け取り, その濃度, すなわち, 集合の中の要素の数を返す濃度関数を表します. 集合の濃度は, 負でない整数または無限大の集合数です.
The card
element represents the cardinality function,
which takes a set argument and returns its cardinality, i.e. the
number of elements in the set. The cardinality of a set is a
non-negative integer, or an infinite cardinal number.
コンテントMathML
Content MathML
<apply><eq/>
<apply><card/><ci>A</ci></apply>
<cn>5</cn>
</apply>
表示例
Sample Presentation
<mrow>
<mrow><mo>|</mo><mi>A</mi><mo>|</mo></mrow>
<mo>=</mo>
<mn>5</mn>
</mrow>
<sin/>
,
<cos/>
,
<tan/>
,
<sec/>
,
<csc/>
,
<cot/>
,
<sinh/>
,
<cosh/>
,
<tanh/>
,
<sech/>
,
<csch/>
,
<coth/>
,
<arcsin/>
,
<arccos/>
,
<arctan/>
,
<arccosh/>
,
<arccot/>
,
<arccoth/>
,
<arccsc/>
,
<arccsch/>
,
<arcsec/>
,
<arcsech/>
,
<arcsinh/>
,
<arctanh/>
<sin/>
,
<cos/>
,
<tan/>
,
<sec/>
,
<csc/>
,
<cot/>
,
<sinh/>
,
<cosh/>
,
<tanh/>
,
<sech/>
,
<csch/>
,
<coth/>
,
<arcsin/>
,
<arccos/>
,
<arctan/>
,
<arccosh/>
,
<arccot/>
,
<arccoth/>
,
<arccsc/>
,
<arccsch/>
,
<arcsec/>
,
<arcsech/>
,
<arcsinh/>
,
<arctanh/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
これらの演算子要素は, 標準的な三角関数や双曲線関数やそれらの逆関数を意味します. これらの標準的な解釈は広く知られており, これらをひとまとめに議論します.
These operator elements denote the standard trigonometric and hyperbolic functions and their inverses. Since their standard interpretations are widely known, they are discussed as a group.
細かい定義は, これらの式が[DLMF], 第4章: 初等関数の定義に従うべきと評価する, 最も互換性のある適用方法に当てはまる逆関数の利用方法によります.
Differing definitions are in use for the inverse functions, so for maximum interoperability applications evaluating such expressions should follow the definitions in [DLMF], Chapter 4: Elementary Functions.
コンテントMathML
Content MathML
<apply><sin/><ci>x</ci></apply>
<apply><sin/>
<apply><plus/>
<apply><cos/><ci>x</ci></apply>
<apply><power/><ci>x</ci><cn>3</cn></apply>
</apply>
</apply>
<apply><arcsin/><ci>x</ci></apply>
<apply><sinh/><ci>x</ci></apply>
<apply><arcsinh/><ci>x</ci></apply>
表示例
Sample Presentation
<mrow><mi>sin</mi><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow>
<mrow>
<mi>sin</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo>(</mo>
<mrow><mi>cos</mi><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow>
<mo>+</mo>
<msup><mi>x</mi><mn>3</mn></msup>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mi>arcsin</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mi>x</mi>
</mrow>
<mtext> or </mtext>
<mrow>
<msup><mi>sin</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup>
<mo>⁡<!--ApplyFunction--></mo>
<mi>x</mi>
</mrow>
<mrow><mi>sinh</mi><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow>
<mrow>
<mi>arcsinh</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mi>x</mi>
</mrow>
<mtext> or </mtext>
<mrow>
<msup><mi>sinh</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup>
<mo>⁡<!--ApplyFunction--></mo>
<mi>x</mi>
</mrow>
<divergence/>
,
<grad/>
,
<curl/>
,
<laplacian/>
<divergence/>
,
<grad/>
,
<curl/>
,
<laplacian/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
divergence
要素は, しばしばdivと呼ばれるベクトル解析の発散演算子です. この要素は, スカラー値関数のベクトルであるべき, ベクトル値関数を意図した1つの引数を受け取り, その引数の発散を示すスカラー値を返す発散関数を表します.
The divergence
element is the vector calculus divergence
operator, often called div. It represents the divergence function
which takes one argument which should be a vector of scalar-valued
functions, intended to represent a vector-valued function, and returns
the scalar-valued function giving the divergence of the argument.
grad
要素は, しばしばgradと呼ばれるベクトル解析の勾配演算子です. この要素は, スカラー値関数であるべき1つの引数を受け取り, 関数のベクトルを返す勾配関数を表すのに利用されます.
The grad
element is the vector calculus gradient operator, often called
grad. It is used to represent the grad function, which takes one
argument which should be a scalar-valued function and returns a
vector of functions.
curl
要素は, ベクトル解析の回転関数を表すのに利用されます. この要素は, スカラー値関数のベクトルであるべき, ベクトル値関数の表現を意図した1つの引数を受け取り, 関数のベクトルを返します.
The curl
element is used to represent the curl function
of vector calculus. It takes one argument which should be a vector
of scalar-valued functions, intended to represent a vector-valued
function, and returns a vector of functions.
laplacian
要素は, ベクトル解析のラプラシアン演算子を表します. ラプラシアンは, ベクトル値関数を表す, スカラー値関数のベクトルである単独の引数を受け取り, 関数のベクトルを返します.
The laplacian
element represents the Laplacian operator of
vector calculus. The Laplacian takes a single argument which is a
vector of scalar-valued functions representing a vector-valued
function, and returns a vector of functions.
コンテントMathML
Content MathML
<apply><divergence/><ci>a</ci></apply>
<apply><divergence/>
<ci type="vector">E</ci>
</apply>
<apply><grad/><ci type="function">f</ci></apply>
<apply><curl/><ci>a</ci></apply>
<apply><laplacian/><ci type="vector">E</ci></apply>
表示例
Sample Presentation
<mrow><mi>div</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>a</mi><mo>)</mo></mrow></mrow>
<mrow><mi>div</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>E</mi><mo>)</mo></mrow></mrow>
<mtext> or </mtext>
<mrow><mo>∇</mo><mo>⋅</mo><mi>E</mi></mrow>
<mrow>
<mi>grad</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>f</mi><mo>)</mo></mrow>
</mrow>
<mtext> or </mtext>
<mrow>
<mo>∇</mo><mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>f</mi><mo>)</mo></mrow>
</mrow>
<mrow><mi>curl</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>a</mi><mo>)</mo></mrow></mrow>
<mtext> or </mtext>
<mrow><mo>∇</mo><mo>×</mo><mi>a</mi></mrow>
<mrow>
<msup><mo>∇</mo><mn>2</mn></msup>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>E</mi><mo>)</mo></mrow>
</mrow>
座標を定義する関数は, 座標の名前によって定義された式として, 明確に定義されてもよいです. その場合には, 座標の名前は, 束縛変数として提供されなければなりません.
The functions defining the coordinates may be defined implicitly as expressions defined in terms of the coordinate names, in which case the coordinate names must be provided as bound variables.
コンテントMathML
Content MathML
<apply><divergence/>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<bvar><ci>z</ci></bvar>
<vector>
<apply><plus/><ci>x</ci><ci>y</ci></apply>
<apply><plus/><ci>x</ci><ci>z</ci></apply>
<apply><plus/><ci>z</ci><ci>y</ci></apply>
</vector>
</apply>
<apply><grad/>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<bvar><ci>z</ci></bvar>
<apply><times/><ci>x</ci><ci>y</ci><ci>z</ci></apply>
</apply>
<apply><laplacian/>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<bvar><ci>z</ci></bvar>
<apply><ci>f</ci><ci>x</ci><ci>y</ci></apply>
</apply>
表示例
Sample Presentation
<mrow>
<mi>div</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mo>(</mo>
<mtable>
<mtr><mtd>
<mi>x</mi>
<mo>↦</mo>
<mrow><mi>x</mi><mo>+</mo><mi>y</mi></mrow>
</mtd></mtr>
<mtr><mtd>
<mi>y</mi>
<mo>↦</mo>
<mrow><mi>x</mi><mo>+</mo><mi>z</mi></mrow>
</mtd></mtr>
<mtr><mtd>
<mi>z</mi>
<mo>↦</mo>
<mrow><mi>z</mi><mo>+</mo><mi>y</mi></mrow>
</mtd></mtr>
</mtable>
<mo>)</mo>
</mrow>
<mrow>
<mi>grad</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo>(</mo>
<mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow>
<mo>↦</mo>
<mrow>
<mi>x</mi><mo>⁢<!--InvisibleTimes--></mo><mi>y</mi><mo>⁢<!--InvisibleTimes--></mo><mi>z</mi>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msup><mo>∇</mo><mn>2</mn></msup>
<mo>⁡<!--ApplyFunction--></mo>
<mrow>
<mo>(</mo>
<mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow>
<mo>↦</mo>
<mrow>
<mi>f</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
moment
要素は, データの集合または確率変数の, 集合のi次の積率を示すのに使われます. moment
関数は, degree
修飾要素とmomentabout
修飾要素を受け取ります. degree
構文が存在するなら, 積率の次数を意味します. 存在しなければ, 積率は, 1次の積率であると見なされます. moment
と一緒に利用される場合, degree
構文は, 1つの子要素を含むものとされています. momentabout
構文が存在するなら, 積率が適用される際の原点を意味します. 存在しなければ, 積率は0に対する積率と見なされます.
The moment
element is used to denote the ith moment of a set of data set or
random variable. The moment
function accepts the degree
and
momentabout
qualifiers. If present, the degree
schema denotes the order of
the moment. Otherwise, the moment is assumed to be the first order moment. When used
with
moment
, the degree
schema is expected to contain a
single child. If present, the momentabout
schema denotes the
point about which the moment is taken. Otherwise, the moment is
assumed to be the moment about zero.
コンテントMathML
Content MathML
<apply><moment/>
<degree><cn>3</cn></degree>
<momentabout><mean/></momentabout>
<cn>6</cn><cn>4</cn><cn>2</cn><cn>2</cn><cn>5</cn>
</apply>
<apply><moment/>
<degree><cn>3</cn></degree>
<momentabout><ci>p</ci></momentabout>
<ci>X</ci>
</apply>
表示例
Sample Presentation
<msub>
<mrow>
<mo>⟨</mo>
<msup>
<mrow>
<mo>(</mo>
<mn>6</mn><mo>,</mo>
<mn>4</mn><mo>,</mo>
<mn>2</mn><mo>,</mo>
<mn>2</mn><mo>,</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
<mn>3</mn>
</msup>
<mo>⟩</mo>
</mrow>
<mi>mean</mi>
</msub>
<msub>
<mrow>
<mo>⟨</mo>
<msup><mi>X</mi><mn>3</mn></msup>
<mo>⟩</mo>
</mrow>
<mi>p</mi>
</msub>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
log
要素は, 与えられた底に関係する対数関数を表します. logbase
修飾要素が存在するなら, 底を指定しています. そうでないならば, 底は10と見なされます.
The log
element represents the logarithm function
relative to a given base. When present, the logbase
qualifier specifies the base. Otherwise, the base is assumed to be 10.
コンテントMathML
Content MathML
<apply><log/>
<logbase><cn>3</cn></logbase>
<ci>x</ci>
</apply>
<apply><log/><ci>x</ci></apply>
表示例
Sample Presentation
<mrow><msub><mi>log</mi><mn>3</mn></msub><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow>
<mrow><mi>log</mi><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
int
要素は, 関数の定積分または不定積分, もしくは束縛変数を持つ式の定積分のための演算子要素です.
The int
element is the operator element for a definite or indefinite integral
over a function or a definite integral over an expression with a bound variable.
コンテントMathML
Content MathML
<apply><eq/>
<apply><int/><sin/></apply>
<cos/>
</apply>
<apply><int/>
<interval><ci>a</ci><ci>b</ci></interval>
<cos/>
</apply>
表示例
Sample Presentation
<mrow><mrow><mi>∫</mi><mi>sin</mi></mrow><mo>=</mo><mi>cos</mi></mrow>
<mrow>
<msubsup><mi>∫</mi><mi>a</mi><mi>b</mi></msubsup><mi>cos</mi>
</mrow>
int
要素は, 積分変数の役割を果たす束縛変数とも一緒に利用できます.
The int
element can also be used with bound variables serving as the
integration variables.
定積分は, 積分の範囲を指定する修飾要素を提供することで示されます. lowlimit
/uplimit
の組みは, おそらく定積分の最も標準的な
表現でしょう.
Definite integrals are indicated by providing qualifier elements specifying
a
domain of integration. A lowlimit
/uplimit
pair
is perhaps the most standard
representation of a definite integral.
コンテントMathML
Content MathML
<apply><int/>
<bvar><ci>x</ci></bvar>
<lowlimit><cn>0</cn></lowlimit>
<uplimit><cn>1</cn></uplimit>
<apply><power/><ci>x</ci><cn>2</cn></apply>
</apply>
表示例
Sample Presentation
<mrow>
<msubsup><mi>∫</mi><mn>0</mn><mn>1</mn></msubsup>
<msup><mi>x</mi><mn>2</mn></msup>
<mi>d</mi>
<mi>x</mi>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
diff
要素は, 単独の変数の関数または式に対する微分演算子要素です. この要素は, 元の関数の導関数である関数を示すことによって, 実際の関数に適用されたり, 単独の変数を含む式に適用されたりしてもよいです.
The diff
element is the differentiation operator element for functions or
expressions of a single variable. It may be applied directly to an actual function
thereby denoting a function which is the derivative of the original function, or it
can be
applied to an expression involving a single variable.
コンテントMathML
Content MathML
<apply><diff/><ci>f</ci></apply>
<apply><eq/>
<apply><diff/>
<bvar><ci>x</ci></bvar>
<apply><sin/><ci>x</ci></apply>
</apply>
<apply><cos/><ci>x</ci></apply>
</apply>
表示例
Sample Presentation
<msup><mi>f</mi><mo>′</mo></msup>
<mrow>
<mfrac>
<mrow><mi>d</mi><mrow><mi>sin</mi><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow></mrow>
<mrow><mi>d</mi><mi>x</mi></mrow>
</mfrac>
<mo>=</mo>
<mrow><mi>cos</mi><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow>
</mrow>
bvar
要素は, 適用される微分係数の階数を指定するdegree
要素を含んでもよいです.
The bvar
element may also contain a degree
element, which specifies
the order of the derivative to be taken.
コンテントMathML
Content MathML
<apply><diff/>
<bvar><ci>x</ci><degree><cn>2</cn></degree></bvar>
<apply><power/><ci>x</ci><cn>4</cn></apply>
</apply>
表示例
Sample Presentation
<mfrac>
<mrow>
<msup><mi>d</mi><mn>2</mn></msup>
<msup><mi>x</mi><mn>4</mn></msup>
</mrow>
<mrow><mi>d</mi><msup><mi>x</mi><mn>2</mn></msup></mrow>
</mfrac>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
partialdiff
要素は, 複数の変数の関数または式に対する偏微分演算子要素です.
The partialdiff
element is the partial differentiation operator element for
functions or expressions in several variables.
関数の偏微分の場合に, partialdiff
を含む式は2つの引数を使用します. 1つ目は, 関数の引数が偏微分を構築する中で, 含まれている順番によって示される指数の一覧です. 2つ目は 偏微分される実際の関数です. 指数は繰り返されてもよいです.
For the case of partial differentiation of a function, the
containing partialdiff
takes two arguments: firstly a list of
indices indicating by position which function arguments are involved in
constructing the partial derivatives, and secondly the actual function
to be partially differentiated. The indices may be repeated.
コンテントMathML
Content MathML
<apply><partialdiff/>
<list><cn>1</cn><cn>1</cn><cn>3</cn></list>
<ci type="function">f</ci>
</apply>
<apply><partialdiff/>
<list><cn>1</cn><cn>1</cn><cn>3</cn></list>
<lambda>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<bvar><ci>z</ci></bvar>
<apply><ci>f</ci><ci>x</ci><ci>y</ci><ci>z</ci></apply>
</lambda>
</apply>
表示例
Sample Presentation
<mrow>
<msub>
<mi>D</mi>
<mrow><mn>1</mn><mo>,</mo><mn>1</mn><mo>,</mo><mn>3</mn></mrow>
</msub>
<mi>f</mi>
</mrow>
<mfrac>
<mrow>
<msup><mo>∂</mo><mn>3</mn></msup>
<mrow>
<mi>f</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow>
</mrow>
</mrow>
<mrow>
<mrow><mo>∂</mo><msup><mi>x</mi><mn>2</mn></msup></mrow>
<mrow><mo>∂</mo><mi>z</mi></mrow>
</mrow>
</mfrac>
代数の式の場合, 囲っているapply
要素の子要素である, bvar
要素によって束縛変数が示されます. bvar
要素は, その変数で行われる偏微分の階数を表すdegree
要素を含んでもよいです.
In the case of algebraic expressions, the bound variables are given by bvar
elements, which are children of the containing apply
element. The bvar
elements may also contain degree
elements, which specify the order of the partial
derivative to be taken in that variable.
微分の階数の合計は指定されなければならず, このことは, 1番上の階層での, すなわち, どの関連するbvar
とでもなく, 囲っているapply
要素の子要素としての, degree
要素を利用して示されます.
Where a total degree of differentiation must be specified, this is
indicated by use of a degree
element at the top level,
i.e. without any associated bvar
, as a child of the
containing apply
element.
コンテントMathML
Content MathML
<apply><partialdiff/>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<apply><ci type="function">f</ci><ci>x</ci><ci>y</ci></apply>
</apply>
<apply><partialdiff/>
<bvar><ci>x</ci><degree><ci>m</ci></degree></bvar>
<bvar><ci>y</ci><degree><ci>n</ci></degree></bvar>
<degree><ci>k</ci></degree>
<apply><ci type="function">f</ci>
<ci>x</ci>
<ci>y</ci>
</apply>
</apply>
表示例
Sample Presentation
<mfrac>
<mrow>
<msup><mo>∂</mo><mn>2</mn></msup>
<mrow>
<mi>f</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow>
</mrow>
</mrow>
<mrow>
<mrow><mo>∂</mo><mi>x</mi></mrow>
<mrow><mo>∂</mo><mi>y</mi></mrow>
</mrow>
</mfrac>
<mfrac>
<mrow>
<msup><mo>∂</mo><mi>k</mi></msup>
<mrow>
<mi>f</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow>
</mrow>
</mrow>
<mrow>
<mrow><mo>∂</mo><msup><mi>x</mi><mi>m</mi></msup>
</mrow>
<mrow><mo>∂</mo><msup><mi>y</mi><mi>n</mi></msup></mrow>
</mrow>
</mfrac>
定数記号は, eや真値といった数学定数, また, 実数や整数といった集合の名前に関係します. 厳格なコンテントMathMLでは, それらは, 単純に算術定数や集合論定数の構文の表で一覧にされた対応する記号に書き換えられます.
Constant symbols relate to mathematical constants such as e and true and also to names of sets such as the Real Numbers, and Integers. In Strict Content MathML, they rewrite simply to the corresponding symbol listed in the syntax tables for Arithmetic Constants and Set Theory Constants.
<exponentiale/>
,
<imaginaryi/>
,
<notanumber/>
,
<true/>
,
<false/>
,
<pi/>
,
<eulergamma/>
,
<infinity/>
<exponentiale/>
,
<imaginaryi/>
,
<notanumber/>
,
<true/>
,
<false/>
,
<pi/>
,
<eulergamma/>
,
<infinity/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
要素<exponentiale/>
,
<imaginaryi/>
,
<notanumber/>
,
<true/>
,
<false/>
,
<pi/>
,
<eulergamma/>
,
<infinity/>
はそれぞれ次のものを表します.
およそ2.718である自然対数の底,
一般にiと書かれる-1の平方根,
非数, すなわち不良設定の浮動小数点演算の結果([IEEE754]参照),
ブール値の真値,
ブール値の偽値,
およそ3.142であり, 円周と直径の比である円周率(π),
およそ0.5772であるオイラーの定数(γ),
無限大(∞).
The elements
<exponentiale/>
,
<imaginaryi/>
,
<notanumber/>
,
<true/>
,
<false/>
,
<pi/>
,
<eulergamma/>
,
<infinity/>
represent respectively:
the base of the natural logarithm, approximately 2.718;
the square root of -1, commonly written i;
not-a-number, i.e. the result of an ill-posed floating point computation (see [IEEE754]);
the Boolean value true;
the Boolean value false;
pi (π), approximately 3.142, which is the ratio of the circumference of a circle to its diameter;
the gamma constant (γ), approximately 0.5772;
infinity (∞).
コンテントMathML
Content MathML
<apply><eq/><apply><ln/><exponentiale/></apply><cn>1</cn></apply>
<apply><eq/><apply><power/><imaginaryi/><cn>2</cn></apply><cn>-1</cn></apply>
<apply><eq/><apply><divide/><cn>0</cn><cn>0</cn></apply><notanumber/></apply>
<apply><eq/><apply><or/><true/><ci type="boolean">P</ci></apply><true/></apply>
<apply><eq/><apply><and/><false/><ci type="boolean">P</ci></apply><false/></apply>
<apply><approx/><pi/><cn type="rational">22<sep/>7</cn></apply>
<apply><approx/><eulergamma/><cn>0.5772156649</cn></apply>
<infinity/>
表示例
Sample Presentation
<mrow>
<mrow><mi>ln</mi><mo>⁡<!--ApplyFunction--></mo><mi>e</mi></mrow>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow><msup><mi>i</mi><mn>2</mn></msup><mo>=</mo><mn>-1</mn></mrow>
<mrow>
<mrow><mn>0</mn><mo>/</mo><mn>0</mn></mrow>
<mo>=</mo>
<mi>NaN</mi>
</mrow>
<mrow>
<mrow><mi>true</mi><mo>∨</mo><mi>P</mi></mrow>
<mo>=</mo>
<mi>true</mi>
</mrow>
<mrow>
<mrow><mi>false</mi><mo>∧</mo><mi>P</mi></mrow>
<mo>=</mo>
<mi>false</mi>
</mrow>
<mrow>
<mi>π</mi>
<mo>≃</mo>
<mrow><mn>22</mn><mo>/</mo><mn>7</mn></mrow>
</mrow>
<mrow>
<mi>γ</mi><mo>≃</mo><mn>0.5772156649</mn>
</mrow>
<mi>∞</mi>
<integers/>
,
<reals/>
,
<rationals/>
,
<naturalnumbers/>
,
<complexes/>
,
<primes/>
,
<emptyset/>
<integers/>
,
<reals/>
,
<rationals/>
,
<naturalnumbers/>
,
<complexes/>
,
<primes/>
,
<emptyset/>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
これらのの要素は, 標準的な数の集合である, 整数, 実数, 有理数, (ゼロを含む)自然数, 複素数, 素数の集合と空集合を表します.
These elements represent the standard number sets, Integers, Reals, Rationals, Natural Numbers (including zero), Complex Numbers, Prime Numbers, and the Empty Set.
コンテントMathML
Content MathML
<apply><in/><cn type="integer">42</cn><integers/></apply>
<apply><in/><cn type="real">44.997</cn><reals/></apply>
<apply><in/><cn type="rational">22<sep/>7</cn><rationals/></apply>
<apply><in/><cn type="integer">1729</cn><naturalnumbers/></apply>
<apply><in/><cn type="complex-cartesian">17<sep/>29</cn><complexes/></apply>
<apply><in/><cn type="integer">17</cn><primes/></apply>
<apply><neq/><integers/><emptyset/></apply>
表示例
Sample Presentation
<mrow><mn>42</mn><mo>∈</mo><mi mathvariant="double-struck">Z</mi></mrow>
<mrow>
<mn>44.997</mn><mo>∈</mo><mi mathvariant="double-struck">R</mi>
</mrow>
<mrow>
<mrow><mn>22</mn><mo>/</mo><mn>7</mn></mrow>
<mo>∈</mo>
<mi mathvariant="double-struck">Q</mi>
</mrow>
<mrow>
<mn>1729</mn><mo>∈</mo><mi mathvariant="double-struck">N</mi>
</mrow>
<mrow>
<mrow><mn>17</mn><mo>+</mo><mn>29</mn><mo>⁢<!--InvisibleTimes--></mo><mi>i</mi></mrow>
<mo>∈</mo>
<mi mathvariant="double-struck">C</mi>
</mrow>
<mrow><mn>17</mn><mo>∈</mo><mi mathvariant="double-struck">P</mi></mrow>
<mrow>
<mi mathvariant="double-struck">Z</mi><mo>≠</mo><mi>∅</mi>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
forall
要素と<exists/>
要素は, 1つ以上の束縛変数と量化された主張を指定する引数から成る全称記号(全ての
)と存在記号(存在する
)の量化記号を表します. 加えて, condition
または他の修飾要素が, 束縛変数の定義域を制限するために利用されてもよいです.
The forall
and <exists/>
elements represent the universal (for all
) and existential (there exists
)
quantifiers which take one or more bound variables, and an
argument which specifies the assertion being quantified.
In addition, condition
or other qualifiers may be used to limit the domain
of the bound variables.
コンテントMathML
Content MathML
<bind><forall/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><minus/><ci>x</ci><ci>x</ci></apply>
<cn>0</cn>
</apply>
</bind>
表示例
Sample Presentation
<mrow>
<mo>∀</mo>
<mi>x</mi>
<mo>.</mo>
<mrow>
<mo>(</mo>
<mrow>
<mrow><mi>x</mi><mo>−</mo><mi>x</mi></mrow>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
コンテントMathML
Content MathML
<bind><exists/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><ci>f</ci><ci>x</ci></apply>
<cn>0</cn>
</apply>
</bind>
表示例
Sample Presentation
<mrow>
<mo>∃</mo>
<mi>x</mi>
<mo>.</mo>
<mrow>
<mo>(</mo>
<mrow>
<mrow><mi>f</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
コンテントMathML
Content MathML
<apply><exists/>
<bvar><ci>x</ci></bvar>
<domainofapplication>
<integers/>
</domainofapplication>
<apply><eq/>
<apply><ci>f</ci><ci>x</ci></apply>
<cn>0</cn>
</apply>
</apply>
Strict MathML equivalent:
<bind><csymbol cd="quant1">exists</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="set1">in</csymbol>
<ci>x</ci>
<csymbol cd="setname1">Z</csymbol>
</apply>
<apply><csymbol cd="relation1">eq</csymbol>
<apply><ci>f</ci><ci>x</ci></apply>
<cn>0</cn>
</apply>
</apply>
</bind>
表示例
Sample Presentation
<mrow>
<mo>∃</mo>
<mi>x</mi>
<mo>.</mo>
<mrow>
<mo>(</mo>
<mrow><mi>x</mi><mo>∈</mo><mi mathvariant="double-struck">Z</mi></mrow>
<mo>∧</mo>
<mrow>
<mrow><mi>f</mi><mo>⁡<!--ApplyFunction--></mo><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
lambda
要素は, 式, 束縛変数, 修飾要素から利用者が定義した関数を構築するのに使われます. (0個でも良い)n個の束縛変数から構築されるラムダ式において, 最初のn個の子要素は, 実際の関数の値である最後の子要素における, 仮引数として使われる変数を指定するbvar
要素です. 束縛変数は, 必須でないdomainofapplication
修飾要素か, その簡潔な表記によって制限できます. lambda
構造の意味するところは, 束縛変数で各引数を置き換えた, 最後の子要素の中の式を返すn項の演算子です.
The lambda
element is used to construct a user-defined
function from an expression, bound variables, and qualifiers. In a
lambda construct with n (possibly 0) bound variables, the
first n children are bvar
elements that identify
the variables that are used as placeholders in the last child for
actual parameter values. The bound variables can be restricted by an
optional domainofapplication
qualifier or one of its
shorthand
notations. The meaning of the lambda
construct is an
n-ary function that returns the expression in the last
child where the bound variables are replaced with the respective
arguments.
domainofapplication
子要素は, 構築された関数の結果の取り得る値を制限します. 実際のところ, 次のlambda
構造は, 整数の関数を表しています.
The domainofapplication
child restricts the possible
values of the arguments of the constructed function. For instance, the
following lambda
construct represents a function on
the integers.
<lambda>
<bvar><ci> x </ci></bvar>
<domainofapplication><integers/></domainofapplication>
<apply><sin/><ci> x </ci></apply>
</lambda>
lambda
構造が束縛変数を含んでいない場合, そのlambda
構造は, domainofapplication
構造を含んでいない限り必要なく, 取り除かれてもよいです. その場合, lambda
構造の最後の子要素は, それ自身が関数で, 上の関数の別の表現である次の例のように, domainofapplication
がその機能的な式を制限します.
If a lambda
construct does not contain bound variables, then
the lambda
construct is superfluous and may be removed,
unless it also contains a domainofapplication
construct.
In that case, if the last child of the lambda
construct is
itself a function, then the domainofapplication
restricts
its existing functional arguments, as in this example, which is
a variant representation for the function above.
<lambda>
<domainofapplication><integers/></domainofapplication>
<sin/>
</lambda>
そうでない場合, lambda
構造の最後の子要素は, 関数ではなく数字と見なされ, lambda
構造は関数ではなく, 一定の数字で, どのdomainofapplication
も無視されます.
Otherwise, if the last child of the lambda
construct is not a
function, say a number, then the lambda
construct will not be
a function, but the same number, and any domainofapplication
is ignored.
コンテントMathML
Content MathML
<lambda>
<bvar><ci>x</ci></bvar>
<apply><sin/>
<apply><plus/><ci>x</ci><cn>1</cn></apply>
</apply>
</lambda>
表示例
Sample Presentation
<mrow>
<mi>λ</mi>
<mi>x</mi>
<mo>.</mo>
<mrow>
<mo>(</mo>
<mrow>
<mi>sin</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
<mtext> or </mtext>
<mrow>
<mi>x</mi>
<mo>↦</mo>
<mrow>
<mi>sin</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow>
</mrow>
</mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
interval
要素は, 実数の数直線の単純な範囲を表すのに用いられる入れ物要素です. この要素は, 必須でない属性closure
を持ちます. この属性は, open
, closed
, open-closed
, closed-open
のいずれかの値を持ち, 既定値がclosed
です.
The interval
element is a container element used to represent simple mathematical intervals of the
real number line. It takes an optional attribute closure
, which can take any of the values open
, closed
, open-closed
, or closed-open
, with a default value
of closed
.
4.3.3.1 <domainofapplication>
, <interval>
, <condition>
, <lowlimit>
, <uplimit>
の利用で述べた通り, interval
は, bvar
のすぐ後に続くなら修飾要素として解釈されます.
As described
in 4.3.3.1 Uses of
<domainofapplication>
,
<interval>
,
<condition>
,
<lowlimit>
and
<uplimit>
, interval
is interpreted as a qualifier if it immediately
follows bvar
.
コンテントMathML
Content MathML
<interval closure="open"><ci>x</ci><cn>1</cn></interval>
<interval closure="closed"><cn>0</cn><cn>1</cn></interval>
<interval closure="open-closed"><cn>0</cn><cn>1</cn></interval>
<interval closure="closed-open"><cn>0</cn><cn>1</cn></interval>
表示例
Sample Presentation
<mrow><mo>(</mo><mi>x</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow>
<mrow><mo>[</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>]</mo></mrow>
<mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>]</mo></mrow>
<mrow><mo>[</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
limit
要素は, 一連のものの極限を取る操作を表します. 極限点は, lowlimit
とbvar
を指定するか, condition
と1つ以上の束縛変数を指定することで表されます.
The limit
element represents the operation of taking a limit of a
sequence. The limit point is expressed by specifying a lowlimit
and a
bvar
, or by specifying a condition
on one or more bound variables.
極限値に近付ける方向は, 厳格なコンテントMathMLでは, 方向指定要素both_sides, above, belowを提供する引数limitとして示されます. これらは, tendsto
要素のtype
属性の値all
, above
, below
に対応します. null記号は, 何もtype
属性がない場合に対応します.
The direction from which a limiting value is approached is given as an argument
limit in Strict Content MathML, which supplies the
direction specifier symbols both_sides, above, and below for this
purpose. The first correspond to the values all
, above
,
and below
of the type
attribute of the tendsto
element. The null symbol corresponds to the case
where no type
attribute is present.
コンテントMathML
Content MathML
<apply><limit/>
<bvar><ci>x</ci></bvar>
<lowlimit><cn>0</cn></lowlimit>
<apply><sin/><ci>x</ci></apply>
</apply>
<apply><limit/>
<bvar><ci>x</ci></bvar>
<condition>
<apply><tendsto/><ci>x</ci><cn>0</cn></apply>
</condition>
<apply><sin/><ci>x</ci></apply>
</apply>
<apply><limit/>
<bvar><ci>x</ci></bvar>
<condition>
<apply><tendsto type="above"/><ci>x</ci><ci>a</ci></apply>
</condition>
<apply><sin/><ci>x</ci></apply>
</apply>
表示例
Sample Presentation
<mrow>
<munder>
<mi>lim</mi>
<mrow><mi>x</mi><mo>→</mo><mn>0</mn></mrow>
</munder>
<mrow><mi>sin</mi><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow>
</mrow>
<mrow>
<munder>
<mi>lim</mi>
<mrow><mi>x</mi><mo>→</mo><mn>0</mn></mrow>
</munder>
<mrow><mi>sin</mi><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow>
</mrow>
<mrow>
<munder>
<mi>lim</mi>
<mrow><mi>x</mi><mo>→</mo><msup><mi>a</mi><mo>+</mo></msup></mrow>
</munder>
<mrow><mi>sin</mi><mo>⁡<!--ApplyFunction--></mo><mi>x</mi></mrow>
</mrow>
<piecewise>
, <piece>
, <otherwise>
<piecewise>
, <piece>
, <otherwise>
演算子の構文,
スキーマの種類
Operator Syntax, Schema Class
piecewise
要素, piece
要素, otherwise
要素は, xが0未満のときH(x) = 0, それ以外のときH(x) = 1
という形の区分的
関数の定義を表す場合に使用されます.
The piecewise
, piece
, and otherwise
elements are used to
represent piecewise
function definitions of the form H(x) = 0 if x less than 0, H(x) = 1
otherwise
.
宣言は, piecewise
要素を用いて構築されます. この宣言は, 0個以上のpiece
要素と必須でない1個のotherwise
要素を含みます. 各piece
要素は, ちょうど2つの子要素を含みます. 最初の子要素は, 関連付けられた2番目のpiece
子要素で指定された条件が真値の場合に, piecewise
の式が返す値を定義します. 1つもpiece
要素やotherwise
要素がない退化した状況では, 定義域の全ての値に対し定義されていないものとして扱われます.
The declaration is constructed using the piecewise
element. This contains
zero or more piece
elements, and optionally one otherwise
element. Each
piece
element contains exactly two children. The first child defines the value
taken by the piecewise
expression when the condition specified in the associated
second child of the piece
is true. The degenerate case of no piece
elements and no otherwise
element is treated as undefined for all values of the
domain.
otherwise
要素は, どの条件(piece
要素の2番目の子要素)も真値でない場合にpiecewise
関数が返す値, すなわち既定値の指定を認めています.
The otherwise
element allows the specification of a value to be taken by the
piecewise
function when none of the conditions (second child elements of the
piece
elements) is true, i.e. a default value.
実行の順序
は, piecewise
の中のpiece
子要素の順番によって何ら決められないことに注意すべきです. piece
要素の2番目の子要素によって定義される関数の定義域がばらばらであることを, 確かなものにすることは利用者の責任です. また, それらが重なっていたとき, 一致する最初のpiece
要素の子要素の値が使用されます. そうでない状況の場合, 式の意味は定義されていません.
It should be noted that no order of execution
is implied by the
ordering of the piece
child elements within piecewise
. It is the
responsibility of the author to ensure that the subsets of the function domain defined
by
the second children of the piece
elements are disjoint, or that, where they
overlap, the values of the corresponding first children of the piece
elements
coincide. If this is not the case, the meaning of the expression is
undefined.
コンテントMathML
Content MathML
<piecewise>
<piece>
<apply><minus/><ci>x</ci></apply>
<apply><lt/><ci>x</ci><cn>0</cn></apply>
</piece>
<piece>
<cn>0</cn>
<apply><eq/><ci>x</ci><cn>0</cn></apply>
</piece>
<piece>
<ci>x</ci>
<apply><gt/><ci>x</ci><cn>0</cn></apply>
</piece>
</piecewise>
表示例
Sample Presentation
<mrow>
<mo>{</mo>
<mtable>
<mtr>
<mtd><mrow><mo>−</mo><mi>x</mi></mrow></mtd>
<mtd columnalign="left"><mtext>  if  </mtext></mtd>
<mtd><mrow><mi>x</mi><mo><</mo><mn>0</mn></mrow></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd columnalign="left"><mtext>  if  </mtext></mtd>
<mtd><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow></mtd>
</mtr>
<mtr>
<mtd><mi>x</mi></mtd>
<mtd columnalign="left"><mtext>  if  </mtext></mtd>
<mtd><mrow><mi>x</mi><mo>></mo><mn>0</mn></mrow></mtd>
</mtr>
</mtable>
</mrow>
課題255
Issue 255
課題254
Issue 254
付加情報は, 式の代替表現の間を結び付けるために加えられたマークアップに関係します. 多様な付加情報を, semantics
要素を使用してお互いに結び付けることができます. お互いに結び付けられる2つの重要な表現は, プレゼンテーションマークアップとコンテントマークアップです. semantics
の他の利用方法は, 式の独自のソースコード表現とプレゼンテーションMathMLまたはコンテントMathMLを結び付けることを含みます. 5.2 付加情報要素が, semantics
要素について説明しています.
Annotation refers to markup added to
make associations between alternate representations of an expression.
Multiple annotations can be associated with each other using the
semantics
element.
Two important representations that can be associated with each other are
presentation markup and content markup. Other uses of semantics
include associating the original source representation of an expression with presentation or content MathML.
5.2 Annotation Elements describes the semantics
element.
MathMLは, 支援技術(AT)によって広く採用されてきました. ただし, 数学表記は, ATが状況によって何と音読されるべきか推測するに当たってあいまいでしょう. MathML4は, 著者らのために意図を表現する軽量な方法intent
属性を加えます. この属性は, 重要な相違はあるもののaria-label
属性と類似しています. アクセシビリティの観点から, 主要な違いは, intent
はブレイユ点字の生成に影響を与えないことです. ほとんどの言語は, 音読するための言葉が点字の生成から影響を受けるべきでないことから, 数学に対する別個の点字コードを持っています. 言語によっては, 例えば英語のように, 複数の数学用点字コードを持っていて, 音読ソフトウェアがどれを望んでいるか知ることが著者にとって不可能なものもあります. したがって, 著者が要素に対する(数学用)点字を知っていたとしても, 音読ソフトウェアはどのコードが使われているか分からないため, 提案されたaria-braillelabelを使用してaria-label
を上書きすることができません.
MathML has been widely adopted by assistive technologies (AT).
However, math notations can be ambiguous which can result in AT guessing at what should be spoken in some cases.
MathML 4 adds a lightweight method for authors to express their intent: the intent
attribute.
This attribute is similar to the aria-label
attribute
with some important distinctions.
In terms of accessibility, the major difference is that intent
does not affect braille generation.
Most languages have a separate braille code for math so that the words used for speech should not be affected by braille generation.
Some languages, such as English, have more than one braille math code and it is impossible for the author to know which is desired by the reader.
Hence, even if the author knew the (math) braille for the element, they could not override aria-label
by using the proposed aria-braillelabel because they wouldn't know which code to use.
2.1.6 全てのMathML要素で利用できる属性で述べたように, MathML要素は, 指定された用語のintent
(訳注:"意図"の意味)を持つことのできる属性intent
とarg
を持つことができます. この付加情報は, 用語の完全な数学的定義を提供することを意味しません. その付加情報は, 第一にATが音声表現や点字表現を生成することを手助けすることを意味しており, C. MathMLアクセシビリティを参照して下さい. それでも, その付加情報は, コンテントMathMLまたは数式システムへの変換を導くのにも使い勝手がよいでしょう.
As described in 2.1.6 Attributes Shared by all MathML Elements,
MathML elements allow attributes intent
and arg
that allow the
intent
of the term to be specified. This
annotation is not meant to provide a full mathematical definition
of the term. It is primarily meant to help AT generate audio and/or braille renderings, see C. MathML Accessibility.
Nevertheless, it may also be useful to guide translations to Content MathML, or computational systems.
intent
属性は, 意図する読み方を表現する簡単で機能的な構文をコード化します. 正式な文法は後で示しますが, 典型的な例は, 次のような文脈で使われるintent="power($base,$exponent)"
でしょう.
The intent
attribute encodes a
simple functional syntax representing the intended speech.
A formal grammar is given below, but a typical example would be
intent="power($base,$exponent)"
used in a context such as:
<msup intent="power($base,$exp)">
<mi arg="base">x</mi>
<mi arg="exp">n</mi>
</msup>
power($base,$exp)
というintent
の値は, この式が他のたくさんの上付き添え字の意味とは対称的に, 指数を意味すると著者が意図していることを明確にします. 指数はATに知られた概念であろうことから, ATは, 文脈や引数や他の詳細な部分に頼って違った音読方法を選んでもよいです. 例えば, 上記の式は, "x to the power n"(訳注:"xのn乗"の意味)と読まれるでしょうが, "n"の代わりに"2"が与えられた場合, "x squared"(訳注:"xの平方"の意味)と読まれてもよいです.
The intent
value of power($base,$exp)
makes it clear that the author intends that this expression
denotes exponentiation as opposed to one of many other meanings of superscripts.
Since power will be a concept known to the AT, it may choose different
ways of speaking depending on context, arguments or other details.
For example, the above expression might be spoken as "x to the power n",
but if "2" were given instead of "n", it may say "x squared".
intent
属性の値は, 素子の間の空白を無視した後, 次の文法に一致すべきです.
The value of the intent
attribute, after ignoring white
space between tokens, should match the following grammar.
intent := concept-or-literal | number | reference | application
concept-or-literal := NCName
number := '-'? digit+ ( '.' digit+ )?
reference := '$' NCName
application := intent hint? '(' arguments? ')'
arguments := intent ( ',' intent )*
hint := '@' ( 'prefix' | 'infix' | 'postfix' | 'function' | 'silent' )
ここで, NCName
は, [名前空間]で定義されたもので, digit
は, 0-9の範囲の文字です.
Here NCName
is as defined in in [xml-names], and digit
is a character in the range 0–9.
部分部分は, 次のものから構成されています.
The parts consist of:
NCName
生成物に一致すべきです. concept-or-literalは, conceptまたはliteralのいずれかとして解釈されます.
NCName
production as used for
no-namespace element name.
A concept-or-literal are interpreted either as a concept or literal.conceptは, 数学的またはソフトウェア特有の関数または概念に相当します. たくさんの概念に対し, 概念を音読するために使われる言葉は, 概念を参照するときに使われる名前にとても似ています. conceptは, intent概念辞書により与えられた音読の助言に基づく特定の音声または点字表現を提供するために, ATによって受け入れられた辞書の名前に一致します.
A concept corresponds to some mathematical or application specific function or concept. For many concepts, the words used to speak a concept are very similar to the name used when referencing a concept. A concept matches a name in an Intent Concept Dictionary recognized by the AT, to produce specific audio or braille renderings based on the speech hints given in the dictionary.
literalは, conceptの名前に一致しないソフトウェアによって知られている名前です. この場合, 通常の読み方は, 名前の中の何らかの-
, _
, .
を空白で置き換え, 結果として生じた言葉を読むことで生み出されます.
(U+00F5)で始まる名前は, 常にliteralと見なされ, 決してintent概念辞書の中に入るべきではありません._
A literal is a name that does not match a concept
name known to the application. In this case, a default reading is generated by replacing any
-
, _
, .
in the name by
spaces and then reading the resulting phrase.
Names starting with
(U+00F5) are always considered to be literal names,
and should never be in an Intent Concept Dictionary._
2.5
のような文字列numberは, それ自身を意味します.
2.5
denotes itself.$name
のような引数referenceは, 属性arg="name"
をもつ子孫要素を参照します. id
属性と違って, arg
は文書の中で唯一のものである必要はありません. 一致する要素を探索する場合は, 探索は, intent
属性またはarg
属性の組を持つ何らかの要素で早めに止まったとしても, それらを対象とせずに子孫要素のみを対象とすべきです. referenceの適切な利用は, 同じ文字列を挿入する代わりに, 数学構造をあちこち探索する際にintentを利用することを認めます.
$name
refers to a descendent element
that has an attribute arg="name"
. Unlike id
attributes, arg
do not have to be
unique within a document. When searching for a matching element the
search should only consider descendants, while stopping early at any
elements that have a set intent
or
arg
attribute, without descending
into them.
Proper use of reference, instead of inserting equivalent literals,
allows intent to be used while navigating the mathematical structure.prefix
, infix
, postfix
というhintは, 表示された数学表記の中で使われる(必然的な)順番によらずに, 名前と引数の音読される言葉の順番を表すことに注意して下さい.
prefix
, infix
and postfix
refer to the spoken word order of the name and arguments,
and not (necessarily) the order used in the displayed mathematical notation.union
(訳注:"和集合"の意味)は, "$1 union $2"(訳注:"$1和集合$2"の意味)や"union of $1 and $2"(訳注:"$1と$2の和集合"の意味)という音読形式でCore辞書にあります. union @prefix ($a,$b)
というintentは, 後者の形式が適切であることを意図しています.
union
is in the
Core dictionary with speech patterns "$1 union $2" and "union of $1 and $2".
An intent union @prefix ($a,$b)
would
indicate that the latter style is preferred.f @prefix ($x)
: f x
f @infix ($x,y)
: x f y
f @postix ($x)
: x f
f @function ($x, $y)
: f of x and y(訳注:"xとyのf"の意味)
f @silent ($x,$y)
: x y
f@function($x, $y)
は, f of x comma y(訳注:"xコンマyのf"の意味)と音読されることもあるでしょう.
f@function($x, $y)
could also be spoken as
f of x comma y.
intent概念辞書は, conceptの名前と, 概念に対する特定の音声や点字を対応させます. 対応は, 音声に続く何らかのhintに注意して行われます. intent
を利用するATは, 後で論じるCore一覧の中の概念の何かに一致する音声や点字を提供できるようにすべきです. また, intent
を使用するATは, 後で論じるOpen一覧の中の概念やAT独自の辞書の概念も含んでもよいです.
An Intent Concept Dictionary is a mapping from a concept name
to specific speech or braille for that concept.
The mapping may take into account any hint that follows the name.
AT that makes use of intent
SHOULD be able to produce speech or braille that corresponds to any
of the concepts in the Core table discussed below.
AT that makes use of intent
MAY also include concepts in the Open table discussed below,
as well as its own built-in dictionaries.
intent概念辞書は, 描画ソフトウェアが知っているべき既定値の集合を提供する点で, MathML描画ソフトウェアで用いられるB. 演算子辞書にやや類似しています. hint
も, 演算子辞書のform
の利用方法と類似性を持っている点があります.
The Intent Concept Dictionary is somewhat analogous to the B. Operator Dictionary used by
MathML renderers in that it provides a set of defaults renderers should be aware of.
The hint
also has some analogies to the operator dictionary's use of
form
.
課題410
Issue 410
intent識別子は, 現在Googleのシートにある2つの一覧で管理されています.
Intent identifiers are maintained in two lists, currently located at Google Sheets.
divide(訳注:"割る"の意味),
power(訳注:"累乗"の意味),
greater-than(訳注:"大なり"の意味)といった一般的な概念を含んでいます. この一覧の名前であると考えられるMathMLを音読するATは, その名前を, どのように中身を音読するかの助言と見なすべきです. ただし, 一般的な表記には音読されるたくさんの特別な方法を持っていることから(例えば,
<mfrac intent="divide($num,$denom)>
の中身に対して, three quarters(訳注:"4分の3"の意味),
x over three(訳注:"3分のx"の意味),
3 meters per second(訳注:"毎秒3メートル"の意味)と読まれるかもしれないので), ATは, 与えられた名前を使用することを強いられません. 音読ソフトウェアに依存しながら, ATは, 聞き手に分かりやすい音読とするために, 言葉や音声を加えてもよいです. 例えば, 分数を見ることができない人に対して, ATは,
fraction x over three end fraction(訳注:"分数3分のx分数終わり"の意味)と読むかもしれず, そのことで聞き手は, 正確に何が分数の部分なのか理解するでしょう. 中身を見ることができる人に対しては, それらの追加の言葉は邪魔者になるでしょう. ATは, 利用される集団で適切な音声データをいつでも提供すべきです.
divide,
power, and
greater-than. AT reading MathML attributed with a name in this list SHOULD consider this name to be a hint how the content could be read. However, because common notations have many specialized ways of being spoken (e.g., for division, one might say
three quarters,
x over three, or
3 meters per seconddepending one the contents of
<mfrac intent="divide($num,$denom)>
),
AT is not constrained to use the name given.
Depending upon the reader, AT may add words or sounds to make the speech clearer to the listener.
For example, for someone who can not see the a fraction, AT might say fraction x over three end fractionso the listener knows exactly what is part of the fraction. For someone who can see the content, these extra words can be a distraction. AT should always produce speech that is appropriate to the community they serve.
NCName
である何らかの文字が利用可能です.
NCName
is allowed.conceptの一覧の将来版は, 利用法が適切であると示されたならopen
の一覧からcore
の一覧に名前を編入してもよいです.
Future versions of the concept list may incorporate names from the open
list into the
core
list if usage indicates that is appropriate.
intent
属性内の文字列であるconceptの名前と, intentの一覧の項目を比較する場合, 比較は, 大文字・小文字を区別せずに, また,
(U+00F5)と_
(U+002E)を.
(U+002D)に標準化して行われるべきです. 音読の助言が利用できない場合, 文字列であるconceptの名前が音読されるときは, それぞれの-
-
, _
, .
を単語間の空白として音読すべきです.
When comparing the literal concept name in the intent
attribute with entries in the intent
lists, the comparison should be
ASCII case-insensitive
and also normalize
(U+00F5) and _
(U+002E) to .
(U+002D).
If the speech hints are not being used
and the literal concept name is being read then each of -
-
, _
and .
should be
read as an inter-word space.
intent
の第一の使用方法は, 同じ構文が違う意味を持っていたり, 典型的に違う音読方法を持っていたりする場合のあいまいさを除くことです.
A primary use for intent
is to
disambiguate cases where the same syntax is used for different meanings,
and typically has different readings.
上付き添え字msup
は, 累乗, 転置, 微分, 修飾された記号を表してもよいです. これらの状況は, intent
の有る無しによって利用可能な音声データを示すと, 次のように区別されるでしょう.
Superscript, msup
, may represent a power, a transpose,
a derivative or an embellished symbol. These cases would be distinguished as follows, showing possible readings with and without intent
<msup intent="power($base,$exp)">
<mi arg="base">x</mi>
<mi arg="exp">n</mi>
</msup>
x to the n-th power(訳注:"xのn乗"の意味)
x superscript n end superscript(訳注:"x上付き添え字n上付き添え字終わり"の意味)
intent無しの代替の通常の表現は, msup
が常に累乗と想定することで, そのため, 上記の2つ目の表現もx to the n-th power
かもしれません. その場合, 下記の2番目の表現は, (間違って)raised to the ... power
(訳注:"...乗まで累乗する"の意味)を用いて例を音読されるでしょう.
An alternative default rendering without intent would be to assume that
msup
is always a power, so the second rendering above
might also be x to the n-th power
. In that case the second renderings below
will (incorrectly) speak the examples using raised to the ... power
.
<msup intent="$op($a)">
<mi arg="a">A</mi>
<mi arg="op" intent="transpose">T</mi>
</msup>
transpose of A(訳注:"Aの転置行列"の意味)
A superscript T end superscript (訳注:"A上付き添え字T上付き添え字終わり"の意味)
ただし, hintを用いることで, この例は上記とは違うように音読されるかもしれません.
However, with a hint, this example might be read differently.
<msup intent="$op @postfix ($a)">
<mi arg="a">A</mi>
<mi arg="op" intent="transpose">T</mi>
</msup>
A transpose(訳注:"Aの転置行列"の意味)
<msup intent="derivative($a)">
<mi arg="a">f</mi>
<mi>′</mi>
</msup>
derivative of f(訳注:"fの微分"の意味)
f superscript prime end superscript(訳注:"f上付き添え字プライム上付き添え字終わり"の意味)
<msup intent="x-prime">
<mi>x</mi>
<mo>′</mo>
</msup>
x prime(訳注:"xプライム"の意味)
f superscript prime end superscript(訳注:"f上付き添え字プライム上付き添え字終わり"の意味)
同様に, 上線は, 共役複素数を表現しても, 平均(訳注:原文では"mean"と"average"ですが, どちらも日本語では平均)を表現してもよいです. また一方で, intent
の有る無しによって可能性のある音読表現は次のとおりです.
Similarly an over bar may represent complex conjugation, or mean (average), again with possible readings with and without intent
:
<mover intent="conjugate($v)">
<mi arg="v">z</mi>
<mo>¯</mo>
</mover>
<mtext> <!--nbsp-->is not <!--nbsp--></mtext>
<mover intent="mean($var)">
<mi arg="var">X</mi>
<mo>¯</mo>
</mover>
conjugate of z is not mean of X(訳注:"zの共役複素数はXの平均ではありません"の意味)
z with bar above is not X with bar above(訳注:"上線付きzは上線付きXではありません"の意味)
intentの仕組みは, literalの名前を利用して拡張できます. 例えば, ベル数は概念辞書に存在しないと想定されるので, 次の例のとおりです.
The intent mechanism is extensible through the use of literal names. For example, assuming that the Bell Number is not present in any the dictionaries, the following example
<msub intent="bell-number($index)">
<mi>B</mi>
<mn arg="index">2</mn>
</msub>
この式は, 次の期待された音読法を依然として提供するでしょう.
will still produce the expected reading:
bell number of 2(訳注:"2のベル数"の意味)
literalとhintの機能は, 定義済の概念辞書を超えて, 数学概念の範囲を拡張し, 音読の好みの表現を可能にします. 例えば, それぞれ<mi arg="x">x</mi>
と<mi arg="y">y</mi>
を参照する$x
と$y
があるとき, 次のとおりです.
The literal and hint features extend the coverage of mathematical concepts
beyond the predefined dictionaries and allow expression of speech preferences.
For example, when $x
and $y
reference <mi arg="x">x</mi>
and <mi
arg="y">y</mi>
respectively, then
list @silent ($x,$y)
は, x yと音読されるでしょう.
list @silent ($x,$y)
would be read as x y
semi-factorial @postfix($x)
は, x semi factorial(訳注:"xの二重階乗"の意味)と音読されるでしょう.
semi-factorial @postfix($x)
would be read as x semi factorial
これらの機能は, 生成された音読方法のほぼ完全な制御を実施することもできます. 例えば, 比較すると次のとおりです.
These features also allow taking almost complete control of the generated speech. For example, compare:
free-algebra ($r, $x)
free algebra of r and x(訳注:"rとxの自由代数"の意味. なお、他の2つの例とは原文の英語では音読方法が異なります.)と音読されるでしょう.
free-algebra ($r, $x)
free algebra of r and x
free-algebra-construct@silent (_free, $r, _algebra, _on, $x)
free r algebra on x(訳注:"rとxの自由代数"の意味. なお、他の2つの例とは原文の英語では音読方法が異なります.)と音読されるでしょう.
free-algebra-construct@silent (_free, $r, _algebra, _on, $x)
free r algebra on x
_(free, _($r,algebra), on, $x)
free r algebra; on x(訳注:"rとxの自由代数"の意味. なお、他の2つの例とは原文の英語では音読方法が異なります.)と音読されるでしょう.
_(free, _($r,algebra), on, $x)
free r algebra; on x
しかしながら, literalは概念辞書の中に無いことから, 式の背景となる意味はより分かりにくくなります. そのため, これらの機能を過度に利用することは, 利用者の必要な事を採用するATの機能を制限しがちでしょうし, 音読方法の翻訳や地域固有の音読方法を制限しがちでしょう. したがって, 最後の2つの例は, 妨げられるでしょう.
However, since the literals are not in dictionaries, the meaning behind the expressions become more opaque, and thus excessive use of these features will tend to limit the AT's ability to adapt to the needs of the user, as well as limit translation and locale-specific speech. Thus, the last two examples would be discouraged.
<mtable>
要素は, 行列, 一連の等式, 証明の過程の各段階などを示すたくさんの使い方をされます. それらの使い方に加えて, 特に3.1.7 式の改行を実装しないソフトウェアにおいて, または, 位置揃えの構造が表と同じような方法を使用している(La)TeXからの変換において, 改行の強制や位置揃えの実装に使われてもよいです.
The <mtable>
element is
used in many ways, for denoting matrices, systems of equations,
steps in a proof derivation, etc. In addition to these uses it
may be used to implement forced line breaking and alignment,
especially for systems that do not implement
3.1.7 Linebreaking of Expressions, or for conversions from (La)TeX where
alignment constructs are used in similar ways.
後で例をいくつか示し, 作業部会は, それらの利用状況を扱うのに, intentの推奨される利用方法を提案します. このことは, intentの文法, またはintentの用語のコンテント辞書にある用語を少し拡張してもよいです. 議論は, 次の2つのGitHub Issueの中で実施しています.
Some examples are given below, and the Working Group plans to propose recommended uses of intent to address these use cases. This may require some small extensions to the intent grammar or to the terms in the Core Concept dictionary of intent terms. Discussions are taking place in the following two GitHub Issues.
行列
Matrices
<mrow>
<mo>(</mo>
<mtable>
<mtr>
<mtd><mn>1</mn></mtd>
<mtd><mn>0</mn></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mn>1</mn></mtd>
</mtr>
</mtable>
<mo>)</mo>
</mrow>
揃えられた式
Aligned equations
<mtable>
<mtr>
<mtd columnalign="right">
<mn>2</mn>
<mo>⁢<!--InvisibleTimes--></mo>
<mi>x</mi>
</mtd>
<mtd columnalign="center">
<mo>=</mo>
</mtd>
<mtd columnalign="left">
<mn>1</mn>
</mtd>
</mtr>
<mtr>
<mtd columnalign="right">
<mi>y</mi>
</mtd>
<mtd columnalign="center">
<mo>></mo>
</mtd>
<mtd columnalign="left">
<mi>x</mi>
<mo>-</mo>
<mn>3</mn>
</mtd>
</mtr>
</mtable>
改行された表現の揃えられた式
Aligned Equations with wrapped expressions
<mtable>
<mtr>
<mtd columnalign="right">
<mi>a</mi>
</mtd>
<mtd columnalign="center">
<mo>=</mo>
</mtd>
<mtd columnalign="left">
<mi>b</mi>
<mo>+</mo>
<mi>c</mi>
<mo>-</mo>
<mi>d</mi>
</mtd>
</mtr>
<mtr>
<mtd columnalign="right"></mtd>
<mtd columnalign="center"></mtd>
<mtd columnalign="left">
<mo form="infix">+</mo>
<mi>e</mi>
<mo>-</mo>
<mi>f</mi>
</mtd>
</mtr>
</mtable>
上で述べたintent
属性に加えて, MathMLは付加情報に対するより一般的な枠組みを提供します. MathMLの式は, 付加情報の鍵として知られる付加情報の種類を示す記号と, 付加情報の値として知られる結び付けられたデータから成る一連の組で, 装飾されてもよいです.
In addition to the intent
attribute described above,
MathML provides a more general framework for annotation. A MathML expression may be
decorated with a sequence of pairs made up of a symbol that indicates
the kind of annotation, known as the annotation key, and
associated data, known as the annotation value.
semantics
要素, annotation
要素, annotation-xml
要素は, MathMLで付加情報を表現するのに一緒に利用されます. semantics
要素は, 式とその付加情報をまとめる要素を提供します. annotation
要素は, 文字列の付加情報をまとめる要素であり, annotation-xml
要素は, 構造化された付加情報に用いられます. semantics
要素は, 最初の子要素として付加情報を付けた式, それに続く一連の1つ以上のannotation
要素やannotation-xml
要素を含みます.
The semantics
, annotation
, and
annotation-xml
elements are used together to represent
annotations in MathML. The semantics
element provides the
container for an expression and its annotations. The
annotation
element is the container for text
annotations, and the annotation-xml
element is used for
structured
annotations. The semantics
element contains the expression
being annotated as its first child, followed by a sequence of zero or
more annotation
and/or annotation-xml
elements.
semantics
要素は, プレゼンテーション要素とコンテント要素の両方であると見なされ, どちらの文脈で利用されてもよいです. 全てのMathMLソフトウェアは, MathMLのそれらの2つのマークアップのうち一方しか, または[MathMLコア]しか処理しないとしても, semantics
要素を処理すべきです.
The semantics
element is considered
to be both a presentation element and a content element, and may be
used in either context. All MathML processors should process the
semantics
element, even if they only
process one of these two subsets of MathML, or
[MathML-Core].
付加情報の鍵は, 式と付加情報の関係を指定します. たくさんの種類の関係が指定可能です. 例としては, 代替表現, 意味の指定もしくは明確化, 型情報, 描画の手助けとなる情報, 特定の処理ソフトウェアを想定したデータを含みます. 付加情報の鍵は, 処理ソフトウェアが付加情報を処理するかどうか決める主な方法です.
An annotation key specifies the relationship between an expression and an annotation. Many kinds of relationships are possible. Examples include alternate representations, specification or clarification of semantics, type information, rendering hints, and private data intended for specific processors. The annotation key is the primary means by which a processor determines whether or not to process an annotation.
式と付加情報の論理的な関係は, 式の適切な処理に重要な意味を持っています, 例えば, 意味の帰属と呼ばれる特定の付加情報の形は, とにかく何らかの処理をされる文脈で, 付加情報の付いた式の意味を変えることなく, 無視することはできません. 別の点で, 代替表現は式の意味を変えることはしませんが, 描画の手助けとなる情報を提供するためによく利用されるといった具合に, 式の表現を変更してもよいです. それでもなお, 他の付加情報が特定の文脈で使い勝手の良い, 特定のソフトウェア用のデータやメタデータを提供するでしょうが, 式の意味も表現も変えないでしょう.
The logical relationship between an expression and an annotation can have a significant impact on the proper processing of the expression. For example, a particular annotation form, called semantic attributions, cannot be ignored without altering the meaning of the annotated expression, at least in some processing contexts. On the other hand, alternate representations do not alter the meaning of an expression, but may alter the presentation of the expression as they are frequently used to provide rendering hints. Still other annotations carry private data or metadata that are useful in a specific context, but do not alter either the semantics or the presentation of the expression.
付加情報の鍵はコンテント辞書の中の記号として定義されてもよく, annotation
要素とannotation-xml
要素のcd
属性とname
属性を用いて指定されます. 代わりに, 付加情報の鍵は, cd
属性とname
属性の代わりとなるdefinitionURL
属性を用いて参照されてもよいです.
Annotation keys may be defined as a symbol in a Content Dictionary, and are specified using
the cd
and name
attributes on the
annotation
and annotation-xml
elements.
Alternatively, an annotation key may also be referenced
using the definitionURL
attribute as an alternative to the
cd
and name
attributes.
MathMLは, 付加情報の最も一般的な種類に対し, 2つの定義済の付加情報の鍵を提供します. mathmlkeysコンテント辞書で定義されているalternate-representationとcontentequivです. 付加情報の鍵alternate-representationは, 付加情報の値が, 式に対する他のマークアップ言語による代わりの表現を提供することを指定しています. また, 付加情報の鍵contentequivは, 付加情報の値が, 付加情報の付けられた式の意味的に等しい代わりの表現を提供することを指定しています.
MathML provides two predefined annotation keys for the most common kinds of annotations: alternate-representation and contentequiv defined in the mathmlkeys content dictionary. The alternate-representation annotation key specifies that the annotation value provides an alternate representation for an expression in some other markup language, and the contentequiv annotation key specifies that the annotation value provides a semantically equivalent alternative for the annotated expression.
付加情報の鍵が何も明確に指定されていない場合, annotation
要素またはannotation-xml
要素の, 付加情報の鍵の既定値はalternate-representationです.
The default annotation key is alternate-representation when no annotation key is
explicitly specified on an annotation
or
annotation-xml
element.
典型的に, 付加情報の鍵は, 式と付加情報の関係の論理的な性質のみを指定しています. 付加情報のデータ形式は, encoding
属性で示されます. MathML2では, encoding
属性は, 処理ソフトウェアが付加情報を解釈できるかどうか決めるのに利用できる第一の情報でした. 下位互換性のために, 処理ソフトウェアは, 付加情報の鍵とencoding
属性の両方を調べることを促されています. 特に, MathML2は, 定義済のコード化手法の値MathML
, MathML-Content
, MathML-Presentation
を指定していました. コード化手法の値MathML
は, annotation-xml
要素がMathMLの式を含んでいることを示すのに利用されます. 他の値の利用については, より細かく次の節で論じています.
Typically, annotation keys specify only the logical nature of the
relationship between an expression and an annotation. The data format
for an annotation is indicated with the encoding
attribute. In MathML 2, the encoding
attribute was the
primary information that a processor could use to determine whether or
not it could understand an annotation. For backward compatibility,
processors are encouraged to examine both the annotation key and
encoding
attribute. In
particular, MathML 2 specified the predefined encoding values
MathML
, MathML-Content
, and
MathML-Presentation
. The MathML
encoding
value is used to indicate an annotation-xml
element contains
a MathML expression. The use of the other values is more specific, as
discussed in following sections.
代替表現の付加情報は, 式の描画を提供したり, 他のマークアップ言語で同じ表現を提供したりするために最もよく利用されます. 一般に, 代替表現の付加情報は, 付加情報の付けられた式の意味を変更しませんが, 表現は変更してもよいです.
Alternate representation annotations are most often used to provide renderings for an expression, or to provide an equivalent representation in another markup language. In general, alternate representation annotations do not alter the meaning of the annotated expression, but may alter its presentation.
特に重要な状況としては, プレゼンテーションMathMLの式を, コンテントMathMLの式の好ましい描画を示すのに利用することです. この状況は, encoding
属性の値をapplication/mathml-presentation+xml
として付加情報を分類することで表されてもよいです. MathML2.0との下位互換性のために, この状況はまた, encoding
属性の値を同じ意味のMathML-Presentation
として表されるかもしれません. プレゼンテーションMathMLの付加情報がsemantics
要素の中に存在する場合, 最初の子要素の通常の描画の代わりに, プレゼンテーションMathMLの付加情報がsemantics
の通常の描画として利用されてもよいことに注意して下さい.
A particularly important case is the use of a presentation MathML
expression to indicate a preferred rendering for a content MathML
expression. This case may be represented by labeling the annotation
with the application/mathml-presentation+xml
value for
the encoding
attribute. For backward compatibility with
MathML 2.0, this case can also be represented with the equivalent
MathML-Presentation
value for the encoding
attribute. Note that when a presentation MathML annotation is
present in a semantics
element, it may be used as the
default rendering of the semantics
element, instead of
the default rendering of the first child.
下の例では, semantics
要素が, コンテントMathMLの式に対する様々な代わりの表現を一緒にまとめています. プレゼンテーションMathMLの付加情報は, 他の付加情報が他のマークアップ言語での表現を示している限り, 通常の描画として用いられてもよいです. 帰属の鍵が何も明確に指定されていないことから, 付加情報の鍵の既定値であるalternate-representationが, それぞれの付加情報に適用されます.
In the example below, the semantics
element binds together
various alternate representations for a content MathML expression.
The presentation MathML annotation may be used as the
default rendering, while the other annotations give representations
in other markup languages. Since no attribution keys are explicitly
specified, the default annotation key
alternate-representation applies
to each of the annotations.
<semantics>
<apply>
<plus/>
<apply><sin/><ci>x</ci></apply>
<cn>5</cn>
</apply>
<annotation-xml encoding="MathML-Presentation">
<mrow>
<mrow>
<mi>sin</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
</mrow>
<mo>+</mo>
<mn>5</mn>
</mrow>
</annotation-xml>
<annotation encoding="application/x-maple">sin(x) + 5</annotation>
<annotation encoding="application/vnd.wolfram.mathematica">Sin[x] + 5</annotation>
<annotation encoding="application/x-tex">\sin x + 5</annotation>
<annotation-xml encoding="application/openmath+xml">
<OMA xmlns="http://www.openmath.org/OpenMath">
<OMA>
<OMS cd="arith1" name="plus"/>
<OMA><OMS cd="transc1" name="sin"/><OMV name="x"/></OMA>
<OMI>5</OMI>
</OMA>
</OMA>
</annotation-xml>
</semantics>
この例は, MathMLのXML構文でのみ利用可能な名前空間の拡張を利用していることに注意して下さい. この例がHTML文書に含まれている場合, この例は無効と見なされ, OpenMath要素はMathML名前空間でない要素として処理されるでしょう. 詳しくは, 5.2.7.3 HTML文書でannotation-xml
を利用するを参照して下さい.
Note that this example makes use of the namespace extensibility
that is only available in the XML syntax of MathML. If this example is included in
an HTML document
then it would be considered invalid and the OpenMath elements would be parsed as
elements in the MathML namespace. See 5.2.7.3 Using annotation-xml
in HTML documents for details.
同一内容の付加情報は, 式に対する追加のコンピュータ処理上の情報を提供します. 鍵contentequivを持つ付加情報は, 潜在的に式の挙動を変えない限り無視することはできません.
Content equivalent annotations provide additional computational information about an expression. Annotations with the contentequiv key cannot be ignored without potentially changing the behavior of an expression.
重要な状況として, コンテントMathMLの付加情報を, プレゼンテーションMathMLの式の意味のあいまいさを無くすために利用することが挙げられます. この状況は, encoding
属性の値をapplication/mathml-content+xml
として付加情報を分類することで表されてもよいです. MatML2では, 付加情報の型は, encoding
属性を同じ意味のMathML-Content
として表されていたので, 処理ソフトウェアは, 下位互換性のためにこの利用に対応するよう促されます. 付加情報が式と同一の最終的なコンテントマークアップを提供することを明確に伝達できるように, 付加情報の鍵contentequivが利用されるべきです.
An important case arises when a content MathML annotation is used
to disambiguate the meaning of a presentation MathML expression.
This case may be represented by labeling the annotation with the
application/mathml-content+xml
value for the
encoding
attribute. In
MathML 2, this type of annotation was represented with the equivalent
MathML-Content
value for the encoding
attribute,
so processors are urged to support this usage for backward compatibility.
The
contentequiv annotation key should
be used to make an explicit assertion that the annotation provides a
definitive content markup equivalent for an expression.
下の例では, あいまいなプレゼンテーションMathMLの式にMathML-Content
付加情報を付け加えることで, 正確な意味を明確にしています.
In the example below, an ambiguous presentation MathML expression
is annotated with a MathML-Content
annotation clarifying
its precise meaning.
<semantics>
<mrow>
<mrow>
<mi>a</mi>
<mrow>
<mo>(</mo>
<mrow><mi>x</mi><mo>+</mo><mn>5</mn></mrow>
<mo>)</mo>
</mrow>
</mrow>
</mrow>
<annotation-xml cd="mathmlkeys" name="contentequiv" encoding="MathML-Content">
<apply>
<ci>a</ci>
<apply><plus/><ci>x</ci><cn>5</cn></apply>
</apply>
</annotation-xml>
</semantics>
通常の場合, それぞれの付加情報要素は, 付加情報の値を表す, 文字データの内容(annotation
の場合)またはXMLマークアップのデータ(annotation-xml
の場合)のどちらかを含みます. semantics
要素の中に現れてもよい付加情報の型には何ら制限はありません. 例えば, 付加情報は, TEXのコード, 数式処理システムからの一連の入力, 描画された画像, 詳細な数学の型情報を提供することもできます.
In the usual case, each annotation element includes either character data
content (in the case of annotation
) or XML markup data (in the case
of annotation-xml
) that represents the annotation value.
There is no restriction on the type of annotation that may appear within a
semantics
element. For example, an annotation could provide a
TEX encoding, a linear input form for a computer algebra system,
a rendered image, or detailed mathematical type information.
場合によっては, semantics
要素の代替表現の子要素が, 付加された式の挙動の本質的な部分ではなく, 特定のソフトウェアで利用可能なものでもよいです. 効果的な方法で様々な付加情報の形式を利用可能にするのに, semantics
要素は, 付加情報と結び付けられた値に対する外部の場所を指定するencoding
属性とsrc
属性を提供する, 空のannotation
要素とannotation-xml
要素を含んでもよいです.
In some cases the alternative children of a semantics
element
are not an essential part of the behavior of the annotated expression, but
may be useful to specialized processors. To enable the availability of
several annotation formats in a more efficient manner, a semantics
element may contain empty annotation
and annotation-xml
elements that provide encoding
and src
attributes
to specify an external location for the annotation value associated with
the annotation. This type of annotation is known as an annotation
reference.
<semantics>
<mfrac><mi>a</mi><mrow><mi>a</mi><mo>+</mo><mi>b</mi></mrow></mfrac>
<annotation encoding="image/png" src="333/formula56.png"/>
<annotation encoding="application/x-maple" src="333/formula56.ms"/>
</semantics>
出力されたマークアップの利用者が, そのような付加情報が参照している外部実体を検索できないだろうと予測した処理プログラムは, 示された場所にある外部実体の内容を要求し, 展開された形式で付加情報を置き換えるべきです.
Processing agents that anticipate that consumers of exported markup may not be able to retrieve the external entity referenced by such annotations should request the content of the external entity at the indicated location and replace the annotation with its expanded form.
付加情報参照は, 他の付加情報に適用される, 付加情報が付けられたものと付加情報の関係を指定する付加情報の鍵を決めるのと同じ決まりに従います.
An annotation reference follows the same rules as for other annotations to determine the annotation key that specifies the relationship between the annotated object and the annotation value.
semantics
要素は, MathMLの式に付加情報を結び付ける入れ物となる要素です. semantics
要素は, 最初の子要素として付加情報が付けられる式を持ちます. どんなMathMLの式でもsemantics
要素の最初の子要素として現れてよいです. 後に続く子要素annotation
とannotation-xml
は, 付加情報を囲います. XMLで表される付加情報はannotation-xml
要素で囲われます. 文字データで表される付加情報はannotation
要素で囲われます.
The semantics
element is the container element that
associates annotations with a MathML expression. The
semantics
element has as its first child the expression to be
annotated. Any MathML expression may appear as the first child of the
semantics
element. Subsequent annotation
and
annotation-xml
children enclose the annotations.
An annotation represented in XML is enclosed in an
annotation-xml
element. An annotation represented
in character data is enclosed in an annotation
element.
前に注意したように, semantics
要素は, 内容に従って, プレゼンテーション要素とコンテント要素のどちらとしても動作するため, それらの両方の要素と見なされます. 結果として, MathML処理ソフトウェアは, プレゼンテーションマークアップのみか, コンテントマークアップのみしか処理しないとしても, semantics
要素を処理すべきです.
As noted above, the semantics
element is considered to be
both a presentation element and a content element, since it can act
as either, depending on its content. Consequently, all MathML
processors should process the semantics
element, even if they
process only presentation markup or only content markup.
semantics
要素の通常の描画は, 最初の子要素の通常の描画です. 描画ソフトウェアは, 付加情報の付けられた要素の描画を変更するのに, 付加情報の中に含まれる情報を利用してもよいです.
The default rendering of a semantics
element is the default
rendering of its first child. A renderer may use the information contained
in the annotations to customize its rendering of the annotated element.
<semantics>
<mrow>
<mrow>
<mi>sin</mi>
<mo>⁡<!--ApplyFunction--></mo>
<mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
</mrow>
<mo>+</mo>
<mn>5</mn>
</mrow>
<annotation-xml cd="mathmlkeys" name="contentequiv" encoding="MathML-Content">
<apply>
<plus/>
<apply><sin/><ci>x</ci></apply>
<cn>5</cn>
</apply>
</annotation-xml>
<annotation encoding="application/x-tex">\sin x + 5</annotation>
</semantics>
annotation
要素は, 意味付加情報の入れ物となる要素で, その表現がXMLでない文字データとして処理されるものです. annotation
要素は, 付加情報として文字データを含むべきで, XMLマークアップ要素を含むべきではありません. 付加情報がXMLの予約済の文字&
, <
の1つを含んでいる場合, それらの文字は, 実体参照または(XML構文の)XML CDATA
セクションを使ってコード化されなければなりません.
The annotation
element is the container element for a semantic
annotation whose representation is parsed character data in a non-XML
format. The annotation
element should contain the character
data for the annotation, and should not contain XML markup elements.
If the annotation contains one of the XML reserved characters
&
, <
then these characters must
be encoded using an entity reference or
(in the XML syntax) an XML CDATA
section.
名前 Name |
値 values |
既定値 default |
definitionURL | URI | 無し none |
付加情報の鍵の記号の場所 The location of the annotation key symbol |
||
encoding | 文字列 string |
無し none |
付加情報における意味情報のコード化手法 The encoding of the semantic information in the annotation |
||
cd | 文字列 string |
mathmlkeys |
付加情報の鍵の記号を含むコンテント辞書 The content dictionary that contains the annotation key symbol |
||
name | 文字列 string |
alternate-representation |
付加情報の鍵の記号の名前 The name of the annotation key symbol |
||
src | URI | 無し none |
意味情報の外部媒体の場所 The location of an external source for semantic information |
まとめると, cd
属性とname
属性は, 付加情報の付けられた要素と付加情報の関係を特定する, 5.2 付加情報要素で述べた, 付加情報の記号を指定します. definitionURL
属性は, 単独の属性で付加情報の鍵を参照する代わりの方法を提供します. これらの属性が存在しない場合, 付加情報の鍵は, mathmlkeysコンテント辞書のalternate-representation記号です.
Taken together, the cd
and name
attributes
specify the annotation key symbol, which identifies the relationship
between the annotated element and the annotation, as described in
5.2 Annotation Elements. The definitionURL
attribute provides an alternate way to reference the annotation key
symbol as a single attribute. If none of these attributes are present,
the annotation key symbol is the symbol
alternate-representation
from the mathmlkeys content dictionary.
encoding
属性は, 付加情報の中身の型を説明します. encoding
属性の値は, コード化されたデータのデータ形式を特定するメディアタイプを含んでもよいです. 結び付けられたメディアタイプを持たないデータ形式に対して, 実装者は, そのデータの中身の型を特定するデータ自体を説明する文字列を選んでもよいです.
The encoding
attribute describes the content type of the
annotation. The value of the encoding
attribute may contain
a media type that identifies the data format for the encoding data. For
data formats that do not have an associated media type, implementors may
choose a self-describing character string to identify their content type.
src
属性は, MathMLの式に付加情報として, 外部実体を付け加える仕組みを提供します.
The src
attribute provides a mechanism to attach external
entities as annotations on MathML expressions.
<annotation encoding="image/png" src="333/formula56.png"/>
annotation
要素は, semantics
要素の子要素としてのみ利用されてもよい, 意味を結び付ける要素です. annotation
要素に対する通常の描画が無いと同時に, 描画ソフトウェアは, 付加情報に含まれている情報を, それが付けられた要素の描画を変更するのに利用してもよいです.
The annotation
element is a semantic mapping element that may
only be used as a child of the semantics
element. While there is
no default rendering for the annotation
element, a renderer may
use the information contained in an annotation to customize its rendering
of the annotated element.
annotation-xml
要素は, 意味付加情報の入れ物となる要素で, その表現が構造化されたマークアップのものです. annotation-xml
要素は, 付加情報としてマークアップ要素, 属性, 文字データを含むべきです.
The annotation-xml
element is the container element for a
semantic annotation whose representation is structured markup. The annotation-xml
element should contain the markup
elements, attributes, and character data for the annotation.
名前 Name |
値 values |
既定値 default |
definitionURL | URI | 無し none |
付加情報の鍵の記号の場所 The location of the annotation key symbol |
||
encoding | 文字列 string |
無し none |
付加情報における意味情報のコード化手法 The encoding of the semantic information in the annotation |
||
cd | 文字列 string |
mathmlkeys |
付加情報の鍵の記号を含むコンテント辞書 The content dictionary that contains the annotation key symbol |
||
name | 文字列 string |
alternate-representation |
付加情報の鍵の記号の名前 The name of the annotation key symbol |
||
src | URI | 無し none |
意味情報の外部媒体の場所 The location of an external source for semantic information |
まとめると, cd
属性とname
属性は, 付加情報の付けられた要素と付加情報の関係を特定する, 5.2 付加情報要素で述べた, 付加情報の記号を指定します. definitionURL
属性は, 単独の属性で付加情報の鍵を参照する代わりの方法を提供します. これらの属性が存在しない場合, 付加情報の鍵は, mathmlkeysコンテント辞書のalternate-representation記号です.
Taken together, the cd
and name
attributes
specify the annotation key symbol, which identifies the relationship
between the annotated element and the annotation, as described in
5.2 Annotation Elements. The definitionURL
attribute provides an alternate way to reference the annotation key
symbol as a single attribute. If none of these attributes are present,
the annotation key symbol is the symbol
alternate-representation
from the mathmlkeys content dictionary.
encoding
属性は, 付加情報の中身の型を説明します. encoding
属性の値は, コード化されたデータのデータ形式を特定するメディアタイプを含んでもよいです. 結び付けられたメディアタイプを持たないデータ形式に対して, 実装者は, そのデータの中身の型を特定するデータ自体を説明する文字列を選んでもよいです. 特に, 前の方の節で説明したり, 6.2.4 MathMLのコード化された名前にあったりするように, MathMLは, MathML
, MathML-Presentation
, MathML-Content
を, encoding
属性の定義済の値として指定しています. 最後に, src
属性は, MathMLの式に付加情報としてXMLの外部実体を付け加える仕組みを指定します.
The encoding
attribute describes the content type of the
annotation. The value of the encoding
attribute may contain
a media type that identifies the data format for the encoding data. For
data formats that do not have an associated media type, implementors may
choose a self-describing character string to identify their content type.
In particular, as described above and in 6.2.4 Names of MathML Encodings, MathML specifies
MathML
, MathML-Presentation
, and
MathML-Content
as predefined values for the
encoding
attribute. Finally, the src
attribute provides a mechanism to attach external XML entities as
annotations on MathML expressions.
<annotation-xml cd="mathmlkeys" name="contentequiv" encoding="MathML-Content">
<apply>
<plus/>
<apply><sin/><ci>x</ci></apply>
<cn>5</cn>
</apply>
</annotation-xml>
<annotation-xml encoding="application/openmath+xml">
<OMA xmlns="http://www.openmath.org/OpenMath">
<OMS cd="arith1" name="plus"/>
<OMA><OMS cd="transc1" name="sin"/><OMV name="x"/></OMA>
<OMI>5</OMI>
</OMA>
</annotation-xml>
MathMLがXMLとして処理され, 付加情報の値がMathML以外のXML言語で表されている場合, 付加情報に対するXMLマークアップの名前空間は, 名前空間属性や名前空間接頭辞といった方法で特定されるべきです. 例えば, 次のようにです.
When the MathML is being parsed as XML and the annotation value is represented in an XML dialect other than MathML, the namespace for the XML markup for the annotation should be identified by means of namespace attributes and/or namespace prefixes on the annotation value. For instance:
<annotation-xml encoding="application/xhtml+xml">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>E</title></head>
<body>
<p>The base of the natural logarithms, approximately 2.71828.</p>
</body>
</html>
</annotation-xml>
annotation-xml
要素は, semantics
要素の子要素としてのみ利用されてもよい, 意味を結び付ける要素です. annotation-xml
要素に対する通常の描画が無いと同時に, 描画ソフトウェアは, 付加情報に含まれている情報を, それが付けられた要素の描画を変更するのに利用してもよいです.
The annotation-xml
element is a semantic mapping element that may only be used
as a child of the semantics
element. While there is no default rendering for the
annotation-xml
element, a renderer may use the information contained in an
annotation to customize its rendering of the annotated element.
上の例で使われている名前空間の拡張は, MathMLがXML文書として取り扱われなければ利用できないであろうことに注意して下さい. 特にHTML処理プログラムはxmlns
属性を通常の属性として扱うことから, OpenMathの例は, HTML検証ツールによって無効と分類されるでしょう. それでもOpenMath要素は, annotation-xml
要素の子要素として処理されるでしょうし, それらは, MathML名前空間に置かれるでしょう. 上の例では, この仕様書のHTMLバージョンでは, その文書が有効なHTML5文書であることを確かにするため, 描画されません.
Note that the Namespace extensibility used in the above examples
may not be available if the MathML is not being treated as an XML document. In particular
HTML parsers
treat xmlns
attributes as ordinary attributes, so the OpenMath example would be classified as
invalid
by an HTML validator. The OpenMath elements would still be parsed as children of the
annotation-xml
element, however they would be placed in the MathML namespace. The above examples are not rendered in the HTML version of this specification,
to ensure that that document is a valid HTML5 document.
annotation-xml
を処理するHTML処理プログラムの詳細については, [HTML]で指定されており, 6.4.3 MathMLとHTMLの混在で要約していますが, MathML付加情報に影響するXML処理プログラムの挙動との主な違いは, HTML処理プログラムが, xmlns
属性を処理せず, 要素の名前の中の:を特別なものとして扱わず, 3つの既知
の名前空間HTML, SVG, MathMLを利用すると決めた元からの決まりを持っていることです.
The details of the HTML parser handling of annotation-xml
is specified in [HTML] and summarized in 6.4.3 Mixing MathML and HTML, however the main differences from the behavior of an XML parser that affect MathML
annotations are that the HTML parser does not treat xmlns
attributes, nor :
in element names as special and has built-in rules determining whether the three
known
namespaces, HTML, SVG or MathML are used.
annotation-xml
がtext/html
またはannotation/xhtml+xml
であるencoding
属性を持っている場合(異なる場合は無視され), 中身はHTMLとして処理され, (最初から)HTML名前空間に置かれます.
If the annotation-xml
has an encoding
attribute that is (ignoring case differences) text/html
or annotation/xhtml+xml
then the content is parsed as HTML and placed (initially) in the HTML namespace.
それ以外の場合, annotation-xml
は, 外部の内容として処理され, よりXMLに近い決まりで(HTMLの中のMathML自体のように)/>
が空要素を示すといった具合に処理されます. 中身はMathML名前空間に置かれます.
Otherwise it is parsed as foreign content and parsed in a more XML-like manner (like MathML itself in HTML) in which />
signifies an empty element. Content will be placed in the MathML namespace.
何らかのHTML要素として認知される要素が外部の内容である付加情報の中に現れた場合, HTML処理プログラムはMathMLの式を事実上終わらせ, math
要素が閉じるまでの全ての開いている要素を閉じさせ, math要素の文脈の中でないかのように入れ子になったHTMLを処理します. 何らかのそれに続くMathML要素は, math要素の文脈もしくはMathML名前空間に無いものとされ, 正確には描画されないでしょう.
If any recognised HTML element appears in this foreign content annotation the HTML
parser will effectively terminate the math expression, closing all open elements until
the math
element is closed, and then process the nested HTML as if it were not inside the
math context. Any following MathML elements will then not render correctly as they
are not in a math context, or in the MathML namespace.
これらの課題は, 次の例がXML処理プログラムまたはHTML処理プログラムのどちらで処理されても有効であることを意味しています.
These issues mean that the following example is valid whether parsed by an XML or HTML parser:
<math>
<semantics>
<mi>a</mi>
<annotation-xml encoding="text/html">
<span>xxx</span>
</annotation-xml>
</semantics>
<mo>+</mo>
<mi>b</mi>
</math>
しかしながら, encoding
属性が無い場合, この式はXMLとして処理される場合のみ有効です.
However if the encoding
attribute is omitted then the expression
is only valid if parsed as XML:
<math>
<semantics>
<mi>a</mi>
<annotation-xml>
<span>xxx</span>
</annotation-xml>
</semantics>
<mo>+</mo>
<mi>b</mi>
</math>
上の例がHTML処理プログラムで処理された場合, この例は, 全てのMathML要素が早まって閉じられることをspan
要素が引き落とすといった, 次の無効な入力と等しい結果を提供します. span
に続く残されたMathML要素は, もはや<math>
の中には含まれず, 未知のHTML要素として処理され, 不正確に描画されるでしょう.
If the above is parsed by an HTML parser it produces a result equivalent to the following
invalid input, where the span
element has caused all MathML elements to be prematurely closed. The remaining MathML
elements following the span
are no longer contained within <math>
so will be parsed as unknown HTML elements and render incorrectly.
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mi>a</mi>
<annotation-xml>
</annotation-xml>
</semantics>
</math>
<span xmlns="http://www.w3.org/1999/xhtml">xxx</span>
<mo xmlns="http://www.w3.org/1999/xhtml">+</mo>
<mi xmlns="http://www.w3.org/1999/xhtml">b</mi>
ここでHTMLspan
要素が, 全ての開いているMathML要素に早まって閉じられることを引き起こし, 続くMathML要素が未知のHTML要素として, もはやmath
の子孫要素でないものとして扱われる結果を招いていることに注意して下さい. HTMLの中のMathMLの処理についてより詳しくは, 6.4.3 MathMLとHTMLの混在を参照して下さい.
Note here that the HTML span
element has
caused all open MathML elements to be prematurely closed, resulting in
the following MathML elements being treated as unknown HTML elements
as they are no longer descendants of math
.
See 6.4.3 Mixing MathML and HTML for more details of the parsing of MathML in HTML.
(上の例のOpenMathといった)他の種類の要素の何らかの利用は, HTMLでは無効と見なされます. 正当性が厳密に必要でないなら, そのような要素を利用できますが, それらはMathML名前空間の要素として処理されます. 文書は, 名前空間接頭辞やコロン(:
)を含む要素を使うべきではありません. すなわち, HTML処理プログラムによって提供される要素が, 名前空間を扱うことのできるXML処理プログラムで組み立てできない, コロンを含む環境に依存した名前を持つべきではありません. そのような外部の付加情報を利用するよりも, HTML処理プログラムを使う場合, 既存の種類の言語を使って付加情報をコード化した方がより良いです. 4. コンテントマークアップの例のように, OpenMathは厳格なコンテントマークアップとして正確にコード化されてもよいです. 同様に, RDF付加情報は, annotation-xml
要素でRDF/XMLをencodingの値として使うのではなく, annotation
の中でtext/html
付加情報のRDFaまたはN3(と呼ばれる)表記を使ってコード化されるでしょう.
Any use of elements in other vocabularies (such as the OpenMath
examples above) is considered invalid in HTML. If
validity is not a strict requirement it is possible to use such
elements but they will be parsed as elements on the
MathML namespace. Documents SHOULD NOT use namespace
prefixes and element names containing colon (:
) as the
element nodes produced by the HTML parser have local names
containing a colon, which can not be constructed by a namespace aware
XML parser. Rather than use such foreign annotations, when using an HTML parser
it is better to encode the annotation using the existing
vocabulary. For example as shown in 4. Content Markup OpenMath
may be encoded faithfully as Strict Content
MathML. Similarly RDF annotations could be encoded using RDFa
in text/html
annotation or (say) N3 notation in
annotation
rather than using RDF/XML encoding in an
annotation-xml
element.
プレゼンテーションマークアップは, 式の表記の構造をコード化します. コンテントマークアップは, 式の機能の構造をコード化します. ある状況において, MathMLの特定のソフトウェアは, プレゼンテーションマークアップとコンテントマークアップの両方の組合せを必要としてもよいです. この節は, コンテントマークアップの中でプレゼンテーションマークアップの利用を行う場合, および逆の場合の特定の制約について説明しています.
Presentation markup encodes the notational structure of an expression. Content markup encodes the functional structure of an expression. In certain cases, a particular application of MathML may require a combination of both presentation and content markup. This section describes specific constraints that govern the use of presentation markup within content markup, and vice versa.
プレゼンテーションマークアップは, 最終的な表現があいまいでない機能の適用される構造を持つ限りは, コンテントマークアップの中に埋め込まれてもよいです. 具体的に言えば, プレゼンテーションマークアップは, 次の3つの場合のみコンテントマークアップの中に現れてもよいです.
Presentation markup may be embedded within content markup so long as the resulting expression retains an unambiguous function application structure. Specifically, presentation markup may only appear in content markup in three ways:
ci
素子要素とcn
素子要素の中
within ci
and cn
token elements
csymbol
要素の中
within the csymbol
element
semantics
要素の中
within the semantics
element
これら以外のコンテントマークアップの中に現れるどのプレゼンテーションマークアップもMathMLエラーになります. それらの3つの状況のより詳しい議論は次のとおりです.
Any other presentation markup occurring within content markup is a MathML error. More detailed discussion of these three cases follows:
素子要素ci
とcn
は, 何らかの一連の(7. 文字, 実体, フォントで定義されている)MathML文字やプレゼンテーション要素を含むことができます. ci
要素またはcn
要素のMathML文字の連続した部分は, 適切にmi
要素またはmn
要素で囲まれているかのように扱われ, 最終的なプレゼンテーション要素の集まりは, 省略されたmrow
要素で囲まれているかのように描画されます.
The token elements ci
and cn
are permitted to
contain any sequence of MathML characters (defined in 7. Characters, Entities and Fonts)
and/or presentation elements. Contiguous blocks of MathML characters in
ci
or cn
elements are treated as if wrapped in
mi
or mn
elements, as appropriate, and the resulting
collection of presentation elements is rendered as if wrapped in an
implicit mrow
element.
csymbol
要素の中のプレゼンテーション要素csymbol
element.csymbol
要素に対して, 素子要素ci
とcn
に適用されたのと同じ描画の決まりが使用されます.
The same rendering rules that apply
to the token elements ci
and cn
should be used for the csymbol
element.
semantics
要素の中のプレゼンテーションマークアップsemantics
element.semantics
要素の主な目的の1つは, 任意のMathMLの式をコンテントマークアップに有意義な方法で組み入れる仕組みを提供することです. 特に, 何らかの有効なプレゼンテーションマークアップの式は, semantics
要素の最初の子要素とすることで, コンテントマークアップの式に埋め込めます. 囲まれた式の意味は, semantics
要素に一緒に含まれる1つ以上の付加情報要素により示されるべきです.
One of the main purposes of the semantics
element is to
provide a mechanism for incorporating arbitrary MathML expressions into
content markup in a semantically meaningful way. In particular, any valid
presentation expression can be embedded in a content expression by placing
it as the first child of a semantics
element. The meaning of this
wrapped expression should be indicated by one or more annotation elements
also contained in the semantics
element.
コンテントマークアップは, 最終的な式が明確な描画を持ってさえいれば, プレゼンテーションマークアップに埋め込んでもよいです. つまり, 原則として, 組合せた式に現れるコンテントマークアップの各部分に対する, プレゼンテーションマークアップの部分を提供することが可能でなければなりません. コンテントマークアップの各部分を対応するプレゼンテーションマークアップで置き換える際には, 整形式のプレゼンテーションマークアップの式を提供すべきです. よって, プレゼンテーションマークアップ対応のプログラムは, 元の式に含まれるコンテントマークアップの部分を参照することなく, プレゼンテーションマークアップの式を処理できるべきです.
Content markup may be embedded within presentation markup so long as the resulting expression has an unambiguous rendering. That is, it must be possible, in principle, to produce a presentation markup fragment for each content markup fragment that appears in the combined expression. The replacement of each content markup fragment by its corresponding presentation markup should produce a well-formed presentation markup expression. A presentation engine should then be able to process this presentation expression without reference to the content markup bits included in the original expression.
一般に, この制約は, それぞれの埋め込まれたコンテント要素が, コンテントマークアップの式として整形式でなければならず, 何らかの含まれているコンテントマークアップの文脈の外でも単独で成立できなけらばならないことを意味しています. 結果として, 次のコンテント要素は, プレゼンテーション要素の途中の子要素として現れないでしょう. annotation
, annotation-xml
, bvar
, condition
, degree
, logbase
, lowlimit
, uplimit
.
In general, this constraint means that each embedded content expression
must be well-formed, as a content expression, and must be able to stand
alone outside the context of any containing content markup element. As
a result, the following content elements may not appear as an immediate
child of a presentation element:
annotation
, annotation-xml
,
bvar
, condition
, degree
,
logbase
, lowlimit
, uplimit
.
加えて, プレゼンテーションマークアップにおいて, コンテントマークアップは, プレゼンテーション素子要素の中に現れないでしょう.
In addition, within presentation markup, content markup may not appear within presentation token elements.
ソフトウェアの中には, プレゼンテーションマークアップとコンテントマークアップ両方の情報を利用するものもあります. 並列のマークアップは, 2つ以上のマークアップのツリー構造を同じ数式として組合せる方法です. 並列のマークアップは, semantics
要素と一緒に成し遂げられます. 式に対する並列のマークアップは, それ単独で, もしくは大きなコンテントマークアップまたはプレゼンテーションマークアップのツリー構造の一部として認められてもよいです.
Some applications are able to use both presentation
and content information. Parallel markup is a way to
combine two or more markup trees for the same mathematical expression.
Parallel markup is achieved with the semantics
element.
Parallel markup for an expression may appear on its own, or as part
of a larger content or presentation tree.
多くの場合, 目標は, 数式全体に対するプレゼンテーションマークアップとコンテントマークアップを提供することです. 単独のsemantics
要素は, 2つのマークアップのツリー構造の組に利用されてもよいです. 1つの子要素がプレゼンテーションマークアップを提供し, 他の子要素がコンテントマークアップを提供するでしょう.
In many cases, the goal is to provide presentation markup and content
markup for a mathematical expression as a whole.
A single semantics
element may be used to pair two markup trees,
where one child element provides the presentation markup, and the
other child element provides the content markup.
次の例は, ブール演算の式 をこの方法でコード化しています.
The following example encodes the Boolean arithmetic expression in this way.
<semantics>
<mrow>
<mrow><mo>(</mo><mi>a</mi> <mo>+</mo> <mi>b</mi><mo>)</mo></mrow>
<mo>⁢<!--InvisibleTimes--></mo>
<mrow><mo>(</mo><mi>c</mi> <mo>+</mo> <mi>d</mi><mo>)</mo></mrow>
</mrow>
<annotation-xml encoding="MathML-Content">
<apply><and/>
<apply><xor/><ci>a</ci> <ci>b</ci></apply>
<apply><xor/><ci>c</ci> <ci>d</ci></apply>
</apply>
</annotation-xml>
</semantics>
上のマークアップは, 最初の子要素であるプレゼンテーション要素に, annotation-xml
要素の部分としてコンテントマークアップを付け加えていることに注意して下さい. 同一のことを, 最初の子要素としてのコンテントマークアップにannotation-xml
要素の部分としてプレゼンテーションマークアップを付け加えても表せます.
Note that the above markup annotates the presentation markup as
the first child element, with the content markup as part of the
annotation-xml
element. An equivalent form could be given
that annotates the content markup as the first child element, with
the presentation markup as part of the annotation-xml
element.
大きなデータの式の一部を処理しなければならないソフトウェアを考慮に入れるために, MathMLは, semantics
要素の対応する式の構造を特定するツリーの枝どうしの相互参照に対応します. これらの相互参照は, semantics
要素の中で, id
属性とxref
属性を利用して確立します. このsemantics
要素の中のid
属性とxref
属性の利用は, 利用者がsemantics
要素の代替のツリーの枝の任意の式を選ぶことができるようにする最も良い方法として見られるべきです. id
属性とxref
属性は, どちらのマークアップのMathML要素にも配置されてもよいです.
To accommodate applications that must process sub-expressions of large
objects, MathML supports cross-references between the branches of a
semantics
element to identify corresponding sub-structures.
These cross-references are established by the use of the id
and xref
attributes within a semantics
element.
This application of the id
and xref
attributes within
a semantics
element should be viewed as best practice to enable
a recipient to select arbitrary sub-expressions in each alternative
branch of a semantics
element. The id
and
xref
attributes may be placed on MathML elements of any type.
次の例は, ブール演算の式 . に対する相互参照を説明しています.
The following example demonstrates cross-references for the Boolean arithmetic expression .
<semantics>
<mrow id="E">
<mrow id="E.1">
<mo id="E.1.1">(</mo>
<mi id="E.1.2">a</mi>
<mo id="E.1.3">+</mo>
<mi id="E.1.4">b</mi>
<mo id="E.1.5">)</mo>
</mrow>
<mo id="E.2">⁢<!--InvisibleTimes--></mo>
<mrow id="E.3">
<mo id="E.3.1">(</mo>
<mi id="E.3.2">c</mi>
<mo id="E.3.3">+</mo>
<mi id="E.3.4">d</mi>
<mo id="E.3.5">)</mo>
</mrow>
</mrow>
<annotation-xml encoding="MathML-Content">
<apply xref="E">
<and xref="E.2"/>
<apply xref="E.1">
<xor xref="E.1.3"/><ci xref="E.1.2">a</ci><ci xref="E.1.4">b</ci>
</apply>
<apply xref="E.3">
<xor xref="E.3.3"/><ci xref="E.3.2">c</ci><ci xref="E.3.4">d</ci>
</apply>
</apply>
</annotation-xml>
</semantics>
同じsemantics
要素の中に現れるid
属性に対応するxref
属性は, 対応する式の部分どうしの相互参照を確立します.
An id
attribute and associated xref
attributes
that appear within the same semantics
element establish the
cross-references between corresponding sub-expressions.
並列のマークアップにおいて, 何らかのxref
属性によって参照される全てのid
属性は, 囲っているsemantics
要素の同じツリーの枝にあるべきです. この制限は, 相互参照がうかつな循環を作り出さないことを保証します. この制限は, 囲っているsemantics
要素の他のツリーの枝でのid
属性の使用を除外するものではありません. ただし, 同じsemantics
要素から生じたそれら他のid
属性への参照を除いてです.
For parallel markup, all of the id
attributes referenced by any xref
attribute should be in the same branch of an enclosing
semantics
element. This constraint guarantees that the
cross-references do not create unintentional cycles. This restriction
does not exclude the use of id
attributes within
other branches of the enclosing semantics
element. It does,
however, exclude references to these other id
attributes
originating from the same semantics
element.
semantics
要素のどちらのツリーの枝が参照先のid
属性を含んでもよいかについては, 何の制限もありません. このことは, どちらのツリーの枝を利用するかを決めることにも適用されます.
There is no restriction on which branch of the semantics
element
may contain the destination id
attributes. It is up to the
application to determine which branch to use.
一般に, 並列のツリーの枝の要素の間に1対1の対応がある訳ではないでしょう. 例えば, プレゼンテーションマークアップのツリー構造は, かっこといった要素を持ってもよいですが, コンテントマークアップのツリー構造には対応するものはありません. そのため, 最も細かく分けられた要素の構造を持つツリーの枝にid
属性を付けることが, 大抵の場合に利用しやすいです. その場合, 全ての他のツリーの枝は, 一連のid
属性に対するxref
属性を持つでしょう.
In general, there will not be a one-to-one correspondence between nodes
in parallel branches. For example, a presentation tree may contain elements,
such as parentheses, that have no correspondents in the content tree. It is
therefore often useful to put the id
attributes on the branch with
the finest-grained node structure. Then all of the other branches will have
xref
attributes to some subset of the id
attributes.
他に基準が無いため, semantics
要素の最初のツリーの枝は, id
属性を含むのに懸命な選択です. その場合, 付加情報を加えたり外したりするソフトウェアは, 付加情報が変わってもこれらの属性を再割当てする必要は無いでしょう.
In absence of other criteria, the first branch of the semantics
element is a sensible choice to contain the id
attributes.
Applications that add or remove annotations will then not have to re-assign
these attributes as the annotations change.
一般に, id
属性とxref
属性の利用は, せいぜい参照元より大きな固定の因子を持つ文章で与えられる式との間の完全な対応を認めています. 参照の方向は, 式の選択をsemantics
要素の1つの子要素のみで認められるように暗にするべきではありません. 何らかのツリーの枝にあるより小さなツリー構造を選ぶことや, 他のツリーの枝の対応するより小さなツリー構造を回復させることも同じように可能です.
In general, the use of id
and xref
attributes allows
a full correspondence between sub-expressions to be given in text that is
at most a constant factor larger than the original. The direction of the
references should not be taken to imply that sub-expression selection is
intended to be permitted only on one child of the semantics
element.
It is equally feasible to select a subtree in any branch and
to recover the corresponding subtrees of the other branches.
相互参照を伴う並列のマークアップは, プレゼンテーションMathMLの描画とOpenMath付加情報の間で相互参照している例のように, annotation-xml
の中のどの意味付加情報で使用してもよいです.
Parallel markup with cross-references may be used in any
of the semantic annotations within annotation-xml
,
for example cross referencing between a presentation MathML rendering and an OpenMath annotation.
前に注意したように, annotation-xml
の中でMathML, SVG, HTML以外の名前空間の利用は, HTML構文の中では有効と見なされません. コロンや名前空間接頭辞の付いた要素名の利用は, HTML処理プログラムが環境特有の名前(例えば)om:OMA
という要素を生成してしまったり, そのような要素が名前空間に配慮したXML処理プログラムによって構造化できなかったりすることから, 避けられるべきです.
As noted above, the use of namespaces other than MathML, SVG
or HTML within annotation-xml
is not considered valid in the HTML syntax.
Use of colons and namespace-prefixed element names should be avoided
as the HTML parser will generate nodes with local name om:OMA
(for example), and such nodes can not be constructed by a namespace-aware XML parser.
第一にPaulが何らかの更新が必要か考察しています
Paul to take first look at any updates needed
効果的であるように, MathMLは, 幅広い種類の描画ソフトウェア, 処理プログラム, 変換ソフトウェア, 編集ツールとうまく機能しなければなりません. この章は, MathMLを生成したり描画したりすることに関する連携部分での課題について, いくつか挙げます. MathMLは第一にインターネットの文書をコード化するために存在していることから, ひょっとしたら最も重要な連携部分の課題は, MathMLを[HTML]や[XHTML], もしくは新しく現れる何らかのHTMLに埋め込むことに関係するかもしれません.
To be effective, MathML must work well with a wide variety of renderers, processors, translators and editors. This chapter raises some of the interface issues involved in generating and rendering MathML. Since MathML exists primarily to encode mathematics in Web documents, perhaps the most important interface issues relate to embedding MathML in [HTML], and [XHTML], and in any newer HTML when it appears.
MathMLを他のXML文書に埋め込む際に起こる3種類の連携部分の課題があります. 1つ目の課題として, MathMLのマークアップは, 有効な埋め込まれたXMLと認知され, エラーが無いものでなければなりません. この課題は, XMLの名前空間[名前空間]を管理する第一の課題として見なされるかもしれません.
There are three kinds of interface issues that arise in embedding MathML in other XML documents. First, MathML markup must be recognized as valid embedded XML content, and not as an error. This issue could be seen primarily as a question of managing namespaces in XML [Namespaces].
2つ目の課題として, HTML/XHTMLにおいて, MathMLの描画はブラウザと統合されていなければなりません. ブラウザの中には, 既に元々の機能としてMathMLの描画を実装しているものもあり, よりたくさんのブラウザがその機能を実装することが期待されています. 同時に, 他のブラウザは, 別のソフトウェアメーカーや他の備え付けの技術によって, MathMLや他の埋め込まれたXMLの内容を描画することを促す基盤を開発してきました. この備え付けの技術の例としては, 現在利用可能な洗練されたCSS描画エンジンや一般的となったJavaScript/ECMAScriptの強力な実装があります. これらのブラウザ特有の仕組みの利用は, 一般にこれらを活性化する種類の追加の連携部分のマークアップを必要とします. CSSの場合は, CSS 2.1 [CSS21]に対応したCSS描画エンジンに合わせたMathMLの特別な制限された形式[MathMLforCSS]があります. このMathML3の制限された概要は, MathML3の完全な表記の豊かさは提供できませんが, 現在のCSSエンジンによって外面上で許容できる内容で描画できる, どこでも利用できる単純な形式を提供しています.
Second, in the case of HTML/XHTML, MathML rendering must be integrated with browser software. Some browsers already implement MathML rendering natively, and one can expect more browsers will do so in the future. At the same time, other browsers have developed infrastructure to facilitate the rendering of MathML and other embedded XML content by third-party software or other built-in technology. Examples of this built-in technology are the sophisticated CSS rendering engines now available, and the powerful implementations of JavaScript/ECMAScript that are becoming common. Using these browser-specific mechanisms generally requires additional interface markup of some sort to activate them. In the case of CSS, there is a special restricted form of MathML3 [MathMLforCSS] that is tailored for use with CSS rendering engines that support CSS 2.1 [CSS21]. This restricted profile of MathML3 does not offer the full expressiveness of MathML3, but it provides a portable simpler form that can be rendered acceptably on the screen by modern CSS engines.
3つ目の課題として, MathMLを生成したり処理したりする他のプログラムは, 利用者と意思疎通ができなければなりません. 数々のMathMLソフトウェアが, 編集ツール, 変換ソフトウェア, 数式処理システム, 他の科学的なソフトウェアを含めて, 開発されてきたか開発されています. しかしながら, MathMLの式は長くなる傾向があり, 手入力すると間違いがちです. そのため, 特別な強調する機能が, 使い勝手の良い変換ソフトウェアや編集ツールによって, MathMLの生成を容易にすることを確実にしなければなりません. それらのソフトウェアは, 信頼できる, 環境に依存せず, 製造元に依存しない方法で協調して動作すべきです.
Third, other tools for generating and processing MathML must be able to communicate. A number of MathML tools have been or are being developed, including editors, translators, computer algebra systems, and other scientific software. However, since MathML expressions tend to be lengthy, and prone to error when entered by hand, special emphasis must be made to ensure that MathML can easily be generated by user-friendly conversion and authoring tools, and that these tools work together in a dependable, platform-independent, and vendor-independent way.
この章は, コンテントマークアップとプレゼンテーションマークアップの両方に適用され, 5.2 付加情報要素で述べたsemantics
要素, annotation
要素, annotation-xml
要素に対する特別な処理モデルについて説明します.
This chapter applies to both content and presentation markup, and describes
a particular processing model for the semantics
, annotation
and annotation-xml
elements described in
5.2 Annotation Elements.
名前空間[名前空間]に対応しているXML文書[XML]の中で, MathMLマークアップを認知する好ましい方法は, MathML名前空間URI http://www.w3.org/1998/Math/MathML
の使用によって, MathML名前空間中のmath
要素を認知するということです.
Within an XML document supporting namespaces [XML],
[Namespaces], the preferred method to recognize
MathML markup is by the identification of the math
element
in the MathML namespace by the use of the MathML namespace
URI http://www.w3.org/1998/Math/MathML
.
MathML名前空間URIは, [XHTML]文書の中に埋め込まれたMathMLに対して推奨される方法です. ただし, 利用者のソフトウェアの中には, MathMLマークアップを処理する特定の拡張機能を呼び出すことができるように, 補足の情報を必要とするものがあってもよいです.
The MathML namespace URI is the recommended method to embed MathML within [XHTML] documents. However, some user-agents may require supplementary information to be available to allow them to invoke specific extensions to process the MathML markup.
MathMLを埋め込もうとしているマークアップ言語の仕様書は, この勧告文書とは独立したMathMLを認知する特別な条件を必要としてもよいです. その条件は, この勧告文書で説明されているものと類似したものであるべきです. また, MathML要素のその環境での名前は, この勧告文書で定義されたものと同じであるべきです.
Markup-language specifications that wish to embed MathML may require special conditions to recognize MathML markup that are independent of this recommendation. The conditions should be similar to those expressed in this recommendation, and the local names of the MathML elements should remain the same as those defined in this recommendation.
HTMLは何ら名前空間を認めていませんが, MathML名前空間を認識するものをして組み込んでいます. math
要素やその子孫要素は, HTML処理プログラムによってhttp://www.w3.org/1998/Math/MathML
名前空間に置かれ, 入力が前の節で宣言した名前空間を伴うXHTMLであるかのように処理されるでしょう. HTML処理プログラムがMathMLを制御する詳細な決まりについては, 6.4.3 MathMLとHTMLの混在を参照して下さい.
HTML does not allow arbitrary namespaces, but has built in knowledge of the MathML
namespace.
The math
element and its descendants will be placed in the http://www.w3.org/1998/Math/MathML
namespace by the HTML parser, and will appear to applications as if the input had
been XHTML with the namespace declared
as in the previous section. See 6.4.3 Mixing MathML and HTML for detailed rules of the HTML parser's handling of MathML.
MathMLの式を描画することは, ウェブブラウザの中でしばしば行われますが, 描画以外のMathMLを処理する機能は, 他のソフトウェアで行われるのがより自然です. 特に, 一般的な機能は, 数式編集ツールや数式処理システムでMathMLの式を開くことを含んでいます. よって, MathMLマークアップの形式を特定する, コード化された名前を指定することは重要です.
Although rendering MathML expressions often takes place in a Web browser, other MathML processing functions take place more naturally in other applications. Particularly common tasks include opening a MathML expression in an equation editor or computer algebra system. It is important therefore to specify the encoding names by which MathML fragments should be identified.
XML名前空間を認知した環境以外では, MathML処理プログラムを呼び出すことを確実にすることができるように, メディアタイプ[RFC2045], [RFC2046]が利用されるべきです. メディアタイプが適切でない環境では, ある特定の動作環境におけるクリップボードの形式といった, 次の節で述べるコード化された名前が使用されるべきです.
Outside of those environments where XML namespaces are recognized, media types [RFC2045], [RFC2046] should be used if possible to ensure the invocation of a MathML processor. For those environments where media types are not appropriate, such as clipboard formats on some platforms, the encoding names described in the next section should be used.
MathMLは2つの別個の種類があります. 1つは視覚的表現をコード化したもので, 3. プレゼンテーションマークアップで定義しています. もう1つはコンピュータでの構造をコード化したもので, 4. コンテントマークアップで定義しています. MathMLソフトウェアの中には, 2つの種類のうち1つしか入出力しないものもあってもよいです. もしくは, それらのソフトウェアは, それぞれを別の方法で提供したり使用したりしてもよいですし, 2つの違いを除いて両方を処理してもよいです. 次に示すコード化された名前は, コンテントMathMLやプレゼンテーションMathMLのマークアップを必要に応じて確立するために利用されてもよいです.
MathML contains two distinct vocabularies: one for encoding visual presentation, defined in 3. Presentation Markup, and one for encoding computational structure, defined in 4. Content Markup. Some MathML applications may import and export only one of these two vocabularies, while others may produce and consume each in a different way, and still others may process both without any distinction between the two. The following encoding names may be used to distinguish between content and presentation MathML markup when needed.
MathML-プレゼンテーション: プレゼンテーションMathMLのマークアップを含む実例
MathML-Presentation: The instance contains presentation MathML markup only.
メディアタイプ: application/mathml-presentation+xml
Media Type: application/mathml-presentation+xml
ウィンドウズクリップボードフレーバー: MathML Presentation
(訳注:ウィンドウズのクリップボードのデータ形式を決める値)
Windows Clipboard Flavor: MathML Presentation
ユニバーサルタイプ識別子: public.mathml.presentation
Universal Type Identifier: public.mathml.presentation
MathML-コンテント:コンテントMathMLマークアップを含む実例
MathML-Content: The instance contains content MathML markup only.
メディアタイプ: application/mathml-content+xml
Media Type: application/mathml-content+xml
ウィンドウズクリップボードフレーバー: MathML Content
Windows Clipboard Flavor: MathML Content
ユニバーサルタイプ識別子: public.mathml.content
Universal Type Identifier: public.mathml.content
MathML (一般): プレゼンテーションMathMLマークアップ, コンテントMathMLマークアップ, その2つを混合したもののどれかを含むであろう実例
MathML (generic): The instance may contain presentation MathML markup, content MathML markup, or a mixture of the two.
拡張子: .mml
File name extension: .mml
メディアタイプ: application/mathml+xml
Media Type: application/mathml+xml
ウィンドウズクリップボードフレーバー: MathML
Windows Clipboard Flavor: MathML
ユニバーサルタイプ識別子: public.mathml
Universal Type Identifier: public.mathml
これらのコード化された名前それぞれに対する詳細については, [MathMLメディアタイプ]を参照して下さい.
See [MathML-Media-Types] for more details about each of these encoding names.
MathML2は, annotation-xml
要素のencoding
属性に, 定義済みの値MathML
, MathML-Content
, MathML-Presentation
を指定していました. これらの値は, 以前との互換性のためにメディアタイプの代わりに用いられてもよいです. 詳細については, 5.2.2 代替表現や5.2.3 同一内容を参照して下さい. MathML1.0は, [RFC7303]で廃止されたメディアタイプtext/mathml
を提案していました.
MathML 2 specified the predefined encoding values MathML
,
MathML-Content
, and MathML-Presentation
for the
encoding
attribute on the annotation-xml
element.
These values may be used as an alternative to the media type for backward
compatibility. See 5.2.2 Alternate representations and
5.2.3 Content equivalents for details.
Moreover, MathML 1.0 suggested the media-type text/mathml
,
which has been superseded by [RFC7303].
MathMLの式は, しばしばコピー貼り付けまたはドラッグアンドドロップといった, よく知られた枠組みを利用するソフトウェア間で交換され, ファイルに保存されたり, HTTPプロトコルを通じて交換されたりします. この節は, そういった受け渡しの際にMathMLを処理するのに推奨される方法を提供します.
MathML expressions are often exchanged between applications using the familiar copy-and-paste or drag-and-drop paradigms and are often stored in files or exchanged over the HTTP protocol. This section provides recommended ways to process MathML during these transfers.
この節で述べているMathMLデータの受け渡しは, しばしばメディアタイプ, クリップボードフォーマット, データフレーバーと呼ばれる, いくつかのフレーバーを利用可能なMathMLデータを作る, 2つのソフトウェアのデータの間で起こります. これらのフレーバーは, 通常は提供するソフトウェアの優先度の順に並べられ, 通常は利用するソフトウェアの望ましい順で探索されます. コピー貼り付けの枠組みは, 中央のクリップボードに, クリップボードフォーマットごとに1つのデータの流れとして, ソフトウェアにそれ自身のデータを置くことを認めています. 利用するソフトウェアは, それ自身が望む形式のデータを選んで読み込むことで折衝します. ドラッグアンドドロップの枠組みは, 利用可能な形式を宣言することで, その形式のデータを提供することを, ソフトウェアに認めています. データを受け入れることになるソフトウェアは, 利用可能な形式の一覧に基づき, ドロップを受け入れるか拒否するか決めます. また, ドロップ動作は, 示されている形式の中から1つのデータを引き渡すよう, 受け入れるソフトウェアが求めることを認めています. [HTTP11]におけるHTTP GET通信は, 利用可能なメディアタイプの一覧の送信を, クライアントに認めています. そして, サーバーは, 示されたメディアタイプの中から1つのデータを引き渡します. [HTTP11]におけるHTTP POST通信は, サーバーのソフトウェアが利用可能なメディアタイプと関連付けられたデータの送信を, クライアントに認めています.
The transfers of MathML fragments described in this section occur between the contexts of two applications by making the MathML data available in several flavors, often called media types, clipboard formats, or data flavors. These flavors are typically ordered by preference by the producing application, and are typically examined in preference order by the consuming application. The copy-and-paste paradigm allows an application to place content in a central clipboard, with one data stream per clipboard format; a consuming application negotiates by choosing to read the data of the format it prefers. The drag-and-drop paradigm allows an application to offer content by declaring the available formats; a potential recipient accepts or rejects a drop based on the list of available formats, and the drop action allows the receiving application to request the delivery of the data in one of the indicated formats. An HTTP GET transfer, as in [HTTP11], allows a client to submit a list of acceptable media types; the server then delivers the data using one of the indicated media types. An HTTP POST transfer, as in [HTTP11], allows a client to submit data labelled with a media type that is acceptable to the server application.
現在の端末環境は, 同じような構造を利用するコピー貼り付けとドラッグアンドドロップによる受け渡しを提供します. ただし, 環境に依存する名前付けの構文を検証しながらです. HTTP通信は全てメディアタイプに基づきます. この節は, ソフトウェアが提供すべき通信の形式は何か, どのようにそれらの形式を名付けるべきか, どのようにそれらの形式がsemantics
要素, annotation
要素, annotation-xml
要素を扱うべきか指定します.
Current desktop platforms offer copy-and-paste and drag-and-drop
transfers using similar architectures, but with varying naming schemes
depending on the platform. HTTP transfers are all based on media types.
This section specifies what transfer types applications should provide,
how they should be named, and how they should handle the special
semantics
, annotation
, and annotation-xml
elements.
3つの折衝の仕組みを要約するために, 次の段落は, 提供され, 受け入れられ, 出力されるフレーバー, それぞれの名前(文字列)と中のデータ(バイナリデータの流れ)について説明します.
To summarize the three negotiation mechanisms, the following paragraphs will describe transfer flavors, each with a name (a character string) and content (a stream of binary data), which are offered, accepted, and/or exported.
6.2.4 MathMLのコード化された名前で一覧にした名前は, MathMLのコード化に対応する転送フレーバーを特定するのに使われる正確な文字列です. そのようなものを認めたオペレーティングシステムにおいて, ソフトウェアは, それらのフレーバーに対するそのソフトウェアの対応状況を登録すべきです(例えば, Windowsにおけるレジスタークリップボードフォーマット, マッキントッシュ環境におけるソフトウェア記述子の中のユニバーサルタイプ識別子への対応の宣言).
The names listed in 6.2.4 Names of MathML Encodings are the exact strings that should be used to identify the transfer flavors that correspond to the MathML encodings. On operating systems that allow such, an application should register their support for these flavor names (e.g. on Windows, a call to RegisterClipboardFormat, or, on the Macintosh platform, declaration of support for the universal type identifier in the application descriptor).
MathMLを受け渡すとき, ソフトウェアは, 受け渡されるデータの中身がMathML文書型の整形式のXMLの実例であることを確実にしなければなりません. とりわけ次のようにです.
When transferring MathML, an application MUST ensure the content of the data transfer is a well-formed XML instance of a MathML document type. Specifically:
その例は, 例えば<?xml version="1.0">のようなXML宣言で始まってもよいです.
The instance MAY begin with an XML declaration, e.g. <?xml version="1.0">
その例は, きっちり1つのルート要素であるmath
要素を含まなければなりません.
The instance MUST contain exactly one root math
element.
その例は, ルート要素であるmath
要素の中でMathML名前空間を宣言しなければなりません.
The instance MUST declare the MathML namespace
on the root math
element.
その例は, math
要素のschemaLocation
属性を, その例が適合しているMathML文書型を述べているMathML構文の場所を示すのに利用してもよいです. schemaLocation
属性の存在は, MathMLの利用者が参照している構文を取得したり利用したりするのに必須ではありません.
The instance MAY use a schemaLocation
attribute
on the math
element to indicate the location of the MathML
schema that describes the MathML document type to which the instance
conforms. The presence of the schemaLocation
attribute
does not require a consumer of the MathML instance to obtain or use
the referenced schema.
その例は, より高い相互運用性のために, 文字実体参照名(例えばα)よりも, 数値文字参照(例えばα)を利用すべきです.
The instance SHOULD use numeric character references (e.g. α) rather than character entity names (e.g. α) for greater interoperability.
UTF-8以外の文字コードが使われている場合, XML宣言か, UTF-16でコード化されたデータに対するバイト順マーク(BOM)の利用かによって, その例は文字コードを指定しなければなりません.
The instance MUST specify the character encoding, if it uses an encoding other than UTF-8, either in the XML declaration, or by the use of a byte-order mark (BOM) for UTF-16-encoded data.
MathMLマークアップを受け渡すソフトウェアは, 次の慣習を守るべきです.
An application that transfers MathML markup SHOULD adhere to the following conventions:
純粋なプレゼンテーションマークアップや純粋なコンテントマークアップに対応したソフトウェアは, 利用可能な限りたくさんのフレーバーに対応すべきです.
An application that supports pure presentation markup and/or pure content markup SHOULD offer as many of these flavors as it has available.
1つのMathMLフレーバーを出力するソフトウェアは, より特定のフレーバーを決められないことから, その名前をMathML
のみとすべきです.
An application that only exports one MathML flavor SHOULD name it
MathML
if it is unable to determine a more specific flavor.
ソフトウェアがより特定のフレーバーを決めることができるならば, そのソフトウェアは一般的なものと特定のもの両方のフレーバーを提供すべきです. ただし, 受け取り側が特定のフレーバーに対応していると知られている場合は, そのフレーバーのみを受け渡すべきです. HTTP GET通信では, 例えば, コンテントマークアップとプレゼンテーションマークアップに対して, 特定の転送形式がクライアントが送ったHTTP Accept
ヘッダーに含まれているならば, その転送形式のみを返すべきです.
If an application is able to determine a more specific flavor, it SHOULD
offer both the generic and specific transfer flavors, but it SHOULD only
deliver the specific flavor if it knows that the recipient supports it.
For an HTTP GET transfer, for example, the specific transfer types for
content and presentation markup should only be returned if they are
included in the HTTP Accept
header sent by the client.
2つの特定の転送フレーバーを出力するソフトウェアは, コンテントマークアップとプレゼンテーションマークアップ両方のフレーバーと同じように, 一番上のMathML semantics
要素(5.2.9.1 並列のマークアップの一番上の要素参照)を使った他の2つを複合する一般的なフレーバーを出力すべきです.
An application that exports the two specific transfer flavors SHOULD
export both the content and presentation transfer flavors, as well as
the generic flavor, which SHOULD combine the other two flavors using
a top-level MathML semantics
element
(see 5.2.9.1 Top-level Parallel Markup).
ルート要素の子要素がsemantics
要素のみのMathMLデータをソフトウェアが出力するとき, 転送フレーバーが認知され, encoding
属性に基づいて名付けられ付加情報の鍵が(既定値の)alternate-representationならば, そのソフトウェアは上で示したフレーバーの後に, それぞれannotation
要素またはannotation-xml
要素に対応する転送フレーバーを提供すべきです. それぞれの付加情報で受け渡される内容は, (annotation
要素に対して)特定の文字コードの文字データ, または(annotation-xml
要素に対して)整形式のXMLデータ, または(付加情報の参照に対して)src
属性で与えられるURLを参照した結果のデータを含みます.
When an application exports a MathML fragment whose only child of the
root element is a semantics
element, it SHOULD offer, after
the above flavors, a transfer flavor for each annotation
or
annotation-xml
element, provided the transfer flavor can be
recognized and named based on the encoding
attribute value,
and provided the annotation key is (the default)
alternate-representation.
The transfer content for each annotation should contain the character data
in the specified encoding (for an annotation
element), or a
well-formed XML fragment (for an annotation-xml
element), or
the data that results by requesting the URL given by the src
attribute (for an annotation reference).
最後の頼みの綱として, ソフトウェアは, (text/plain
, CF_UNICODETEXT
, UnicodeText
, NSStringPboardType
といった)書式無しの文字列フレーバー形式のデータを出力してもよいです. ソフトウェアが利用可能な表現の複数の形式を持っているとき, そのソフトウェアは, そのソフトウェアの考え方次第で文字列として出力する形式を選んでもよいです. 古いMathML処理プログラムは, math
要素で始まる書式無しの文字列として受け渡されることを期待していることもあることから, 文字列データは, math
要素の前に現れるであろうXML宣言, DOCTYPE宣言, 他のXMLの前処理の部分を一般に省略すべきです. 出力されるフレーバーは最も特定のフレーバーが最初で, 最も一般的なフレーバーが最後になる順番で並ぶべきであるという原則に従って, ユニコードの文字列形式のデータは, いつも最後に出力されるフレーバーであるべきです.
As a final fallback, an application MAY export a version of
the data in a plain-text flavor (such as text/plain
,
CF_UNICODETEXT
, UnicodeText
, or
NSStringPboardType
). When an application has multiple
versions of an expression available, it may choose the version to
export as text at its discretion. Since some older MathML processors
expect MathML instances transferred as plain text to begin with a
math
element, the text version SHOULD generally omit the XML
declaration, DOCTYPE declaration, and other XML prolog material that
would appear before the math
element. The Unicode
text version of the data SHOULD always be the last flavor exported,
following the principle that exported flavors should be ordered with
the most specific flavor first and the least specific flavor last.
MathMLの実例が純粋なコンテントマークアップか純粋なプレゼンテーションマークアップのどちらか決めるのに, math
要素, semantics
要素, annotation
要素, annotation-xml
要素は, プレゼンテーションマークアップとコンテントマークアップの両方の種類に属することができると見なされるべきです. math
要素は, 全てのMathMLの受け渡しでルート要素として必要とされることから, この方法で取り扱われます. semantics
要素とその子要素の付加情報要素は, MathMLの中で代わりの付加情報の仕組みを構成しており, また, プレゼンテーションマークアップかコンテントマークアップかのどちらかと結び付けられるわけではありません. 結果として, MathMLを利用するソフトウェアは, 2つの種類のうち1つしか実装していないとしても, いつもこれらの4つの要素を処理する必要があります.
To determine whether a MathML instance is pure content markup or
pure presentation markup, the math
, semantics
,
annotation
and annotation-xml
elements should be
regarded as belonging to both the presentation and content markup
vocabularies. The math
element is treated in this way
because it is required as the root element in any MathML transfer.
The semantics
element and its child annotation elements
comprise an arbitrary annotation mechanism within MathML, and are
not tied to either presentation or content markup. Consequently,
an application that consumes MathML should always process these four
elements, even if it only implements one of the two vocabularies.
MathMLを提供するプログラムが, 例えば画像や他のソフトウェア特有の形式であるバイナリデータをクリップボードに提供することを, 前で述べた推奨される挙動が認めることは価値を持ちません. XML文字データは何らかのバイトの流れのデータを受け渡すことができないことから, バイナリデータを受け渡す唯一の方法は, 付加情報のsrc
属性を利用してバイナリーデータを参照することです.
It is worth noting that the above recommendations allow agents
that produce MathML to provide binary data for the clipboard, for
example in an image or other application-specific format. The sole
method to do so is to reference the binary data using the src
attribute of an annotation, since XML character data does not allow
for the transfer of arbitrary byte-stream data.
前で述べた推奨される挙動は, MathMLを受け渡す枠組を利用する, MathMLに関係したソフトウェア間の相互運用性を改良することを意図されていますが, それらの推奨される挙動は相互運用性を保証していないことに注意すべきです. 例えば, MathMLデータの中の(例えば, スタイルシートなどの)外部のデータへの参照は, データの利用者がそれらが置かれた場所を利用できない場合に, HTMLや他のデータ形式を切り取り貼り付けしたときに起こるであろう相互運用性の問題を引き起こすでしょう. 外部データへの参照を利用するソフトウェアは, 潜在的な問題を利用者に意識させ, 参照しているデータを得る代わりの方法を提供するように促されています. 一般に, 解決できなかったり理解できなかったりする参照を含むMathMLデータの利用者は, 外部の参照を無視すべきです.
While the above recommendations are intended to improve interoperability between MathML-aware applications that use these transfer paradigms, it should be noted that they do not guarantee interoperability. For example, references to external resources (e.g. stylesheets, etc.) in MathML data can cause interoperability problems if the consumer of the data is unable to locate them, as can happen when cutting and pasting HTML or other data types. An application that makes use of references to external resources is encouraged to make users aware of potential problems and provide alternate ways to obtain the referenced resources. In general, consumers of MathML data that contains references they cannot resolve or do not understand should ignore the external references.
あるeラーニングソフトウェアが, MathMLを含んでいるものもあるクイズの問題のデータベースを持っています. MathMLは複数のデータから成り立っており, eラーニングソフトウェアは単にデータを表示部分に渡していますが, 洗練されたMathML解析の能力は持っていません. 結果として, ソフトウェアは与えられたMathMLの実例が純粋なプレゼンテーションマークアップか純粋なコンテントマークアップかのどちらか知らず, 実例が特定のバージョンのMathML構文に関して有効か分かりません. したがって, このソフトウェアは, クリップボードに次の形式のデータを置きます.
An e-learning application has a database of quiz questions, some of which contain MathML. The MathML comes from multiple sources, and the e-learning application merely passes the data on for display, but does not have sophisticated MathML analysis capabilities. Consequently, the application is not aware whether a given MathML instance is pure presentation or pure content markup, nor does it know whether the instance is valid with respect to a particular version of the MathML schema. It therefore places the following data formats on the clipboard:
フレーバーの名前 Flavor Name |
フレーバーの内容 Flavor Content |
MathML |
|
Unicode Text |
|
あるWindows環境の数式編集ツールは, MathML3に関して有効な純粋なプレゼンテーションマークアップを生成することができます. 結果として, このソフトウェアは次のフレーバーを出力します.
An equation editor on the Windows platform is able to generate pure presentation markup, valid with respect to MathML 3. Consequently, it exports the following flavors:
フレーバーの名前 Flavor Name |
フレーバーの内容 Flavor Content |
MathML Presentation |
|
Tiff |
(描画された例) (a rendering sample) |
Unicode Text |
|
あるXMLスキーマを基にしたMac OS X環境のコンテンツマネジメントシステムは, 数式の集合の複数のMathML表現を含んでいます. その表現は, 著者による混合されたマークアップ, 記号計算プログラムの芯となる純粋なコンテントマークアップ, 印刷出版のための純粋なプレゼンテーションマークアップを含みます. XMLスキーマのシステムによる利用のために, マークアップは名前空間の接頭辞と一緒に保存されます. よって, そのシステムは次のデータを受け渡します.
A schema-based content management system on the Mac OS X platform contains multiple MathML representations of a collection of mathematical expressions, including mixed markup from authors, pure content markup for interfacing to symbolic computation engines, and pure presentation markup for print publication. Due to the system's use of schemata, markup is stored with a namespace prefix. The system therefore can transfer the following data:
フレーバーの名前 Flavor Name |
フレーバーの内容 Flavor Content |
public.mathml.presentation |
|
public.mathml.content |
|
public.mathml |
|
public.plain-text.tex |
|
public.plain-text |
|
ある同じようなコンテンツマネジメントシステムがウェブ上で構築されており, 数式のMathML表現を受け渡します. そのシステムはMathML-プレゼンテーション, MathML-コンテント, Tex, TIFF形式の画像を提供できます. ホームページが見られているとき, そのシステムは次のようなMathMLデータを提供するでしょう.
A similar content management system is web-based and delivers MathML representations of mathematical expressions. The system is able to produce MathML-Presentation, MathML-Content, TeX and pictures in TIFF format. In web-pages being browsed, it could produce a MathML fragment such as the following:
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>...</mrow>
<annotation-xml encoding="MathML-Content">...</annotation-xml>
<annotation encoding="TeX">{1 \over x}</annotation>
<annotation encoding="image/tiff" src="formula3848.tiff"/>
</semantics>
</math>
そのようなデータを受け取りドラッグアンドドロップ動作の一部として出力しようとするWindowsブラウザは, 次のフレーバーを提供できるでしょう.
A web browser on the Windows platform that receives such a fragment and tries to export it as part of a drag-and-drop action can offer the following flavors:
フレーバーの名前 Flavor Name |
フレーバーの内容 Flavor Content |
MathML Presentation |
|
MathML Content |
|
MathML |
|
TeX |
|
CF_TIFF |
(formula3848.tiffから要求された画像ファイルの内容) (the content of the picture file, requested from formula3848.tiff) |
CF_UNICODETEXT |
|
MathMLは, 通常, 他のマークアップ言語と組合せられて利用されます. 最も典型的な事例は, ひょっとしたらHTMLまたはDocBookといった文書に基づいたマークアップ言語の中でのMathMLの利用かもしれません. 他の文書の要素に基づいたマークアップ言語が, HTML5の中のMathMLやSVGといったように複合文書書式の中に含まれることも一般的です. 他の一般的な利用状況としては, 他のマークアップをMathMLの中に混在させる場合があります. 例えば, 編集ツールは, カーソルの場所を表す要素, または他の状況の情報を, MathMLマークアップの中におそらく挿入するので, 著者は編集を中断した場所を見つけ出すことができます.
MathML is usually used in combination with other markup languages. The most typical case is perhaps the use of MathML within a document-level markup language, such as HTML or DocBook. It is also common that other object-level markup languages are also included in a compound document format, such as MathML and SVG in HTML5. Other common use cases include mixing other markup within MathML. For example, an authoring tool might insert an element representing a cursor position or other state information within MathML markup, so that an author can pick up editing where it was broken off.
ほとんどの文書マークアップ言語は, 行の中の式(または, 画像, 文書の要素など)の概念を持っており, 典型的にMathMLの実例を内容モデルに統合させる自然な文法があります. しかしながら, 他の面で, MathMLの中にマークアップを埋め込むことは, そのように明確に処理することはできません. なぜなら, たくさんのMathML要素で子要素の役割は場所によって定義されるからです. 例えば, apply
の最初の子要素は演算子でなければならず, mfrac
の2番目の子要素は分母です. それらの文脈に他のマークアップが現れた場合の適切な挙動は未解決のままです. そのような挙動が特定の文脈で定義できる場合でさえ, 一般的なMathML処理プログラムに対して, 実装の課題が示されています.
Most document markup languages have some concept of an inline
equation (or graphic, object, etc.), so there is typically a natural
way to incorporate MathML instances into the content
model. However, in the other direction, embedding of markup within
MathML is not so clear cut, since in many MathML elements, the role of
child elements is defined by position. For example, the first
child of an apply
must be an operator, and the second child
of an mfrac
is the denominator. The proper behavior when
foreign markup appears in such contexts is problematic. Even when such
behavior can be defined in a particular context, it presents an
implementation challenge for generic MathML processors.
この理由から, 通常MathMLスキーマは, 外部のマークアップ要素をMathMLの実例の中に含めることを認めていません.
For this reason, the default MathML schema does not allow foreign markup elements to be included within MathML instances.
標準的な構文において, 他の名前空間の要素は認められませんが, 他の名前空間の属性は認められています. 知らないXMLマークアップに出くわしたMathML処理プログラムは, 次のようにふるまうべきです.
In the standard schema, elements from other namespaces are not allowed, but attributes from other namespaces are permitted. MathML processors that encounter unknown XML markup should behave as follows:
MathMLでない名前空間の属性は, 静かに無視されるべきです.
An attribute from a non-MathML namespace should be silently ignored.
MathMLでない名前空間の要素は, annotation-xml
要素の中の場合を除いて, エラーとして扱われるべきです. その要素がプレゼンテーション要素の子要素ならば, 3.3.5 エラーメッセージ <merror>
で述べたように扱われるべきです. その要素がコンテント要素の子要素ならば, 4.2.9 エラーマークアップ <cerror>
で述べたように扱われるべきです.
An element from a non-MathML namespace should be treated
as an error, except in an annotation-xml
element.
If the element is a child of a presentation element, it should be
handled as described in 3.3.5 Error Message <merror>
.
If the element is a child of a content element, it should be
handled as described in 4.2.9 Error Markup <cerror>
.
例えば, mfrac
要素の2番目の子要素が知らない要素だった場合, その分数は, エラーを意図する分母とともに描かれるべきです.
For example, if the second child of an mfrac
element is an
unknown element, the fraction should be rendered with a denominator
that indicates the error.
MathMLが大きな文書型に含まれているように複合文書書式を記述する場合, 設計者はMathMLの内容モデルを, 追加の要素を認めるように拡張してもよいです. 例えば, 一般的な拡張方法は, MathMLでない名前空間の要素を素子要素の中で認められるように, ただし他の要素の中では認められないように, MathML構文を拡張することです. 知らないマークアップに出くわしたMathML処理プログラムは, 次のようにふるまうべきです.
When designing a compound document format in which MathML is included in a larger document type, the designer may extend the content model of MathML to allow additional elements. For example, a common extension is to extend the MathML schema such that elements from non-MathML namespaces are allowed in token elements, but not in other elements. MathML processors that encounter unknown markup should behave as follows:
認知されていないXML属性は, 静かに無視されるべきです.
An unrecognized XML attribute should be silently ignored.
MathML素子要素の中の認知されていない要素は, 静かに無視されるべきです.
An unrecognized element in a MathML token element should be silently ignored.
MathMLでない名前空間の要素は, annotation-xml
要素の中の場合を除いて, エラーとして扱われるべきです. その要素がプレゼンテーション要素の子要素ならば, 3.3.5 エラーメッセージ <merror>
で述べたように扱われるべきです. その要素がコンテント要素の子要素ならば, 4.2.9 エラーマークアップ <cerror>
で述べたように扱われるべきです.
An element from a non-MathML namespace should be treated
as an error, except in an annotation-xml
element.
If the element is a child of a presentation element, it should be
handled as described in 3.3.5 Error Message <merror>
.
If the element is a child of a content element, it should be
handled as described in 4.2.9 Error Markup <cerror>
.
この方法で構文を拡張することは, A. MathMLを処理するで述べるRelax NGを用いて簡単に行えます. この拡張は, mtext
の内容モデルを上書きすることで, 単純にMathML構文に組み込めるでしょう.
Extending the schema in this way is easily achieved using the Relax NG schema described
in A. Parsing MathML, it may be as simple as including the MathML schema whilst overriding the content
model of mtext
:
default namespace m = "http://www.w3.org/1998/Math/MathML"
include "mathml4.rnc" {
mtext = element mtext {mtext.attributes, (token.content|anyElement)*}
}
ここで与えられた定義は, MathML名前空間でない何らかの整形式のXMLを, mtext
の子要素として認めようとするものです. 実際はこの定義はとてもあいまいです. 例えば, XHTML+MathML構文は, 単に行の中のXHTML要素をmtext
の追加の子要素として認めたがるでしょう. このことは, anyElement
をホストの文書型の構文の適切な成果で置き換えることで実現されてもよいです. 6.4.1 MathMLとXHTMLの混在を参照して下さい.
The definition given here would allow any well formed XML that is not in the MathML
namespace as a child of mtext
. In practice this may be too lax. For example, an XHTML+MathML Schema may just want
to allow inline XHTML elements as additional children of mtext
. This may be achieved by replacing anyElement
by a suitable production from the schema for the host document type, see 6.4.1 Mixing MathML and XHTML.
複合文書の中でマークアップの種類を混在させる場合に考慮すべき状況としては, 複合文書の型を最初に設計するときが挙げられます. ただし, 文書型が1度固まったら, 特定のソフトウェアの必要性に合わせて内容モデルをさらに修正することは一般に現実的ではないです. しかしながら, そのようなソフトウェアがMathMLの実例の中に追加の情報を保存する必要があるだろう状況がまだ頻繁に起こります. MathMLはしばしば編集ツールによって生成されます. そのため, 特に一般的で重要な状況としては, 編集ツールがMathMLの式と一緒にツール内部の状態についての情報を保存する必要がある状況があります. そのため, 著者は以前の状態から編集を再開できるでしょう. 例えば, 式の不完全な部分を示すために仮のものが利用されてもよいですし, また, 式の中の挿入の場所が保存される必要があってもよいです.
Considerations about mixing markup vocabularies in compound documents arise when a compound document type is first designed. But once the document type is fixed, it is not generally practical for specific software tools to further modify the content model to suit their needs. However, it is still frequently the case that such tools may need to store additional information within a MathML instance. Since MathML is most often generated by authoring tools, a particularly common and important case is where an authoring tool needs to store information about its internal state along with a MathML expression, so an author can resume editing from a previous state. For example, placeholders may be used to indicate incomplete parts of an expression, or an insertion point within an expression may need to be stored.
MathMLの式の中に固有のデータを残す必要があるソフトウェアは, 残すことが可能な状況であっても, 一般に内容モデルを変更せずに残すことを試みるべきです. 2つの必要性に対応するため, 特定の複合文書書式の内容モデルによって認められているかどうかに関わらず, MathMLは, 次の方法によって固有のデータの保存を認めています.
An application that needs to persist private data within a MathML expression should generally attempt to do so without altering the underlying content model, even in situations where it is feasible to do so. To support this requirement, regardless of what may be allowed by the content model of a particular compound document format, MathML permits the storage of private data via the following strategies:
XML名前空間の利用を認めている書式において, 小さいデータに対して, 他の名前空間の属性が, 全てのMathML要素において認められています.
In a format that permits the use of XML Namespaces, for small amounts of data, attributes from other namespaces are allowed on all MathML elements.
大きいデータに対して, 5.2 付加情報要素で説明しているように, ソフトウェアは, semantics
要素を使ってもよいです.
For larger amounts of data, applications may use the
semantics
element, as described in
5.2 Annotation Elements.
編集ツールや, 例えば, 著者によってあてはめられるべき完全ではない式に印を付けるといった特定の動作と, プレゼンテーションMathMLのツリー構造を結び付ける他のソフトウェアに対して, 3.7.1 式の一部に動作を結び付けるで説明したようにmaction
要素が用いられてもよいです.
For authoring tools and other applications that need to
associate particular actions with presentation MathML subtrees,
e.g. to mark an incomplete expression to be filled in by an author,
the maction
element may be used, as described in
3.7.1 Bind Action to Sub-Expression.
XHTMLにMathMLを統合するには, XHTMLにMathMLを埋め込むだけでなく, MathMLにXHTMLを埋め込むことも可能とすべきです. W3C HTML5検証ツールで使用される構文は, (svg
を含む)全ての行の中のHTML(を表す)要素を, mtext
の内容に利用できるように, mtext
を拡張しています. 3.2.2.1 MathMLの中にHTMLを埋め込むの例を参照して下さい. 前に注意したように, mtext
の中のXHTML要素を使用するMathMLデータは, 文書から抜き出されたり, 分離して利用されたりした場合, 有効なMathMLデータではないでしょう. 編集ツールは, mtext
の中から全てのHTMLのマークアップを取り除くか, 代わりの文字列で置き換えるかする対応を提案してもよいです.
To fully integrate MathML into XHTML, it should be possible not only to embed MathML
in
XHTML, but also to embed XHTML in MathML.
The schema used for the W3C HTML5 validator extends mtext
to allow all
inline (phrasing) HTML elements (including svg
) to be used within the
content of mtext
. See the example in 3.2.2.1 Embedding HTML in MathML. As noted above,
MathML fragments using XHTML elements within mtext
will not be valid MathML if extracted
from the document and used in isolation. Editing tools may offer support for removing
any HTML
markup from within mtext
and replacing it by a text alternative.
ほとんどの場合に, XHTML要素(ヘッダー, 段落, 一覧など)が数学の文脈の中に適用されないか, MathMLがあらかじめ数学の内容(表, 数学の書式の変更など)に特別に合わせられた同様のまたは改良された機能を提供するかします.
In most cases, XHTML elements (headings, paragraphs, lists, etc.) either do not apply in mathematical contexts, or MathML already provides equivalent or improved functionality specifically tailored to mathematical content (tables, mathematics style changes, etc.).
最新のブラウザや他のMathML関連ソフトウェアに対する互換性や実装の提案は, W3C数学作業部会のホームページに相談して下さい.
Consult the W3C Math Working Group home page for compatibility and implementation suggestions for current browsers and other MathML-aware tools.
数式の記述を必要としているXMLでない種類の言語があり, この仕様書を参照することが有意義な場合があるかもしれません. HTMLは次の節で論じている重要な例ですが, 他の例が存在します. \frac{a}{b}
といったTeXのような構文を, 明確に<mfrac>
や<mi">
を利用する代わりに利用できます. プログラムが特定の構文を処理し, MathML構文に適合しているであろうツリー構造を提供するならば, その構文はMathMLの応用と見られてもよいです. それでもその体系を利用した文書は, MathMLに適合していないことに注意して下さい. そのような構文の実装は, ここで定義されているXML構文でのMathMLとして, 可能な限り何らかの数式を出力する機能を提供すべきです. そのようなプログラムは, D.1 MathML適合で述べたMathML出力適合です.
There may be non-XML vocabularies which require markup for mathematical expressions,
where it makes sense to reference this specification. HTML is an important example
discussed in the
next section, however other examples exist. It is possible to use a TeX-like syntax
such as
\frac{a}{b}
rather than explicitly using <mfrac>
and <mi>
. If a system parses a specified syntax and produces a tree that may be
validated against the MathML schema then it may be viewed as
a MathML application. Note however that documents using such a system are not valid
MathML.
Implementations of such a syntax should, if possible, offer a facility to
output any mathematical expressions as MathML in the XML syntax defined here. Such
an application
would then be a MathML-output-conformant processor as described in D.1 MathML Conformance.
XMLに基づかない体系の重要な例が[HTML]で定義されています. HTMLの中のMathMLについて考えると, 2つに分けられる考え得る課題があります. 1つ目は, XHTMLの内容について前に述べたように, 構文がmtext
の中のHTMLを認めるよう拡張されることです. 2つ目は, XML処理プログラムではなくHTML処理プログラムが利用されることです. HTML処理プログラムによってMathMLを処理することは, [HTML]で規範的に定義しています. ここでの議論は, 処理プログラムの実装者に向けられており, 処理プログラムが入力それぞれの文字を処理する際の, 状態の移り変わりの観点から書かれています. 後の規範的でない説明は, 高い水準の説明や例を与えようとしています.
An important example of a non-XML based system is defined in [HTML]. When
considering MathML in HTML there are two separate issues to consider. Firstly the
schema is extended
to allow HTML in mtext
as described above in the context of XHTML. Secondly an HTML parser
is used rather than an XML parser. The parsing of MathML by an HTML parser is normatively
defined in
[HTML]. The description there is aimed at parser implementers and written in terms of
the state transitions of the parser as it parses each character of the input. The
non-normative description below aims to give a higher level description and
examples.
XMLの処理は完全に一般的なもので, 何らかのXML文書は, 利用されている特定の種類の言語への参照無しに処理されてもよいです. HTMLの処理は, それぞれの要素に特定の決まりと一緒にHTML言語に特化した処理プログラムという点で異なっています. XMLでの場合と同様に, HTML処理プログラムは, 検証からの処理を確立します. 入力の中には, 正確に描画されたとしても, 検証プログラムによって報告されるであろう(ただし, 通常は描画システムからは報告されない)処理エラーに分類されるものもあります.
XML parsing is completely regular, any XML document may be parsed without reference to the particular vocabulary being used. HTML parsing differs in that it is a custom parser for the HTML vocabulary with specific rules for each element. Similarly to XML though, the HTML parser distinguishes parsing from validation; some input, even if it renders correctly, is classed as a parse error which may be reported by validators (but typically is not reported by rendering systems).
MathMLの利用に影響する主な違いは, 次のように要約されます.
The main differences that affect MathML usage may be summarized as:
ほとんどの場合, 属性値は引用符で囲う必要がありません. <mfenced open=( close=)>
は正しく処理されます.
Attribute values in most cases do not need to be quoted: <mfenced open=(
close=)>
would parse correctly.
終了タグは, 多くの状況で省略されてもよいです.
End tags may in many cases be omitted.
HTMLは, HTML, MathML,SVGの3つのいずれかからなる名前空間以外に対応しておらず, また, 名前空間の接頭辞にも対応していません. よって, <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML">
のような接頭辞の付いた形は利用できず, <math xmlns="http://www.w3.org/1998/Math/MathML">
は利用してもよいですが, 名前空間の宣言は本質的に無視され, その入力は<math>
として扱われます. どちらの場合でも, math
要素とその子孫要素はMathML名前空間に置かれます. 5. MathMLに注釈を付けるで注意したように, 名前空間への対応の欠乏は, HTMLの中で利用する場合に, MathMLに他の言語のマークアップで付加情報を付ける何らかの可能性を制限します.
HTML does not support namespaces other than the three built in ones for HTML, MathML
and SVG, and
does not support namespace prefixes. Thus you can not use a prefix form like <mml:math
xmlns:mml="http://www.w3.org/1998/Math/MathML">
and while you may use <math
xmlns="http://www.w3.org/1998/Math/MathML">
, the namespace declaration is essentially ignored
and the input is treated as <math>
. In either case the math
element and its
descendants are placed in the MathML namespace. As noted in 5. Annotating MathML the lack of
namespace support limits some of the possibilities for annotating MathML with markup
from other
vocabularies when used in HTML.
XML処理プログラムとは異なり, HTML処理プログラムは, どんな入力文字列も受入れ, 定義された結果を提供するよう定義されています. (その結果は, 不適合に分類されてもよいです.) 例として, 極端な例である<math></<><z =5>
は, 検証ツールによりエラーと処理されるでしょうが, コメント<
とXMLでは表現できない名前が=5
で値が""
の属性をもつ要素z
を含んでいるmath要素に対応するツリー構造を返すでしょう.
Unlike the XML parser, the HTML parser is defined to accept any input string
and produce a defined result (which may be classified as non-conforming). The extreme
example
<math></<><z =5>
for example would be flagged as a parse error by validators but would return a tree
corresponding to
a math element containing a comment <
and an element z
with an attribute
that could not be expressed in XML with name =5
and value ""
.
素子要素<mtext>
, <mo>
, <mn>
, <mi>
, <ms>
の中, またはencoding
属性がtext/html
またはannotation/xhtml+xml
である<annotation-xml>
の中を除いて, HTML要素の存在は, 全ての開いたMathML要素を閉じることで数式を終わらせるでしょう. そのため, そのHTML要素は, 外側のHTMLの文脈にあると解釈されます. 何らかのそれに続くMathML要素は<math>
に含まれておらず, そのため無効なHTML要素として処理され, MathMLとして描画されないでしょう. 例については, 5.2.7.3 HTML文書でannotation-xml
を利用するで与えられた例を参照して下さい.
Unless inside the token elements <mtext>
, <mo>
, <mn>
, <mi>
,
<ms>
, or inside an <annotation-xml>
with encoding
attribute
text/html
or annotation/xhtml+xml
, the presence of an HTML element
will terminate the math expression by closing all open MathML elements, so
that the HTML element is interpreted as being in the outer HTML context. Any following
MathML
elements are then not contained in <math>
so will be parsed as invalid HTML elements and not
rendered as MathML. See for example the example given in 5.2.7.3 Using annotation-xml
in HTML documents.
既存のMathMLソフトウェアとの互換性の観点から, 著者や編集ツールは, HTML文書の中でさえ, 整形式のXMLであるMathMLの断片を利用すべきです. 前に注意したように, HTML文書の中にMathMLを受け入れるソフトウェアが, それらのHTML処理プログラムの機能をMathMLが利用することを受け入れなければならないとしても, それらのソフトウェアは, 軽量なXML構文の中にMathMLを出力する方法を提供すべきです.
In the interests of compatibility with existing MathML applications authors and editing systems should use MathML fragments that are well formed XML, even when embedded in an HTML document. Also as noted above, although applications accepting MathML in HTML documents must accept MathML making use of these HTML parser features, they should offer a way to export MathML in a portable XML syntax.
MathML3において, href
属性の存在によって, 要素はリンクとして指定されます. MathMLは, HTML/XHTMLのアンカー要素a
に対応する要素を何ら持ちません.
In MathML 3, an element is designated as a link by the presence of
the href
attribute. MathML has no element that corresponds
to the HTML/XHTML anchor element a
.
MathMLは全ての要素にhref
を認めています. しかしながら, ほとんどのソフトウェアは, 入れ子になったリンクまたは視覚的に描画されない要素でのリンクを実装する方法を持ちません. そのようなリンクは何ら効果がありません.
MathML allows the href
attribute on all
elements.
However, most user agents have no way
to implement nested links or links on elements with no visible rendering;
such links may have no effect.
通常視覚的に描画されず, そのためリンク要素として利用すべきでないプレゼンテーションマークアップ要素の一覧は, 下の表に示すとおりです.
The list of presentation markup elements that do not ordinarily have a visual rendering, and thus should not be used as linking elements, is given in the table below.
リンク要素にすべきでないMathML要素 MathML elements that should not be linking elements |
|
mprescripts |
none |
malignmark |
maligngroup |
リンクの仕組みに対応した複合文書書式において, id
属性は, MathMLの式へのリンクの場所を特定するために使用すべきです. id
属性は全てのMathML要素で認められており, その値は文書の中で唯一のものでなければなりません.
For compound document formats that support linking mechanisms, the
id
attribute should
be used to specify the location for a link into a MathML expression. The
id
attribute is allowed on all MathML elements, and its value
must be unique within a document, making it ideal for this purpose.
MathML2は, リンクに直接対応していないことに注意して下さい. MathML2は, W3C勧告"XMLリンク言語" [XLink]を参照しており, xlink:href
属性を利用して複合文書の中のリンクを定義していました. 上で話したように, MathML3はリンクのためのhref
属性を加えたことから, xlink:href
はもはや必要ありません. しかしながら, MathMLがMathMLでない名前空間の属性の利用を認めていることから, xlink:href
は今でも利用可能です. 新しい複合文書書式は, リンクにMathML3href
属性を使用することが推奨されています. ソフトウェアが, href
属性とxlink:href
属性の両方を持つMathML要素に出くわしたとき, href
属性が優先されるべきです. 以前との互換性に対応するため, MathML2を含む複合文書でXMLリンクを実装したソフトウェアは, href
属性への対応に加えて, xlink:href
属性の利用への対応も継続すべきです.
Note that MathML 2 has no direct support for linking; it refers to
the W3C Recommendation "XML Linking Language" [XLink] in
defining links in compound document contexts by using an xlink:href
attribute.
As mentioned above, MathML 3 adds an href
attribute for linking so that xlink:href
is no longer needed.
However, xlink:href
is still allowed because MathML permits the use of attributes
from non-MathML namespaces. It is recommended that new compound document
formats use the MathML 3 href
attribute for linking. When user agents
encounter MathML elements with both href
and xlink:href
attributes, the
href
attribute should take precedence. To support backward
compatibility, user agents that implement XML Linking
in compound documents containing MathML 2 should continue to support
the use of the xlink:href
attribute in addition to supporting the href
attribute.
新しい字形の導入を別にすれば, 画像を利用したいと思う状況の多くは, 文字付きの図式を表示する場合です. 例えば, 結び目図式, ベン図, ディンキン図形, ファイマンダイアグラム, 可換図式は全てこの状況に分類されます. そのような, それらの中身は, 構造化された画像とMathMLマークアップを組合せることを通じて, より良くコード化できるでしょう. しかしながら, このことについて書く場合に, 文字付きの図式
としてそのような概念をコード化することは, W3C数学事業の範囲の及ばないところです. (最新の数学におけるW3Cの事業についてはhttp://www.w3.org/Mathを, W3Cの画像事業についてはhttp://www.w3.org/Graphicsを参照して下さい.)
Apart from the introduction of new glyphs, many of the situations
where one might be inclined to use an image amount to displaying
labeled diagrams. For example, knot diagrams, Venn diagrams, Dynkin
diagrams, Feynman diagrams and commutative diagrams all fall into this
category. As such, their content would be better encoded via some
combination of structured graphics and MathML markup. However, at the
time of this writing, it is beyond the scope of the W3C Math Activity
to define a markup language to encode such a general concept as
labeled diagrams.
(See http://www.w3.org/Math for
current W3C activity in mathematics and http://www.w3.org/Graphics
for the W3C graphics activity.)
semantics
要素を利用して, 追加の画像の内容を埋め込む仕組みの1つは, 次の例のとおりです.
One mechanism for embedding additional graphical content is via the
semantics
element, as in the following example:
<semantics>
<apply>
<intersect/>
<ci>A</ci>
<ci>B</ci>
</apply>
<annotation-xml encoding="image/svg+xml">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 290 180">
<clipPath id="a">
<circle cy="90" cx="100" r="60"/>
</clipPath>
<circle fill="#AAAAAA" cy="90" cx="190" r="60" style="clip-path:url(#a)"/>
<circle stroke="black" fill="none" cy="90" cx="100" r="60"/>
<circle stroke="black" fill="none" cy="90" cx="190" r="60"/>
</svg>
</annotation-xml>
<annotation-xml encoding="application/xhtml+xml">
<img xmlns="http://www.w3.org/1999/xhtml" src="intersect.png" alt="A intersect B"/>
</annotation-xml>
</semantics>
ここで, annotation-xml
要素は, 2つの集合の集合積をMathMLコンテントで描画する代わりの表現を示すのに使用しています. 1つ目のものは, Scalable Vector Graphics
書式[SVG](MathMLとSVGを統合したXHTMLの概要の定義は[XHTML-MathML-SVG]参照)で, 2つ目のものは, XHTMLの断片として埋め込まれるXHTMLimg
要素を利用しています. この状況では, MathML処理プログラムはこれらの表現のどれでも表示に利用することができ, ひょっとしたら下記の画像のような画像書式を提供するかもしれません.
Here, the annotation-xml
elements are used to indicate alternative
representations of the MathML-Content depiction of the
intersection of two sets.
The first one is in the Scalable Vector
Graphics
format [SVG]
(see [XHTML-MathML-SVG] for the definition of an XHTML profile integrating MathML and SVG), the second one
uses the
XHTML img
element embedded as an XHTML fragment.
In this situation, a MathML processor can use any of these
representations for display, perhaps producing a graphical format
such as the image below.
この例の意味の表現は, MathMLコンテントマークアップで, semantics
要素の最初の子要素として与えられていることに注意して下さい. この点に関して, XHTMLのimg
要素のalt
属性とほとんど同じ表現で, 視覚的でない表現では最も適切な選択になるでしょう.
Note that the semantics representation of this example is given
in MathML-Content markup, as the first child of the
semantics
element. In this regard, it is the
representation most analogous to the alt
attribute of the
img
element in XHTML, and would likely be
the best choice for non-visual rendering.
CSS[CSS21]に対応した環境でMathMLが描画されるとき, CSSスタイルシートを利用して数学の書式の特性を制御することが望ましいです. ただし, MathML配置の構文の書式とCSSの視覚的書式のモデルは完全に異なり, 数学の配置に影響するたくさんの書式の変数は直接の類似した文字表現を持っていないことから, 一番最初に現れたであろう時のように単純ではありません. 類似の特性がある状況でさえ, それらの特性の実用的な値は一致しなくてもよいです. この違いのために, MathMLに元から対応しているソフトウェアは, MathMLの配置の構文に適用できるCSSプロパティを, 配置に影響を与えないものに限定することを選んでもよいです.
When MathML is rendered in an environment that supports CSS [CSS21], controlling mathematics style properties with a CSS style sheet is desirable, but not as simple as it might first appear, because the formatting of MathML layout schemata is quite different from the CSS visual formatting model and many of the style parameters that affect mathematics layout have no direct textual analogs. Even in cases where there are analogous properties, the sensible values for these properties may not correspond. Because of this difference, applications that support MathML natively may choose to restrict the CSS properties applicable to MathML layout schemata to those properties that do not affect layout.
一般的に言って, 数学書式属性とCSSの相互作用に対応するモデルは, 次のように処理されます. CSSスタイルシートは次のように書式の決まりを提供しているとします.
Generally speaking, the model for CSS interaction with the math style attributes runs as follows. A CSS style sheet might provide a style rule such as:
math *.[mathsize="small"] {
font-size: 80%
}
この決まりは, smallに設定されているmathsize
属性を持つ, math
要素の全ての子要素に対して, CSS font-sizeプロパティを設定します. MathML描画ソフトウェアは, CSS環境の書式エンジンに確認し, 返値をソフトウェア自身の配置アルゴリズムの入力として利用します. MathMLは, 書式情報を描画環境から継承する仕組みを指定していません. しかしながら, 周囲の書式環境の特性とMathMLが指定した描画の決まりの間の相互作用に対し提案されている描画の決まりは, 3.2.2 素子要素に共通の数学書式属性で論じられており, より一般的に3. プレゼンテーションマークアップを通して論じられています.
This rule sets the CSS font-size property for all children of the
math
element that have the mathsize
attribute set to small.
A MathML renderer
would then query the style engine for the CSS environment, and use the
values returned as input to its own layout algorithms. MathML does
not specify the mechanism by which style information is inherited from
the environment. However, some suggested rendering rules for the
interaction between properties of the ambient style environment and
MathML-specific rendering rules are discussed in 3.2.2 Mathematics style attributes common to token elements, and more generally throughout 3. Presentation Markup.
しかしながら, MathMLに対するCSSスタイルシートを書く場合には, いくらかの慎重さが必要なことが強調されるべきです. 数学記号の植字の特性を変えることは, 数式の意味を変えられることから, 文書全体の植字の書式が, 埋め込まれたMathMLの式に影響を与えないような方法で, スタイルシートは書かれるべきです.
It should be stressed, however, that some caution is required in writing CSS stylesheets for MathML. Because changing typographic properties of mathematics symbols can change the meaning of an equation, stylesheets should be written in a way such that changes to document-wide typographic styles do not affect embedded MathML expressions.
避けるべき他の注意点は, 数式の適切な理解に必要な植字の書式情報を提供するためにCSSを使用することです. 意味の上でCSSに依存している式は, 数式処理システムといったCSSでない環境では利用できないでしょう. CSSの決まりの選択子として新しいMathML3.0数学書式属性の論理的な値を利用することで, 式の意味のために必要な書式情報をMathMLで直接コード化することを確実にできます.
Another pitfall to be avoided is using CSS to provide typographic style information necessary to the proper understanding of an expression. Expressions dependent on CSS for meaning will not be portable to non-CSS environments such as computer algebra systems. By using the logical values of the new MathML 3.0 mathematics style attributes as selectors for CSS rules, it can be assured that style information necessary to the sense of an expression is encoded directly in the MathML.
MathML3.0は, どのように利用者のソフトウェアが書式情報を処理すべきか指定してません. なぜなら, たくさんのCSSに対応していないMathML環境があり, いろいろな利用者のソフトウェアや描画ソフトウェアが, CSS情報を読み込む際の幅広く異なった度合いを持っているからです.
MathML 3.0 does not specify how a user agent should process style information, because there are many non-CSS MathML environments, and because different users agents and renderers have widely varying degrees of access to CSS information.
CSSまたは類似したスタイルシートは, 選択したMathML要素の描画特性の変更を指定することができます. 描画特性は, 要素の属性からも変更することができたり, 描画ソフトウェアによって自動で変更されたりすることから, 様々なデータから要請された変更が適用されるべき順番を指定する必要があります. 順番は, CSSでない表現の助言の優先度を考慮した順番を幾層にも重ねることで[CSS21]で定義しています.
CSS or analogous style sheets can specify changes to rendering properties of selected MathML elements. Since rendering properties can also be changed by attributes on an element, or be changed automatically by the renderer, it is necessary to specify the order in which changes requested by various sources should occur. The order is defined by [CSS21] cascading order taking into account precedence of non-CSS presentational hints.
TeXは, MathMLのmover
/munder
のアクセントに相当する数々のコマンドを持っています. 仕様書は, 何の文字をそれらのアクセントに対して使用するか言及していません. 場合によっては, 使用できるASCII文字がありますが, ASCII文字でない類似した文字もあります. それらの文字の多くは, mover
/munder
と伊井署に使用されるときに引き伸ばされるべきです.
TeX has a number of commands that correspond to mover
/munder
accents in MathML. The spec does not say what character to use for those accents. In some cases there are ASCII chars that could be used but also non-ASCII ones that are similar. Many of these characters should be stretchy when used with mover
/munder
.
At a minimum, the spec should say which (or all) of the following should be used for (stretchable) accents (some options listed) so that renderers and generators of MathML agree on what character(s) to use:
\hat
-- '^', U+0302, U+02C6\check
-- 'v', U+0306, U+02D8\tilde
-- '~', U+0303, U+223C, U+02DC\acute
-- U+0027, U+00B4, U+02CA, U+0301, U+02B9, U+2032\grave
-- U+0060, U+02BC, U+02CB, U+0300\dot
-- '.', U+00B7, U+02D9, U+0307, and potentially others like U+2E33\ddot
-- '..', U+00A8, U+0308\breve
-- U+02D8, U+0306\bar
-- '_', '-', U+00AF, U+02C9, U+0304, U+0305, U+0332, U+FF3Fvec
-- U+20D7, U+2192, U+27F6Note: based on experience with MathPlayer, many of these alternatives were encountered "in the wild" so it is important that Core specifies these (MathML 3 should have) as people are having to guess what character to use.
\overline
-- should be same as \bar
\underline
-- same as \bar
?この章はMathMLで使用される文字についての議論やそれらの利用についての仕様を含んでいます. また, ユニコード[ユニコード]で体系化された世界的な複数オクテットコードによる文字集合(UCS)ISO-10646で示されるコードポイントに対応する正確な形に関する警告を含んでいます.
This chapter contains discussion of characters for use within MathML, recommendations for their use, and warnings concerning the correct form of the corresponding code points given in the Universal Multiple-Octet Coded Character Set (UCS) ISO-10646 as codified in Unicode [Unicode].
追加の数学用英数字記号は, ユニコード3.1で提供されました. 3.2.2 素子要素に共通の数学書式属性で論じたとおり, MathMLは, 数学用英数字記号を指定する代わりの仕組みを用意するべきです. この代わりの仕組みは, ユニコードのコードポイントとしての数学用英数字記号の仕様と, それらに対応するソフトウェアやフォントの普及との隔たりを橋渡しします. すなわち, mi
のような素子要素でmathvariant
属性を使用することで, 素子要素の文字データが数学用英数字記号であることを示すことができます.
Additional Mathematical Alphanumeric Symbols
were provided in Unicode 3.1.
As discussed in 3.2.2 Mathematics style attributes common to token elements, MathML offers an
alternative mechanism to specify mathematical alphanumeric characters.
Namely, one uses the mathvariant
attribute on a token element
such as mi
to indicate that the character data in the token
element selects a mathematical alphanumeric symbol.
第1面の数学用英数字記号の重要な用途は, フラクタル, ギリシア文字, 太字, スクリプトといった特別な数学用フォントで識別子を普通に表示することです. 他の例では, 数学用フラクタル文字はU+1D504 ("A")からU+1D537 ("z")までの範囲です. よって, 変数の識別子でフラクタル文字を使用する場合, 次のように記述します.
An important use of the mathematical alphanumeric symbols in Plane 1 is for identifiers normally printed in special mathematical fonts, such as Fraktur, Greek, Boldface, or Script. As another example, the Mathematical Fraktur alphabet runs from U+1D504 ("A") to U+1D537 ("z"). Thus, an identifier for a variable that uses Fraktur characters could be marked up as
<mi>𝔄<!--BLACK-LETTER CAPITAL A--></mi>
mathvariant
で修飾する方法もあります.
mathvariant
attribute:<mi mathvariant="fraktur">A</mi>
MathMLを処理するソフトウェアは, 数学用英数字記号を, (それが現れたときに)対応する書式のない文字とmathvariant属性の値との組合せと同一として扱わなければなりません.
A MathML processor must treat a mathematical alphanumeric character (when it appears) as identical to the corresponding combination of the unstyled character and mathvariant attribute value.
このことは, 表示ソフトウェアがユニコードコードポイントと等しい最低限の組合せを表示することを意味しており, ユニコードコードポイントを持たず, 十分なフォントの対応もされていない組合せを無視しても良いことを意味しています.
It is intended that renderers distinguish at least those combinations that have equivalent Unicode code points, and renderers are free to ignore those combinations that have no assigned Unicode code point or for which adequate font support is unavailable.
印刷の品質や代用の表示に重要であるにも関わらず, 直接対応する字形を持たない文字があります. それらをここでは表示されない文字と呼んでいます. それらの文字の役割は, 3. プレゼンテーションマークアップと4. コンテントマークアップで論じています.
Some characters, although important for the quality of print or alternative rendering, do not have glyph marks that correspond directly to them. They are called here non-marking characters. Their roles are discussed in 3. Presentation Markup and 4. Content Markup.
MathMLにおいて, 改行のようなページの構成の制御は, mo
やmspace
要素の適切な属性を利用して行います.
In MathML, control of page composition, such as line-breaking, is
effected by the use of the proper attributes on the mo
and mspace
elements.
下記の文字は単純な空白ではありません. これらの文字は, 表示の表現の質を向上させるための文字の手がかりを提供したり, 聴覚表現を正確にできるようにしたり, 視覚的にあいまいな文章から数学の意味を唯一のものとして再現したりできることから, UCSに特に重要として新しく追加された文字です.
The characters below are not simple spacers. They are especially important new additions to the UCS because they provide textual clues which can increase the quality of print rendering, permit correct audio rendering, and allow the unique recovery of mathematical semantics from text which is visually ambiguous.
ユニコードコードポイント Unicode code point |
ユニコード名 Unicode name |
説明 Description |
U+2061 | 関数の適用 FUNCTION APPLICATION |
プレゼンテーションマークアップにおいて関数の適用を表す文字(3.2.5 演算子, かっこ, 区切り, アクセント <mo> )character showing function application in presentation tagging (3.2.5 Operator, Fence, Separator or Accent <mo> ) |
U+2062 | 見えない掛ける INVISIBLE TIMES |
記号無しで理解される場合の掛け算の記号(3.2.5 演算子, かっこ, 区切り, アクセント <mo> )marks multiplication when it is understood without a mark (3.2.5 Operator, Fence, Separator or Accent <mo> ) |
U+2063 | 見えない区切り記号 INVISIBLE SEPARATOR |
例えば添え字の中で区切りとして利用されるもの(3.2.5 演算子, かっこ, 区切り, アクセント <mo> )used as a separator, e.g., in indices (3.2.5 Operator, Fence, Separator or Accent <mo> ) |
U+2064 | 見えないプラス INVISIBLE PLUS |
特別に1½のような構成において使用される足し算の記号(3.2.5 演算子, かっこ, 区切り, アクセント <mo> )marks addition, especially in constructs such as 1½ (3.2.5 Operator, Fence, Separator or Accent <mo> ) |
数学の文脈で同じと見なされたり, 特別な意味を持っていたりする文字は, UCSの他の文字とよく混同されます. 例えば, 普通にキーボードで入力される文字が, よりふさわしい数学用文字の代用として確立されてきたりしています. 他にも, 数式と文章の両方で合理的用途のある文字には, 矛盾した表現やフォントの慣習があったりします. これらの文字は全て変則的な数学用文字と呼ばれます.
Some characters which occur fairly often in mathematical texts, and have special significance there, are frequently confused with other similar characters in the UCS. In some cases, common keyboard characters have become entrenched as alternatives to the more appropriate mathematical characters. In others, characters have legitimate uses in both formulas and text, but conflicting rendering and font conventions. All these characters are called here anomalous characters.
典型的なラテン1をもとにしたキーボードは, 重要な数学用文字と視覚的に似た文字をいくつか含んでいます. その結果, これらの文字は, 故意にまたは故意でなく, より正確な数学用文字の代わりにたびたび使われます.
Typical Latin-1-based keyboards contain several characters that are visually similar to important mathematical characters. Consequently, these characters are frequently substituted, intentionally or unintentionally, for their more correct mathematical counterparts.
特別な数学の用途を持っている最も一般的な普通の文字はU+002D [ハイフン-マイナス]です. そのユニコード名が暗示しているように, 文章の中ではハイフンとして使われ, 数式の中では負の記号として使われます. 文章での利用には, 単に文章中での利用を意図する特定のコードポイントU+2010 [ハイフン]があり, ハイフンまたは短いダッシュとして表示されるべきです. 数学での利用には, 数式中での利用を意図する他のコードポイントU+2212 [マイナス記号]があり, 長いマイナスまたは負の記号として表示されるべきです. MathMLを表示するソフトウェアは, U+002D [ハイフン-マイナス]を, mo
のような数式の中ではU+2212 [マイナス記号]と等しいものとして, mtext
のような文章の中ではU+2010 [ハイフン]と等しいものとして扱うべきです.
The most common ordinary text character which enjoys a special
mathematical use is U+002D [HYPHEN-MINUS]. As its Unicode name
suggests, it is used as a hyphen in prose contexts, and as a minus
or negative sign in formulas.
For text use, there is a specific code point U+2010 [HYPHEN] which is
intended for prose contexts, and which should render as a hyphen or
short dash.
For mathematical use, there is another code point U+2212 [MINUS SIGN]
which is intended for mathematical formulas, and which should render
as a longer minus or negative sign.
MathML renderers should treat U+002D [HYPHEN-MINUS] as equivalent to
U+2212 [MINUS SIGN] in formula contexts such as mo
, and as
equivalent to U+2010 [HYPHEN] in text contexts such as mtext
.
典型的なヨーロッパのキーボードでは, アポストロフィまたは引用符(直立した, もしくは右側の引用符)に見えるキーが利用できます. そのため, 1つのキーがU+0027 [アポストロフィ]とU+2019 [右の一重引用符]を入力する二重の役割をします. 数学の文脈では, そのキーはU+2032 [プライム]であるべきプライムとして一般に使われます. ユニコードは, この記号を上書きして分やフィートの単位を表すのに記述することを認めています. 普通の文脈で構造化されていない表示においては, それらの文字は他の文字に続いて書かれます. U+0027 [アポストロフィ]とU+2019 [右の一重引用符]は, 文の中央から上にあげた小さい字形で記述されます. 使用されるフォントは, ユニコードの索引により, ふさわしい場所に上げた小さい字形を提供します. 数学のU+2032 [プライム]は, 全高のユニコードフォントと同じように扱われます.
On a typical European keyboard there is a key available which is viewed as an apostrophe or a single quotation mark (an upright or right quotation mark). Thus one key is doing double duty for prose input to enter U+0027 [APOSTROPHE] and U+2019 [RIGHT SINGLE QUOTATION MARK]. In mathematical contexts it is also commonly used for the prime, which should be U+2032 [PRIME]. Unicode recognizes the overloading of this symbol and remarks that it can also signify the units of minutes or feet. In the unstructured printed text of normal prose the characters are placed next to one another. The U+0027 [APOSTROPHE] and U+2019 [RIGHT SINGLE QUOTATION MARK] are marked with glyphs that are small and raised with respect to the center line of the text. The fonts used provide small raised glyphs in the appropriate places indexed by the Unicode codes. The U+2032 [PRIME] of mathematics is similarly treated in fuller Unicode fonts.
MathML表示ソフトウェアは, 数式の中で現れた場合にU+0027 [アポストロフィ]をU+2032 [プライム]として扱うように促されています.
MathML renderers are encouraged to treat U+0027 [APOSTROPHE] as U+2032 [PRIME] when appropriate in formula contexts.
最後の注意として, ‘プライム’はよく, キリル文字U+044C [キリル文字の小文字の軟音記号]の音訳で使われることがあります. このプライムの変わった使い方は, 数式において考慮すべき点ではありません.
A final remark is that a ‘prime’ is often used in transliteration of the Cyrillic character U+044C [CYRILLIC SMALL LETTER SOFT SIGN]. This different use of primes is not part of considerations for mathematical formulas.
マイナスとプライムといった文字が, より精密な数学の分野で最も一般的で重要なキーボードで入力される文字ですが, 他にも数々のときどき利用されるキーボードで入力される代用の文字があります. 例えば, 次のようなものがあります.
While the minus and prime characters are the most common and important keyboard characters with more precise mathematical counterparts, there are a number of other keyboard character substitutions that are sometimes used. For example some may expect
<mo>''</mo>
これは, U+2033 [二重のプライム]として扱われます. 類似した代用の例として, U+2034 [三重のプライム]やU+2057 [四重のプライム]が挙げられるかもしれません. 同じように, U+007C [縦線]はときどきU+2223 [割り切れる]として使われます. MathMLはこれらをソフトウェア特有の慣習と見なしており, 入力用のソフトウェアに対して互換性を向上するために, より正確な数学用文字を使用した記述を生成するよう推奨しています.
to be treated as U+2033 [DOUBLE PRIME], and analogous substitutions could perhaps be made for U+2034 [TRIPLE PRIME] and U+2057 [QUADRUPLE PRIME]. Similarly, sometimes U+007C [VERTICAL LINE] is used for U+2223 [DIVIDES]. MathML regards these as application-specific authoring conventions, and recommends that authoring tools generate markup using the more precise mathematical characters for better interoperability.
UCSには, 自然な添え字の外観を持っているように以前から扱われている数々の文字があります. これらの文字の視覚的表現は添え字に似ており, つまり基となる位置から上げて, 基となる文字の大きさより小さめに描かれます. 分の記号やプライム記号などです. 文章で使う場合, このような文字は識別子の後に続けて概ね同じフォントで描画されます. ここでは, これらの文字を疑似添え字と呼びます.
There are a number of characters in the UCS that traditionally have been taken to have a natural ‘script’ aspect. The visual presentation of these characters is similar to a script, that is, raised from the baseline, and smaller than the base font size. The degree symbol and prime characters are examples. For use in text, such characters occur in sequence with the identifier they follow, and are typically rendered using the same font. These characters are called pseudo-scripts here.
ほとんど全ての数学の文脈において, 疑似添え字は, MathMLで添え字としての明確な記述を使用している基となる式と連携されるべきです. 例えば, xプライム
のより適切な表現は次のとおりです.
In almost all mathematical contexts, pseudo-script characters should
be associated
with a base expression using explicit script markup in MathML. For
example, the preferred encoding of x prime
is
<msup><mi>x</mi><mo>′<!--PRIME--></mo></msup>
次のようではありません.
and not
<mi>x'</mi>
また, 他の明確な添え字の構造を用いない表現も適切ではありません. しかしながら, mtext
のような文章の中では, 疑似添え字が他の文字データと一緒に利用されてもよいことに注意が必要です.
or any other variants not using an explicit script construct. Note, however, that
within
text contexts such as mtext
, pseudo-scripts may be used in sequence with other character data.
数学の文脈において, 明確な記述が適切とされるのには2つの理由があります. まず, 疑似添え字を下付きの識別子と一緒に用いる場合の植字の問題があります. 以前から, x'の下付き添え字はプライムの下に描かれていました. 添え字の記述を用いることで簡単に達成されます. 例えば, 次のようにです.
There are two reasons why explicit markup is preferable in mathematical contexts. First, a problem arises with typesetting, when pseudo-scripts are used with subscripted identifiers. Traditionally, subscripting of x' would be rendered stacked under the prime. This is easily accomplished with script markup, for example:
<mrow><msubsup><mi>x</mi><mn>0</mn><mo>′<!--PRIME--></mo></msubsup></mrow>
対照的に,
By contrast,
<mrow><msub><mi>x'</mi><mn>0</mn></msub></mrow>
この記述では, 添え字がずれた位置に描かれます.
will render with staggered scripts.
このことは, MathML表示ソフトウェアが, 上付き文字の位置に見つかった他の文字コードとは違うように疑似添え字を扱わなければならないことを意味してることに注意が必要です. ほとんどのフォントで, 疑似添え字に対する字形は最初から小さく, 基となる位置より上げられています.
Note this means that a renderer of MathML will have to treat pseudo-scripts differently from most other character codes it finds in a superscript position; in most fonts, the glyphs for pseudo-scripts are already shrunk and raised from the baseline.
文字を並列で書くより, 明確な添え字として記述することが適切である2番目の理由は, 意図している数学上の構造を一般により良く反映できるからです. 例えば, 次のようにです.
The second reason that explicit script markup is preferrable to juxtaposition of characters is that it generally better reflects the intended mathematical structure. For example,
<msup>
<mrow><mo>(</mo><mrow><mi>f</mi><mo>+</mo><mi>g</mi></mrow><mo>)</mo></mrow>
<mo>′<!--PRIME--></mo>
</msup>
これは, ここのプライムが式全体に係ることを正確に反映しており, プライムが最後の右端のかっことしてふるまわないことを意味しています.
accurately reflects that the prime here is operating on an entire expression, and does not suggest that the prime is acting on the final right parenthesis.
しかしながら, MathMLの素子要素内のデータはユニコードの文字であるため, 次のような構文を含むMathMLの記述の有効性を否定することができません.
However, the data model for all MathML token elements is Unicode text, so one cannot rule out the possibility of valid MathML markup containing constructions such as
<mrow><mi>x'</mi></mrow>
または
and
<mrow><mi>x</mi><mo>'</mo></mrow>
最初の表記は, 状況によっては関数xの派生物として複数文字から成る識別子x'を表すために正当に利用されるかもしれません. しかし, このような表記は通常避けられるべきです. 入力したり, 有効性を確認したりするソフトウェアは, 推奨される添え字の記述を生成するよう促されます.
While the first form may, in some rare situations, legitimately be used to distinguish a multi-character identifer named x' from the derivative of a function x, such forms should generally be avoided. Authoring and validation tools are encouraged to generate the recommended script markup:
<mrow><msup><mi>x</mi><mo>′<!--PRIME--></mo></msup></mrow>
U+2032 [プライム]文字は, おそらく最も一般的な疑似添え字ですが, 次の一覧に示すたくさんの他の疑似添え字があります.
The U+2032 [PRIME] character is perhaps the most common pseudo-script, but there are many others, as listed below:
疑似添え字 Pseudo-script Characters |
|
U+0022 | 引用符 QUOTATION MARK |
U+0027 | アポストロフィ APOSTROPHE |
U+002A | アスタリスク ASTERISK |
U+0060 | グレーブアクセント GRAVE ACCENT |
U+00AA | 女性序数標識 FEMININE ORDINAL INDICATOR |
U+00B0 | 度記号 DEGREE SIGN |
U+00B2 | 上付き2 SUPERSCRIPT TWO |
U+00B3 | 上付き3 SUPERSCRIPT THREE |
U+00B4 | アキュートアクセント ACUTE ACCENT |
U+00B9 | 上付き1 SUPERSCRIPT ONE |
U+00BA | 男性序数標識 MASCULINE ORDINAL INDICATOR |
U+2018 | 左の一重引用符 LEFT SINGLE QUOTATION MARK |
U+2019 | 右の一重引用符 RIGHT SINGLE QUOTATION MARK |
U+201A | 下側の一重引用符 SINGLE LOW-9 QUOTATION MARK |
U+201B | 高い反転した一重引用符 SINGLE HIGH-REVERSED-9 QUOTATION MARK |
U+201C | 左の二重引用符 LEFT DOUBLE QUOTATION MARK |
U+201D | 右の二重引用符 RIGHT DOUBLE QUOTATION MARK |
U+201E | 下側の二重引用符 DOUBLE LOW-9 QUOTATION MARK |
U+201F | 高い反転した二重引用符 DOUBLE HIGH-REVERSED-9 QUOTATION MARK |
U+2032 | プライム PRIME |
U+2033 | 二重のプライム DOUBLE PRIME |
U+2034 | 三重のプライム TRIPLE PRIME |
U+2035 | 反転したプライム REVERSED PRIME |
U+2036 | 反転した二重のプライム REVERSED DOUBLE PRIME |
U+2037 | 反転した三重のプライム REVERSED TRIPLE PRIME |
U+2057 | 四重のプライム QUADRUPLE PRIME |
加えて, (U+2070で始まる)ユニコードの上付き文字と下付き文字の範囲にある文字は, 数式の中に現れた場合, 疑似添え字として扱われるべきです.
In addition, the characters in the Unicode Superscript and Subscript block (beginning at U+2070) should be treated as pseudo-scripts when they appear in mathematical formulas.
これらの文字の中には, U+002A [アスタリスク], U+00B0 [度記号], U+2033 [二重のプライム], バックプライムとしても知られるU+2035 [反転したプライム]といったキーボードでありふれたものもあることに注意が必要です.
Note that several of these characters are common on keyboards, including U+002A [ASTERISK], U+00B0 [DEGREE SIGN], U+2033 [DOUBLE PRIME], and U+2035 [REVERSED PRIME] also known as a back prime.
UCSには, 数々の異なる自然言語のアクセントとして使われる合成文字がたくさんあります. これらの中には, 数学のアクセントとして必要な記述を提供するかのように見えるものもあるかもしれません. これらは数学の記述では使用すべきではありません. 上付き文字, 下付き文字, 下側の文字, 上側の文字といった上記でたった今論じた構成を, 数学の記述では使うべきです. もちろん, 合成文字が複数文字の識別子として必要だった場合や通常の文章の中では使用して構いません.
In the UCS there are many combining characters that are intended to be used for the many accents of numerous different natural languages. Some of them may seem to provide markup needed for mathematical accents. They should not be used in mathematical markup. Superscript, subscript, underscript, and overscript constructions as just discussed above should be used for this purpose. Of course, combining characters may be used in multi-character identifiers as they are needed, or in text contexts.
数学の記述に合成文字が自然に出てくる場合がもう1つあります. いくつかの文字は, U+003E [大なり記号]の打ち消しにあたるU+226F [大なりでない]といった具合に打ち消しに関連付けられています. U+226F [大なりでない]の字形は通常, U+003E [大なり記号]とそれを貫く斜線です. そのため, 合成する斜線U+0338 [文字に合成する長い斜線]を使って作られたU+003E-0338を用いて表現することもできます. これは, その文字固有のユニコードコードポイントを持っている, よく数学で使われる他の25の文字にも当てはまります. 一方で, [実体]で一覧にされたU+0338 [文字に合成する長い斜線]を用いて表現される31の文字実体もあります.
There is one more case where combining characters turn up naturally in mathematical markup. Some relations have associated negations, such as U+226F [NOT GREATER-THAN] for the negation of U+003E [GREATER-THAN SIGN]. The glyph for U+226F [NOT GREATER-THAN] is usually just that for U+003E [GREATER-THAN SIGN] with a slash through it. Thus it could also be expressed by U+003E-0338 making use of the combining slash U+0338 [COMBINING LONG SOLIDUS OVERLAY]. That is true of 25 other characters in common enough mathematical use to merit their own Unicode code points. In the other direction there are 31 character entity names listed in [Entities] which are to be expressed using U+0338 [COMBINING LONG SOLIDUS OVERLAY].
同じように, 縦線を重ねることによって打ち消しを表す文字U+20D2 [文字に合成する長い縦線]があります. 中には合成済みの形で利用できるものもあり, 名前付き文字実体が合成文字に明確に与えられていることもあります. 加えて, U+0333 [文字に合成する二重下線]とU+20E5 [文字に合成する長い逆の斜線]を利用した例があり, U+FE00 [異体字選択用文字1]の利用により指定された異体字もあります. これらの文字の一覧は, [実体]の一覧で見ることができます.
In a similar way there are mathematical characters which have negations given by a vertical bar overlay U+20D2 [COMBINING LONG VERTICAL LINE OVERLAY]. Some are available in pre-composed forms, and some named character entities are given explicitly as combinations. In addition there are examples using U+0333 [COMBINING DOUBLE LOW LINE] and U+20E5 [COMBINING REVERSE SOLIDUS OVERLAY], and variants specified by use of the U+FE00 [VARIATION SELECTOR-1]. For fuller listing of these cases see the listings in [Entities].
一般的な決まりとして, 合成する文字の前に来る基の文字は, あたかもその合成された文字が存在するかのように合成済みの文字として扱われるべきです.
The general rule is that a base character followed by a string of combining characters should be treated just as though it were the pre-composed character that results from the combination, if such a character exists.
課題178
Issue 178
Relax NGスキーマは, MathMLのXMLシリアル化を確認するのに用いられてもよく, HTMLシリアル化といったMathMLの他のシリアル化を検証する基礎を提供します.
The Relax NG schema may be used to check the XML serialization of MathML and serves as a foundation for validating other serializations of MathML, such as the HTML serialization.
XMLシリアル化を用いているときでさえ, 入力の標準化は, このスキーマを適用する前に必要とされてもよいです. 明白に, HTMLに従って, [MathMLコア]は, 例えばOnClick="..."
といった少なくとも指定されたonclick
のような属性を認めています. 属性値をここで大文字で指定することは事実上ふさわしくないので, 小文字の名前のみ認められています. 同様に, 接頭辞data-
で始まる名前の何らかの属性は, 有効であると考えられるべきです. ここでのスキーマは, data-other
のような固定の属性しか認めないことから, 入力は, 検証の前にdata属性を取り除いて標準化されるべきです. または, スキーマは, 特性のソフトウェアで用いられる属性に対応するよう拡張されるべきです.
Even when using the XML serialization, some normalization of
the input may be required before applying this schema. Notably,
following HTML, [MathML-Core] allows attributes such as
onclick
to be specified in any case, eg
OnClick="..."
.
It is not practically feasible to specify that attribute names are
case insensitive here so only the lowercase names are allowed.
Similarly any attribute with name starting with the prefix
data-
should be considered valid. The schema here only
allows a fixed attribute, data-other
, so input should be
normalized to remove data attributes before validating, or the schema
should be extended to support the attributes used in a particular
application.
MathML文書は, MathMLに対するRelaxNGスキーマを用いて検証されるべきです. 後で示すXMLコード化(http://www.w3.org/Math/RelaxNG/mathml4/mathml4.rng)か簡潔な表記(https://www.w3.org/Math/RelaxNG/mathml4/mathml4.rnc)のどちらかを用います.
MathML documents should be validated using the RelaxNG Schema for MathML, either in the XML encoding (http://www.w3.org/Math/RelaxNG/mathml4/mathml4.rng) or in compact notation (https://www.w3.org/Math/RelaxNG/mathml4/mathml4.rnc) which is also shown below.
DTDと対照的に, RelaxNGスキーマと文書を結び付ける, 文書内の方法は何もありません.
In contrast to DTDs there is no in-document method to associate a RelaxNG schema with a document.
MathMLコアは, MathMLコアで指定されていますが, そのスキーマは, ここで示すMathML 4に対するスキーマと並行して開発されました. このスキーマは, https://www.w3.org/Math/RelaxNG/mathml4/mathml4-core.rncでも見ることができます.
MathML Core is specified in MathML Core however the Schema is developed alongside the schema for MathML 4 and presented here, it can also be found at https://www.w3.org/Math/RelaxNG/mathml4/mathml4-core.rnc.
# MathML 4 (Core Level 1) (注釈:MathML 4(コアレベル1)) # ####################### # Copyright 1998-2022 W3C (MIT, ERCIM, Keio, Beihang) # # Use and distribution of this code are permitted under the terms # W3C Software Notice and License (注釈:このコードの利用や配布は, W3Cのソフトウェア告示とライセンスの下で許可されます.) # http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 default namespace m = "http://www.w3.org/1998/Math/MathML" namespace h = "http://www.w3.org/1999/xhtml" start |= math math = element math {math.attributes,ImpliedMrow} MathMLoneventAttributes = attribute onabort {text}?, attribute onauxclick {text}?, attribute onblur {text}?, attribute oncancel {text}?, attribute oncanplay {text}?, attribute oncanplaythrough {text}?, attribute onchange {text}?, attribute onclick {text}?, attribute onclose {text}?, attribute oncontextlost {text}?, attribute oncontextmenu {text}?, attribute oncontextrestored {text}?, attribute oncuechange {text}?, attribute ondblclick {text}?, attribute ondrag {text}?, attribute ondragend {text}?, attribute ondragenter {text}?, attribute ondragleave {text}?, attribute ondragover {text}?, attribute ondragstart {text}?, attribute ondrop {text}?, attribute ondurationchange {text}?, attribute onemptied {text}?, attribute onended {text}?, attribute onerror {text}?, attribute onfocus {text}?, attribute onformdata {text}?, attribute oninput {text}?, attribute oninvalid {text}?, attribute onkeydown {text}?, attribute onkeypress {text}?, attribute onkeyup {text}?, attribute onload {text}?, attribute onloadeddata {text}?, attribute onloadedmetadata {text}?, attribute onloadstart {text}?, attribute onmousedown {text}?, attribute onmouseenter {text}?, attribute onmouseleave {text}?, attribute onmousemove {text}?, attribute onmouseout {text}?, attribute onmouseover {text}?, attribute onmouseup {text}?, attribute onpause {text}?, attribute onplay {text}?, attribute onplaying {text}?, attribute onprogress {text}?, attribute onratechange {text}?, attribute onreset {text}?, attribute onresize {text}?, attribute onscroll {text}?, attribute onsecuritypolicyviolation {text}?, attribute onseeked {text}?, attribute onseeking {text}?, attribute onselect {text}?, attribute onslotchange {text}?, attribute onstalled {text}?, attribute onsubmit {text}?, attribute onsuspend {text}?, attribute ontimeupdate {text}?, attribute ontoggle {text}?, attribute onvolumechange {text}?, attribute onwaiting {text}?, attribute onwebkitanimationend {text}?, attribute onwebkitanimationiteration {text}?, attribute onwebkitanimationstart {text}?, attribute onwebkittransitionend {text}?, attribute onwheel {text}?, attribute onafterprint {text}?, attribute onbeforeprint {text}?, attribute onbeforeunload {text}?, attribute onhashchange {text}?, attribute onlanguagechange {text}?, attribute onmessage {text}?, attribute onmessageerror {text}?, attribute onoffline {text}?, attribute ononline {text}?, attribute onpagehide {text}?, attribute onpageshow {text}?, attribute onpopstate {text}?, attribute onrejectionhandled {text}?, attribute onstorage {text}?, attribute onunhandledrejection {text}?, attribute onunload {text}?, attribute oncopy {text}?, attribute oncut {text}?, attribute onpaste {text}? # Sample set. May need preprocessing # or schema extension to allow more see MathML Core (and HTML) spec (注釈:例の集合. これ以上を認める, 事前処理やスキーマ拡張を必要としてもよいです. MathMLコア(およびHTML)仕様書参照.) MathMLDataAttributes = attribute data-other {text}? # sample set, like data- may need preprocessing to allow more (注釈:例の集合. data-のように, これ以上を認める事前処理を必要としてもよいです.) MathMLARIAattributes = attribute aria-label {text}?, attribute aria-describedby {text}?, attribute aria-details {text}? MathMLintentAttributes = attribute intent {text}?, attribute arg {xsd:NCName}? MathMLPGlobalAttributes = attribute id {xsd:ID}?, attribute class {xsd:NCName}?, attribute style {xsd:string}?, attribute dir {"ltr" | "rtl"}?, attribute mathbackground {color}?, attribute mathcolor {color}?, attribute mathsize {length-percentage}?, attribute mathvariant {xsd:string{pattern="\s*([Nn][Oo][Rr][Mm][Aa][Ll]|[Bb][Oo][Ll][Dd]|[Ii][Tt][Aa][Ll][Ii][Cc]|[Bb][Oo][Ll][Dd]-[Ii][Tt][Aa][Ll][Ii][Cc]|[Dd][Oo][Uu][Bb][Ll][Ee]-[Ss][Tt][Rr][Uu][Cc][Kk]|[Bb][Oo][Ll][Dd]-[Ff][Rr][Aa][Kk][Tt][Uu][Rr]|[Ss][Cc][Rr][Ii][Pp][Tt]|[Bb][Oo][Ll][Dd]-[Ss][Cc][Rr][Ii][Pp][Tt]|[Ff][Rr][Aa][Kk][Tt][Uu][Rr]|[Ss][Aa][Nn][Ss]-[Ss][Ee][Rr][Ii][Ff]|[Bb][Oo][Ll][Dd]-[Ss][Aa][Nn][Ss]-[Ss][Ee][Rr][Ii][Ff]|[Ss][Aa][Nn][Ss]-[Ss][Ee][Rr][Ii][Ff]-[Ii][Tt][Aa][Ll][Ii][Cc]|[Ss][Aa][Nn][Ss]-[Ss][Ee][Rr][Ii][Ff]-[Bb][Oo][Ll][Dd]-[Ii][Tt][Aa][Ll][Ii][Cc]|[Mm][Oo][Nn][Oo][Ss][Pp][Aa][Cc][Ee]|[Ii][Nn][Ii][Tt][Ii][Aa][Ll]|[Tt][Aa][Ii][Ll][Ee][Dd]|[Ll][Oo][Oo][Pp][Ee][Dd]|[Ss][Tt][Rr][Ee][Tt][Cc][Hh][Ee][Dd])\s*"}}?, attribute displaystyle {mathml-boolean}?, attribute scriptlevel {xsd:integer}?, attribute tabindex {xsd:integer}?, attribute nonce {text}?, MathMLoneventAttributes, # Extension attributes, no defined behavior (注釈:拡張された属性, 定義された挙動無し) MathMLDataAttributes, # No specified behavior in Core, see MathML4 (注釈:MathMLコアで指定された挙動無し, MathML4参照) MathMLintentAttributes, # No specified behavior in Core, see WAI-ARIA (注釈:MathMLコアで指定された挙動無し, WAI-ARIA参照) MathMLARIAattributes math.attributes = MathMLPGlobalAttributes, attribute display {"block" | "inline"}?, # No specified behavior in Core, see MathML4 (注釈:MathMLコアで指定された挙動無し, MathML4参照) attribute alttext {text}? annotation = element annotation {MathMLPGlobalAttributes,encoding?,text} anyElement = element (*) {(attribute * {text}|text| anyElement)*} annotation-xml = element annotation-xml {annotation-xml.attributes, (MathExpression*|anyElement*)} annotation-xml.attributes = MathMLPGlobalAttributes, encoding? encoding=attribute encoding {xsd:string}? semantics = element semantics {semantics.attributes, MathExpression, (annotation|annotation-xml)*} semantics.attributes = MathMLPGlobalAttributes mathml-boolean = xsd:string { pattern = '\s*([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])\s*' } length-percentage = xsd:string { pattern = '\s*((-?[0-9]*([0-9]\.?|\.[0-9])[0-9]*(r?em|ex|in|cm|mm|p[xtc]|Q|v[hw]|vmin|vmax|%))|0)\s*' } MathExpression = TokenExpression| mrow|mfrac|msqrt|mroot|mstyle|merror|mpadded|mphantom| msub|msup|msubsup|munder|mover|munderover| mmultiscripts|mtable|maction| semantics MathMalignExpression = MathExpression ImpliedMrow = MathMalignExpression* TableRowExpression = mtr MultiScriptExpression = (MathExpression|none),(MathExpression|none) color = xsd:string { pattern = '\s*((#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?)|[a-zA-Z]+|[a-zA-Z]+\s*\([0-9, %.]+\))\s*'} TokenExpression = mi|mn|mo|mtext|mspace|ms textorHTML = text | element (h:*) {attribute * {text}*,textorHTML*} token.content = textorHTML mi = element mi {mi.attributes, token.content} mi.attributes = MathMLPGlobalAttributes mn = element mn {mn.attributes, token.content} mn.attributes = MathMLPGlobalAttributes mo = element mo {mo.attributes, token.content} mo.attributes = MathMLPGlobalAttributes, attribute form {"prefix" | "infix" | "postfix"}?, attribute fence {mathml-boolean}?, attribute separator {mathml-boolean}?, attribute lspace {length-percentage}?, attribute rspace {length-percentage}?, attribute stretchy {mathml-boolean}?, attribute symmetric {mathml-boolean}?, attribute maxsize {length-percentage}?, attribute minsize {length-percentage}?, attribute largeop {mathml-boolean}?, attribute movablelimits {mathml-boolean}? mtext = element mtext {mtext.attributes, token.content} mtext.attributes = MathMLPGlobalAttributes mspace = element mspace {mspace.attributes, empty} mspace.attributes = MathMLPGlobalAttributes, attribute width {length-percentage}?, attribute height {length-percentage}?, attribute depth {length-percentage}? ms = element ms {ms.attributes, token.content} ms.attributes = MathMLPGlobalAttributes none = element none {none.attributes,empty} none.attributes = MathMLPGlobalAttributes mprescripts = element mprescripts {mprescripts.attributes,empty} mprescripts.attributes = MathMLPGlobalAttributes mrow = element mrow {mrow.attributes, ImpliedMrow} mrow.attributes = MathMLPGlobalAttributes mfrac = element mfrac {mfrac.attributes, MathExpression, MathExpression} mfrac.attributes = MathMLPGlobalAttributes, attribute linethickness {length-percentage}? msqrt = element msqrt {msqrt.attributes, ImpliedMrow} msqrt.attributes = MathMLPGlobalAttributes mroot = element mroot {mroot.attributes, MathExpression, MathExpression} mroot.attributes = MathMLPGlobalAttributes mstyle = element mstyle {mstyle.attributes, ImpliedMrow} mstyle.attributes = MathMLPGlobalAttributes merror = element merror {merror.attributes, ImpliedMrow} merror.attributes = MathMLPGlobalAttributes mpadded = element mpadded {mpadded.attributes, ImpliedMrow} mpadded.attributes = MathMLPGlobalAttributes, attribute height {mpadded-length-percentage}?, attribute depth {mpadded-length-percentage}?, attribute width {mpadded-length-percentage}?, attribute lspace {mpadded-length-percentage}?, attribute rspace {mpadded-length-percentage}?, attribute voffset {mpadded-length-percentage}? mpadded-length-percentage=length-percentage mphantom = element mphantom {mphantom.attributes, ImpliedMrow} mphantom.attributes = MathMLPGlobalAttributes msub = element msub {msub.attributes, MathExpression, MathExpression} msub.attributes = MathMLPGlobalAttributes msup = element msup {msup.attributes, MathExpression, MathExpression} msup.attributes = MathMLPGlobalAttributes msubsup = element msubsup {msubsup.attributes, MathExpression, MathExpression, MathExpression} msubsup.attributes = MathMLPGlobalAttributes munder = element munder {munder.attributes, MathExpression, MathExpression} munder.attributes = MathMLPGlobalAttributes, attribute accentunder {mathml-boolean}? mover = element mover {mover.attributes, MathExpression, MathExpression} mover.attributes = MathMLPGlobalAttributes, attribute accent {mathml-boolean}? munderover = element munderover {munderover.attributes, MathExpression, MathExpression, MathExpression} munderover.attributes = MathMLPGlobalAttributes, attribute accent {mathml-boolean}?, attribute accentunder {mathml-boolean}? mmultiscripts = element mmultiscripts {mmultiscripts.attributes, MathExpression, MultiScriptExpression*, (mprescripts,MultiScriptExpression*)?} mmultiscripts.attributes = msubsup.attributes mtable = element mtable {mtable.attributes, TableRowExpression*} mtable.attributes = MathMLPGlobalAttributes mtr = element mtr {mtr.attributes, mtd*} mtr.attributes = MathMLPGlobalAttributes mtd = element mtd {mtd.attributes, ImpliedMrow} mtd.attributes = MathMLPGlobalAttributes, attribute rowspan {xsd:positiveInteger}?, attribute columnspan {xsd:positiveInteger}? maction = element maction {maction.attributes, ImpliedMrow} maction.attributes = MathMLPGlobalAttributes, attribute actiontype {text}?, attribute selection {xsd:positiveInteger}?
プレゼンテーションMathML 4に対する文法は, MathMLコアに対する文法を基に拡張され, https://www.w3.org/Math/RelaxNG/mathml4/mathml4-presentation.rncで見ることができます.
The grammar for Presentation MathML 4 builds on the grammar for the MathML Core, and can be found at https://www.w3.org/Math/RelaxNG/mathml4/mathml4-presentation.rnc.
# MathML 4 (Presentation) (注釈:MathML 4(プレゼンテーションMathML)) # ####################### # Copyright 1998-2022 W3C (MIT, ERCIM, Keio, Beihang) # # Use and distribution of this code are permitted under the terms # W3C Software Notice and License (注釈:このコードの利用や配布は, W3Cのソフトウェア告示とライセンスの下で許可されます.) # http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 default namespace m = "http://www.w3.org/1998/Math/MathML" namespace local = "" # MathML Core (注釈:MathMLコア) include "mathml4-core.rnc" { # named lengths (注釈:名前付き長さ) length-percentage = xsd:string { pattern = '\s*((-?[0-9]*([0-9]\.?|\.[0-9])[0-9]*(r?em|ex|in|cm|mm|p[xtc]|Q|v[hw]|vmin|vmax|%))|0|(negative)?((very){0,2}thi(n|ck)|medium)mathspace)\s*' } mpadded-length-percentage = xsd:string { pattern = '\s*([\+\-]?[0-9]*([0-9]\.?|\.[0-9])[0-9]*\s*((%?\s*(height|depth|width)?)|r?em|ex|in|cm|mm|p[xtc]|Q|v[hw]|vmin|vmax|%|((negative)?((very){0,2}thi(n|ck)|medium)mathspace))?)\s*' } } NonMathMLAtt = attribute (* - (local:* | m:*)) {xsd:string} MathMLPGlobalAttributes &= NonMathMLAtt*, attribute xref {text}?, attribute href {xsd:anyURI}?, attribute other {text}? MathMalignExpression |= MalignExpression MathExpression |= PresentationExpression TableRowExpression |= mlabeledtr MstackExpression = MathMalignExpression|mscarries|msline|msrow|msgroup MsrowExpression = MathMalignExpression|none linestyle = "none" | "solid" | "dashed" verticalalign = "top" | "bottom" | "center" | "baseline" | "axis" columnalignstyle = "left" | "center" | "right" notationstyle = "longdiv" | "actuarial" | "radical" | "box" | "roundedbox" | "circle" | "left" | "right" | "top" | "bottom" | "updiagonalstrike" | "downdiagonalstrike" | "verticalstrike" | "horizontalstrike" | "madruwb" idref = text unsigned-integer = xsd:unsignedLong integer = xsd:integer number = xsd:decimal character = xsd:string { pattern = '\s*\S\s*'} positive-integer = xsd:positiveInteger token.content |= mglyph|text mo.attributes &= attribute linebreak {"auto" | "newline" | "nobreak" | "goodbreak" | "badbreak"}?, attribute lineleading {length-percentage}?, attribute linebreakstyle {"before" | "after" | "duplicate" | "infixlinebreakstyle"}?, attribute linebreakmultchar {text}?, attribute indentalign {"left" | "center" | "right" | "auto" | "id"}?, attribute indentshift {length-percentage}?, attribute indenttarget {idref}?, attribute indentalignfirst {"left" | "center" | "right" | "auto" | "id" | "indentalign"}?, attribute indentshiftfirst {length-percentage | "indentshift"}?, attribute indentalignlast {"left" | "center" | "right" | "auto" | "id" | "indentalign"}?, attribute indentshiftlast {length-percentage | "indentshift"}?, attribute accent {mathml-boolean}?, attribute maxsize {"infinity"}? mspace.attributes &= attribute linebreak {"auto" | "newline" | "nobreak" | "goodbreak" | "badbreak" | "indentingnewline"}?, attribute indentalign {"left" | "center" | "right" | "auto" | "id"}?, attribute indentshift {length-percentage}?, attribute indenttarget {idref}?, attribute indentalignfirst {"left" | "center" | "right" | "auto" | "id" | "indentalign"}?, attribute indentshiftfirst {length-percentage | "indentshift"}?, attribute indentalignlast {"left" | "center" | "right" | "auto" | "id" | "indentalign"}?, attribute indentshiftlast {length-percentage | "indentshift"}? ms.attributes &= attribute lquote {text}?, attribute rquote {text}? mglyph = element mglyph {mglyph.attributes,empty} mglyph.attributes = MathMLPGlobalAttributes, attribute src {xsd:anyURI}?, attribute width {length-percentage}?, attribute height {length-percentage}?, attribute valign {length-percentage}?, attribute alt {text}? msline = element msline {msline.attributes,empty} msline.attributes = MathMLPGlobalAttributes, attribute position {integer}?, attribute length {unsigned-integer}?, attribute leftoverhang {length-percentage}?, attribute rightoverhang {length-percentage}?, attribute mslinethickness {length-percentage | "thin" | "medium" | "thick"}? MalignExpression = maligngroup|malignmark malignmark = element malignmark {malignmark.attributes, empty} malignmark.attributes = MathMLPGlobalAttributes maligngroup = element maligngroup {maligngroup.attributes, empty} maligngroup.attributes = MathMLPGlobalAttributes PresentationExpression = TokenExpression| mrow|mfrac|msqrt|mroot|mstyle|merror|mpadded|mphantom| mfenced|menclose|msub|msup|msubsup|munder|mover|munderover| mmultiscripts|mtable|mstack|mlongdiv|maction mfrac.attributes &= attribute numalign {"left" | "center" | "right"}?, attribute denomalign {"left" | "center" | "right"}?, attribute bevelled {"true" | "false"}? mstyle.attributes &= mstyle.specificattributes, mstyle.generalattributes mstyle.specificattributes = attribute Xscriptlevel {integer}?, attribute Xdisplaystyle {"true" | "false"}?, attribute scriptsizemultiplier {number}?, attribute scriptminsize {length-percentage}?, attribute infixlinebreakstyle {"before" | "after" | "duplicate"}?, attribute decimalpoint {character}? mstyle.generalattributes = attribute accent {"true" | "false"}?, attribute accentunder {"true" | "false"}?, attribute align {"left" | "right" | "center"}?, attribute alignmentscope {list {("true" | "false") +}}?, attribute bevelled {"true" | "false"}?, attribute charalign {"left" | "center" | "right"}?, attribute charspacing {length-percentage | "loose" | "medium" | "tight"}?, attribute close {text}?, attribute columnalign {list {columnalignstyle+} }?, attribute columnlines {list {linestyle +}}?, attribute columnspacing {list {(length-percentage) +}}?, attribute columnspan {positive-integer}?, attribute columnwidth {list {("auto" | length-percentage | "fit") +}}?, attribute crossout {list {("none" | "updiagonalstrike" | "downdiagonalstrike" | "verticalstrike" | "horizontalstrike")*}}?, attribute denomalign {"left" | "center" | "right"}?, attribute depth {length-percentage}?, attribute dir {"ltr" | "rtl"}?, attribute equalcolumns {"true" | "false"}?, attribute equalrows {"true" | "false"}?, attribute fence {"true" | "false"}?, attribute form {"prefix" | "infix" | "postfix"}?, attribute frame {linestyle}?, attribute framespacing {list {length-percentage, length-percentage}}?, attribute height {length-percentage}?, attribute indentalign {"left" | "center" | "right" | "auto" | "id"}?, attribute indentalignfirst {"left" | "center" | "right" | "auto" | "id" | "indentalign"}?, attribute indentalignlast {"left" | "center" | "right" | "auto" | "id" | "indentalign"}?, attribute indentshift {length-percentage}?, attribute indentshiftfirst {length-percentage | "indentshift"}?, attribute indentshiftlast {length-percentage | "indentshift"}?, attribute indenttarget {idref}?, attribute largeop {"true" | "false"}?, attribute leftoverhang {length-percentage}?, attribute length {unsigned-integer}?, attribute linebreak {"auto" | "newline" | "nobreak" | "goodbreak" | "badbreak"}?, attribute linebreakmultchar {text}?, attribute linebreakstyle {"before" | "after" | "duplicate" | "infixlinebreakstyle"}?, attribute lineleading {length-percentage}?, attribute linethickness {length-percentage | "thin" | "medium" | "thick"}?, attribute location {"w" | "nw" | "n" | "ne" | "e" | "se" | "s" | "sw"}?, attribute longdivstyle {"lefttop" | "stackedrightright" | "mediumstackedrightright" | "shortstackedrightright" | "righttop" | "left/\right" | "left)(right" | ":right=right" | "stackedleftleft" | "stackedleftlinetop"}?, attribute lquote {text}?, attribute lspace {length-percentage}?, attribute mathsize {"small" | "normal" | "big" | length-percentage}?, attribute mathvariant {"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" | "initial" | "tailed" | "looped" | "stretched"}?, attribute minlabelspacing {length-percentage}?, attribute minsize {length-percentage}?, attribute movablelimits {"true" | "false"}?, attribute mslinethickness {length-percentage | "thin" | "medium" | "thick"}?, attribute notation {text}?, attribute numalign {"left" | "center" | "right"}?, attribute open {text}?, attribute position {integer}?, attribute rightoverhang {length-percentage}?, attribute rowalign {list {verticalalign+} }?, attribute rowlines {list {linestyle +}}?, attribute rowspacing {list {(length-percentage) +}}?, attribute rowspan {positive-integer}?, attribute rquote {text}?, attribute rspace {length-percentage}?, attribute selection {positive-integer}?, attribute separator {"true" | "false"}?, attribute separators {text}?, attribute shift {integer}?, attribute side {"left" | "right" | "leftoverlap" | "rightoverlap"}?, attribute stackalign {"left" | "center" | "right" | "decimalpoint"}?, attribute stretchy {"true" | "false"}?, attribute subscriptshift {length-percentage}?, attribute superscriptshift {length-percentage}?, attribute symmetric {"true" | "false"}?, attribute valign {length-percentage}?, attribute width {length-percentage}? math.attributes &= mstyle.specificattributes math.attributes &= mstyle.generalattributes math.attributes &= attribute overflow {"linebreak" | "scroll" | "elide" | "truncate" | "scale"}? mfenced = element mfenced {mfenced.attributes, ImpliedMrow} mfenced.attributes = MathMLPGlobalAttributes, attribute open {text}?, attribute close {text}?, attribute separators {text}? menclose = element menclose {menclose.attributes, ImpliedMrow} menclose.attributes = MathMLPGlobalAttributes, attribute notation {text}? munder.attributes &= attribute align {"left" | "right" | "center"}? mover.attributes &= attribute align {"left" | "right" | "center"}? munderover.attributes &= attribute align {"left" | "right" | "center"}? msub.attributes &= attribute subscriptshift {length-percentage}? msup.attributes &= attribute superscriptshift {length-percentage}? msubsup.attributes &= attribute subscriptshift {length-percentage}?, attribute superscriptshift {length-percentage}? mtable.attributes &= attribute align {xsd:string { pattern ='\s*(top|bottom|center|baseline|axis)(\s+-?[0-9]+)?\s*'}}?, attribute rowalign {list {verticalalign+} }?, attribute columnalign {list {columnalignstyle+} }?, attribute alignmentscope {list {("true" | "false") +}}?, attribute columnwidth {list {("auto" | length-percentage | "fit") +}}?, attribute width {"auto" | length-percentage}?, attribute rowspacing {list {(length-percentage) +}}?, attribute columnspacing {list {(length-percentage) +}}?, attribute rowlines {list {linestyle +}}?, attribute columnlines {list {linestyle +}}?, attribute frame {linestyle}?, attribute framespacing {list {length-percentage, length-percentage}}?, attribute equalrows {"true" | "false"}?, attribute equalcolumns {"true" | "false"}?, attribute displaystyle {"true" | "false"}?, attribute side {"left" | "right" | "leftoverlap" | "rightoverlap"}?, attribute minlabelspacing {length-percentage}? mlabeledtr = element mlabeledtr {mlabeledtr.attributes, mtd+} mlabeledtr.attributes = mtr.attributes mtr.attributes &= attribute rowalign {"top" | "bottom" | "center" | "baseline" | "axis"}?, attribute columnalign {list {columnalignstyle+} }? mtd.attributes &= attribute rowalign {"top" | "bottom" | "center" | "baseline" | "axis"}?, attribute columnalign {columnalignstyle}? mstack = element mstack {mstack.attributes, MstackExpression*} mstack.attributes = MathMLPGlobalAttributes, attribute align {xsd:string { pattern ='\s*(top|bottom|center|baseline|axis)(\s+-?[0-9]+)?\s*'}}?, attribute stackalign {"left" | "center" | "right" | "decimalpoint"}?, attribute charalign {"left" | "center" | "right"}?, attribute charspacing {length-percentage | "loose" | "medium" | "tight"}? mlongdiv = element mlongdiv {mlongdiv.attributes, MstackExpression,MstackExpression,MstackExpression+} mlongdiv.attributes = msgroup.attributes, attribute longdivstyle {"lefttop" | "stackedrightright" | "mediumstackedrightright" | "shortstackedrightright" | "righttop" | "left/\right" | "left)(right" | ":right=right" | "stackedleftleft" | "stackedleftlinetop"}? msgroup = element msgroup {msgroup.attributes, MstackExpression*} msgroup.attributes = MathMLPGlobalAttributes, attribute position {integer}?, attribute shift {integer}? msrow = element msrow {msrow.attributes, MsrowExpression*} msrow.attributes = MathMLPGlobalAttributes, attribute position {integer}? mscarries = element mscarries {mscarries.attributes, (MsrowExpression|mscarry)*} mscarries.attributes = MathMLPGlobalAttributes, attribute position {integer}?, attribute location {"w" | "nw" | "n" | "ne" | "e" | "se" | "s" | "sw"}?, attribute crossout {list {("none" | "updiagonalstrike" | "downdiagonalstrike" | "verticalstrike" | "horizontalstrike")*}}?, attribute scriptsizemultiplier {number}? mscarry = element mscarry {mscarry.attributes, MsrowExpression*} mscarry.attributes = MathMLPGlobalAttributes, attribute location {"w" | "nw" | "n" | "ne" | "e" | "se" | "s" | "sw"}?, attribute crossout {list {("none" | "updiagonalstrike" | "downdiagonalstrike" | "verticalstrike" | "horizontalstrike")*}}?
厳格なコンテントMathML 4に対する文法は, https://www.w3.org/Math/RelaxNG/mathml4/mathml4-strict-content.rncで見ることができます.
The grammar for Strict Content MathML 4 can be found at https://www.w3.org/Math/RelaxNG/mathml4/mathml4-strict-content.rnc.
# MathML 4 (Strict Content) (注釈:MathML 4(厳格なコンテントMathML)) # ######################### # Copyright 1998-2022 W3C (MIT, ERCIM, Keio, Beihang) # # Use and distribution of this code are permitted under the terms # W3C Software Notice and License (注釈:このコードの利用や配布は, W3Cのソフトウェア告示とライセンスの下で許可されます.) # http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 default namespace m = "http://www.w3.org/1998/Math/MathML" start |= math.strict CommonAtt = attribute id {xsd:ID}?, attribute xref {text}? math.strict = element math {math.attributes,ContExp*} math.attributes &= CommonAtt ContExp = semantics-contexp | cn | ci | csymbol | apply | bind | share | cerror | cbytes | cs cn = element cn {cn.attributes,cn.content} cn.content = text cn.attributes = CommonAtt, attribute type {"integer" | "real" | "double" | "hexdouble"} semantics-ci = element semantics {CommonAtt,(ci|semantics-ci), (annotation|annotation-xml)*} semantics-contexp = element semantics {CommonAtt,MathExpression, (annotation|annotation-xml)*} annotation |= element annotation {CommonAtt,text} anyElement |= element (* - m:*) {(attribute * {text}|text| anyElement)*} annotation-xml |= element annotation-xml {annotation-xml.attributes, (MathExpression*|anyElement*)} annotation-xml.attributes &= CommonAtt, cd?, encoding? encoding &= attribute encoding {xsd:string} ci = element ci {ci.attributes, ci.content} ci.attributes = CommonAtt, ci.type? ci.type = attribute type {"integer" | "rational" | "real" | "complex" | "complex-polar" | "complex-cartesian" | "constant" | "function" | "vector" | "list" | "set" | "matrix"} ci.content = text csymbol = element csymbol {csymbol.attributes,csymbol.content} SymbolName = xsd:NCName csymbol.attributes = CommonAtt, cd csymbol.content = SymbolName cd = attribute cd {xsd:NCName} name = attribute name {xsd:NCName} src = attribute src {xsd:anyURI}? BvarQ = bvar* bvar = element bvar {CommonAtt, (ci | semantics-ci)} apply = element apply {CommonAtt,apply.content} apply.content = ContExp+ bind = element bind {CommonAtt,bind.content} bind.content = ContExp,bvar*,ContExp share = element share {CommonAtt, src, empty} cerror = element cerror {cerror.attributes, csymbol, ContExp*} cerror.attributes = CommonAtt cbytes = element cbytes {cbytes.attributes, base64} cbytes.attributes = CommonAtt base64 = xsd:base64Binary cs = element cs {cs.attributes, text} cs.attributes = CommonAtt MathExpression |= ContExp
コンテントMathML 4に対する文法は, 厳格なコンテントMathMLに対する文法を基に拡張され, https://www.w3.org/Math/RelaxNG/mathml4/mathml4-content.rncで見ることができます.
The grammar for Content MathML 4 builds on the grammar for the Strict Content MathML subset, and can be found at https://www.w3.org/Math/RelaxNG/mathml4/mathml4-content.rnc.
# MathML 4 (Content) (注釈:MathML 4(コンテントMathML)) # ################## # Copyright 1998-2022 W3C (MIT, ERCIM, Keio, Beihang) # # Use and distribution of this code are permitted under the terms # W3C Software Notice and License (注釈:このコードの利用や配布は, W3Cのソフトウェア告示とライセンスの下で許可されます.) # http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 default namespace m = "http://www.w3.org/1998/Math/MathML" namespace local = "" include "mathml4-strict-content.rnc"{ cn.content = (text | sep | PresentationExpression)* cn.attributes = CommonAtt, DefEncAtt, attribute type {text}?, base? ci.attributes = CommonAtt, DefEncAtt, ci.type? ci.type = attribute type {text} ci.content = (text | PresentationExpression)* csymbol.attributes = CommonAtt, DefEncAtt, attribute type {text}?,cd? csymbol.content = (text | PresentationExpression)* annotation-xml.attributes |= CommonAtt, cd?, name?, encoding? bvar = element bvar {CommonAtt, ((ci | semantics-ci) & degree?)} cbytes.attributes = CommonAtt, DefEncAtt cs.attributes = CommonAtt, DefEncAtt apply.content = ContExp+ | (ContExp, BvarQ, Qualifier*, ContExp*) bind.content = apply.content } NonMathMLAtt |= attribute (* - (local:*|m:*)) {xsd:string} math.attributes &= attribute alttext {text}? MathMLDataAttributes &= attribute data-other {text}? CommonAtt &= NonMathMLAtt*, MathMLDataAttributes, attribute class {xsd:NCName}?, attribute style {xsd:string}?, attribute href {xsd:anyURI}?, attribute other {text}?, attribute intent {text}?, attribute arg {xsd:NCName}? base = attribute base {text} sep = element sep {empty} PresentationExpression |= notAllowed DefEncAtt = attribute encoding {xsd:string}?, attribute definitionURL {xsd:anyURI}? DomainQ = (domainofapplication|condition|interval|(lowlimit,uplimit?))* domainofapplication = element domainofapplication {ContExp} condition = element condition {ContExp} uplimit = element uplimit {ContExp} lowlimit = element lowlimit {ContExp} Qualifier = DomainQ|degree|momentabout|logbase degree = element degree {ContExp} momentabout = element momentabout {ContExp} logbase = element logbase {ContExp} type = attribute type {text} order = attribute order {"numeric" | "lexicographic"} closure = attribute closure {text} ContExp |= piecewise piecewise = element piecewise {CommonAtt, DefEncAtt,(piece* & otherwise?)} piece = element piece {CommonAtt, DefEncAtt, ContExp, ContExp} otherwise = element otherwise {CommonAtt, DefEncAtt, ContExp} interval.class = interval ContExp |= interval.class interval = element interval { CommonAtt, DefEncAtt,closure?, ContExp,ContExp} unary-functional.class = inverse | ident | domain | codomain | image | ln | log | moment ContExp |= unary-functional.class inverse = element inverse { CommonAtt, DefEncAtt, empty} ident = element ident { CommonAtt, DefEncAtt, empty} domain = element domain { CommonAtt, DefEncAtt, empty} codomain = element codomain { CommonAtt, DefEncAtt, empty} image = element image { CommonAtt, DefEncAtt, empty} ln = element ln { CommonAtt, DefEncAtt, empty} log = element log { CommonAtt, DefEncAtt, empty} moment = element moment { CommonAtt, DefEncAtt, empty} lambda.class = lambda ContExp |= lambda.class lambda = element lambda { CommonAtt, DefEncAtt, BvarQ, DomainQ, ContExp} nary-functional.class = compose ContExp |= nary-functional.class compose = element compose { CommonAtt, DefEncAtt, empty} binary-arith.class = quotient | divide | minus | power | rem | root ContExp |= binary-arith.class quotient = element quotient { CommonAtt, DefEncAtt, empty} divide = element divide { CommonAtt, DefEncAtt, empty} minus = element minus { CommonAtt, DefEncAtt, empty} power = element power { CommonAtt, DefEncAtt, empty} rem = element rem { CommonAtt, DefEncAtt, empty} root = element root { CommonAtt, DefEncAtt, empty} unary-arith.class = factorial | minus | root | abs | conjugate | arg | real | imaginary | floor | ceiling | exp ContExp |= unary-arith.class factorial = element factorial { CommonAtt, DefEncAtt, empty} abs = element abs { CommonAtt, DefEncAtt, empty} conjugate = element conjugate { CommonAtt, DefEncAtt, empty} arg = element arg { CommonAtt, DefEncAtt, empty} real = element real { CommonAtt, DefEncAtt, empty} imaginary = element imaginary { CommonAtt, DefEncAtt, empty} floor = element floor { CommonAtt, DefEncAtt, empty} ceiling = element ceiling { CommonAtt, DefEncAtt, empty} exp = element exp { CommonAtt, DefEncAtt, empty} nary-minmax.class = max | min ContExp |= nary-minmax.class max = element max { CommonAtt, DefEncAtt, empty} min = element min { CommonAtt, DefEncAtt, empty} nary-arith.class = plus | times | gcd | lcm ContExp |= nary-arith.class plus = element plus { CommonAtt, DefEncAtt, empty} times = element times { CommonAtt, DefEncAtt, empty} gcd = element gcd { CommonAtt, DefEncAtt, empty} lcm = element lcm { CommonAtt, DefEncAtt, empty} nary-logical.class = and | or | xor ContExp |= nary-logical.class and = element and { CommonAtt, DefEncAtt, empty} or = element or { CommonAtt, DefEncAtt, empty} xor = element xor { CommonAtt, DefEncAtt, empty} unary-logical.class = not ContExp |= unary-logical.class not = element not { CommonAtt, DefEncAtt, empty} binary-logical.class = implies | equivalent ContExp |= binary-logical.class implies = element implies { CommonAtt, DefEncAtt, empty} equivalent = element equivalent { CommonAtt, DefEncAtt, empty} quantifier.class = forall | exists ContExp |= quantifier.class forall = element forall { CommonAtt, DefEncAtt, empty} exists = element exists { CommonAtt, DefEncAtt, empty} nary-reln.class = eq | gt | lt | geq | leq ContExp |= nary-reln.class eq = element eq { CommonAtt, DefEncAtt, empty} gt = element gt { CommonAtt, DefEncAtt, empty} lt = element lt { CommonAtt, DefEncAtt, empty} geq = element geq { CommonAtt, DefEncAtt, empty} leq = element leq { CommonAtt, DefEncAtt, empty} binary-reln.class = neq | approx | factorof | tendsto ContExp |= binary-reln.class neq = element neq { CommonAtt, DefEncAtt, empty} approx = element approx { CommonAtt, DefEncAtt, empty} factorof = element factorof { CommonAtt, DefEncAtt, empty} tendsto = element tendsto { CommonAtt, DefEncAtt, type?, empty} int.class = int ContExp |= int.class int = element int { CommonAtt, DefEncAtt, empty} Differential-Operator.class = diff ContExp |= Differential-Operator.class diff = element diff { CommonAtt, DefEncAtt, empty} partialdiff.class = partialdiff ContExp |= partialdiff.class partialdiff = element partialdiff { CommonAtt, DefEncAtt, empty} unary-veccalc.class = divergence | grad | curl | laplacian ContExp |= unary-veccalc.class divergence = element divergence { CommonAtt, DefEncAtt, empty} grad = element grad { CommonAtt, DefEncAtt, empty} curl = element curl { CommonAtt, DefEncAtt, empty} laplacian = element laplacian { CommonAtt, DefEncAtt, empty} nary-setlist-constructor.class = set | \list ContExp |= nary-setlist-constructor.class set = element set { CommonAtt, DefEncAtt, type?, BvarQ*, DomainQ*, ContExp*} \list = element \list { CommonAtt, DefEncAtt, order?, BvarQ*, DomainQ*, ContExp*} nary-set.class = union | intersect | cartesianproduct ContExp |= nary-set.class union = element union { CommonAtt, DefEncAtt, empty} intersect = element intersect { CommonAtt, DefEncAtt, empty} cartesianproduct = element cartesianproduct { CommonAtt, DefEncAtt, empty} binary-set.class = in | notin | notsubset | notprsubset | setdiff ContExp |= binary-set.class in = element in { CommonAtt, DefEncAtt, empty} notin = element notin { CommonAtt, DefEncAtt, empty} notsubset = element notsubset { CommonAtt, DefEncAtt, empty} notprsubset = element notprsubset { CommonAtt, DefEncAtt, empty} setdiff = element setdiff { CommonAtt, DefEncAtt, empty} nary-set-reln.class = subset | prsubset ContExp |= nary-set-reln.class subset = element subset { CommonAtt, DefEncAtt, empty} prsubset = element prsubset { CommonAtt, DefEncAtt, empty} unary-set.class = card ContExp |= unary-set.class card = element card { CommonAtt, DefEncAtt, empty} sum.class = sum ContExp |= sum.class sum = element sum { CommonAtt, DefEncAtt, empty} product.class = product ContExp |= product.class product = element product { CommonAtt, DefEncAtt, empty} limit.class = limit ContExp |= limit.class limit = element limit { CommonAtt, DefEncAtt, empty} unary-elementary.class = sin | cos | tan | sec | csc | cot | sinh | cosh | tanh | sech | csch | coth | arcsin | arccos | arctan | arccosh | arccot | arccoth | arccsc | arccsch | arcsec | arcsech | arcsinh | arctanh ContExp |= unary-elementary.class sin = element sin { CommonAtt, DefEncAtt, empty} cos = element cos { CommonAtt, DefEncAtt, empty} tan = element tan { CommonAtt, DefEncAtt, empty} sec = element sec { CommonAtt, DefEncAtt, empty} csc = element csc { CommonAtt, DefEncAtt, empty} cot = element cot { CommonAtt, DefEncAtt, empty} sinh = element sinh { CommonAtt, DefEncAtt, empty} cosh = element cosh { CommonAtt, DefEncAtt, empty} tanh = element tanh { CommonAtt, DefEncAtt, empty} sech = element sech { CommonAtt, DefEncAtt, empty} csch = element csch { CommonAtt, DefEncAtt, empty} coth = element coth { CommonAtt, DefEncAtt, empty} arcsin = element arcsin { CommonAtt, DefEncAtt, empty} arccos = element arccos { CommonAtt, DefEncAtt, empty} arctan = element arctan { CommonAtt, DefEncAtt, empty} arccosh = element arccosh { CommonAtt, DefEncAtt, empty} arccot = element arccot { CommonAtt, DefEncAtt, empty} arccoth = element arccoth { CommonAtt, DefEncAtt, empty} arccsc = element arccsc { CommonAtt, DefEncAtt, empty} arccsch = element arccsch { CommonAtt, DefEncAtt, empty} arcsec = element arcsec { CommonAtt, DefEncAtt, empty} arcsech = element arcsech { CommonAtt, DefEncAtt, empty} arcsinh = element arcsinh { CommonAtt, DefEncAtt, empty} arctanh = element arctanh { CommonAtt, DefEncAtt, empty} nary-stats.class = mean | median | mode | sdev | variance ContExp |= nary-stats.class mean = element mean { CommonAtt, DefEncAtt, empty} median = element median { CommonAtt, DefEncAtt, empty} mode = element mode { CommonAtt, DefEncAtt, empty} sdev = element sdev { CommonAtt, DefEncAtt, empty} variance = element variance { CommonAtt, DefEncAtt, empty} nary-constructor.class = vector | matrix | matrixrow ContExp |= nary-constructor.class vector = element vector { CommonAtt, DefEncAtt, BvarQ, DomainQ, ContExp*} matrix = element matrix { CommonAtt, DefEncAtt, BvarQ, DomainQ, ContExp*} matrixrow = element matrixrow { CommonAtt, DefEncAtt, BvarQ, DomainQ, ContExp*} unary-linalg.class = determinant | transpose ContExp |= unary-linalg.class determinant = element determinant { CommonAtt, DefEncAtt, empty} transpose = element transpose { CommonAtt, DefEncAtt, empty} nary-linalg.class = selector ContExp |= nary-linalg.class selector = element selector { CommonAtt, DefEncAtt, empty} binary-linalg.class = vectorproduct | scalarproduct | outerproduct ContExp |= binary-linalg.class vectorproduct = element vectorproduct { CommonAtt, DefEncAtt, empty} scalarproduct = element scalarproduct { CommonAtt, DefEncAtt, empty} outerproduct = element outerproduct { CommonAtt, DefEncAtt, empty} constant-set.class = integers | reals | rationals | naturalnumbers | complexes | primes | emptyset ContExp |= constant-set.class integers = element integers { CommonAtt, DefEncAtt, empty} reals = element reals { CommonAtt, DefEncAtt, empty} rationals = element rationals { CommonAtt, DefEncAtt, empty} naturalnumbers = element naturalnumbers { CommonAtt, DefEncAtt, empty} complexes = element complexes { CommonAtt, DefEncAtt, empty} primes = element primes { CommonAtt, DefEncAtt, empty} emptyset = element emptyset { CommonAtt, DefEncAtt, empty} constant-arith.class = exponentiale | imaginaryi | notanumber | true | false | pi | eulergamma | infinity ContExp |= constant-arith.class exponentiale = element exponentiale { CommonAtt, DefEncAtt, empty} imaginaryi = element imaginaryi { CommonAtt, DefEncAtt, empty} notanumber = element notanumber { CommonAtt, DefEncAtt, empty} true = element true { CommonAtt, DefEncAtt, empty} false = element false { CommonAtt, DefEncAtt, empty} pi = element pi { CommonAtt, DefEncAtt, empty} eulergamma = element eulergamma { CommonAtt, DefEncAtt, empty} infinity = element infinity { CommonAtt, DefEncAtt, empty}
完全なMathML 4に対する文法は, 上記の文法を単に合体させたもので, https://www.w3.org/Math/RelaxNG/mathml4/mathml4.rncで見ることができます.
The grammar for full MathML 4 is simply a merger of the above grammars, and can be found at https://www.w3.org/Math/RelaxNG/mathml4/mathml4.rnc.
# MathML 4 (full) (注釈:MathML 4(完全版)) # ############## # Copyright 1998-2022 W3C (MIT, ERCIM, Keio) # # Use and distribution of this code are permitted under the terms # W3C Software Notice and License (注釈:このコードの利用や配布は, W3Cのソフトウェア告示とライセンスの下で許可されます.) # http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 default namespace m = "http://www.w3.org/1998/Math/MathML" # Presentation MathML (注釈:プレゼンテーションMathML) include "mathml4-presentation.rnc" { anyElement = element (* - m:*) {(attribute * {text}|text| anyElement)*} } # Content MathML (注釈:コンテントMathML) include "mathml4-content.rnc"
要素や属性の中には, MathML 3で非推奨となり, MathML 4から削除されたものもあります. このスキーマは, 完全なMathML 4のスキーマを拡張し, 削除された構成を戻し, 既存のMathML文書の検証を行えるようにしたものです. このスキーマは, https://www.w3.org/Math/RelaxNG/mathml4/mathml4-legacy.rncで見ることができます.
Some elements and attributes that were deprecated in MathML 3 are removed from MathML 4. This schema extends the full MathML 4 schema, adding these constructs back, allowing validation of existing MathML documents. It can be found at https://www.w3.org/Math/RelaxNG/mathml4/mathml4-legacy.rnc.
# MathML 4 (legacy) (注釈:MathML 4(従来版)) # ################ # Copyright 1998-2022 W3C (MIT, ERCIM, Keio) # # Use and distribution of this code are permitted under the terms # W3C Software Notice and License (注釈:このコードの利用や配布は, W3Cのソフトウェア告示とライセンスの下で許可されます.) # http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 default namespace m = "http://www.w3.org/1998/Math/MathML" # MathML 4 include "mathml4.rnc" { # unitless lengths (注釈:単位無し長さ) length-percentage = xsd:string { pattern = '\s*((-?[0-9]*([0-9]\.?|\.[0-9])[0-9]*(e[mx]|in|cm|mm|p[xtc]|%)?)|(negative)?((very){0,2}thi(n|ck)|medium)mathspace)\s*' } } # Removed MathML 1/2/3 elements (注釈:削除されたMathML 1・2・3の要素) ContExp |= reln | fn | declare reln = element reln {ContExp*} fn = element fn {ContExp} declare = element declare {attribute type {xsd:string}?, attribute scope {xsd:string}?, attribute nargs {xsd:nonNegativeInteger}?, attribute occurrence {"prefix"|"infix"|"function-model"}?, DefEncAtt, ContExp+} # legacy attributes (注釈:従来の属性) mglyph.deprecatedattributes = attribute fontfamily {text}?, attribute index {integer}?, attribute mathvariant {"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" | "initial" | "tailed" | "looped" | "stretched"}?, attribute mathsize {"small" | "normal" | "big" | length-percentage}? mglyph.attributes &= mglyph.deprecatedattributes mstyle.deprecatedattributes = attribute veryverythinmathspace {length-percentage}?, attribute verythinmathspace {length-percentage}?, attribute thinmathspace {length-percentage}?, attribute mediummathspace {length-percentage}?, attribute thickmathspace {length-percentage}?, attribute verythickmathspace {length-percentage}?, attribute veryverythickmathspace {length-percentage}? mstyle.attributes &= mstyle.deprecatedattributes math.deprecatedattributes = attribute mode {xsd:string}?, attribute macros {xsd:string}? math.attributes &= math.deprecatedattributes DeprecatedTokenAtt = attribute fontfamily {text}?, attribute fontweight {"normal" | "bold"}?, attribute fontstyle {"normal" | "italic"}?, attribute fontsize {length-percentage}?, attribute color {color}?, attribute background {color}?, attribute mathsize {"small" | "normal" | "big" }? mstyle.attributes &= DeprecatedTokenAtt mglyph.attributes &= DeprecatedTokenAtt mn.attributes &= DeprecatedTokenAtt mi.attributes &= DeprecatedTokenAtt mo.attributes &= DeprecatedTokenAtt mtext.attributes &= DeprecatedTokenAtt mspace.attributes &= DeprecatedTokenAtt ms.attributes &= DeprecatedTokenAtt semantics.attributes &= DefEncAtt # malignmark in tokens (注釈:素子要素の中のmalignmark) token.content |= malignmark # malignmark in mfrac etc (注釈:mfracなどの中のmalignmark) MathExpression |= MalignExpression maligngroup.attributes &= attribute groupalign {"left" | "center" | "right" | "decimalpoint"}? malignmark.attributes &= attribute edge {"left" | "right"}? mstyle.generalattributes &= attribute edge {"left" | "right"}? # groupalign (注釈:グループの位置揃え) group-alignment = "left" | "center" | "right" | "decimalpoint" group-alignment-list = list {group-alignment+} group-alignment-list-list = xsd:string { pattern = '(\s*\{\s*(left|center|right|decimalpoint)(\s+(left|center|right|decimalpoint))*\})*\s*' } mstyle.generalattributes &= attribute groupalign {group-alignment-list-list}? mtable.attributes &= attribute groupalign {group-alignment-list-list}? mtr.attributes &= attribute groupalign {group-alignment-list-list}? mtd.attributes &= attribute groupalign {group-alignment-list}?
MathML DTDは, MathML要素で名前空間の接頭辞の利用を認めるために, [モジュール化]で概説されている方針を用います. ただし, 名前空間の接頭辞は, MathMLのXMLシリアル化では使用せず, HTMLシリアル化の互換性のために使用することが推奨されています.
The MathML DTD uses the strategy outlined in [Modularization] to allow the use of namespace prefixes on MathML elements. However it is recommended that namespace prefixes are not used in XML serialization of MathML, for compatibility with the HTML serialization.
HTMLシリアル化と異なり, XMLシリアル化を使用する場合, ∫
のような文字実体参照は, ここで説明されている完全なMathML DTDか, [実体]で指定されているHTML・MathML実体宣言の集合のどちらかのDTDを指定しないと使用できないことに注意して下さい. 文字は, 直接文字データか数値文字参照を用いていつでも指定してもよいので, ∫
より, ∫
または∫
が用いれらます.
Note that unlike the HTML serialization, when using the
XML serialization, character entity references such as
∫
may not be used unless a DTD is
specified, either the full MathML DTD as described here or the
set of HTML/MathML entity declarations as specified by [Entities].
Characters may always be specified by using character data directly, or numeric character references, so
∫
or ∫
rather than
∫
.
MathMLデータは, http://www.w3.org/Math/XMLSchema/mathml4/mathml4.xsdに置かれている, MathMLのXMLスキーマを利用して検証できます. 提供されるスキーマは, RelaxNGスキーマから機械的に生成されたもので, XSD構文の利用では強制できない制限をいくつか省略しています.
MathML fragments can be validated using the XML Schema for MathML, located at http://www.w3.org/Math/XMLSchema/mathml4/mathml4.xsd. The provided schema has been mechanically generated from the Relax NG schema, it omits some constraints that can not be enforced using XSD syntax.
後で示す表は, MathMLにおける演算子, かっこ, 区切り, アクセントの描画特性について提案された辞書を表しています. それらは, mo
要素で表現されます. 簡潔さのために全てのそのような要素は, この付録において単に演算子
と呼ばれるでしょう. [MathMLコア]の実装は, 演算子周りの空白の既定値に対する規範的な定義として, これらの値を使用するであろうことに注意して下さい.
The following table gives the suggested dictionary of rendering
properties for operators, fences, separators, and accents in MathML,
all of which are represented by mo
elements. For brevity, all such elements will be called
simply operators
in this Appendix. Note
that implementations of [MathML-Core] will use these values as
normative definitions of the default operator spacing.
辞書は, 単に要素の内容だけでなく, 要素の内容とform
属性の値を合わせて索引に用います. 複数の形式を持つ演算子は, 複数の項目を持ちます. MathML仕様書は, 描画ソフトウェアがform
属性が与えられていない場合にどの形式を使用するか指定しています. 3.2.5.6.2 form属性の既定値を参照して下さい.
The dictionary is indexed not just by the element
content, but by the element content and form
attribute
value, together. Operators with more than one possible form have more
than one entry. The MathML specification specifies which form to use when no form
attribute is given; see 3.2.5.6.2 Default value of the form
attribute.
データは, unicode.xml
の中の機械判読可能な形式で全て利用可能です. そのファイルは, HTML・MathMLの実体定義のソースコードでもあり, [実体]で割り当てられています. そのデータは, 後で述べる2つの人間がより判読しやすい形式で表現されています. MathMLコアの仕様書で用いられるデータの代替表現については, [MathMLコア]も参照して下さい.
The data is all available in machine readable form in
unicode.xml
which is also the source of the HTML/MathML
entity definitions and distributed with [Entities]. It is
however presented below in two more human readable formats. See also
[MathML-Core] for an alternative presentation of
the data that is used in that specification.
データの1つ目の表現において, 演算子は, まずform属性と間隔の属性によって並べられ, 次に優先度
によって並べられています. そして, 文字は, 適合したブラウザではポップアップツールチップとして現れるtitle属性を通して与えられる, それらの文字に対する演算子辞書の項目の残りのデータと一緒に一覧にされています.
In the first presentation, operators are ordered first by the
form and spacing attributes, and then by priority
. The characters are then listed,
with additional data on remaining operator dictionary entries for that
character given via a title attribute which will appear as a popup
tooltip in suitable browsers.
データの2つ目の表現において, 表の行は, 適合したブラウザによって最初の行の見出しをクリックすることで, その見出しの列の順番に並び替えられてもよいです.
In the second presentation of the data, the rows of the table may be reordered in suitable browsers by clicking on a heading in the top row, to cause the table to be ordered by that column.
ここで与えられるlspace
とrspace
の値は, 名前付き空白で用いられる値に対応する, 1/18emの倍数を示す0から7までの範囲です.
The values for lspace
and rspace
given here range from 0 to 7
denoting multiples of 1/18 em matching the values used for namedspace.
内容がInvisibleTimes
またはApplyFunction
の見えない演算子に対して, MathML描画ソフトウェアは, 内容に応じた方法で間隔の取り方を選ぶことが提案されています(このことは後の表で与えられる値の例外です). <mo>⁡</mo>
に対して, のような(右の被演算子がかっこで始まっていない状態の)式における合計の空白(lspace
+rspace
)は0より大きくなるべきです. <mo>⁢</mo>
に対して, 両方の被演算子(もしくは, ベースライン上の両側の最も近い素子)が斜体でないフォントで表示される識別子(すなわち, 提案された決まりの下で両方の被演算子が複数文字の識別子)の場合, 合計の空白は0より大きくなるべきです.
For the invisible operators whose content is InvisibleTimes
or ApplyFunction
,
it is suggested that MathML renderers choose spacing in a context-sensitive
way (which is an exception to the static values given in the following
table). For <mo>⁡</mo>
, the total
spacing (lspace
+rspace
) in
expressions such as (where the right operand
doesn't start with a fence) should be greater than zero; for
<mo>⁢</mo>
, the total spacing
should be greater than zero when both operands (or the nearest tokens on
either side, if on the baseline) are identifiers displayed in a non-slanted
font (i.e.. under the suggested rules, when both operands are
multi-character identifiers).
描画ソフトウェアの中には, TeXの描画のように, 添え字(すなわちscriptlevel
が0より大きい場合, 3.3.4 書式の変更<mstyle>
参照)の中に現れたほとんどの演算子に対して間隔を設けないものもあるでしょう.
Some renderers may wish to use no spacing for most operators
appearing in scripts (i.e. when scriptlevel
is greater
than 0; see 3.3.4 Style Change <mstyle>
), as is the case in TeX.
文字 Character |
字形 Glyph |
名前 Name |
form | 優先度 priority |
lspace | rspace | 特性 Properties |
---|---|---|---|---|---|---|---|
‘ | ‘ | 左の一重引用符 left single quotation mark |
prefix | 100 | 0 | 0 | fence |
’ | ’ | 右の一重引用符 right single quotation mark |
postfix | 100 | 0 | 0 | fence |
“ | “ | 左の二重引用符 left double quotation mark |
prefix | 100 | 0 | 0 | fence |
” | ” | 右の二重引用符 right double quotation mark |
postfix | 100 | 0 | 0 | fence |
( | ( | 左かっこ left parenthesis |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
) | ) | 右かっこ right parenthesis |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
[ | [ | 左角がっこ left square bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
] | ] | 右角がっこ right square bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
{ | { | 左波かっこ left curly bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
| | | | 縦線 vertical line |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
| | | | 縦線 vertical line |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
|| | || | 複数文字の演算子: || multiple character operator: || |
prefix | 120 | 0 | 0 | fence |
|| | || | 複数文字の演算子: || multiple character operator: || |
postfix | 120 | 0 | 0 | fence |
} | } | 右波かっこ right curly bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
‖ | ‖ | 二重の縦線 double vertical line |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
‖ | ‖ | 二重の縦線 double vertical line |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⌈ | ⌈ | 左上かぎかっこ left ceiling |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⌉ | ⌉ | 右上かぎかっこ right ceiling |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⌊ | ⌊ | 左下かぎかっこ left floor |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⌋ | ⌋ | 右下かぎかっこ right floor |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
〈 | 〈 | 左を指す山かっこ left-pointing angle bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
〉 | 〉 | 右を指す山かっこ right-pointing angle bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
❲ | ❲ | 一本線の左装飾用亀甲かっこ light left tortoise shell bracket ornament |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
❳ | ❳ | 一本線の右装飾用亀甲かっこ light right tortoise shell bracket ornament |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟦ | ⟦ | 数学用左二重角がっこ mathematical left white square bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟧ | ⟧ | 数学用右二重角がっこ mathematical right white square bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟨ | ⟨ | 数学用左山かっこ mathematical left angle bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟩ | ⟩ | 数学用右山かっこ mathematical right angle bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟪ | ⟪ | 数学用左二重山かっこ mathematical left double angle bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟫ | ⟫ | 数学用右二重山かっこ mathematical right double angle bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟬ | ⟬ | 数学用左二重亀甲かっこ mathematical left white tortoise shell bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟭ | ⟭ | 数学用右二重亀甲かっこ mathematical right white tortoise shell bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟮ | ⟮ | 数学用左平らにされたかっこ mathematical left flattened parenthesis |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⟯ | ⟯ | 数学用右平らにされたかっこ mathematical right flattened parenthesis |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦀ | ⦀ | 三重の縦線区切り文字 triple vertical bar delimiter |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦀ | ⦀ | 三重の縦線区切り文字 triple vertical bar delimiter |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦃ | ⦃ | 左二重波かっこ left white curly bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦄ | ⦄ | 右二重波かっこ right white curly bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦅ | ⦅ | 左二重かっこ left white parenthesis |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦆ | ⦆ | 右二重かっこ right white parenthesis |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦇ | ⦇ | z表記の左の関係値域のかっこ z notation left image bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦈ | ⦈ | z表記の右の関係値域のかっこ z notation right image bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦉ | ⦉ | z表記の左の束縛のかっこ z notation left binding bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦊ | ⦊ | z表記の右の束縛のかっこ z notation right binding bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦋ | ⦋ | 下線付き左角がっこ left square bracket with underbar |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦌ | ⦌ | 下線付き右角がっこ right square bracket with underbar |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦍ | ⦍ | 上の角にしるしの付いた左角がっこ left square bracket with tick in top corner |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦎ | ⦎ | 下の角にしるしの付いた右角がっこ right square bracket with tick in bottom corner |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦏ | ⦏ | 下の角にしるしの付いた左角がっこ left square bracket with tick in bottom corner |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦐ | ⦐ | 上の角にしるしの付いた右角がっこ right square bracket with tick in top corner |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦑ | ⦑ | 点付き左山かっこ left angle bracket with dot |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦒ | ⦒ | 点付き右山かっこ right angle bracket with dot |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦓ | ⦓ | 左の弧と小なりかっこ left arc less-than bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦔ | ⦔ | 右の弧と大なりかっこ right arc greater-than bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦕ | ⦕ | 二重の左の弧と大なりかっこ double left arc greater-than bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦖ | ⦖ | 二重の右の弧と小なりかっこ double right arc less-than bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦗ | ⦗ | 左の黒の亀甲かっこ left black tortoise shell bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦘ | ⦘ | 右の黒の亀甲かっこ right black tortoise shell bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦙ | ⦙ | 点線のかっこ dotted fence |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⦙ | ⦙ | 点線のかっこ dotted fence |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⧘ | ⧘ | 左の波線のかっこ left wiggly fence |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⧙ | ⧙ | 右の波線のかっこ right wiggly fence |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⧚ | ⧚ | 左の二重波線のかっこ left double wiggly fence |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⧛ | ⧛ | 右の二重波線のかっこ right double wiggly fence |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
⧼ | ⧼ | 左を指す曲線の山かっこ left-pointing curved angle bracket |
prefix | 120 | 0 | 0 | fence, stretchy, symmetric |
⧽ | ⧽ | 右を指す曲線の山かっこ right-pointing curved angle bracket |
postfix | 120 | 0 | 0 | fence, stretchy, symmetric |
; | ; | セミコロン semicolon |
infix | 140 | 0 | 3 | separator, linebreakstyle=after |
⦁ | ⦁ | z表記の点 z notation spot |
infix | 140 | 5 | 5 | |
, | , | コンマ comma |
infix | 160 | 0 | 3 | separator, linebreakstyle=after |
⁣ | | 見えない区切り記号 invisible separator |
infix | 160 | 0 | 0 | separator, linebreakstyle=after |
: | : | コロン colon |
infix | 180 | 0 | 3 | |
⦂ | ⦂ | z表記の型コロン z notation type colon |
infix | 180 | 5 | 5 | |
∴ | ∴ | ゆえに therefore |
prefix | 200 | 0 | 0 | |
∵ | ∵ | なぜなら because |
prefix | 200 | 0 | 0 | |
-> | -> | 複数文字の演算子: -> multiple character operator: -> |
infix | 220 | 5 | 5 | |
⊶ | ⊶ | 逆写像 original of |
infix | 220 | 5 | 5 | |
⊷ | ⊷ | 写像 image of |
infix | 220 | 5 | 5 | |
⊸ | ⊸ | 多重写像 multimap |
infix | 220 | 5 | 5 | |
⧴ | ⧴ | 遅延規則 rule-delayed |
infix | 220 | 5 | 5 | |
// | // | 複数文字の演算子: // multiple character operator: // |
infix | 240 | 5 | 5 | |
⊢ | ⊢ | 右向きの鋲 right tack |
infix | 260 | 5 | 5 | |
⊣ | ⊣ | 左向きの鋲 left tack |
infix | 260 | 5 | 5 | |
⊧ | ⊧ | 形作る models |
infix | 260 | 5 | 5 | |
⊨ | ⊨ | 正しい true |
infix | 260 | 5 | 5 | |
⊩ | ⊩ | 強制する forces |
infix | 260 | 5 | 5 | |
⊪ | ⊪ | 三重の縦線と右の横線 triple vertical bar right turnstile |
infix | 260 | 5 | 5 | |
⊫ | ⊫ | 二重の縦線と右の二重の横線 double vertical bar double right turnstile |
infix | 260 | 5 | 5 | |
⊬ | ⊬ | 証明しない does not prove |
infix | 260 | 5 | 5 | |
⊭ | ⊭ | 正しくない not true |
infix | 260 | 5 | 5 | |
⊮ | ⊮ | 強制しない does not force |
infix | 260 | 5 | 5 | |
⊯ | ⊯ | 打ち消された二重の縦線と右の二重の横線 negated double vertical bar double right turnstile |
infix | 260 | 5 | 5 | |
⫞ | ⫞ | 短い左向きの鋲 short left tack |
infix | 260 | 5 | 5 | |
⫟ | ⫟ | 短い下向きの鋲 short down tack |
infix | 260 | 5 | 5 | |
⫠ | ⫠ | 短い上向きの鋲 short up tack |
infix | 260 | 5 | 5 | |
⫡ | ⫡ | sの付いた「垂直」記号 perpendicular with s |
infix | 260 | 5 | 5 | |
⫢ | ⫢ | 縦線と右の三重の横線 vertical bar triple right turnstile |
infix | 260 | 5 | 5 | |
⫣ | ⫣ | 二重の縦線と左の横線 double vertical bar left turnstile |
infix | 260 | 5 | 5 | |
⫤ | ⫤ | 縦線と左の二重の横線 vertical bar double left turnstile |
infix | 260 | 5 | 5 | |
⫥ | ⫥ | 二重の縦線と左の二重の横線 double vertical bar double left turnstile |
infix | 260 | 5 | 5 | |
⫦ | ⫦ | 二重の縦線と左の線から出る長いダッシュ long dash from left member of double vertical |
infix | 260 | 5 | 5 | |
⫧ | ⫧ | 上線付き短い下向きの鋲 short down tack with overbar |
infix | 260 | 5 | 5 | |
⫨ | ⫨ | 下線付き短い上向きの鋲 short up tack with underbar |
infix | 260 | 5 | 5 | |
⫩ | ⫩ | 短い上向きの鋲と短い下向きの鋲 short up tack above short down tack |
infix | 260 | 5 | 5 | |
⫪ | ⫪ | 二重の下向きの鋲 double down tack |
infix | 260 | 5 | 5 | |
⫫ | ⫫ | 二重の上向きの鋲 double up tack |
infix | 260 | 5 | 5 | |
! | ! | 感嘆符 exclamation mark |
prefix | 280 | 0 | 0 | |
¬ | ¬ | 否定記号 not sign |
prefix | 280 | 0 | 0 | |
∀ | ∀ | 任意の for all |
prefix | 280 | 0 | 0 | |
∃ | ∃ | 存在する there exists |
prefix | 280 | 0 | 0 | |
∄ | ∄ | 存在しない there does not exist |
prefix | 280 | 0 | 0 | |
∼ | ∼ | チルダ演算子 tilde operator |
prefix | 280 | 0 | 0 | |
⌐ | ⌐ | 反転した否定記号 reversed not sign |
prefix | 280 | 0 | 0 | |
⌙ | ⌙ | ひっくり返った否定記号 turned not sign |
prefix | 280 | 0 | 0 | |
⫬ | ⫬ | 二重線の否定記号 double stroke not sign |
prefix | 280 | 0 | 0 | |
⫭ | ⫭ | 反転した二重線の否定記号 reversed double stroke not sign |
prefix | 280 | 0 | 0 | |
∈ | ∈ | 要素である element of |
infix | 300 | 5 | 5 | |
∉ | ∉ | 要素でない not an element of |
infix | 300 | 5 | 5 | |
∊ | ∊ | 小さな「要素である」記号 small element of |
infix | 300 | 5 | 5 | |
∋ | ∋ | 要素として含む contains as member |
infix | 300 | 5 | 5 | |
∌ | ∌ | 要素として含まない does not contain as member |
infix | 300 | 5 | 5 | |
∍ | ∍ | 小さな「要素として含む」記号 small contains as member |
infix | 300 | 5 | 5 | |
⊂ | ⊂ | 含まれる subset of |
infix | 300 | 5 | 5 | |
⊃ | ⊃ | 含む superset of |
infix | 300 | 5 | 5 | |
⊄ | ⊄ | 含まれない not a subset of |
infix | 300 | 5 | 5 | |
⊅ | ⊅ | 含まない not a superset of |
infix | 300 | 5 | 5 | |
⊆ | ⊆ | 含まれるまたは等しい subset of or equal to |
infix | 300 | 5 | 5 | |
⊇ | ⊇ | 含むまたは等しい superset of or equal to |
infix | 300 | 5 | 5 | |
⊈ | ⊈ | 含まれないかつ等しくない neither a subset of nor equal to |
infix | 300 | 5 | 5 | |
⊉ | ⊉ | 含まないかつ等しくない neither a superset of nor equal to |
infix | 300 | 5 | 5 | |
⊊ | ⊊ | 含まれるが等しくない subset of with not equal to |
infix | 300 | 5 | 5 | |
⊋ | ⊋ | 含むが等しくない superset of with not equal to |
infix | 300 | 5 | 5 | |
⊏ | ⊏ | 四角い「写像」記号 square image of |
infix | 300 | 5 | 5 | |
⊐ | ⊐ | 四角い「逆写像」記号 square original of |
infix | 300 | 5 | 5 | |
⊑ | ⊑ | 四角い「写像または等しい」記号 square image of or equal to |
infix | 300 | 5 | 5 | |
⊒ | ⊒ | 四角い「逆写像または等しい」記号 square original of or equal to |
infix | 300 | 5 | 5 | |
⊰ | ⊰ | 関係の基で先行する precedes under relation |
infix | 300 | 5 | 5 | |
⊱ | ⊱ | 関係の基で次に来る succeeds under relation |
infix | 300 | 5 | 5 | |
⊲ | ⊲ | 正規部分群である normal subgroup of |
infix | 300 | 5 | 5 | |
⊳ | ⊳ | 正規部分群として含む contains as normal subgroup |
infix | 300 | 5 | 5 | |
⋐ | ⋐ | 二重の含まれる double subset |
infix | 300 | 5 | 5 | |
⋑ | ⋑ | 二重の含む double superset |
infix | 300 | 5 | 5 | |
⋢ | ⋢ | 四角い「写像でないまた等しくない」記号 not square image of or equal to |
infix | 300 | 5 | 5 | |
⋣ | ⋣ | 四角い「逆写像でないまた等しくない」記号 not square original of or equal to |
infix | 300 | 5 | 5 | |
⋤ | ⋤ | 四角い「写像また等しくない」記号 square image of or not equal to |
infix | 300 | 5 | 5 | |
⋥ | ⋥ | 四角い「逆写像または等しくない」記号 square original of or not equal to |
infix | 300 | 5 | 5 | |
⋪ | ⋪ | 正規部分群でない not normal subgroup of |
infix | 300 | 5 | 5 | |
⋫ | ⋫ | 正規部分群として含まない does not contain as normal subgroup |
infix | 300 | 5 | 5 | |
⋬ | ⋬ | 正規部分群でないまた等しくない not normal subgroup of or equal to |
infix | 300 | 5 | 5 | |
⋭ | ⋭ | 正規部分群として含まないまた等しくない does not contain as normal subgroup or equal |
infix | 300 | 5 | 5 | |
⋲ | ⋲ | 長い水平線を持つ「要素である」記号 element of with long horizontal stroke |
infix | 300 | 5 | 5 | |
⋳ | ⋳ | 水平線の終端に縦線の付いた「要素である」記号 element of with vertical bar at end of horizontal stroke |
infix | 300 | 5 | 5 | |
⋴ | ⋴ | 水平線の終端に縦線の付いた小さい「要素である」記号 small element of with vertical bar at end of horizontal stroke |
infix | 300 | 5 | 5 | |
⋵ | ⋵ | 上に点の付いた「要素である」記号 element of with dot above |
infix | 300 | 5 | 5 | |
⋶ | ⋶ | 上線付き「要素である」記号 element of with overbar |
infix | 300 | 5 | 5 | |
⋷ | ⋷ | 上線付き小さな「要素である」記号 small element of with overbar |
infix | 300 | 5 | 5 | |
⋸ | ⋸ | 下線付き「要素である」記号 element of with underbar |
infix | 300 | 5 | 5 | |
⋹ | ⋹ | 二重の水平線を持つ「要素である」記号 element of with two horizontal strokes |
infix | 300 | 5 | 5 | |
⋺ | ⋺ | 長い水平線を持つ「要素として含む」記号 contains with long horizontal stroke |
infix | 300 | 5 | 5 | |
⋻ | ⋻ | 水平線の末端に縦線の付いた「含む」記号 contains with vertical bar at end of horizontal stroke |
infix | 300 | 5 | 5 | |
⋼ | ⋼ | 水平線の終端に縦線の付いた小さい「要素として含む」記号 small contains with vertical bar at end of horizontal stroke |
infix | 300 | 5 | 5 | |
⋽ | ⋽ | 上線付き「含む」記号 contains with overbar |
infix | 300 | 5 | 5 | |
⋾ | ⋾ | 上線付き小さな「含む」記号 small contains with overbar |
infix | 300 | 5 | 5 | |
⋿ | ⋿ | z表記のバグ・メンバーシップ z notation bag membership |
infix | 300 | 5 | 5 | |
⥹ | ⥹ | 含まれると右向き矢印 subset above rightwards arrow |
infix | 300 | 5 | 5 | |
⥺ | ⥺ | 含まれるを貫いた左向き矢印 leftwards arrow through subset |
infix | 300 | 5 | 5 | |
⥻ | ⥻ | 含むと左向き矢印 superset above leftwards arrow |
infix | 300 | 5 | 5 | |
⪽ | ⪽ | 点付き部分集合 subset with dot |
infix | 300 | 5 | 5 | |
⪾ | ⪾ | 点付き「含む」記号 superset with dot |
infix | 300 | 5 | 5 | |
⪿ | ⪿ | 下にプラス記号の付いた含まれる subset with plus sign below |
infix | 300 | 5 | 5 | |
⫀ | ⫀ | 下にプラス記号の付いた含む superset with plus sign below |
infix | 300 | 5 | 5 | |
⫁ | ⫁ | 下に乗算記号の付いた含まれる subset with multiplication sign below |
infix | 300 | 5 | 5 | |
⫂ | ⫂ | 下に乗算記号の付いた含む superset with multiplication sign below |
infix | 300 | 5 | 5 | |
⫃ | ⫃ | 上に点の付いた含まれるまたは等しい subset of or equal to with dot above |
infix | 300 | 5 | 5 | |
⫄ | ⫄ | 上に点の付いた含むまたは等しい superset of or equal to with dot above |
infix | 300 | 5 | 5 | |
⫅ | ⫅ | 含まれると等号 subset of above equals sign |
infix | 300 | 5 | 5 | |
⫆ | ⫆ | 含むと等号 superset of above equals sign |
infix | 300 | 5 | 5 | |
⫇ | ⫇ | 含まれるとチルダ演算子 subset of above tilde operator |
infix | 300 | 5 | 5 | |
⫈ | ⫈ | 含むとチルダ演算子 superset of above tilde operator |
infix | 300 | 5 | 5 | |
⫉ | ⫉ | 含まれるとほぼ等しい subset of above almost equal to |
infix | 300 | 5 | 5 | |
⫊ | ⫊ | 含むとほぼ等しい superset of above almost equal to |
infix | 300 | 5 | 5 | |
⫋ | ⫋ | 含まれると等しくない subset of above not equal to |
infix | 300 | 5 | 5 | |
⫌ | ⫌ | 含むと等しくない superset of above not equal to |
infix | 300 | 5 | 5 | |
⫍ | ⫍ | 四角い左が開いた箱演算子 square left open box operator |
infix | 300 | 5 | 5 | |
⫎ | ⫎ | 四角い右が開いた箱演算子 square right open box operator |
infix | 300 | 5 | 5 | |
⫏ | ⫏ | 閉じた含まれる closed subset |
infix | 300 | 5 | 5 | |
⫐ | ⫐ | 閉じた含む closed superset |
infix | 300 | 5 | 5 | |
⫑ | ⫑ | 閉じた含まれるまたは等しい closed subset or equal to |
infix | 300 | 5 | 5 | |
⫒ | ⫒ | 閉じた含むまたは等しい closed superset or equal to |
infix | 300 | 5 | 5 | |
⫓ | ⫓ | 含まれると含む subset above superset |
infix | 300 | 5 | 5 | |
⫔ | ⫔ | 含むと含まれる superset above subset |
infix | 300 | 5 | 5 | |
⫕ | ⫕ | 含まれると含まれる subset above subset |
infix | 300 | 5 | 5 | |
⫖ | ⫖ | 含むと含む superset above superset |
infix | 300 | 5 | 5 | |
⫗ | ⫗ | 含むとその横の含まれる superset beside subset |
infix | 300 | 5 | 5 | |
⫘ | ⫘ | 含むとダッシュでつながった含まれる superset beside and joined by dash with subset |
infix | 300 | 5 | 5 | |
⫙ | ⫙ | 下を向いた要素である element of opening downwards |
infix | 300 | 5 | 5 | |
!= | != | 複数文字の演算子: != multiple character operator: != |
infix | 320 | 5 | 5 | |
*= | *= | 複数文字の演算子: *= multiple character operator: *= |
infix | 320 | 5 | 5 | |
+= | += | 複数文字の演算子: += multiple character operator: += |
infix | 320 | 5 | 5 | |
-= | -= | 複数文字の演算子: -= multiple character operator: -= |
infix | 320 | 5 | 5 | |
/= | /= | 複数文字の演算子: /= multiple character operator: /= |
infix | 320 | 5 | 5 | |
:= | := | 複数文字の演算子: := multiple character operator: := |
infix | 320 | 5 | 5 | |
< | < | 小なり記号 less-than sign |
infix | 320 | 5 | 5 | |
<= | <= | 複数文字の演算子: <= multiple character operator: <= |
infix | 320 | 5 | 5 | |
= | = | 等号 equals sign |
infix | 320 | 5 | 5 | |
== | == | 複数文字の演算子: == multiple character operator: == |
infix | 320 | 5 | 5 | |
> | > | 大なり記号 greater-than sign |
infix | 320 | 5 | 5 | |
>= | >= | 複数文字の演算子: >= multiple character operator: >= |
infix | 320 | 5 | 5 | |
| | | | 縦線 vertical line |
infix | 320 | 5 | 5 | fence |
|| | || | 複数文字の演算子: || multiple character operator: || |
infix | 320 | 5 | 5 | fence |
∝ | ∝ | 比例 proportional to |
infix | 320 | 5 | 5 | |
∣ | ∣ | 割り切れる divides |
infix | 320 | 5 | 5 | |
∤ | ∤ | 割り切れない does not divide |
infix | 320 | 5 | 5 | |
∥ | ∥ | 平行 parallel to |
infix | 320 | 5 | 5 | |
∦ | ∦ | 平行でない not parallel to |
infix | 320 | 5 | 5 | |
∷ | ∷ | 割合 proportion |
infix | 320 | 5 | 5 | |
∹ | ∹ | 超過 excess |
infix | 320 | 5 | 5 | |
∺ | ∺ | 幾何学的比例 geometric proportion |
infix | 320 | 5 | 5 | |
∻ | ∻ | 相似 homothetic |
infix | 320 | 5 | 5 | |
∼ | ∼ | チルダ演算子 tilde operator |
infix | 320 | 5 | 5 | |
∽ | ∽ | 反転したチルダ reversed tilde |
infix | 320 | 5 | 5 | |
∾ | ∾ | ひっくり返ったゆったりしたS inverted lazy s |
infix | 320 | 5 | 5 | |
≁ | ≁ | チルダの否定 not tilde |
infix | 320 | 5 | 5 | |
≂ | ≂ | マイナスとチルダ minus tilde |
infix | 320 | 5 | 5 | |
≃ | ≃ | 漸近的に等しい asymptotically equal to |
infix | 320 | 5 | 5 | |
≄ | ≄ | 漸近的に等しくはない not asymptotically equal to |
infix | 320 | 5 | 5 | |
≅ | ≅ | およそ等しい approximately equal to |
infix | 320 | 5 | 5 | |
≆ | ≆ | 近似値であるただし等しくはない approximately but not actually equal to |
infix | 320 | 5 | 5 | |
≇ | ≇ | およそかつ実際に等しくない neither approximately nor actually equal to |
infix | 320 | 5 | 5 | |
≈ | ≈ | ほぼ等しい almost equal to |
infix | 320 | 5 | 5 | |
≉ | ≉ | ほぼ等しくはない not almost equal to |
infix | 320 | 5 | 5 | |
≊ | ≊ | ほぼ等しいまたは等しい almost equal or equal to |
infix | 320 | 5 | 5 | |
≋ | ≋ | 三重のチルダ triple tilde |
infix | 320 | 5 | 5 | |
≌ | ≌ | 全て等しい all equal to |
infix | 320 | 5 | 5 | |
≍ | ≍ | 同値である equivalent to |
infix | 320 | 5 | 5 | |
≎ | ≎ | 幾何学的に同値である geometrically equivalent to |
infix | 320 | 5 | 5 | |
≏ | ≏ | 相違 difference between |
infix | 320 | 5 | 5 | |
≐ | ≐ | 限りなく近い approaches the limit |
infix | 320 | 5 | 5 | |
≑ | ≑ | 幾何学的に等しい geometrically equal to |
infix | 320 | 5 | 5 | |
≒ | ≒ | およそ等しいまたは写像 approximately equal to or the image of |
infix | 320 | 5 | 5 | |
≓ | ≓ | 写像またはおよそ等しい image of or approximately equal to |
infix | 320 | 5 | 5 | |
≔ | ≔ | コロンと等しい colon equals |
infix | 320 | 5 | 5 | |
≕ | ≕ | 等しいとコロン equals colon |
infix | 320 | 5 | 5 | |
≖ | ≖ | 等しいの中のリング ring in equal to |
infix | 320 | 5 | 5 | |
≗ | ≗ | リングと等しい ring equal to |
infix | 320 | 5 | 5 | |
≘ | ≘ | 一致する corresponds to |
infix | 320 | 5 | 5 | |
≙ | ≙ | 見積もる estimates |
infix | 320 | 5 | 5 | |
≚ | ≚ | 全ての角が等しい equiangular to |
infix | 320 | 5 | 5 | |
≛ | ≛ | 星と等しい star equals |
infix | 320 | 5 | 5 | |
≜ | ≜ | デルタと等しい delta equal to |
infix | 320 | 5 | 5 | |
≝ | ≝ | 定義により等しい equal to by definition |
infix | 320 | 5 | 5 | |
≞ | ≞ | 測定される measured by |
infix | 320 | 5 | 5 | |
≟ | ≟ | 疑問符付き等しい questioned equal to |
infix | 320 | 5 | 5 | |
≠ | ≠ | 等しくない not equal to |
infix | 320 | 5 | 5 | |
≡ | ≡ | 同一である identical to |
infix | 320 | 5 | 5 | |
≢ | ≢ | 同一でない not identical to |
infix | 320 | 5 | 5 | |
≣ | ≣ | 厳密に同値である strictly equivalent to |
infix | 320 | 5 | 5 | |
≤ | ≤ | 小なりまたは等しい less-than or equal to |
infix | 320 | 5 | 5 | |
≥ | ≥ | 大なりまたは等しい greater-than or equal to |
infix | 320 | 5 | 5 | |
≦ | ≦ | 小なりと等しい less-than over equal to |
infix | 320 | 5 | 5 | |
≧ | ≧ | 大なりと等しい greater-than over equal to |
infix | 320 | 5 | 5 | |
≨ | ≨ | 小なりただし等しくない less-than but not equal to |
infix | 320 | 5 | 5 | |
≩ | ≩ | 大なりただし等しくない greater-than but not equal to |
infix | 320 | 5 | 5 | |
≪ | ≪ | とても小さい much less-than |
infix | 320 | 5 | 5 | |
≫ | ≫ | とても大きい much greater-than |
infix | 320 | 5 | 5 | |
≬ | ≬ | 間 between |
infix | 320 | 5 | 5 | |
≭ | ≭ | 同値でない not equivalent to |
infix | 320 | 5 | 5 | |
≮ | ≮ | 小なりでない not less-than |
infix | 320 | 5 | 5 | |
≯ | ≯ | 大なりでない not greater-than |
infix | 320 | 5 | 5 | |
≰ | ≰ | 小なりでないかつ等しくない neither less-than nor equal to |
infix | 320 | 5 | 5 | |
≱ | ≱ | 大なりでないかつ等しくない neither greater-than nor equal to |
infix | 320 | 5 | 5 | |
≲ | ≲ | 小なりまたは同値である less-than or equivalent to |
infix | 320 | 5 | 5 | |
≳ | ≳ | 大なりまたは同値である greater-than or equivalent to |
infix | 320 | 5 | 5 | |
≴ | ≴ | 小なりでないかつ同値でない neither less-than nor equivalent to |
infix | 320 | 5 | 5 | |
≵ | ≵ | 大なりでないかつ同値でない neither greater-than nor equivalent to |
infix | 320 | 5 | 5 | |
≶ | ≶ | 小なりまたは大なり less-than or greater-than |
infix | 320 | 5 | 5 | |
≷ | ≷ | 大なりまたは小なり greater-than or less-than |
infix | 320 | 5 | 5 | |
≸ | ≸ | 小さくないかつ大きくない neither less-than nor greater-than |
infix | 320 | 5 | 5 | |
≹ | ≹ | 大きくないかつ小さくない neither greater-than nor less-than |
infix | 320 | 5 | 5 | |
≺ | ≺ | 先行する precedes |
infix | 320 | 5 | 5 | |
≻ | ≻ | 次に来る succeeds |
infix | 320 | 5 | 5 | |
≼ | ≼ | 先行するまたは等しい precedes or equal to |
infix | 320 | 5 | 5 | |
≽ | ≽ | 次に来るまたは等しい succeeds or equal to |
infix | 320 | 5 | 5 | |
≾ | ≾ | 先行するまたは同値である precedes or equivalent to |
infix | 320 | 5 | 5 | |
≿ | ≿ | 次に来るまたは同値である succeeds or equivalent to |
infix | 320 | 5 | 5 | |
⊀ | ⊀ | 先行しない does not precede |
infix | 320 | 5 | 5 | |
⊁ | ⊁ | 次に来ない does not succeed |
infix | 320 | 5 | 5 | |
⊜ | ⊜ | 円で囲まれた等しい circled equals |
infix | 320 | 5 | 5 | |
⊦ | ⊦ | 主張 assertion |
infix | 320 | 5 | 5 | |
⊴ | ⊴ | 正規部分群であるまたは等しい normal subgroup of or equal to |
infix | 320 | 5 | 5 | |
⊵ | ⊵ | 正規部分群として含むまたは等しい contains as normal subgroup or equal to |
infix | 320 | 5 | 5 | |
⋈ | ⋈ | 蝶ネクタイ bowtie |
infix | 320 | 5 | 5 | |
⋍ | ⋍ | 反転したチルダと等しい reversed tilde equals |
infix | 320 | 5 | 5 | |
⋔ | ⋔ | 熊手 pitchfork |
infix | 320 | 5 | 5 | |
⋕ | ⋕ | 等しいと平行 equal and parallel to |
infix | 320 | 5 | 5 | |
⋖ | ⋖ | 点付き小なり less-than with dot |
infix | 320 | 5 | 5 | |
⋗ | ⋗ | 点付き大なり greater-than with dot |
infix | 320 | 5 | 5 | |
⋘ | ⋘ | 非常に小さい very much less-than |
infix | 320 | 5 | 5 | |
⋙ | ⋙ | 非常に大きい very much greater-than |
infix | 320 | 5 | 5 | |
⋚ | ⋚ | 小なりまたは等しいまたは大なり less-than equal to or greater-than |
infix | 320 | 5 | 5 | |
⋛ | ⋛ | 大なりまたは等しいまたは小なり greater-than equal to or less-than |
infix | 320 | 5 | 5 | |
⋜ | ⋜ | 等しいまたは小なり equal to or less-than |
infix | 320 | 5 | 5 | |
⋝ | ⋝ | 等しいまたは大なり equal to or greater-than |
infix | 320 | 5 | 5 | |
⋞ | ⋞ | 等しいまたは先行する equal to or precedes |
infix | 320 | 5 | 5 | |
⋟ | ⋟ | 等しいまたは次に来る equal to or succeeds |
infix | 320 | 5 | 5 | |
⋠ | ⋠ | 先行しないまた等しくない does not precede or equal |
infix | 320 | 5 | 5 | |
⋡ | ⋡ | 次に来ないまた等しくない does not succeed or equal |
infix | 320 | 5 | 5 | |
⋦ | ⋦ | 小なりただし同値でない less-than but not equivalent to |
infix | 320 | 5 | 5 | |
⋧ | ⋧ | 大なりただし同値でない greater-than but not equivalent to |
infix | 320 | 5 | 5 | |
⋨ | ⋨ | 先行するただし同値でない precedes but not equivalent to |
infix | 320 | 5 | 5 | |
⋩ | ⋩ | 次に来るただし同値でない succeeds but not equivalent to |
infix | 320 | 5 | 5 | |
⟂ | ⟂ | 垂直 perpendicular |
infix | 320 | 5 | 5 | |
⥶ | ⥶ | 小なりと左向き矢印 less-than above leftwards arrow |
infix | 320 | 5 | 5 | |
⥷ | ⥷ | 小なりを貫いた左向き矢印 leftwards arrow through less-than |
infix | 320 | 5 | 5 | |
⥸ | ⥸ | 大なりと右向き矢印 greater-than above rightwards arrow |
infix | 320 | 5 | 5 | |
⦶ | ⦶ | 円で囲まれた縦線 circled vertical bar |
infix | 320 | 5 | 5 | |
⦷ | ⦷ | 円で囲まれた「平行」記号 circled parallel |
infix | 320 | 5 | 5 | |
⦹ | ⦹ | 円で囲まれた「垂直」記号 circled perpendicular |
infix | 320 | 5 | 5 | |
⧀ | ⧀ | 円で囲まれた小なり circled less-than |
infix | 320 | 5 | 5 | |
⧁ | ⧁ | 円で囲まれた大なり circled greater-than |
infix | 320 | 5 | 5 | |
⧎ | ⧎ | 右向きの三角と左向きの三角 right triangle above left triangle |
infix | 320 | 5 | 5 | |
⧏ | ⧏ | 左向きの三角と縦線 left triangle beside vertical bar |
infix | 320 | 5 | 5 | |
⧐ | ⧐ | 縦線と右向きの三角 vertical bar beside right triangle |
infix | 320 | 5 | 5 | |
⧑ | ⧑ | 左半分が黒い蝶ネクタイ bowtie with left half black |
infix | 320 | 5 | 5 | |
⧒ | ⧒ | 右半分が黒い蝶ネクタイ bowtie with right half black |
infix | 320 | 5 | 5 | |
⧓ | ⧓ | 黒い蝶ネクタイ black bowtie |
infix | 320 | 5 | 5 | |
⧡ | ⧡ | 増加する increases as |
infix | 320 | 5 | 5 | |
⧣ | ⧣ | 等しいと傾いた平行 equals sign and slanted parallel |
infix | 320 | 5 | 5 | |
⧤ | ⧤ | 上にチルダの付いた等号と傾いた平行 equals sign and slanted parallel with tilde above |
infix | 320 | 5 | 5 | |
⧥ | ⧥ | 同一であると傾いた等しい identical to and slanted parallel |
infix | 320 | 5 | 5 | |
⧦ | ⧦ | グライヒシュタルク gleich stark |
infix | 320 | 5 | 5 | |
⩦ | ⩦ | 下に点の付いた等号 equals sign with dot below |
infix | 320 | 5 | 5 | |
⩧ | ⩧ | 上に点の付いた同一である identical with dot above |
infix | 320 | 5 | 5 | |
⩨ | ⩨ | 三重の水平線と二重の縦線 triple horizontal bar with double vertical stroke |
infix | 320 | 5 | 5 | |
⩩ | ⩩ | 三重の水平線と三重の縦線 triple horizontal bar with triple vertical stroke |
infix | 320 | 5 | 5 | |
⩪ | ⩪ | 上点付きチルダ演算子 tilde operator with dot above |
infix | 320 | 5 | 5 | |
⩫ | ⩫ | 右上がりの点々付きチルダ演算子 tilde operator with rising dots |
infix | 320 | 5 | 5 | |
⩬ | ⩬ | 相似マイナス相似 similar minus similar |
infix | 320 | 5 | 5 | |
⩭ | ⩭ | 上に点の付いた合同 congruent with dot above |
infix | 320 | 5 | 5 | |
⩮ | ⩮ | アスタリスク付き等しい equals with asterisk |
infix | 320 | 5 | 5 | |
⩯ | ⩯ | サーカムフレックスアクセント付きほぼ等しい almost equal to with circumflex accent |
infix | 320 | 5 | 5 | |
⩰ | ⩰ | およそ等しいまたは等しい approximately equal or equal to |
infix | 320 | 5 | 5 | |
⩱ | ⩱ | 等号とプラス記号 equals sign above plus sign |
infix | 320 | 5 | 5 | |
⩲ | ⩲ | プラス記号と等号 plus sign above equals sign |
infix | 320 | 5 | 5 | |
⩳ | ⩳ | 等号とチルダ equals sign above tilde operator |
infix | 320 | 5 | 5 | |
⩴ | ⩴ | 二重のコロンと等しい double colon equal |
infix | 320 | 5 | 5 | |
⩵ | ⩵ | 2つの連続した等号 two consecutive equals signs |
infix | 320 | 5 | 5 | |
⩶ | ⩶ | 3つの連続した等号 three consecutive equals signs |
infix | 320 | 5 | 5 | |
⩷ | ⩷ | 上に2つの点と下に2つの点の付いた等号 equals sign with two dots above and two dots below |
infix | 320 | 5 | 5 | |
⩸ | ⩸ | 上に4つの点の付いた同値 equivalent with four dots above |
infix | 320 | 5 | 5 | |
⩹ | ⩹ | 内側に円の付いた小なり less-than with circle inside |
infix | 320 | 5 | 5 | |
⩺ | ⩺ | 内側に円の付いた大なり greater-than with circle inside |
infix | 320 | 5 | 5 | |
⩻ | ⩻ | 上に疑問符の付いた小なり less-than with question mark above |
infix | 320 | 5 | 5 | |
⩼ | ⩼ | 上に疑問符の付いた大なり greater-than with question mark above |
infix | 320 | 5 | 5 | |
⩽ | ⩽ | 小なりまたは傾いた等しい less-than or slanted equal to |
infix | 320 | 5 | 5 | |
⩾ | ⩾ | 大なりまたは傾いた等しい greater-than or slanted equal to |
infix | 320 | 5 | 5 | |
⩿ | ⩿ | 内側に点の付いた小なりまたは傾いた等しい less-than or slanted equal to with dot inside |
infix | 320 | 5 | 5 | |
⪀ | ⪀ | 内側に点の付いた大なりまたは傾いた等しい greater-than or slanted equal to with dot inside |
infix | 320 | 5 | 5 | |
⪁ | ⪁ | 上に点の付いた小なりまたは傾いた等しい less-than or slanted equal to with dot above |
infix | 320 | 5 | 5 | |
⪂ | ⪂ | 上に点の付いた大なりまたは傾いた等しい greater-than or slanted equal to with dot above |
infix | 320 | 5 | 5 | |
⪃ | ⪃ | 右上に点の付いた小なりまたは傾いた等しい less-than or slanted equal to with dot above right |
infix | 320 | 5 | 5 | |
⪄ | ⪄ | 左上に点の付いた大なりまたは傾いた等しい greater-than or slanted equal to with dot above left |
infix | 320 | 5 | 5 | |
⪅ | ⪅ | 小なりまたはおよそ等しい less-than or approximate |
infix | 320 | 5 | 5 | |
⪆ | ⪆ | 大なりまたはおよそ等しい greater-than or approximate |
infix | 320 | 5 | 5 | |
⪇ | ⪇ | 小なりかつ一本線の等しくない less-than and single-line not equal to |
infix | 320 | 5 | 5 | |
⪈ | ⪈ | 大なりかつ一本線の等しくない greater-than and single-line not equal to |
infix | 320 | 5 | 5 | |
⪉ | ⪉ | 小なりかつ近似値でない less-than and not approximate |
infix | 320 | 5 | 5 | |
⪊ | ⪊ | 大なりかつ近似値でない greater-than and not approximate |
infix | 320 | 5 | 5 | |
⪋ | ⪋ | 小なりと二重線の等しいと大なり less-than above double-line equal above greater-than |
infix | 320 | 5 | 5 | |
⪌ | ⪌ | 大なりと二重線の等しいと小なり greater-than above double-line equal above less-than |
infix | 320 | 5 | 5 | |
⪍ | ⪍ | 小なりと相似または等しい less-than above similar or equal |
infix | 320 | 5 | 5 | |
⪎ | ⪎ | 大なりと相似または等しい greater-than above similar or equal |
infix | 320 | 5 | 5 | |
⪏ | ⪏ | 小なりと相似と大なり less-than above similar above greater-than |
infix | 320 | 5 | 5 | |
⪐ | ⪐ | 大なりと相似と小なり greater-than above similar above less-than |
infix | 320 | 5 | 5 | |
⪑ | ⪑ | 小なりと大なりと二重線の等しい less-than above greater-than above double-line equal |
infix | 320 | 5 | 5 | |
⪒ | ⪒ | 大なりと小なりと二重線の等しい greater-than above less-than above double-line equal |
infix | 320 | 5 | 5 | |
⪓ | ⪓ | 小なりと傾いた等しいと大なりと傾いた等しい less-than above slanted equal above greater-than above slanted equal |
infix | 320 | 5 | 5 | |
⪔ | ⪔ | 大なりと傾いた等しいと小なりと傾いた等しい greater-than above slanted equal above less-than above slanted equal |
infix | 320 | 5 | 5 | |
⪕ | ⪕ | 傾いた等しいまたは小なり slanted equal to or less-than |
infix | 320 | 5 | 5 | |
⪖ | ⪖ | 傾いた等しいまたは大なり slanted equal to or greater-than |
infix | 320 | 5 | 5 | |
⪗ | ⪗ | 内側に点の付いた傾いた等しいまたは小なり slanted equal to or less-than with dot inside |
infix | 320 | 5 | 5 | |
⪘ | ⪘ | 内側に点の付いた傾いた等しいまたは大なり slanted equal to or greater-than with dot inside |
infix | 320 | 5 | 5 | |
⪙ | ⪙ | 二重線の等しいまたは小なり double-line equal to or less-than |
infix | 320 | 5 | 5 | |
⪚ | ⪚ | 二重線の等しいまたは大なり double-line equal to or greater-than |
infix | 320 | 5 | 5 | |
⪛ | ⪛ | 二重線の傾いた等しいまたは小なり double-line slanted equal to or less-than |
infix | 320 | 5 | 5 | |
⪜ | ⪜ | 二重線の傾いた等しいまたは大なり double-line slanted equal to or greater-than |
infix | 320 | 5 | 5 | |
⪝ | ⪝ | 相似または小なり similar or less-than |
infix | 320 | 5 | 5 | |
⪞ | ⪞ | 相似または大なり similar or greater-than |
infix | 320 | 5 | 5 | |
⪟ | ⪟ | 相似と小なりと等号 similar above less-than above equals sign |
infix | 320 | 5 | 5 | |
⪠ | ⪠ | 相似と大なりと等号 similar above greater-than above equals sign |
infix | 320 | 5 | 5 | |
⪡ | ⪡ | 二重の小なり double nested less-than |
infix | 320 | 5 | 5 | |
⪢ | ⪢ | 二重の大なり double nested greater-than |
infix | 320 | 5 | 5 | |
⪣ | ⪣ | 下線付き二重の小なり double nested less-than with underbar |
infix | 320 | 5 | 5 | |
⪤ | ⪤ | 大なりと重なった小なり greater-than overlapping less-than |
infix | 320 | 5 | 5 | |
⪥ | ⪥ | 大なりとその横の小なり greater-than beside less-than |
infix | 320 | 5 | 5 | |
⪦ | ⪦ | 曲線で閉じられた小なり less-than closed by curve |
infix | 320 | 5 | 5 | |
⪧ | ⪧ | 曲線で閉じられた大なり greater-than closed by curve |
infix | 320 | 5 | 5 | |
⪨ | ⪨ | 曲線で閉じられた小なりと傾いた等しい less-than closed by curve above slanted equal |
infix | 320 | 5 | 5 | |
⪩ | ⪩ | 曲線で閉じられた大なりと傾いた等しい greater-than closed by curve above slanted equal |
infix | 320 | 5 | 5 | |
⪪ | ⪪ | より小さい smaller than |
infix | 320 | 5 | 5 | |
⪫ | ⪫ | より大きい larger than |
infix | 320 | 5 | 5 | |
⪬ | ⪬ | より小さいまたは等しい smaller than or equal to |
infix | 320 | 5 | 5 | |
⪭ | ⪭ | より大きいまたは等しい larger than or equal to |
infix | 320 | 5 | 5 | |
⪮ | ⪮ | 上にでこぼこの付いた等号 equals sign with bumpy above |
infix | 320 | 5 | 5 | |
⪯ | ⪯ | 先行すると一本線の等号 precedes above single-line equals sign |
infix | 320 | 5 | 5 | |
⪰ | ⪰ | 次に来ると一本線の等号 succeeds above single-line equals sign |
infix | 320 | 5 | 5 | |
⪱ | ⪱ | 先行すると一本線の等しくない precedes above single-line not equal to |
infix | 320 | 5 | 5 | |
⪲ | ⪲ | 次に来ると一本線の等しくない succeeds above single-line not equal to |
infix | 320 | 5 | 5 | |
⪳ | ⪳ | 先行すると等号 precedes above equals sign |
infix | 320 | 5 | 5 | |
⪴ | ⪴ | 次に来ると等号 succeeds above equals sign |
infix | 320 | 5 | 5 | |
⪵ | ⪵ | 先行すると等しくない precedes above not equal to |
infix | 320 | 5 | 5 | |
⪶ | ⪶ | 次に来ると等しくない succeeds above not equal to |
infix | 320 | 5 | 5 | |
⪷ | ⪷ | 先行するとほぼ等しい precedes above almost equal to |
infix | 320 | 5 | 5 | |
⪸ | ⪸ | 次に来るとほぼ等しい succeeds above almost equal to |
infix | 320 | 5 | 5 | |
⪹ | ⪹ | 先行するとほぼ等しくはない precedes above not almost equal to |
infix | 320 | 5 | 5 | |
⪺ | ⪺ | 次に来るとほぼ等しくはない succeeds above not almost equal to |
infix | 320 | 5 | 5 | |
⪻ | ⪻ | 二重の先行する double precedes |
infix | 320 | 5 | 5 | |
⪼ | ⪼ | 二重の次に来る double succeeds |
infix | 320 | 5 | 5 | |
⫚ | ⫚ | 頭にT字の付いた熊手 pitchfork with tee top |
infix | 320 | 5 | 5 | |
⫮ | ⫮ | 逆向きの打ち消しの斜線付き割りきれない does not divide with reversed negation slash |
infix | 320 | 5 | 5 | |
⫲ | ⫲ | 水平線付き平行 parallel with horizontal stroke |
infix | 320 | 5 | 5 | |
⫳ | ⫳ | チルダ演算子付き平行 parallel with tilde operator |
infix | 320 | 5 | 5 | |
⫴ | ⫴ | 二項関係の三重の縦線 triple vertical bar binary relation |
infix | 320 | 5 | 5 | |
⫵ | ⫵ | 水平線付き三重の縦線 triple vertical bar with horizontal stroke |
infix | 320 | 5 | 5 | |
⫷ | ⫷ | 三重の小なり triple nested less-than |
infix | 320 | 5 | 5 | |
⫸ | ⫸ | 三重の大なり triple nested greater-than |
infix | 320 | 5 | 5 | |
⫹ | ⫹ | 二重線の傾いた小なりまたは等しい double-line slanted less-than or equal to |
infix | 320 | 5 | 5 | |
⫺ | ⫺ | 二重線の傾いた大なりまたは等しい double-line slanted greater-than or equal to |
infix | 320 | 5 | 5 | |
⯑ | ⯑ | 不確実性記号 uncertainty sign |
infix | 320 | 5 | 5 | |
← | ← | 左向き矢印 leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
↑ | ↑ | 上向き矢印 upwards arrow |
infix | 340 | 5 | 5 | stretchy |
→ | → | 右向き矢印 rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
↓ | ↓ | 下向き矢印 downwards arrow |
infix | 340 | 5 | 5 | stretchy |
↔ | ↔ | 左右両方を向いた矢印 left right arrow |
infix | 340 | 5 | 5 | stretchy |
↕ | ↕ | 上下両方を向いた矢印 up down arrow |
infix | 340 | 5 | 5 | stretchy |
↖ | ↖ | 北西向き矢印 north west arrow |
infix | 340 | 5 | 5 | |
↗ | ↗ | 北東向き矢印 north east arrow |
infix | 340 | 5 | 5 | |
↘ | ↘ | 南東向き矢印 south east arrow |
infix | 340 | 5 | 5 | |
↙ | ↙ | 南西向き矢印 south west arrow |
infix | 340 | 5 | 5 | |
↚ | ↚ | 斜線付き左向き矢印 leftwards arrow with stroke |
infix | 340 | 5 | 5 | stretchy |
↛ | ↛ | 斜線付き右向き矢印 rightwards arrow with stroke |
infix | 340 | 5 | 5 | stretchy |
↜ | ↜ | 左向き波線矢印 leftwards wave arrow |
infix | 340 | 5 | 5 | stretchy |
↝ | ↝ | 右向き波線矢印 rightwards wave arrow |
infix | 340 | 5 | 5 | stretchy |
↞ | ↞ | 左向きの先端が2つある矢印 leftwards two headed arrow |
infix | 340 | 5 | 5 | stretchy |
↟ | ↟ | 上向きの先端が2つある矢印 upwards two headed arrow |
infix | 340 | 5 | 5 | stretchy |
↠ | ↠ | 右向きの先端が2つある矢印 rightwards two headed arrow |
infix | 340 | 5 | 5 | stretchy |
↡ | ↡ | 下向きの先端が2つある矢印 downwards two headed arrow |
infix | 340 | 5 | 5 | stretchy |
↢ | ↢ | 尾付き左向き矢印 leftwards arrow with tail |
infix | 340 | 5 | 5 | stretchy |
↣ | ↣ | 尾付き右向き矢印 rightwards arrow with tail |
infix | 340 | 5 | 5 | stretchy |
↤ | ↤ | 縦線から伸びる左向き矢印 leftwards arrow from bar |
infix | 340 | 5 | 5 | stretchy |
↥ | ↥ | 横線から伸びる上向き矢印 upwards arrow from bar |
infix | 340 | 5 | 5 | stretchy |
↦ | ↦ | 縦線から伸びる右向き矢印 rightwards arrow from bar |
infix | 340 | 5 | 5 | stretchy |
↧ | ↧ | 横線から伸びる下向き矢印 downwards arrow from bar |
infix | 340 | 5 | 5 | stretchy |
↨ | ↨ | 土台付き上下両方を向いた矢印 up down arrow with base |
infix | 340 | 5 | 5 | stretchy |
↩ | ↩ | フック付き左向き矢印 leftwards arrow with hook |
infix | 340 | 5 | 5 | stretchy |
↪ | ↪ | フック付き右向き矢印 rightwards arrow with hook |
infix | 340 | 5 | 5 | stretchy |
↫ | ↫ | ループ付き左向き矢印 leftwards arrow with loop |
infix | 340 | 5 | 5 | stretchy |
↬ | ↬ | ループ付き右向き矢印 rightwards arrow with loop |
infix | 340 | 5 | 5 | stretchy |
↭ | ↭ | 左右両方を向いた波線矢印 left right wave arrow |
infix | 340 | 5 | 5 | stretchy |
↮ | ↮ | 斜線付き左右両方を向いた矢印 left right arrow with stroke |
infix | 340 | 5 | 5 | stretchy |
↯ | ↯ | 下向きジグザグ矢印 downwards zigzag arrow |
infix | 340 | 5 | 5 | |
↰ | ↰ | 左向きの先端が付いた上に向かう矢印 upwards arrow with tip leftwards |
infix | 340 | 5 | 5 | stretchy |
↱ | ↱ | 右向きの先端が付いた上へ向かう矢印 upwards arrow with tip rightwards |
infix | 340 | 5 | 5 | stretchy |
↲ | ↲ | 左向きの先端が付いた下へ向かう矢印 downwards arrow with tip leftwards |
infix | 340 | 5 | 5 | stretchy |
↳ | ↳ | 右向きの先端の付いた下へ向かう矢印 downwards arrow with tip rightwards |
infix | 340 | 5 | 5 | stretchy |
↴ | ↴ | 下向きに折れた右向き矢印 rightwards arrow with corner downwards |
infix | 340 | 5 | 5 | stretchy |
↵ | ↵ | 左向きに折れた下向き矢印 downwards arrow with corner leftwards |
infix | 340 | 5 | 5 | stretchy |
↶ | ↶ | 上半円形の反時計回りの矢印 anticlockwise top semicircle arrow |
infix | 340 | 5 | 5 | |
↷ | ↷ | 上半円形の反時計回りの矢印 clockwise top semicircle arrow |
infix | 340 | 5 | 5 | |
↸ | ↸ | 長い横線に向かう北西向き矢印 north west arrow to long bar |
infix | 340 | 5 | 5 | |
↹ | ↹ | 縦線に向かう左向き矢印とその下の縦線に向かう右向き矢印 leftwards arrow to bar over rightwards arrow to bar |
infix | 340 | 5 | 5 | stretchy |
↺ | ↺ | 反時計周りの中の空いた円形の矢印 anticlockwise open circle arrow |
infix | 340 | 5 | 5 | |
↻ | ↻ | 時計周りの中の空いた円形の矢印 clockwise open circle arrow |
infix | 340 | 5 | 5 | |
↼ | ↼ | 先端が上半分の左向き矢印 leftwards harpoon with barb upwards |
infix | 340 | 5 | 5 | stretchy |
↽ | ↽ | 先端が下半分の左向き矢印 leftwards harpoon with barb downwards |
infix | 340 | 5 | 5 | stretchy |
↾ | ↾ | 先端が右半分の上向き矢印 upwards harpoon with barb rightwards |
infix | 340 | 5 | 5 | stretchy |
↿ | ↿ | 先端が左半分の上向き矢印 upwards harpoon with barb leftwards |
infix | 340 | 5 | 5 | stretchy |
⇀ | ⇀ | 先端が上半分の右向き矢印 rightwards harpoon with barb upwards |
infix | 340 | 5 | 5 | stretchy |
⇁ | ⇁ | 先端が下半分の右向き矢印 rightwards harpoon with barb downwards |
infix | 340 | 5 | 5 | stretchy |
⇂ | ⇂ | 先端が右半分の下向き矢印 downwards harpoon with barb rightwards |
infix | 340 | 5 | 5 | stretchy |
⇃ | ⇃ | 先端が左半分の下向き矢印 downwards harpoon with barb leftwards |
infix | 340 | 5 | 5 | stretchy |
⇄ | ⇄ | 右向き矢印とその下の左向き矢印 rightwards arrow over leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
⇅ | ⇅ | 上向き矢印とその右側の下向き矢印 upwards arrow leftwards of downwards arrow |
infix | 340 | 5 | 5 | stretchy |
⇆ | ⇆ | 左向き矢印とその下の右向き矢印 leftwards arrow over rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
⇇ | ⇇ | 左向きの対になった矢印 leftwards paired arrows |
infix | 340 | 5 | 5 | stretchy |
⇈ | ⇈ | 上向きの対になった矢印 upwards paired arrows |
infix | 340 | 5 | 5 | stretchy |
⇉ | ⇉ | 右向きの対になった矢印 rightwards paired arrows |
infix | 340 | 5 | 5 | stretchy |
⇊ | ⇊ | 下向きの対になった矢印 downwards paired arrows |
infix | 340 | 5 | 5 | stretchy |
⇋ | ⇋ | 先端が半分の左向き矢印とその下の先端が半分の右向き矢印 leftwards harpoon over rightwards harpoon |
infix | 340 | 5 | 5 | stretchy |
⇌ | ⇌ | 先端が半分の右向き矢印と先端が半分の左向き矢印 rightwards harpoon over leftwards harpoon |
infix | 340 | 5 | 5 | stretchy |
⇍ | ⇍ | 斜線付き左向き二重線矢印 leftwards double arrow with stroke |
infix | 340 | 5 | 5 | stretchy |
⇎ | ⇎ | 斜線付き左右両方を向いた二重線矢印 left right double arrow with stroke |
infix | 340 | 5 | 5 | stretchy |
⇏ | ⇏ | 斜線付き右向き二重線矢印 rightwards double arrow with stroke |
infix | 340 | 5 | 5 | stretchy |
⇐ | ⇐ | 左向き二重線矢印 leftwards double arrow |
infix | 340 | 5 | 5 | stretchy |
⇑ | ⇑ | 上向き二重線矢印 upwards double arrow |
infix | 340 | 5 | 5 | stretchy |
⇒ | ⇒ | 右向き二重線矢印 rightwards double arrow |
infix | 340 | 5 | 5 | stretchy |
⇓ | ⇓ | 下向き二重線矢印 downwards double arrow |
infix | 340 | 5 | 5 | stretchy |
⇔ | ⇔ | 左右両方を向いた二重線矢印 left right double arrow |
infix | 340 | 5 | 5 | stretchy |
⇕ | ⇕ | 上下両方を向いた二重線矢印 up down double arrow |
infix | 340 | 5 | 5 | stretchy |
⇖ | ⇖ | 北西向き二重線矢印 north west double arrow |
infix | 340 | 5 | 5 | |
⇗ | ⇗ | 北東向き二重線矢印 north east double arrow |
infix | 340 | 5 | 5 | |
⇘ | ⇘ | 南東向き二重線矢印 south east double arrow |
infix | 340 | 5 | 5 | |
⇙ | ⇙ | 南西向き二重線矢印 south west double arrow |
infix | 340 | 5 | 5 | |
⇚ | ⇚ | 左向き三重線矢印 leftwards triple arrow |
infix | 340 | 5 | 5 | stretchy |
⇛ | ⇛ | 右向き三重線矢印 rightwards triple arrow |
infix | 340 | 5 | 5 | stretchy |
⇜ | ⇜ | 左向きのくねった矢印 leftwards squiggle arrow |
infix | 340 | 5 | 5 | stretchy |
⇝ | ⇝ | 右向きのくねった矢印 rightwards squiggle arrow |
infix | 340 | 5 | 5 | stretchy |
⇞ | ⇞ | 二重横線付き上向き矢印 upwards arrow with double stroke |
infix | 340 | 5 | 5 | stretchy |
⇟ | ⇟ | 二重横線付き下向き矢印 downwards arrow with double stroke |
infix | 340 | 5 | 5 | stretchy |
⇠ | ⇠ | 左向き点線矢印 leftwards dashed arrow |
infix | 340 | 5 | 5 | stretchy |
⇡ | ⇡ | 上向き点線矢印 upwards dashed arrow |
infix | 340 | 5 | 5 | stretchy |
⇢ | ⇢ | 右向き点線矢印 rightwards dashed arrow |
infix | 340 | 5 | 5 | stretchy |
⇣ | ⇣ | 下向き点線矢印 downwards dashed arrow |
infix | 340 | 5 | 5 | stretchy |
⇤ | ⇤ | 縦線に向かう左向き矢印 leftwards arrow to bar |
infix | 340 | 5 | 5 | stretchy |
⇥ | ⇥ | 縦線に向かう右向き矢印 rightwards arrow to bar |
infix | 340 | 5 | 5 | stretchy |
⇦ | ⇦ | 左向き白い矢印 leftwards white arrow |
infix | 340 | 5 | 5 | stretchy |
⇧ | ⇧ | 上向き白い矢印 upwards white arrow |
infix | 340 | 5 | 5 | stretchy |
⇨ | ⇨ | 右向き白い矢印 rightwards white arrow |
infix | 340 | 5 | 5 | stretchy |
⇩ | ⇩ | 下向き白い矢印 downwards white arrow |
infix | 340 | 5 | 5 | stretchy |
⇪ | ⇪ | 横線から伸びる上向き白い矢印 upwards white arrow from bar |
infix | 340 | 5 | 5 | stretchy |
⇫ | ⇫ | 台の上の上向き白い矢印 upwards white arrow on pedestal |
infix | 340 | 5 | 5 | stretchy |
⇬ | ⇬ | 台の上の水平線付き上向き白い矢印 upwards white arrow on pedestal with horizontal bar |
infix | 340 | 5 | 5 | stretchy |
⇭ | ⇭ | 台の上の縦線付き上向き白い矢印 upwards white arrow on pedestal with vertical bar |
infix | 340 | 5 | 5 | stretchy |
⇮ | ⇮ | 二重の上向き白い矢印 upwards white double arrow |
infix | 340 | 5 | 5 | stretchy |
⇯ | ⇯ | 台の上の二重の上向き白い矢印 upwards white double arrow on pedestal |
infix | 340 | 5 | 5 | stretchy |
⇰ | ⇰ | 壁から出た右向き白い矢印 rightwards white arrow from wall |
infix | 340 | 5 | 5 | stretchy |
⇱ | ⇱ | 角に向かう北西向き矢印 north west arrow to corner |
infix | 340 | 5 | 5 | |
⇲ | ⇲ | 角に向かう南東向き矢印 south east arrow to corner |
infix | 340 | 5 | 5 | |
⇳ | ⇳ | 上下両方を向いた白い矢印 up down white arrow |
infix | 340 | 5 | 5 | stretchy |
⇴ | ⇴ | 小さい円の付いた右向き矢印 right arrow with small circle |
infix | 340 | 5 | 5 | stretchy |
⇵ | ⇵ | 下向き矢印とその右側の上向き矢印 downwards arrow leftwards of upwards arrow |
infix | 340 | 5 | 5 | stretchy |
⇶ | ⇶ | 3つの右向き矢印 three rightwards arrows |
infix | 340 | 5 | 5 | stretchy |
⇷ | ⇷ | 縦線付き左向き矢印 leftwards arrow with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⇸ | ⇸ | 縦線付き右向き矢印 rightwards arrow with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⇹ | ⇹ | 縦線付き左右両方を向いた矢印 left right arrow with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⇺ | ⇺ | 二重の縦線付き左向き矢印 leftwards arrow with double vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⇻ | ⇻ | 二重の縦線付き右向き矢印 rightwards arrow with double vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⇼ | ⇼ | 二重の縦線付き左右両方を向いた矢印 left right arrow with double vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⇽ | ⇽ | 先端が中抜きの左向き矢印 leftwards open-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⇾ | ⇾ | 先端が中抜きの右向き矢印 rightwards open-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⇿ | ⇿ | 先端が中抜きの左右両方を向いた矢印 left right open-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⌁ | ⌁ | 電気の矢印 electric arrow |
infix | 340 | 5 | 5 | |
⍼ | ⍼ | 下向きジグザグ矢印付き直角 right angle with downwards zigzag arrow |
infix | 340 | 5 | 5 | |
⎋ | ⎋ | 北西向き矢印付き途切れた円 broken circle with northwest arrow |
infix | 340 | 5 | 5 | |
➔ | ➔ | 重厚感のある先端が広い幅の右向き矢印 heavy wide-headed rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➘ | ➘ | 重厚感のある南東向き矢印 heavy south east arrow |
infix | 340 | 5 | 5 | |
➙ | ➙ | 重厚感のある右向き矢印 heavy rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➚ | ➚ | 重厚感のある北東向き矢印 heavy north east arrow |
infix | 340 | 5 | 5 | |
➛ | ➛ | 製図用の指し示す右向き矢印 drafting point rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➜ | ➜ | 重厚感のある丸みの付いた右向き矢印 heavy round-tipped rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➝ | ➝ | 先端が三角の右向き矢印 triangle-headed rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➞ | ➞ | 重厚感のある先端が三角の右向き矢印 heavy triangle-headed rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➟ | ➟ | 破線で先端が三角の右向き矢印 dashed triangle-headed rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➠ | ➠ | 重厚感のある破線で先端が三角の右向き矢印 heavy dashed triangle-headed rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➡ | ➡ | 黒い右向き矢印 black rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➥ | ➥ | 重厚感のある黒い上から曲がって右に向かう矢印 heavy black curved downwards and rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➦ | ➦ | 重厚感のある黒い下から曲がって右に向かう矢印 heavy black curved upwards and rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➧ | ➧ | 潰れた黒い右向き矢印 squat black rightwards arrow |
infix | 340 | 5 | 5 | |
➨ | ➨ | 重厚感のある凹んだ先端の右向き矢印 heavy concave-pointed black rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➩ | ➩ | 右に影の付いた白い右向き矢印 right-shaded white rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➪ | ➪ | 左に影の付いた白い右向き矢印 left-shaded white rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➫ | ➫ | 奥に傾いた影付き白い右向き矢印 back-tilted shadowed white rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➬ | ➬ | 手前に傾いた影付き白い右向き矢印 front-tilted shadowed white rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➭ | ➭ | 重厚感のある下に影の付いた白い右向き矢印 heavy lower right-shadowed white rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➮ | ➮ | 重厚感のある上に影の付いた白い右向き矢印 heavy upper right-shadowed white rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➯ | ➯ | 切込みのある下に影の付いた白い右向き矢印 notched lower right-shadowed white rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➱ | ➱ | 切込みのある上に影の付いた白い右向き矢印 notched upper right-shadowed white rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➲ | ➲ | 円で囲まれた重厚感のある白い右向き矢印 circled heavy white rightwards arrow |
infix | 340 | 5 | 5 | |
➳ | ➳ | 白い矢羽根付き右向き矢印 white-feathered rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➴ | ➴ | 黒い矢羽根付き南東向き矢印 black-feathered south east arrow |
infix | 340 | 5 | 5 | |
➵ | ➵ | 黒い矢羽根付き右向き矢印 black-feathered rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➶ | ➶ | 黒い矢羽根付き北東向き矢印 black-feathered north east arrow |
infix | 340 | 5 | 5 | |
➷ | ➷ | 重厚感のある黒い矢羽根付き南東向き矢印 heavy black-feathered south east arrow |
infix | 340 | 5 | 5 | |
➸ | ➸ | 重厚感のある黒い矢羽根付き右向き矢印 heavy black-feathered rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➹ | ➹ | 重厚感のある黒い矢羽根付き北東向き矢印 heavy black-feathered north east arrow |
infix | 340 | 5 | 5 | |
➺ | ➺ | 端がしずく形の右向き矢印 teardrop-barbed rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➻ | ➻ | 重厚感のあるしずくを貫いた右向き矢印 heavy teardrop-shanked rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➼ | ➼ | 尾がくさび形の右向き矢印 wedge-tailed rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➽ | ➽ | 重厚感のある尾がくさび形の右向き矢印 heavy wedge-tailed rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
➾ | ➾ | 閉じていない輪郭を描いた右向き矢印 open-outlined rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
⟰ | ⟰ | 上向き四重線矢印 upwards quadruple arrow |
infix | 340 | 5 | 5 | stretchy |
⟱ | ⟱ | 下向き四重線矢印 downwards quadruple arrow |
infix | 340 | 5 | 5 | stretchy |
⟲ | ⟲ | 反時計回りの隙間のある円形矢印 anticlockwise gapped circle arrow |
infix | 340 | 5 | 5 | |
⟳ | ⟳ | 時計回りの隙間のある円形矢印 clockwise gapped circle arrow |
infix | 340 | 5 | 5 | |
⟴ | ⟴ | 円で囲まれたプラス付き右向き矢印 right arrow with circled plus |
infix | 340 | 5 | 5 | stretchy |
⟵ | ⟵ | 長い左向き矢印 long leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
⟶ | ⟶ | 長い右向き矢印 long rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
⟷ | ⟷ | 長い左右両方を向いた矢印 long left right arrow |
infix | 340 | 5 | 5 | stretchy |
⟸ | ⟸ | 長い左向き二重線矢印 long leftwards double arrow |
infix | 340 | 5 | 5 | stretchy |
⟹ | ⟹ | 長い右向き二重線矢印 long rightwards double arrow |
infix | 340 | 5 | 5 | stretchy |
⟺ | ⟺ | 長い左右両方を向いた二重線矢印 long left right double arrow |
infix | 340 | 5 | 5 | stretchy |
⟻ | ⟻ | 縦線から伸びる長い左向き矢印 long leftwards arrow from bar |
infix | 340 | 5 | 5 | stretchy |
⟼ | ⟼ | 縦線から伸びる長い右向き矢印 long rightwards arrow from bar |
infix | 340 | 5 | 5 | stretchy |
⟽ | ⟽ | 縦線から伸びる長い左向き二重線矢印 long leftwards double arrow from bar |
infix | 340 | 5 | 5 | stretchy |
⟾ | ⟾ | 縦線から伸びる長い右向き二重線矢印 long rightwards double arrow from bar |
infix | 340 | 5 | 5 | stretchy |
⟿ | ⟿ | 長い右向きのくねった矢印 long rightwards squiggle arrow |
infix | 340 | 5 | 5 | stretchy |
⤀ | ⤀ | 縦線付き右向きの先端が2つある矢印 rightwards two-headed arrow with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⤁ | ⤁ | 二重の縦線付き右向きの先端が2つある矢印 rightwards two-headed arrow with double vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⤂ | ⤂ | 縦線付き左向き二重線矢印 leftwards double arrow with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⤃ | ⤃ | 縦線付き右向き二重線矢印 rightwards double arrow with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⤄ | ⤄ | 縦線付き左右両方を向いた二重線矢印 left right double arrow with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⤅ | ⤅ | 縦線から伸びる右向きの先端が2つある矢印 rightwards two-headed arrow from bar |
infix | 340 | 5 | 5 | stretchy |
⤆ | ⤆ | 縦線から伸びる左向き二重線矢印 leftwards double arrow from bar |
infix | 340 | 5 | 5 | stretchy |
⤇ | ⤇ | 縦線から伸びる右向き二重線矢印 rightwards double arrow from bar |
infix | 340 | 5 | 5 | stretchy |
⤈ | ⤈ | 水平線付き下向き矢印 downwards arrow with horizontal stroke |
infix | 340 | 5 | 5 | stretchy |
⤉ | ⤉ | 水平線付き上向き矢印 upwards arrow with horizontal stroke |
infix | 340 | 5 | 5 | stretchy |
⤊ | ⤊ | 上向き三重線矢印 upwards triple arrow |
infix | 340 | 5 | 5 | stretchy |
⤋ | ⤋ | 下向き三重線矢印 downwards triple arrow |
infix | 340 | 5 | 5 | stretchy |
⤌ | ⤌ | 二重ダッシュの左向き矢印 leftwards double dash arrow |
infix | 340 | 5 | 5 | stretchy |
⤍ | ⤍ | 二重ダッシュの右向き矢印 rightwards double dash arrow |
infix | 340 | 5 | 5 | stretchy |
⤎ | ⤎ | 三重ダッシュの左向き矢印 leftwards triple dash arrow |
infix | 340 | 5 | 5 | stretchy |
⤏ | ⤏ | 三重ダッシュの右向き矢印 rightwards triple dash arrow |
infix | 340 | 5 | 5 | stretchy |
⤐ | ⤐ | 先端が2つある三重ダッシュの右向き矢印 rightwards two-headed triple dash arrow |
infix | 340 | 5 | 5 | stretchy |
⤑ | ⤑ | 点線の右向き矢印 rightwards arrow with dotted stem |
infix | 340 | 5 | 5 | stretchy |
⤒ | ⤒ | 横線に向かう上向き矢印 upwards arrow to bar |
infix | 340 | 5 | 5 | stretchy |
⤓ | ⤓ | 横線に向かう下向き矢印 downwards arrow to bar |
infix | 340 | 5 | 5 | stretchy |
⤔ | ⤔ | 縦線付き尾付き右向き矢印 rightwards arrow with tail with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⤕ | ⤕ | 二重の縦線付き尾付き右向き矢印 rightwards arrow with tail with double vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⤖ | ⤖ | 尾付き先端が2つある右向き矢印 rightwards two-headed arrow with tail |
infix | 340 | 5 | 5 | stretchy |
⤗ | ⤗ | 縦線付き尾付き先端が2つある右向き矢印 rightwards two-headed arrow with tail with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⤘ | ⤘ | 二重の縦線付き尾付き先端が2つある右向き矢印 rightwards two-headed arrow with tail with double vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⤙ | ⤙ | 左向き矢印の尾 leftwards arrow-tail |
infix | 340 | 5 | 5 | stretchy |
⤚ | ⤚ | 右向き矢印の尾 rightwards arrow-tail |
infix | 340 | 5 | 5 | stretchy |
⤛ | ⤛ | 左向き矢印の二重の尾 leftwards double arrow-tail |
infix | 340 | 5 | 5 | stretchy |
⤜ | ⤜ | 右向き矢印の二重の尾 rightwards double arrow-tail |
infix | 340 | 5 | 5 | stretchy |
⤝ | ⤝ | 黒のひし形に伸びる左向き矢印 leftwards arrow to black diamond |
infix | 340 | 5 | 5 | stretchy |
⤞ | ⤞ | 黒のひし形に伸びる右向き矢印 rightwards arrow to black diamond |
infix | 340 | 5 | 5 | stretchy |
⤟ | ⤟ | 縦線から黒のひし形に伸びる左向き矢印 leftwards arrow from bar to black diamond |
infix | 340 | 5 | 5 | stretchy |
⤠ | ⤠ | 縦線から黒のひし形に伸びる右向き矢印 rightwards arrow from bar to black diamond |
infix | 340 | 5 | 5 | stretchy |
⤡ | ⤡ | 北西・南東両方を向いた矢印 north west and south east arrow |
infix | 340 | 5 | 5 | |
⤢ | ⤢ | 北東・南西両方を向いた矢印 north east and south west arrow |
infix | 340 | 5 | 5 | |
⤣ | ⤣ | フック付き北西向き矢印 north west arrow with hook |
infix | 340 | 5 | 5 | |
⤤ | ⤤ | フック付き北東向き矢印 north east arrow with hook |
infix | 340 | 5 | 5 | |
⤥ | ⤥ | フック付き南東向き矢印 south east arrow with hook |
infix | 340 | 5 | 5 | |
⤦ | ⤦ | フック付き南西向き矢印 south west arrow with hook |
infix | 340 | 5 | 5 | |
⤧ | ⤧ | 北西向き矢印と北東向き矢印 north west arrow and north east arrow |
infix | 340 | 5 | 5 | |
⤨ | ⤨ | 北東向き矢印と南東向き矢印 north east arrow and south east arrow |
infix | 340 | 5 | 5 | |
⤩ | ⤩ | 南東向き矢印と南西向き矢印 south east arrow and south west arrow |
infix | 340 | 5 | 5 | |
⤪ | ⤪ | 南西向き矢印と北西向き矢印 south west arrow and north west arrow |
infix | 340 | 5 | 5 | |
⤫ | ⤫ | 右下がりの対角線と交差する右上がりの対角線 rising diagonal crossing falling diagonal |
infix | 340 | 5 | 5 | |
⤬ | ⤬ | 右上がりの対角線と交差する右下がりの対角線 falling diagonal crossing rising diagonal |
infix | 340 | 5 | 5 | |
⤭ | ⤭ | 北東向き矢印と交差する南東向き矢印 south east arrow crossing north east arrow |
infix | 340 | 5 | 5 | |
⤮ | ⤮ | 南東向き矢印と交差する北東向き矢印 north east arrow crossing south east arrow |
infix | 340 | 5 | 5 | |
⤯ | ⤯ | 北東向き矢印と交差する右下がりの対角線 falling diagonal crossing north east arrow |
infix | 340 | 5 | 5 | |
⤰ | ⤰ | 南東向き矢印と交差する右上がりの対角線 rising diagonal crossing south east arrow |
infix | 340 | 5 | 5 | |
⤱ | ⤱ | 北西向き矢印と交差する北東向き矢印 north east arrow crossing north west arrow |
infix | 340 | 5 | 5 | |
⤲ | ⤲ | 北東向き矢印と交差する北西向き矢印 north west arrow crossing north east arrow |
infix | 340 | 5 | 5 | |
⤳ | ⤳ | 直接右を指す波線矢印 wave arrow pointing directly right |
infix | 340 | 5 | 5 | |
⤴ | ⤴ | 左から曲がって上へ向かう矢印 arrow pointing rightwards then curving upwards |
infix | 340 | 5 | 5 | stretchy |
⤵ | ⤵ | 左から曲がって下へ向かう矢印 arrow pointing rightwards then curving downwards |
infix | 340 | 5 | 5 | stretchy |
⤶ | ⤶ | 上から曲がって左に向かう矢印 arrow pointing downwards then curving leftwards |
infix | 340 | 5 | 5 | stretchy |
⤷ | ⤷ | 上から曲がって右に向かう矢印 arrow pointing downwards then curving rightwards |
infix | 340 | 5 | 5 | stretchy |
⤸ | ⤸ | 右側に弧を描いた時計回りの矢印 right-side arc clockwise arrow |
infix | 340 | 5 | 5 | |
⤹ | ⤹ | 左側に弧を描いた反時計回りの矢印 left-side arc anticlockwise arrow |
infix | 340 | 5 | 5 | |
⤺ | ⤺ | 上側に弧を描いた反時計回りの矢印 top arc anticlockwise arrow |
infix | 340 | 5 | 5 | |
⤻ | ⤻ | 下側に弧を描いた反時計回りの矢印 bottom arc anticlockwise arrow |
infix | 340 | 5 | 5 | |
⤼ | ⤼ | マイナス付き上側に弧を描いた時計回りの矢印 top arc clockwise arrow with minus |
infix | 340 | 5 | 5 | |
⤽ | ⤽ | プラス付き上側に弧を描いた反時計回りの矢印 top arc anticlockwise arrow with plus |
infix | 340 | 5 | 5 | |
⤾ | ⤾ | 右下の半円の時計回りの矢印 lower right semicircular clockwise arrow |
infix | 340 | 5 | 5 | |
⤿ | ⤿ | 左下の半円の時計回りの矢印 lower left semicircular anticlockwise arrow |
infix | 340 | 5 | 5 | |
⥀ | ⥀ | 反時計周りの閉じた円形の矢印 anticlockwise closed circle arrow |
infix | 340 | 5 | 5 | |
⥁ | ⥁ | 時計周りの閉じた円形の矢印 clockwise closed circle arrow |
infix | 340 | 5 | 5 | |
⥂ | ⥂ | 右向き矢印と短い左向き矢印 rightwards arrow above short leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
⥃ | ⥃ | 左向き矢印と短い右向き矢印 leftwards arrow above short rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
⥄ | ⥄ | 短い右向き矢印と左向き矢印 short rightwards arrow above leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
⥅ | ⥅ | 下にプラスの付いた右向き矢印 rightwards arrow with plus below |
infix | 340 | 5 | 5 | stretchy |
⥆ | ⥆ | 下にプラスの付いた左向き矢印 leftwards arrow with plus below |
infix | 340 | 5 | 5 | stretchy |
⥇ | ⥇ | xを貫いた右向き矢印 rightwards arrow through x |
infix | 340 | 5 | 5 | stretchy |
⥈ | ⥈ | 小さい円を貫いた左右両方を向いた矢印 left right arrow through small circle |
infix | 340 | 5 | 5 | stretchy |
⥉ | ⥉ | 小さい丸から伸びる上向きの先端が2つある矢印 upwards two-headed arrow from small circle |
infix | 340 | 5 | 5 | stretchy |
⥊ | ⥊ | 左側の先端が上半分で右側の先端が下半分の両方を向いた矢印 left barb up right barb down harpoon |
infix | 340 | 5 | 5 | stretchy |
⥋ | ⥋ | 左側の先端が下半分で右側の先端が上半分の両方を向いた矢印 left barb down right barb up harpoon |
infix | 340 | 5 | 5 | stretchy |
⥌ | ⥌ | 上側の先端が右半分で下側の先端が左半分の両方を向いた矢印 up barb right down barb left harpoon |
infix | 340 | 5 | 5 | stretchy |
⥍ | ⥍ | 上側の先端が左半分で下側の先端が右半分の両方を向いた矢印 up barb left down barb right harpoon |
infix | 340 | 5 | 5 | stretchy |
⥎ | ⥎ | 左側の先端が上半分で右側の先端が上半分の両方を向いた矢印 left barb up right barb up harpoon |
infix | 340 | 5 | 5 | stretchy |
⥏ | ⥏ | 上側の先端が右半分で下側の先端が右半分の両方を向いた矢印 up barb right down barb right harpoon |
infix | 340 | 5 | 5 | stretchy |
⥐ | ⥐ | 左側の先端が下半分で右側の先端が下半分の両方を向いた矢印 left barb down right barb down harpoon |
infix | 340 | 5 | 5 | stretchy |
⥑ | ⥑ | 上側の先端が左半分で下側の先端が左半分の両方を向いた矢印 up barb left down barb left harpoon |
infix | 340 | 5 | 5 | stretchy |
⥒ | ⥒ | 縦線に向かう先端が上半分の左向き矢印 leftwards harpoon with barb up to bar |
infix | 340 | 5 | 5 | stretchy |
⥓ | ⥓ | 縦線に向かう先端が上半分の右向き矢印 rightwards harpoon with barb up to bar |
infix | 340 | 5 | 5 | stretchy |
⥔ | ⥔ | 横線に向かう先端が右半分の上向き矢印 upwards harpoon with barb right to bar |
infix | 340 | 5 | 5 | stretchy |
⥕ | ⥕ | 横線に向かう先端が右半分の下向き矢印 downwards harpoon with barb right to bar |
infix | 340 | 5 | 5 | stretchy |
⥖ | ⥖ | 縦線に向かう先端が下半分の左向き矢印 leftwards harpoon with barb down to bar |
infix | 340 | 5 | 5 | stretchy |
⥗ | ⥗ | 縦線に向かう先端が下半分の右向き矢印 rightwards harpoon with barb down to bar |
infix | 340 | 5 | 5 | stretchy |
⥘ | ⥘ | 横線に向かう先端が左半分の上向き矢印 upwards harpoon with barb left to bar |
infix | 340 | 5 | 5 | stretchy |
⥙ | ⥙ | 横線に向かう先端が左半分の下向き矢印 downwards harpoon with barb left to bar |
infix | 340 | 5 | 5 | stretchy |
⥚ | ⥚ | 縦線から伸びる先端が上半分の左向き矢印 leftwards harpoon with barb up from bar |
infix | 340 | 5 | 5 | stretchy |
⥛ | ⥛ | 縦線から伸びる先端が上半分の右向き矢印 rightwards harpoon with barb up from bar |
infix | 340 | 5 | 5 | stretchy |
⥜ | ⥜ | 横線から伸びる先端が右半分の上向き矢印 upwards harpoon with barb right from bar |
infix | 340 | 5 | 5 | stretchy |
⥝ | ⥝ | 横線から伸びる先端が右半分の下向き矢印 downwards harpoon with barb right from bar |
infix | 340 | 5 | 5 | stretchy |
⥞ | ⥞ | 縦線から伸びる先端が下半分の左向き矢印 leftwards harpoon with barb down from bar |
infix | 340 | 5 | 5 | stretchy |
⥟ | ⥟ | 縦線から伸びる先端が下半分の右向き矢印 rightwards harpoon with barb down from bar |
infix | 340 | 5 | 5 | stretchy |
⥠ | ⥠ | 横線から伸びる先端が左半分の上向き矢印 upwards harpoon with barb left from bar |
infix | 340 | 5 | 5 | stretchy |
⥡ | ⥡ | 横線から伸びる先端が左半分の下向き矢印 downwards harpoon with barb left from bar |
infix | 340 | 5 | 5 | stretchy |
⥢ | ⥢ | 先端が上半分の左向き矢印とその下の先端が下半分の左向き矢印 leftwards harpoon with barb up above leftwards harpoon with barb down |
infix | 340 | 5 | 5 | stretchy |
⥣ | ⥣ | 先端が左半分の上向き矢印とその横の先端が右半分の上向き矢印 upwards harpoon with barb left beside upwards harpoon with barb right |
infix | 340 | 5 | 5 | stretchy |
⥤ | ⥤ | 先端が上半分の右向き矢印とその下の先端が下半分の右向き矢印 rightwards harpoon with barb up above rightwards harpoon with barb down |
infix | 340 | 5 | 5 | stretchy |
⥥ | ⥥ | 先端が左半分の下向き矢印とその横の先端が右半分の下向き矢印 downwards harpoon with barb left beside downwards harpoon with barb right |
infix | 340 | 5 | 5 | stretchy |
⥦ | ⥦ | 先端が上半分の左向き矢印とその下の先端が上半分の右向き矢印 leftwards harpoon with barb up above rightwards harpoon with barb up |
infix | 340 | 5 | 5 | stretchy |
⥧ | ⥧ | 先端が下半分の左向き矢印とその下の先端が下半分の右向き矢印 leftwards harpoon with barb down above rightwards harpoon with barb down |
infix | 340 | 5 | 5 | stretchy |
⥨ | ⥨ | 先端が上半分の右向き矢印とその下の先端が上半分の左向き矢印 rightwards harpoon with barb up above leftwards harpoon with barb up |
infix | 340 | 5 | 5 | stretchy |
⥩ | ⥩ | 先端が下半分の右向き矢印とその下の先端が下半分の左向き矢印 rightwards harpoon with barb down above leftwards harpoon with barb down |
infix | 340 | 5 | 5 | stretchy |
⥪ | ⥪ | 長いダッシュの上の先端が上半分の左向き矢印 leftwards harpoon with barb up above long dash |
infix | 340 | 5 | 5 | stretchy |
⥫ | ⥫ | 長いダッシュの下の先端が下半分の左向き矢印 leftwards harpoon with barb down below long dash |
infix | 340 | 5 | 5 | stretchy |
⥬ | ⥬ | 長いダッシュの上の先端が上半分の右向き矢印 rightwards harpoon with barb up above long dash |
infix | 340 | 5 | 5 | stretchy |
⥭ | ⥭ | 長いダッシュの下の先端が下半分の右向き矢印 rightwards harpoon with barb down below long dash |
infix | 340 | 5 | 5 | stretchy |
⥮ | ⥮ | 先端が左半分の上向き矢印とその横の先端が右半分の下向き矢印 upwards harpoon with barb left beside downwards harpoon with barb right |
infix | 340 | 5 | 5 | stretchy |
⥯ | ⥯ | 先端が左半分の下向き矢印とその横の先端が右半分の上向き矢印 downwards harpoon with barb left beside upwards harpoon with barb right |
infix | 340 | 5 | 5 | stretchy |
⥰ | ⥰ | 丸まった先端を持つ右向き二重線矢印 right double arrow with rounded head |
infix | 340 | 5 | 5 | stretchy |
⥱ | ⥱ | 等号の下の右向き矢印 equals sign above rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
⥲ | ⥲ | チルダ演算子の下の右向き矢印 tilde operator above rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
⥳ | ⥳ | チルダ演算子の上の左向き矢印 leftwards arrow above tilde operator |
infix | 340 | 5 | 5 | stretchy |
⥴ | ⥴ | チルダ演算子の上の右向き矢印 rightwards arrow above tilde operator |
infix | 340 | 5 | 5 | stretchy |
⥵ | ⥵ | ほぼ等しい記号の上の右向き矢印 rightwards arrow above almost equal to |
infix | 340 | 5 | 5 | stretchy |
⥼ | ⥼ | 左向きの魚の尾の形 left fish tail |
infix | 340 | 5 | 5 | stretchy |
⥽ | ⥽ | 右向きの魚の尾の形 right fish tail |
infix | 340 | 5 | 5 | stretchy |
⥾ | ⥾ | 上向きの魚の尾の形 up fish tail |
infix | 340 | 5 | 5 | stretchy |
⥿ | ⥿ | 下向きの魚の尾の形 down fish tail |
infix | 340 | 5 | 5 | stretchy |
⧟ | ⧟ | 両端の多重写像 double-ended multimap |
infix | 340 | 5 | 5 | |
⬀ | ⬀ | 北東向き白い矢印 north east white arrow |
infix | 340 | 5 | 5 | |
⬁ | ⬁ | 北西向き白い矢印 north west white arrow |
infix | 340 | 5 | 5 | |
⬂ | ⬂ | 南東向き白い矢印 south east white arrow |
infix | 340 | 5 | 5 | |
⬃ | ⬃ | 南西向き白い矢印 south west white arrow |
infix | 340 | 5 | 5 | |
⬄ | ⬄ | 左右両方を向いた白い矢印 left right white arrow |
infix | 340 | 5 | 5 | stretchy |
⬅ | ⬅ | 左向き黒い矢印 leftwards black arrow |
infix | 340 | 5 | 5 | stretchy |
⬆ | ⬆ | 上向き黒い矢印 upwards black arrow |
infix | 340 | 5 | 5 | stretchy |
⬇ | ⬇ | 下向き黒い矢印 downwards black arrow |
infix | 340 | 5 | 5 | stretchy |
⬈ | ⬈ | 北東向き黒い矢印 north east black arrow |
infix | 340 | 5 | 5 | |
⬉ | ⬉ | 北西向き黒い矢印 north west black arrow |
infix | 340 | 5 | 5 | |
⬊ | ⬊ | 南東向き黒い矢印 south east black arrow |
infix | 340 | 5 | 5 | |
⬋ | ⬋ | 南西向き黒い矢印 south west black arrow |
infix | 340 | 5 | 5 | |
⬌ | ⬌ | 左右両方を向いた黒い矢印 left right black arrow |
infix | 340 | 5 | 5 | stretchy |
⬍ | ⬍ | 上下両方を向いた黒い矢印 up down black arrow |
infix | 340 | 5 | 5 | stretchy |
⬎ | ⬎ | 下向きの先端の付いた右向き矢印 rightwards arrow with tip downwards |
infix | 340 | 5 | 5 | stretchy |
⬏ | ⬏ | 上向きの先端の付いた右向き矢印 rightwards arrow with tip upwards |
infix | 340 | 5 | 5 | stretchy |
⬐ | ⬐ | 下向きの先端の付いた左向き矢印 leftwards arrow with tip downwards |
infix | 340 | 5 | 5 | stretchy |
⬑ | ⬑ | 上向きの先端の付いた左向き矢印 leftwards arrow with tip upwards |
infix | 340 | 5 | 5 | stretchy |
⬰ | ⬰ | 小さい円の付いた左向き矢印 left arrow with small circle |
infix | 340 | 5 | 5 | stretchy |
⬱ | ⬱ | 3つの右向き矢印 three leftwards arrows |
infix | 340 | 5 | 5 | stretchy |
⬲ | ⬲ | 円で囲まれたプラス付き左向き矢印 left arrow with circled plus |
infix | 340 | 5 | 5 | stretchy |
⬳ | ⬳ | 長い左向きのくねった矢印 long leftwards squiggle arrow |
infix | 340 | 5 | 5 | stretchy |
⬴ | ⬴ | 縦線付き左向きの先端が2つある矢印 leftwards two-headed arrow with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⬵ | ⬵ | 二重の縦線付き左向きの先端が2つある矢印 leftwards two-headed arrow with double vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⬶ | ⬶ | 縦線から伸びる左向きの先端が2つある矢印 leftwards two-headed arrow from bar |
infix | 340 | 5 | 5 | stretchy |
⬷ | ⬷ | 先端が2つある三重ダッシュの左向き矢印 leftwards two-headed triple dash arrow |
infix | 340 | 5 | 5 | stretchy |
⬸ | ⬸ | 点線の左向き矢印 leftwards arrow with dotted stem |
infix | 340 | 5 | 5 | stretchy |
⬹ | ⬹ | 縦線付き尾付き左向き矢印 leftwards arrow with tail with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⬺ | ⬺ | 二重の縦線付き尾付き左向き矢印 leftwards arrow with tail with double vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⬻ | ⬻ | 尾付き先端が2つある左向き矢印 leftwards two-headed arrow with tail |
infix | 340 | 5 | 5 | stretchy |
⬼ | ⬼ | 縦線付き尾付き先端が2つある左向き矢印 leftwards two-headed arrow with tail with vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⬽ | ⬽ | 二重の縦線付き尾付き先端が2つある左向き矢印 leftwards two-headed arrow with tail with double vertical stroke |
infix | 340 | 5 | 5 | stretchy |
⬾ | ⬾ | xを貫いた左向き矢印 leftwards arrow through x |
infix | 340 | 5 | 5 | stretchy |
⬿ | ⬿ | 直接左を指す波線矢印 wave arrow pointing directly left |
infix | 340 | 5 | 5 | |
⭀ | ⭀ | 等号の下の左向き矢印 equals sign above leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
⭁ | ⭁ | 反転したチルダ演算子の下の左向き矢印 reverse tilde operator above leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
⭂ | ⭂ | 反転したほぼ等しい記号の上の左向き矢印 leftwards arrow above reverse almost equal to |
infix | 340 | 5 | 5 | stretchy |
⭃ | ⭃ | 大なりを貫いた右向き矢印 rightwards arrow through greater-than |
infix | 340 | 5 | 5 | stretchy |
⭄ | ⭄ | 含むを貫いた右向き矢印 rightwards arrow through superset |
infix | 340 | 5 | 5 | stretchy |
⭅ | ⭅ | 左向き四重線矢印 leftwards quadruple arrow |
infix | 340 | 5 | 5 | stretchy |
⭆ | ⭆ | 右向き四重線矢印 rightwards quadruple arrow |
infix | 340 | 5 | 5 | stretchy |
⭇ | ⭇ | 反転したチルダ演算子の下の右向き矢印 reverse tilde operator above rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
⭈ | ⭈ | 反転したほぼ等しい記号の上の右向き矢印 rightwards arrow above reverse almost equal to |
infix | 340 | 5 | 5 | stretchy |
⭉ | ⭉ | チルダ演算子の下の左向き矢印 tilde operator above leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
⭊ | ⭊ | ほぼ等しい記号の上の左向き矢印 leftwards arrow above almost equal to |
infix | 340 | 5 | 5 | stretchy |
⭋ | ⭋ | 反転したチルダ演算子の上の左向き矢印 leftwards arrow above reverse tilde operator |
infix | 340 | 5 | 5 | stretchy |
⭌ | ⭌ | 反転したチルダ演算子の上の右向き矢印 rightwards arrow above reverse tilde operator |
infix | 340 | 5 | 5 | stretchy |
⭍ | ⭍ | 先端が三角の下向きジグザグ矢印 downwards triangle-headed zigzag arrow |
infix | 340 | 5 | 5 | |
⭎ | ⭎ | 短い傾いた北向き矢印 short slanted north arrow |
infix | 340 | 5 | 5 | |
⭏ | ⭏ | 短い傾いた南向き矢印 short backslanted south arrow |
infix | 340 | 5 | 5 | |
⭚ | ⭚ | 鍵型の先端の付いた傾いた北向き矢印 slanted north arrow with hooked head |
infix | 340 | 5 | 5 | |
⭛ | ⭛ | 鍵型の尾の付いた傾いた南向き矢印 backslanted south arrow with hooked tail |
infix | 340 | 5 | 5 | |
⭜ | ⭜ | 水平の尾の付いた傾いた北向き矢印 slanted north arrow with horizontal tail |
infix | 340 | 5 | 5 | |
⭝ | ⭝ | 水平の尾の付いた傾いた南向き矢印 backslanted south arrow with horizontal tail |
infix | 340 | 5 | 5 | |
⭞ | ⭞ | 下向きから北東向きに折れた矢印 bent arrow pointing downwards then north east |
infix | 340 | 5 | 5 | |
⭟ | ⭟ | 短い下向きから北東向きに折れた矢印 short bent arrow pointing downwards then north east |
infix | 340 | 5 | 5 | |
⭠ | ⭠ | 先端が三角の左向き矢印 leftwards triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⭡ | ⭡ | 先端が三角の上向き矢印 upwards triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⭢ | ⭢ | 先端が三角の右向き矢印 rightwards triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⭣ | ⭣ | 先端が三角の下向き矢印 downwards triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⭤ | ⭤ | 左右両方を向いた先端が三角の矢印 left right triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⭥ | ⭥ | 上下両方を向いた先端が三角の矢印 up down triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⭦ | ⭦ | 先端が三角の北西向き矢印 north west triangle-headed arrow |
infix | 340 | 5 | 5 | |
⭧ | ⭧ | 先端が三角の北東向き矢印 north east triangle-headed arrow |
infix | 340 | 5 | 5 | |
⭨ | ⭨ | 先端が三角の南東向き矢印 south east triangle-headed arrow |
infix | 340 | 5 | 5 | |
⭩ | ⭩ | 先端が三角の南西向き矢印 south west triangle-headed arrow |
infix | 340 | 5 | 5 | |
⭪ | ⭪ | 先端が三角で破線の左向き矢印 leftwards triangle-headed dashed arrow |
infix | 340 | 5 | 5 | stretchy |
⭫ | ⭫ | 先端が三角で破線の上向き矢印 upwards triangle-headed dashed arrow |
infix | 340 | 5 | 5 | stretchy |
⭬ | ⭬ | 先端が三角で破線の右向き矢印 rightwards triangle-headed dashed arrow |
infix | 340 | 5 | 5 | stretchy |
⭭ | ⭭ | 先端が三角で破線の下向き矢印 downwards triangle-headed dashed arrow |
infix | 340 | 5 | 5 | stretchy |
⭮ | ⭮ | 時計周りの先端が三角で中の空いた円形の矢印 clockwise triangle-headed open circle arrow |
infix | 340 | 5 | 5 | |
⭯ | ⭯ | 反時計周りの先端が三角で中の空いた円形の矢印 anticlockwise triangle-headed open circle arrow |
infix | 340 | 5 | 5 | |
⭰ | ⭰ | 縦線に向かう先端が三角の左向き矢印 leftwards triangle-headed arrow to bar |
infix | 340 | 5 | 5 | stretchy |
⭱ | ⭱ | 横線に向かう先端が三角の上向き矢印 upwards triangle-headed arrow to bar |
infix | 340 | 5 | 5 | stretchy |
⭲ | ⭲ | 縦線に向かう先端が三角の右向き矢印 rightwards triangle-headed arrow to bar |
infix | 340 | 5 | 5 | stretchy |
⭳ | ⭳ | 横線に向かう先端が三角の下向き矢印 downwards triangle-headed arrow to bar |
infix | 340 | 5 | 5 | stretchy |
⭶ | ⭶ | 横線に向かう先端が三角の北西向き矢印 north west triangle-headed arrow to bar |
infix | 340 | 5 | 5 | |
⭷ | ⭷ | 横線に向かう先端が三角の北東向き矢印 north east triangle-headed arrow to bar |
infix | 340 | 5 | 5 | |
⭸ | ⭸ | 横線に向かう先端が三角の南東向き矢印 south east triangle-headed arrow to bar |
infix | 340 | 5 | 5 | |
⭹ | ⭹ | 横線に向かう先端が三角の南西向き矢印 south west triangle-headed arrow to bar |
infix | 340 | 5 | 5 | |
⭺ | ⭺ | 二重の縦線付き先端が三角の左向き矢印 leftwards triangle-headed arrow with double horizontal stroke |
infix | 340 | 5 | 5 | stretchy |
⭻ | ⭻ | 二重の水平線付き先端が三角の上向き矢印 upwards triangle-headed arrow with double horizontal stroke |
infix | 340 | 5 | 5 | stretchy |
⭼ | ⭼ | 二重の縦線付き先端が三角の右向き矢印 rightwards triangle-headed arrow with double horizontal stroke |
infix | 340 | 5 | 5 | stretchy |
⭽ | ⭽ | 二重の水平線付き先端が三角の下向き矢印 downwards triangle-headed arrow with double horizontal stroke |
infix | 340 | 5 | 5 | stretchy |
⮀ | ⮀ | 先端が三角の左向き矢印とその下の先端が三角の右向き矢印 leftwards triangle-headed arrow over rightwards triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⮁ | ⮁ | 先端が三角の上向き矢印とその右側の先端が三角の下向き矢印 upwards triangle-headed arrow leftwards of downwards triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⮂ | ⮂ | 先端が三角の右向き矢印とその下の先端が三角の左向き矢印 rightwards triangle-headed arrow over leftwards triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⮃ | ⮃ | 先端が三角の下向き矢印とその右側の先端が三角の上向き矢印 downwards triangle-headed arrow leftwards of upwards triangle-headed arrow |
infix | 340 | 5 | 5 | stretchy |
⮄ | ⮄ | 先端が三角で対になった左向き矢印 leftwards triangle-headed paired arrows |
infix | 340 | 5 | 5 | stretchy |
⮅ | ⮅ | 先端が三角で対になった上向き矢印 upwards triangle-headed paired arrows |
infix | 340 | 5 | 5 | stretchy |
⮆ | ⮆ | 先端が三角で対になった右向き矢印 rightwards triangle-headed paired arrows |
infix | 340 | 5 | 5 | stretchy |
⮇ | ⮇ | 先端が三角で対になった下向き矢印 downwards triangle-headed paired arrows |
infix | 340 | 5 | 5 | stretchy |
⮈ | ⮈ | 黒い円で囲まれた白い左向き矢印 leftwards black circled white arrow |
infix | 340 | 5 | 5 | |
⮉ | ⮉ | 黒い円で囲まれた白い上向き矢印 upwards black circled white arrow |
infix | 340 | 5 | 5 | |
⮊ | ⮊ | 黒い円で囲まれた白い右向き矢印 rightwards black circled white arrow |
infix | 340 | 5 | 5 | |
⮋ | ⮋ | 黒い円で囲まれた白い下向き矢印 downwards black circled white arrow |
infix | 340 | 5 | 5 | |
⮌ | ⮌ | 反時計回りで先端が三角の底が右側のU字型矢印 anticlockwise triangle-headed right u-shaped arrow |
infix | 340 | 5 | 5 | |
⮍ | ⮍ | 反時計回りで先端が三角の底が下側のU字型矢印 anticlockwise triangle-headed bottom u-shaped arrow |
infix | 340 | 5 | 5 | |
⮎ | ⮎ | 反時計回りで先端が三角の底が左側のU字型矢印 anticlockwise triangle-headed left u-shaped arrow |
infix | 340 | 5 | 5 | |
⮏ | ⮏ | 反時計回りで先端が三角の底が上側のU字型矢印 anticlockwise triangle-headed top u-shaped arrow |
infix | 340 | 5 | 5 | |
⮔ | ⮔ | 半時計回りに一巡する四つ角の矢印 four corner arrows circling anticlockwise |
infix | 340 | 5 | 5 | |
⮕ | ⮕ | 右向き黒い矢印 rightwards black arrow |
infix | 340 | 5 | 5 | stretchy |
⮠ | ⮠ | 頭が三角で長い左向きの先端が付いた下向き矢印 downwards triangle-headed arrow with long tip leftwards |
infix | 340 | 5 | 5 | stretchy |
⮡ | ⮡ | 頭が三角で長い右向きの先端が付いた下向き矢印 downwards triangle-headed arrow with long tip rightwards |
infix | 340 | 5 | 5 | stretchy |
⮢ | ⮢ | 頭が三角で長い左向きの先端が付いた上向き矢印 upwards triangle-headed arrow with long tip leftwards |
infix | 340 | 5 | 5 | stretchy |
⮣ | ⮣ | 頭が三角で長い右向きの先端が付いた上向き矢印 upwards triangle-headed arrow with long tip rightwards |
infix | 340 | 5 | 5 | stretchy |
⮤ | ⮤ | 頭が三角で長い上向きの先端が付いた左向き矢印 leftwards triangle-headed arrow with long tip upwards |
infix | 340 | 5 | 5 | stretchy |
⮥ | ⮥ | 頭が三角で長い上向きの先端が付いた右向き矢印 rightwards triangle-headed arrow with long tip upwards |
infix | 340 | 5 | 5 | stretchy |
⮦ | ⮦ | 頭が三角で長い下向きの先端が付いた左向き矢印 leftwards triangle-headed arrow with long tip downwards |
infix | 340 | 5 | 5 | stretchy |
⮧ | ⮧ | 頭が三角で長い下向きの先端が付いた右向き矢印 rightwards triangle-headed arrow with long tip downwards |
infix | 340 | 5 | 5 | stretchy |
⮨ | ⮨ | 黒い上から曲がって左に向かう矢印 black curved downwards and leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
⮩ | ⮩ | 黒い上から曲がって右に向かう矢印 black curved downwards and rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
⮪ | ⮪ | 黒い下から曲がって左に向かう矢印 black curved upwards and leftwards arrow |
infix | 340 | 5 | 5 | stretchy |
⮫ | ⮫ | 黒い下から曲がって右に向かう矢印 black curved upwards and rightwards arrow |
infix | 340 | 5 | 5 | stretchy |
⮬ | ⮬ | 黒い右から曲がって上に向かう矢印 black curved leftwards and upwards arrow |
infix | 340 | 5 | 5 | stretchy |
⮭ | ⮭ | 黒い左から曲がって上に向かう矢印 black curved rightwards and upwards arrow |
infix | 340 | 5 | 5 | stretchy |
⮮ | ⮮ | 黒い右から曲がって下に向かう矢印 black curved leftwards and downwards arrow |
infix | 340 | 5 | 5 | stretchy |
⮯ | ⮯ | 黒い左から曲がって下に向かう矢印 black curved rightwards and downwards arrow |
infix | 340 | 5 | 5 | stretchy |
⮰ | ⮰ | 上から左に向かうリボン矢印 ribbon arrow down left |
infix | 340 | 5 | 5 | |
⮱ | ⮱ | 上から右に向かうリボン矢印 ribbon arrow down right |
infix | 340 | 5 | 5 | |
⮲ | ⮲ | 下から左に向かうリボン矢印 ribbon arrow up left |
infix | 340 | 5 | 5 | |
⮳ | ⮳ | 下から右に向かうリボン矢印 ribbon arrow up right |
infix | 340 | 5 | 5 | |
⮴ | ⮴ | 右から上に向かうリボン矢印 ribbon arrow left up |
infix | 340 | 5 | 5 | |
⮵ | ⮵ | 左から上に向かうリボン矢印 ribbon arrow right up |
infix | 340 | 5 | 5 | |
⮶ | ⮶ | 右から下に向かうリボン矢印 ribbon arrow left down |
infix | 340 | 5 | 5 | |
⮷ | ⮷ | 左から下に向かうリボン矢印 ribbon arrow right down |
infix | 340 | 5 | 5 | |
⮸ | ⮸ | 横線から伸びる水平線付き上向き白い矢印 upwards white arrow from bar with horizontal bar |
infix | 340 | 5 | 5 | stretchy |
∪ | ∪ | 集合和 union |
infix | 360 | 4 | 4 | |
⊌ | ⊌ | 多重集合 multiset |
infix | 360 | 4 | 4 | |
⊍ | ⊍ | 多重集合の乗算 multiset multiplication |
infix | 360 | 4 | 4 | |
⊎ | ⊎ | 多重集合の集合和 multiset union |
infix | 360 | 4 | 4 | |
⊔ | ⊔ | 四角い「カップ」記号 square cup |
infix | 360 | 4 | 4 | |
⋓ | ⋓ | 二重の集合和 double union |
infix | 360 | 4 | 4 | |
⩁ | ⩁ | マイナス記号付き集合和 union with minus sign |
infix | 360 | 4 | 4 | |
⩂ | ⩂ | 上線付き集合和 union with overbar |
infix | 360 | 4 | 4 | |
⩅ | ⩅ | 論理和付き集合和 union with logical or |
infix | 360 | 4 | 4 | |
⩊ | ⩊ | 横の集合和とつながった集合和 union beside and joined with union |
infix | 360 | 4 | 4 | |
⩌ | ⩌ | セリフ付き閉じた集合和 closed union with serifs |
infix | 360 | 4 | 4 | |
⩏ | ⩏ | 二重の四角い集合和 double square union |
infix | 360 | 4 | 4 | |
∩ | ∩ | 集合積 intersection |
infix | 380 | 4 | 4 | |
⊓ | ⊓ | 四角い「キャップ」記号 square cap |
infix | 380 | 4 | 4 | |
⋒ | ⋒ | 二重の集合積 double intersection |
infix | 380 | 4 | 4 | |
⨟ | ⨟ | z表記のシーケンシャル合成 z notation schema composition |
infix | 380 | 4 | 4 | |
⨠ | ⨠ | z表記のパイピング z notation schema piping |
infix | 380 | 4 | 4 | |
⨡ | ⨡ | z表記のスキーマ・プロジェクション z notation schema projection |
infix | 380 | 4 | 4 | |
⨾ | ⨾ | z表記の関係合成 z notation relational composition |
infix | 380 | 4 | 4 | |
⩀ | ⩀ | 点付き集合積 intersection with dot |
infix | 380 | 4 | 4 | |
⩃ | ⩃ | 上線付き集合積 intersection with overbar |
infix | 380 | 4 | 4 | |
⩄ | ⩄ | 論理積付き集合積 intersection with logical and |
infix | 380 | 4 | 4 | |
⩆ | ⩆ | 集合和と集合積 union above intersection |
infix | 380 | 4 | 4 | |
⩇ | ⩇ | 集合積と集合和 intersection above union |
infix | 380 | 4 | 4 | |
⩈ | ⩈ | 集合和と横線と集合積 union above bar above intersection |
infix | 380 | 4 | 4 | |
⩉ | ⩉ | 集合積と横線と集合和 intersection above bar above union |
infix | 380 | 4 | 4 | |
⩋ | ⩋ | 横の集合積とつながった集合積 intersection beside and joined with intersection |
infix | 380 | 4 | 4 | |
⩍ | ⩍ | セリフ付き閉じた集合積 closed intersection with serifs |
infix | 380 | 4 | 4 | |
⩎ | ⩎ | 二重の四角い集合積 double square intersection |
infix | 380 | 4 | 4 | |
⫛ | ⫛ | 線が貫いた集合積 transversal intersection |
infix | 380 | 4 | 4 | |
+ | + | プラス記号 plus sign |
infix | 400 | 4 | 4 | |
- | - | ハイフンマイナス hyphen-minus |
infix | 400 | 4 | 4 | |
± | ± | プラスマイナス記号 plus-minus sign |
infix | 400 | 4 | 4 | |
− | − | マイナス記号 minus sign |
infix | 400 | 4 | 4 | |
∓ | ∓ | マイナスプラス記号 minus-or-plus sign |
infix | 400 | 4 | 4 | |
∔ | ∔ | 点とプラス dot plus |
infix | 400 | 4 | 4 | |
∖ | ∖ | 集合の差 set minus |
infix | 400 | 4 | 4 | |
∨ | ∨ | 論理和 logical or |
infix | 400 | 4 | 4 | |
∸ | ∸ | 点とマイナス dot minus |
infix | 400 | 4 | 4 | |
⊕ | ⊕ | 円で囲まれたプラス circled plus |
infix | 400 | 4 | 4 | |
⊖ | ⊖ | 円で囲まれたマイナス circled minus |
infix | 400 | 4 | 4 | |
⊝ | ⊝ | 円で囲まれたダッシュ circled dash |
infix | 400 | 4 | 4 | |
⊞ | ⊞ | 四角で囲まれたプラス squared plus |
infix | 400 | 4 | 4 | |
⊟ | ⊟ | 四角で囲まれたマイナス squared minus |
infix | 400 | 4 | 4 | |
⊽ | ⊽ | 否定論理和 nor |
infix | 400 | 4 | 4 | |
⋎ | ⋎ | 縮れた論理和 curly logical or |
infix | 400 | 4 | 4 | |
➕ | ➕ | 重厚感のあるプラス記号 heavy plus sign |
infix | 400 | 4 | 4 | |
➖ | ➖ | 重厚感のあるマイナス記号 heavy minus sign |
infix | 400 | 4 | 4 | |
⦸ | ⦸ | 円で囲まれた逆の斜線 circled reverse solidus |
infix | 400 | 4 | 4 | |
⧅ | ⧅ | 四角で囲まれた右下がりの対角線 squared falling diagonal slash |
infix | 400 | 4 | 4 | |
⧵ | ⧵ | 逆の斜線演算子 reverse solidus operator |
infix | 400 | 4 | 4 | |
⧷ | ⧷ | 水平線付き逆の斜線 reverse solidus with horizontal stroke |
infix | 400 | 4 | 4 | |
⧹ | ⧹ | 大きい逆の斜線 big reverse solidus |
infix | 400 | 4 | 4 | |
⧺ | ⧺ | 二重のプラス double plus |
infix | 400 | 4 | 4 | |
⧻ | ⧻ | 三重のプラス triple plus |
infix | 400 | 4 | 4 | |
⨢ | ⨢ | 上の小さい円付きプラス記号 plus sign with small circle above |
infix | 400 | 4 | 4 | |
⨣ | ⨣ | 上のサーカムフレックスアクセント付きプラス記号 plus sign with circumflex accent above |
infix | 400 | 4 | 4 | |
⨤ | ⨤ | 上のチルダ付きプラス記号 plus sign with tilde above |
infix | 400 | 4 | 4 | |
⨥ | ⨥ | 下点付きプラス記号 plus sign with dot below |
infix | 400 | 4 | 4 | |
⨦ | ⨦ | 下のチルダ付きプラス記号 plus sign with tilde below |
infix | 400 | 4 | 4 | |
⨧ | ⨧ | 下付き2付きプラス記 plus sign with subscript two |
infix | 400 | 4 | 4 | |
⨨ | ⨨ | 黒い三角付きプラス記号 plus sign with black triangle |
infix | 400 | 4 | 4 | |
⨩ | ⨩ | 上にコンマの付いたマイナス記号 minus sign with comma above |
infix | 400 | 4 | 4 | |
⨪ | ⨪ | 下点付きマイナス記号 minus sign with dot below |
infix | 400 | 4 | 4 | |
⨫ | ⨫ | 右下がりの点々付きマイナス記号 minus sign with falling dots |
infix | 400 | 4 | 4 | |
⨬ | ⨬ | 右上がりの点々付きマイナス記号 minus sign with rising dots |
infix | 400 | 4 | 4 | |
⨭ | ⨭ | 左半円の中のプラス記号 plus sign in left half circle |
infix | 400 | 4 | 4 | |
⨮ | ⨮ | 右半円の中のプラス記号 plus sign in right half circle |
infix | 400 | 4 | 4 | |
⨹ | ⨹ | 三角の中のプラス記号 plus sign in triangle |
infix | 400 | 4 | 4 | |
⨺ | ⨺ | 三角の中のマイナス記号 minus sign in triangle |
infix | 400 | 4 | 4 | |
⩒ | ⩒ | 上点付き論理和 logical or with dot above |
infix | 400 | 4 | 4 | |
⩔ | ⩔ | 二重の論理和 double logical or |
infix | 400 | 4 | 4 | |
⩖ | ⩖ | 2つの重なった論理和 two intersecting logical or |
infix | 400 | 4 | 4 | |
⩗ | ⩗ | 斜めになった大きな論理和 sloping large or |
infix | 400 | 4 | 4 | |
⩛ | ⩛ | 中心線付き論理和 logical or with middle stem |
infix | 400 | 4 | 4 | |
⩝ | ⩝ | 水平線付き論理和 logical or with horizontal dash |
infix | 400 | 4 | 4 | |
⩡ | ⩡ | 下線付き小文字のヴイ small vee with underbar |
infix | 400 | 4 | 4 | |
⩢ | ⩢ | 二重の上線付き論理和 logical or with double overbar |
infix | 400 | 4 | 4 | |
⩣ | ⩣ | 二重の下線付き論理和 logical or with double underbar |
infix | 400 | 4 | 4 | |
⊻ | ⊻ | 排他的論理和 xor |
infix | 420 | 4 | 4 | |
∑ | ∑ | 配列用の和 n-ary summation |
prefix | 440 | 3 | 3 | largeop, movablelimits, symmetric |
⨊ | ⨊ | モジュロ2加算 modulo two sum |
prefix | 440 | 3 | 3 | largeop, movablelimits, symmetric |
⨋ | ⨋ | 積分付き和 summation with integral |
prefix | 440 | 3 | 3 | largeop, symmetric |
⨝ | ⨝ | 結合 join |
prefix | 440 | 3 | 3 | largeop, movablelimits, symmetric |
⨞ | ⨞ | 大きい左三角演算子 large left triangle operator |
prefix | 440 | 3 | 3 | largeop, movablelimits, symmetric |
⨁ | ⨁ | 配列用の円で囲まれたプラス演算子 n-ary circled plus operator |
prefix | 460 | 3 | 3 | largeop, movablelimits, symmetric |
∫ | ∫ | 積分 integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
∬ | ∬ | 二重積分 double integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
∭ | ∭ | 三重積分 triple integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
∮ | ∮ | 線積分 contour integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
∯ | ∯ | 面積分 surface integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
∰ | ∰ | 体積分 volume integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
∱ | ∱ | 時計周りの積分 clockwise integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
∲ | ∲ | 時計周りの線積分 clockwise contour integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
∳ | ∳ | 反時計周りの線積分 anticlockwise contour integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨌ | ⨌ | 四重積分演算子 quadruple integral operator |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨍ | ⨍ | 有限部分積分 finite part integral |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨎ | ⨎ | 二重の横線付き積分 integral with double stroke |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨏ | ⨏ | 斜線付き積分平均 integral average with slash |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨐ | ⨐ | 循環積分 circulation function |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨑ | ⨑ | 反時計周りの積分法 anticlockwise integration |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨒ | ⨒ | 極の周りを四角く結ぶ線積分 line integration with rectangular path around pole |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨓ | ⨓ | 極の周りを半円に結ぶ線積分 line integration with semicircular path around pole |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨔ | ⨔ | 極を含まない線積分法 line integration not including the pole |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨕ | ⨕ | 点演算子の周りの積分 integral around a point operator |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨖ | ⨖ | 四元数積分演算子 quaternion integral operator |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨗ | ⨗ | フック付き左向き矢印の付いた積分 integral with leftwards arrow with hook |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨘ | ⨘ | 掛ける記号付き積分 integral with times sign |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨙ | ⨙ | 集合積付き積分 integral with intersection |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨚ | ⨚ | 集合和付き積分 integral with union |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨛ | ⨛ | 上線付き積分 integral with overbar |
prefix | 480 | 3 | 3 | largeop, symmetric |
⨜ | ⨜ | 下線付き積分 integral with underbar |
prefix | 480 | 3 | 3 | largeop, symmetric |
⋃ | ⋃ | 配列用の集合和 n-ary union |
prefix | 500 | 3 | 3 | largeop, movablelimits, symmetric |
⨃ | ⨃ | 点付き配列用の集合和演算子 n-ary union operator with dot |
prefix | 500 | 3 | 3 | largeop, movablelimits, symmetric |
⨄ | ⨄ | プラス付き配列用の集合和演算子 n-ary union operator with plus |
prefix | 500 | 3 | 3 | largeop, movablelimits, symmetric |
⋀ | ⋀ | 配列用の論理積 n-ary logical and |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⋁ | ⋁ | 配列用の論理和 n-ary logical or |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⋂ | ⋂ | 配列用の集合積 n-ary intersection |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⨀ | ⨀ | 配列用の円で囲まれた点の演算子 n-ary circled dot operator |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⨂ | ⨂ | 配列用の円で囲まれた掛ける演算子 n-ary circled times operator |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⨅ | ⨅ | 配列用四角い集合積演算子 n-ary square intersection operator |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⨆ | ⨆ | 配列用の四角い集合和演算子 n-ary square union operator |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⨇ | ⨇ | 2つの論理積演算子 two logical and operator |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⨈ | ⨈ | 2つの論理和演算子 two logical or operator |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⨉ | ⨉ | 配列用の掛ける演算子 n-ary times operator |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⫼ | ⫼ | 大きい三重の縦線演算子 large triple vertical bar operator |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
⫿ | ⫿ | 配列用の白い縦線 n-ary white vertical bar |
prefix | 520 | 3 | 3 | largeop, movablelimits, symmetric |
∏ | ∏ | 配列用の積 n-ary product |
prefix | 540 | 3 | 3 | largeop, movablelimits, symmetric |
∐ | ∐ | 配列用の直和 n-ary coproduct |
prefix | 540 | 3 | 3 | largeop, movablelimits, symmetric |
@ | @ | 単価記号 commercial at |
infix | 560 | 3 | 3 | |
∟ | ∟ | 直角 right angle |
prefix | 580 | 0 | 0 | |
∠ | ∠ | 角 angle |
prefix | 580 | 0 | 0 | |
∡ | ∡ | 測定された角 measured angle |
prefix | 580 | 0 | 0 | |
∢ | ∢ | 球体の角度 spherical angle |
prefix | 580 | 0 | 0 | |
⊾ | ⊾ | 弧付き直角 right angle with arc |
prefix | 580 | 0 | 0 | |
⊿ | ⊿ | 直角三角形 right triangle |
prefix | 580 | 0 | 0 | |
⟀ | ⟀ | 3次元の角 three dimensional angle |
prefix | 580 | 0 | 0 | |
⦛ | ⦛ | 左側が開いた測定された角 measured angle opening left |
prefix | 580 | 0 | 0 | |
⦜ | ⦜ | 四角付き直角の異体字 right angle variant with square |
prefix | 580 | 0 | 0 | |
⦝ | ⦝ | 点付き測定された直角 measured right angle with dot |
prefix | 580 | 0 | 0 | |
⦞ | ⦞ | 内側に点の付いた角 angle with s inside |
prefix | 580 | 0 | 0 | |
⦟ | ⦟ | 鋭角 acute angle |
prefix | 580 | 0 | 0 | |
⦠ | ⦠ | 左向きに開いた球体の角度 spherical angle opening left |
prefix | 580 | 0 | 0 | |
⦡ | ⦡ | 上向きに開いた球体の角度 spherical angle opening up |
prefix | 580 | 0 | 0 | |
⦢ | ⦢ | ひっくり返った角 turned angle |
prefix | 580 | 0 | 0 | |
⦣ | ⦣ | 反転した角 reversed angle |
prefix | 580 | 0 | 0 | |
⦤ | ⦤ | 下線付き角 angle with underbar |
prefix | 580 | 0 | 0 | |
⦥ | ⦥ | 下線付き反転した角 reversed angle with underbar |
prefix | 580 | 0 | 0 | |
⦦ | ⦦ | 上向きに開いた斜角 oblique angle opening up |
prefix | 580 | 0 | 0 | |
⦧ | ⦧ | 下向きに開いた斜角 oblique angle opening down |
prefix | 580 | 0 | 0 | |
⦨ | ⦨ | 右上を指す矢印で終わる線の付いた横向きの測定された角 measured angle with open arm ending in arrow pointing up and right |
prefix | 580 | 0 | 0 | |
⦩ | ⦩ | 左上を指す矢印で終わる線の付いた横向きの測定された角 measured angle with open arm ending in arrow pointing up and left |
prefix | 580 | 0 | 0 | |
⦪ | ⦪ | 右下を指す矢印で終わる線の付いた横向きの測定された角 measured angle with open arm ending in arrow pointing down and right |
prefix | 580 | 0 | 0 | |
⦫ | ⦫ | 左下を指す矢印で終わる線の付いた横向きの測定された角 measured angle with open arm ending in arrow pointing down and left |
prefix | 580 | 0 | 0 | |
⦬ | ⦬ | 右上を指す矢印で終わる線の付いた縦向きの測定された角 measured angle with open arm ending in arrow pointing right and up |
prefix | 580 | 0 | 0 | |
⦭ | ⦭ | 左上を指す矢印で終わる線の付いた縦向きの測定された角 measured angle with open arm ending in arrow pointing left and up |
prefix | 580 | 0 | 0 | |
⦮ | ⦮ | 右下を指す矢印で終わる線の付いた縦向きの測定された角 measured angle with open arm ending in arrow pointing right and down |
prefix | 580 | 0 | 0 | |
⦯ | ⦯ | 左下を指す矢印で終わる線の付いた縦向きの測定された角 measured angle with open arm ending in arrow pointing left and down |
prefix | 580 | 0 | 0 | |
&& | && | 複数文字の演算子: && multiple character operator: && |
infix | 600 | 4 | 4 | |
∧ | ∧ | 論理積 logical and |
infix | 600 | 4 | 4 | |
⊼ | ⊼ | 否定論理積 nand |
infix | 600 | 4 | 4 | |
⋏ | ⋏ | 縮れた論理積 curly logical and |
infix | 600 | 4 | 4 | |
⩑ | ⩑ | 上点付き論理積 logical and with dot above |
infix | 600 | 4 | 4 | |
⩓ | ⩓ | 二重の論理積 double logical and |
infix | 600 | 4 | 4 | |
⩕ | ⩕ | 2つの重なった論理積 two intersecting logical and |
infix | 600 | 4 | 4 | |
⩘ | ⩘ | 斜めになった大きな論理積 sloping large and |
infix | 600 | 4 | 4 | |
⩙ | ⩙ | 論理積と重なった論理和 logical or overlapping logical and |
infix | 600 | 4 | 4 | |
⩚ | ⩚ | 中心線付き論理積 logical and with middle stem |
infix | 600 | 4 | 4 | |
⩜ | ⩜ | 水平線付き論理積 logical and with horizontal dash |
infix | 600 | 4 | 4 | |
⩞ | ⩞ | 二重の上線付き論理積 logical and with double overbar |
infix | 600 | 4 | 4 | |
⩟ | ⩟ | 下線付き論理積 logical and with underbar |
infix | 600 | 4 | 4 | |
⩠ | ⩠ | 二重の下線付き論理積 logical and with double underbar |
infix | 600 | 4 | 4 | |
* | * | アスタリスク asterisk |
infix | 620 | 3 | 3 | |
. | . | 終止符 full stop |
infix | 620 | 3 | 3 | |
· | · | 中点 middle dot |
infix | 620 | 3 | 3 | |
× | × | 乗算記号 multiplication sign |
infix | 620 | 3 | 3 | |
• | • | ビュレット bullet |
infix | 620 | 3 | 3 | |
⁃ | ⁃ | ハイフンビュレット hyphen bullet |
infix | 620 | 3 | 3 | |
⁢ | | 見えない掛ける invisible times |
infix | 620 | 0 | 0 | |
∗ | ∗ | アスタリスク演算子 asterisk operator |
infix | 620 | 3 | 3 | |
∙ | ∙ | ビュレット演算子 bullet operator |
infix | 620 | 3 | 3 | |
≀ | ≀ | リース積 wreath product |
infix | 620 | 3 | 3 | |
⊗ | ⊗ | 円で囲まれた「掛ける」記号 circled times |
infix | 620 | 3 | 3 | |
⊙ | ⊙ | 円で囲まれた点演算子 circled dot operator |
infix | 620 | 3 | 3 | |
⊛ | ⊛ | 円で囲まれたアスタリスク演算子 circled asterisk operator |
infix | 620 | 3 | 3 | |
⊠ | ⊠ | 四角で囲まれた「掛ける」記号 squared times |
infix | 620 | 3 | 3 | |
⊡ | ⊡ | 四角で囲まれた点の演算子 squared dot operator |
infix | 620 | 3 | 3 | |
⊺ | ⊺ | 挿入 intercalate |
infix | 620 | 3 | 3 | |
⋅ | ⋅ | 点の演算子 dot operator |
infix | 620 | 3 | 3 | |
⋆ | ⋆ | 星の演算子 star operator |
infix | 620 | 3 | 3 | |
⋇ | ⋇ | 割ると掛ける division times |
infix | 620 | 3 | 3 | |
⋉ | ⋉ | 左の通常因子の半直積 left normal factor semidirect product |
infix | 620 | 3 | 3 | |
⋊ | ⋊ | 右の通常因子の半直積 right normal factor semidirect product |
infix | 620 | 3 | 3 | |
⋋ | ⋋ | 左の半直積 left semidirect product |
infix | 620 | 3 | 3 | |
⋌ | ⋌ | 右の半直積 right semidirect product |
infix | 620 | 3 | 3 | |
⌅ | ⌅ | 射影 projective |
infix | 620 | 3 | 3 | |
⌆ | ⌆ | 投象 perspective |
infix | 620 | 3 | 3 | |
⧆ | ⧆ | 四角で囲まれたアスタリスク squared asterisk |
infix | 620 | 3 | 3 | |
⧈ | ⧈ | 四角で囲まれた四角 squared square |
infix | 620 | 3 | 3 | |
⧔ | ⧔ | 左半分が黒い掛ける times with left half black |
infix | 620 | 3 | 3 | |
⧕ | ⧕ | 右半分が黒い掛ける times with right half black |
infix | 620 | 3 | 3 | |
⧖ | ⧖ | 白い砂時計 white hourglass |
infix | 620 | 3 | 3 | |
⧗ | ⧗ | 黒い砂時計 black hourglass |
infix | 620 | 3 | 3 | |
⧢ | ⧢ | シャッフル積 shuffle product |
infix | 620 | 3 | 3 | |
⨝ | ⨝ | 結合 join |
infix | 620 | 3 | 3 | |
⨞ | ⨞ | 大きい左三角演算子 large left triangle operator |
infix | 620 | 3 | 3 | |
⨯ | ⨯ | 外積またはバッテンの乗算記号 vector or cross product |
infix | 620 | 3 | 3 | |
⨰ | ⨰ | 上点付き乗算記号 multiplication sign with dot above |
infix | 620 | 3 | 3 | |
⨱ | ⨱ | 下線付き乗算記号 multiplication sign with underbar |
infix | 620 | 3 | 3 | |
⨲ | ⨲ | 下が塞がった半直積 semidirect product with bottom closed |
infix | 620 | 3 | 3 | |
⨳ | ⨳ | スマッシュ積 smash product |
infix | 620 | 3 | 3 | |
⨴ | ⨴ | 左半円の中の乗算記号 multiplication sign in left half circle |
infix | 620 | 3 | 3 | |
⨵ | ⨵ | 右半円の中の乗算記号 multiplication sign in right half circle |
infix | 620 | 3 | 3 | |
⨶ | ⨶ | サーカムフレックスアクセント付き円で囲まれた乗算記号 circled multiplication sign with circumflex accent |
infix | 620 | 3 | 3 | |
⨷ | ⨷ | 二重の円の中の乗算記号 multiplication sign in double circle |
infix | 620 | 3 | 3 | |
⨻ | ⨻ | 三角の中の乗算記号 multiplication sign in triangle |
infix | 620 | 3 | 3 | |
⨼ | ⨼ | 内部積 interior product |
infix | 620 | 3 | 3 | |
⨽ | ⨽ | 右向きの内部積 righthand interior product |
infix | 620 | 3 | 3 | |
⨿ | ⨿ | 混合または直和 amalgamation or coproduct |
infix | 620 | 3 | 3 | |
⩐ | ⩐ | セリフ付き閉じた集合和とスマッシュ積 closed union with serifs and smash product |
infix | 620 | 3 | 3 | |
% | % | パーセント記号 percent sign |
infix | 640 | 3 | 3 | |
\ | \ | 逆の斜線 reverse solidus |
infix | 660 | 0 | 0 | |
/ | / | 斜線 solidus |
infix | 680 | 4 | 4 | |
÷ | ÷ | 除算記号 division sign |
infix | 680 | 4 | 4 | |
⁄ | ⁄ | 分数の斜線 fraction slash |
infix | 680 | 4 | 4 | |
∕ | ∕ | 除算の斜線 division slash |
infix | 680 | 4 | 4 | |
∶ | ∶ | 割合 ratio |
infix | 680 | 4 | 4 | |
⊘ | ⊘ | 円で囲まれた除算の斜線 circled division slash |
infix | 680 | 4 | 4 | |
➗ | ➗ | 重厚感のある除算記号 heavy division sign |
infix | 680 | 4 | 4 | |
⟋ | ⟋ | 数学用右上がりの対角線 mathematical rising diagonal |
infix | 680 | 3 | 3 | |
⟍ | ⟍ | 数学用右下がりの対角線 mathematical falling diagonal |
infix | 680 | 3 | 3 | |
⦼ | ⦼ | 円で囲まれた反時計回りに回転した除算記号 circled anticlockwise-rotated division sign |
infix | 680 | 4 | 4 | |
⧄ | ⧄ | 四角で囲まれた右上がりの対角線 squared rising diagonal slash |
infix | 680 | 4 | 4 | |
⧶ | ⧶ | 上線付き斜線 solidus with overbar |
infix | 680 | 4 | 4 | |
⧸ | ⧸ | 大きい斜線 big solidus |
infix | 680 | 4 | 4 | |
⨸ | ⨸ | 円で囲まれた除算記号 circled division sign |
infix | 680 | 4 | 4 | |
⫶ | ⫶ | 三重のコロン演算子 triple colon operator |
infix | 680 | 4 | 4 | |
⫻ | ⫻ | 二項関係の三重斜線 triple solidus binary relation |
infix | 680 | 4 | 4 | |
⫽ | ⫽ | 二重斜線の演算子 double solidus operator |
infix | 680 | 4 | 4 | |
⫾ | ⫾ | 白い縦線 white vertical bar |
infix | 680 | 3 | 3 | |
⩤ | ⩤ | z表記の領域補制限 z notation domain antirestriction |
infix | 700 | 3 | 3 | |
⩥ | ⩥ | z表記の値域補制限 z notation range antirestriction |
infix | 700 | 3 | 3 | |
+ | + | プラス記号 plus sign |
prefix | 720 | 0 | 0 | |
- | - | ハイフンマイナス hyphen-minus |
prefix | 720 | 0 | 0 | |
± | ± | プラスマイナス記号 plus-minus sign |
prefix | 720 | 0 | 0 | |
∁ | ∁ | 補足 complement |
prefix | 720 | 0 | 0 | |
∆ | ∆ | 増加 increment |
infix | 720 | 0 | 0 | |
− | − | マイナス記号 minus sign |
prefix | 720 | 0 | 0 | |
∓ | ∓ | マイナスプラス記号 minus-or-plus sign |
prefix | 720 | 0 | 0 | |
➕ | ➕ | 重厚感のあるプラス記号 heavy plus sign |
prefix | 720 | 0 | 0 | |
➖ | ➖ | 重厚感のあるマイナス記号 heavy minus sign |
prefix | 720 | 0 | 0 | |
⫝̸ | ⫝̸ | 従属する forking |
infix | 740 | 3 | 3 | |
⫝ | ⫝ | 従属しない nonforking |
infix | 740 | 3 | 3 | |
** | ** | 複数文字の演算子: ** multiple character operator: ** |
infix | 760 | 3 | 3 | |
ⅅ | ⅅ | 二重線の斜体の大文字D double-struck italic capital d |
prefix | 780 | 3 | 0 | |
ⅆ | ⅆ | 二重線の斜体の小文字d double-struck italic small d |
prefix | 780 | 3 | 0 | |
∂ | ∂ | 偏微分 partial differential |
prefix | 780 | 3 | 0 | |
∇ | ∇ | ナブラ nabla |
prefix | 780 | 0 | 0 | |
<> | <> | 複数文字の演算子: <> multiple character operator: <> |
infix | 800 | 3 | 3 | |
^ | ^ | サーカムフレックスアクセント circumflex accent |
infix | 800 | 3 | 3 | |
! | ! | 感嘆符 exclamation mark |
postfix | 820 | 0 | 0 | |
!! | !! | 複数文字の演算子: !! multiple character operator: !! |
postfix | 820 | 0 | 0 | |
% | % | パーセント記号 percent sign |
postfix | 820 | 0 | 0 | |
′ | ′ | プライム prime |
postfix | 820 | 0 | 0 | |
? | ? | 疑問符 question mark |
infix | 840 | 3 | 3 | |
√ | √ | 平方根 square root |
prefix | 860 | 3 | 0 | |
∛ | ∛ | 立方根 cube root |
prefix | 860 | 3 | 0 | |
∜ | ∜ | 四乗根 fourth root |
prefix | 860 | 3 | 0 | |
⁡ | | 関数の適用 function application |
infix | 880 | 0 | 0 | |
∘ | ∘ | リング演算子 ring operator |
infix | 900 | 3 | 3 | |
⊚ | ⊚ | 円で囲まれたリング演算子 circled ring operator |
infix | 900 | 3 | 3 | |
⋄ | ⋄ | ひし形の演算子 diamond operator |
infix | 900 | 3 | 3 | |
⧇ | ⧇ | 四角で囲まれた小さい円 squared small circle |
infix | 900 | 3 | 3 | |
" | " | 引用符 quotation mark |
postfix | 920 | 0 | 0 | |
& | & | アンパサンド ampersand |
postfix | 920 | 0 | 0 | |
' | ' | アポストロフィ apostrophe |
postfix | 920 | 0 | 0 | |
++ | ++ | 複数文字の演算子: ++ multiple character operator: ++ |
postfix | 920 | 0 | 0 | |
-- | -- | 複数文字の演算子: -- multiple character operator: -- |
postfix | 920 | 0 | 0 | |
^ | ^ | サーカムフレックスアクセント circumflex accent |
postfix | 920 | 0 | 0 | stretchy |
_ | _ | 下線 low line |
postfix | 920 | 0 | 0 | stretchy |
` | ` | グレーブアクセント grave accent |
postfix | 920 | 0 | 0 | |
~ | ~ | チルダ tilde |
postfix | 920 | 0 | 0 | stretchy |
¨ | ¨ | ダイエレシス diaeresis |
postfix | 920 | 0 | 0 | |
¯ | ¯ | マクロン macron |
postfix | 920 | 0 | 0 | stretchy |
° | ° | 度記号 degree sign |
postfix | 920 | 0 | 0 | |
² | ² | 上付き2 superscript two |
postfix | 920 | 0 | 0 | |
³ | ³ | 上付き3 superscript three |
postfix | 920 | 0 | 0 | |
´ | ´ | アキュートアクセント acute accent |
postfix | 920 | 0 | 0 | |
¸ | ¸ | セディラ cedilla |
postfix | 920 | 0 | 0 | |
¹ | ¹ | 上付き1 superscript one |
postfix | 920 | 0 | 0 | |
ˆ | ˆ | 修飾文字サーカムフレックスアクセント modifier letter circumflex accent |
postfix | 920 | 0 | 0 | stretchy |
ˇ | ˇ | キャロン caron |
postfix | 920 | 0 | 0 | stretchy |
ˉ | ˉ | 修飾文字マクロン modifier letter macron |
postfix | 920 | 0 | 0 | stretchy |
ˊ | ˊ | 修飾文字アキュートアクセント modifier letter acute accent |
postfix | 920 | 0 | 0 | |
ˋ | ˋ | 修飾文字グレーブアクセント modifier letter grave accent |
postfix | 920 | 0 | 0 | |
ˍ | ˍ | 修飾文字下側のマクロン modifier letter low macron |
postfix | 920 | 0 | 0 | stretchy |
˘ | ˘ | ブリーブ breve |
postfix | 920 | 0 | 0 | |
˙ | ˙ | 上の点 dot above |
postfix | 920 | 0 | 0 | |
˚ | ˚ | 上の丸 ring above |
postfix | 920 | 0 | 0 | |
˜ | ˜ | 小さいチルダ small tilde |
postfix | 920 | 0 | 0 | stretchy |
˝ | ˝ | ダブルアキュートアクセント double acute accent |
postfix | 920 | 0 | 0 | |
˷ | ˷ | 修飾文字下側のチルダ modifier letter low tilde |
postfix | 920 | 0 | 0 | stretchy |
̂ | ̂ | 合成用サーカムフレックスアクセント combining circumflex accent |
postfix | 920 | 0 | 0 | stretchy |
̑ | ̑ | 合成用ひっくり返ったブリーブ combining inverted breve |
postfix | 920 | 0 | 0 | |
‚ | ‚ | 下側の一重引用符 single low-9 quotation mark |
postfix | 920 | 0 | 0 | |
‛ | ‛ | 上側の反転した一重引用符 single high-reversed-9 quotation mark |
postfix | 920 | 0 | 0 | |
„ | „ | 下側の二重引用符 double low-9 quotation mark |
postfix | 920 | 0 | 0 | |
‟ | ‟ | 上側の反転した二重引用符 double high-reversed-9 quotation mark |
postfix | 920 | 0 | 0 | |
″ | ″ | 二重のプライム double prime |
postfix | 920 | 0 | 0 | |
‴ | ‴ | 三重のプライム triple prime |
postfix | 920 | 0 | 0 | |
‵ | ‵ | 反転したプライム reversed prime |
postfix | 920 | 0 | 0 | |
‶ | ‶ | 反転した二重のプライム reversed double prime |
postfix | 920 | 0 | 0 | |
‷ | ‷ | 反転した三重のプライム reversed triple prime |
postfix | 920 | 0 | 0 | |
‾ | ‾ | 上線 overline |
postfix | 920 | 0 | 0 | stretchy |
⁗ | ⁗ | 四重のプライム quadruple prime |
postfix | 920 | 0 | 0 | |
⁤ | | 見えないプラス invisible plus |
infix | 920 | 0 | 0 | |
⃛ | ⃛ | 文字の上に合成する3つの点 combining three dots above |
postfix | 920 | 0 | 0 | |
⃜ | ⃜ | 文字の上に合成する4つの点 combining four dots above |
postfix | 920 | 0 | 0 | |
⌢ | ⌢ | しかめっ面 frown |
postfix | 920 | 0 | 0 | stretchy |
⌣ | ⌣ | 笑顔 smile |
postfix | 920 | 0 | 0 | stretchy |
⎴ | ⎴ | 上角がっこ top square bracket |
postfix | 920 | 0 | 0 | stretchy |
⎵ | ⎵ | 下角がっこ bottom square bracket |
postfix | 920 | 0 | 0 | stretchy |
⏍ | ⏍ | 平方フィート square foot |
postfix | 920 | 0 | 0 | |
⏜ | ⏜ | 上かっこ top parenthesis |
postfix | 920 | 0 | 0 | stretchy |
⏝ | ⏝ | 下かっこ bottom parenthesis |
postfix | 920 | 0 | 0 | stretchy |
⏞ | ⏞ | 上波かっこ top curly bracket |
postfix | 920 | 0 | 0 | stretchy |
⏟ | ⏟ | 下波かっこ bottom curly bracket |
postfix | 920 | 0 | 0 | stretchy |
⏠ | ⏠ | 上亀甲かっこ top tortoise shell bracket |
postfix | 920 | 0 | 0 | stretchy |
⏡ | ⏡ | 下亀甲かっこ bottom tortoise shell bracket |
postfix | 920 | 0 | 0 | stretchy |
𞻰 | 𞻰 | アラビア文字の数学演算子連結線付きミームとハー arabic mathematical operator meem with hah with tatweel |
postfix | 920 | 0 | 0 | stretchy |
𞻱 | 𞻱 | アラビア文字の数学演算子ハーとダール arabic mathematical operator hah with dal |
postfix | 920 | 0 | 0 | stretchy |
_ | _ | 下線 low line |
infix | 940 | 0 | 0 |
開かれたウェブプラットフォームの極めて重要な要素として, W3CのMathML仕様書は, コンテンツの著者や開発者が, ウェブに数式を組み入れることを可能にする, 前例に基づいた潜在能力を持っています. それは, 基本となる構造や意味情報を他の技術に触れさせることができるといった点を通してです. これらの情報に触れられることはアクセシビリティの基礎となり, 同時に, デジタルの数学コンテンツを自動で判読, 検索, 再利用できるようにする方法を提供します.
As an essential element of the Open Web Platform, the W3C MathML specification has the unprecedented potential to enable content authors and developers to incorporate mathematical expressions on the web in such a way that the underlying structural and semantic information can be exposed to other technologies. Enabling this information exposure is foundational for accessibility, as well as providing a path for making digital mathematics content machine readable, searchable and reusable
ウェブ上でアクセシビリティの高いデジタルコンテンツを作成する, 国際的に受け入れられる標準や基礎となる方針は, W3Cのウェブコンテンツアクセシビリティガイドライン[WCAG21]で見つけることができます. これらの方針を数学情報を含むデジタルコンテンツに広げるうえで, WCAGは, MathMLが使用される場合のアクセシビリティを定義するための使い勝手の良い枠組みを提供します.
The internationally accepted standards and underpinning principles for creating accessible digital content on the web can be found in the W3C's Web Content Accessibility Guidelines [WCAG21]. In extending these principles to digital content containing mathematical information, WCAG provides a useful framework for defining accessibility wherever MathML is used.
最新のWCAGのガイドラインは, MathMLで書かれた数学コンテンツが障害の有る人にとってアクセシビリティの高いものであることを, どのように確実にするか何も直接的な手引きは提供していません. そのため, この仕様書は, それらのガイドラインがMathMLを含むデジタルコンテンツにどのように適用されるか定義しています.
As the current WCAG guidelines provide no direct guidance on how to ensure mathematical content encoded as MathML will be accessible to users with disabilities, this specification defines how to apply these guidelines to digital content containing MathML.
それらの勧告に従う恩恵は, ウェブコンテンツに対して世界中で既に生じているアクセシビリティの必要性をデジタル数学コンテンツが扱うことを, 確実にする手助けとなることです. 加えて, デジタル数学コンテンツの素材におけるアクセシビリティの確保を確実にすることは, 障害の有る人に対しても無い人に対しても, それらのコンテンツの読者層を広げるでしょう.
A benefit of following these recommendations is that it helps to ensure that digital mathematics content meets the accessibility requirements already widely used around the world for web content. In addition, ensuring that digital mathematics materials are accessible will expand the readership of such content to both readers with and without disabilities.
最善の慣行における追加の手引きは, 時が経てば[MathMLメモ]で開発されるでしょう. メモにそれらを載せることは, アクセシビリティ慣行がより頻繁な更新をしばしば必要とすることから, MathML仕様書と独立したものとして発展させることを認めることになります. このメモは, MathMLコアと完全なMathML仕様書の両方を考慮することに加えて, MathMLの過去, 現在, 未来のバージョンと一緒に使用されることも意図しています. 分割した文書による取り組みは, アクセシビリティがその時々の最善の慣行となることをMathMLの発展が妨げず, コンテンツの著者による最新のアクセシビリティ慣行の利用をMathMLの発展が認めることを確実にします.
Additional guidance on best practices will be developed over time in [MathML-Notes]. Placing these in Notes allows them to adapt and evolve independent of the MathML specification, since accessibility practices often need more frequent updating. The Notes are also intended for use with past, present, and future versions of MathML, in addition to considerations for both the MathML-Core and the full MathML specification. The approach of a separate document ensures that the evolution of MathML does not lock accessibility best practices in time, and allows content authors to apply the most recent accessibility practices.
近代(すなわち, ルネサンス後期以降)における数学のたくさんの発展は, 今日に至るまで発展し続けている, 初期の記号表記の開発によってほぼ間違いなく助けられました. 単純で基本的な文字列が基礎となる数学概念を説明するのに利用できることから, 数学表記は, 人や機械により簡単に使用, 処理, 理解される様々な場面で, 抽象的な数学構成を表現する簡潔な方法を提供します. 数学表記は, それ自体, 単に視覚的表現や閲覧や操作以上のことを意図した言語です. 著者の根本にある意味を説明することも意図しています. それらの数学表記の特色は, 同様に、数学のアクセシビリティへの直接のつながりを持っています.
Many of the advances of mathematics in the modern world (i.e., since the late Renaissance) were arguably aided by the development of early symbolic notation which continues to be evolved in our present day. While simple literacy text can be used to state underlying mathematical concepts, symbolic notation provides a succinct method of representing abstract mathematical constructs in a portable manner which can be more easily consumed, manipulated and understood by humans and machines. Mathematics notation is itself a language intended for more than just visual rendering, inspection and manipulation, as it is also intended to express the underlying meaning of the author. These characteristics of mathematical notation have in turn a direct connection to mathematics accessibility.
アクセシビリティは, 1998年のMathML1.0仕様書で述べられているように, まさにMathML仕様書の初期から断固として考慮されてきました. この理解は, ウェブコンテンツアクセシビリティガイドライン(WCAG 1.0, W3C勧告 1999年5月5日)のまさに初版に反映されています. そのガイドラインは, チェックポイント3.1"情報を表すのに適切なマークアップ言語が存在する場合, イメージではなく, マークアップを使用します"を満たすと提案された技法としてMathMLの利用について述べており, "数式をマークアップするにはMathMLを使用"する技法の例を含んでいました. WCAG 1.0ガイドライン3"マークアップとスタイルシートを適切に使用する"の議論に基づいて, 編集者が助言"コンテンツ開発者は, 特定のブラウザまたは支援技術によって適切に処理されないからといって, 適切なマークアップの使用を避けてはなりません"を加えていたことは注目すべきです. 現在, 最初のWCAG勧告の発行から約20年が経過し, 私達は, たくさんのコンテンツ開発者がそれらの理由のためにゆっくりとMathMLを利用してきたという事実に未だ取り組んでいます. しかしながら, MathML 4.0の発行と伴に, アクセシビリティ界隈は, 何か未来がウェブでの広範囲に及ぶ数学アクセシビリティに利するようになることを期待しています.
Accessibility has been a purposeful consideration from the very beginning of the MathML specification, as alluded to in the 1998 MathML 1.0 specification. This understanding is further reflected in the very first version of the Web Content Accessibility Guidelines (WCAG 1.0, W3C Recommendation 5-May-1999), which mentions the use of MathML as a suggested technique to comply with Checkpoint 3.1, "When an appropriate markup language exists, use markup rather than images to convey information," by including the example technique to "use MathML to mark up mathematical equations..." It is also worth noting, that under the discussion of WCAG 1.0 Guideline 3, "Use markup and style sheets and do so properly," that the editors have included the admonition that "content developers must not sacrifice appropriate markup because a certain browser or assistive technology does not process it correctly." Now some 20 years after the publication of the original WCAG recommendation, we still struggle with the fact that many content developers have been slow to adopt MathML due to those very reasons. However, with the publication of MathML 4.0, the accessibility community is hopeful of what the future will bring for widespread mathematics accessibility on the web.
デジタルコンテンツでMathMLを使用することは, アクセシビリティの幅広い使用事例を手助けする潜在能力を拡張します. このことについて下記で論じます.
Using MathML in digital content extends the potential to support a wide array of accessibility use cases. We discuss these below.
音声出力. 数式に対して文字から音声を動的に出力する技術手法は, MathMLの起源より前です. そして, この使用事例は, 最初からMathML仕様書を形作るうえでずっと重要でした. 音声の文字列を単に生成することを超えて, 音質の利用は, 2次元の構成に類似した音声表現を提供するのに, 音声の高低を変更するといった具合に, 使い勝手の広い面を持っています. 他の音声ソフトウェアは, あいまいでない数式を合成音声によって表現するのを手助けするステレオ音声化, イアコン(訳注:利用者に合図を伝える短い音), スペアコン(訳注:利用者に合図を伝える音声)といった他の種類の音質を含んでいます. MathMLは, これらの技法を可能にする数式の構成や構文についてのありのままの水準の情報を提供します. MathMLを利用したTTSツール(訳注:文字を音声に変換するソフトウェア)によって用いられる自動音声の決まりの幅広い集合を作る機能は, 様々な人々が話す言語への数学音声の事実上の移植性(例えば, 国際化), または, 数学音声の異なった形式(例えば, ClearSpeak, MathSpeak, SimpleSpeakなど)を提供することに注意することも重要です. 将来, これらは, よりたくさんの形式の音声の決まりの提供さえ行うでしょう. 例えば, 教育上の評価が試験の構成を無効としないようなより制限された音声への適用を必要とするときや, 初学者向けの教育コンテンツが若い学生の教室で使用される音声形式を採用する必要があるときです.
Auditory output. Technological means of providing dynamic text-to-speech output for mathematical expressions precedes the origins of MathML, and this use case has had an impact on shaping the MathML specification from the beginning. Beyond simply generating spoken text strings, the use of audio cues such as changes in spoken pitch to help provide an auditory analog of two-dimensional visual structure has been found useful. Other audio applications have included other types of audio cues such as binaural spatialization, earcons, and spearcons to help disambiguate mathematical expressions rendered by synthetic speech. MathML provides a level of robust information about the structure and syntax of mathematical expressions to enable these techniques. It is also important to note that the ability to create extensive sets of automated speech rules used by MathML-aware TTS tools provide for virtually infinite portability of math speech to the various human spoken languages (e.g., internationalization), as well as different styles of spoken math (e.g., ClearSpeak, MathSpeak, SimpleSpeak, etc.). In the future, this could provide even more types of speech rules, such as when an educational assessment needs to apply a more restrictive reading so as not to invalidate the testing construct, or when instructional content aimed at early learners needs to adopt the spoken style used in the classroom for young students.
点字出力. 数式を点字で触知できる表現は, とても重要な使用事例です. 目の見えない誰かにとって, 音声表現のみを通じて数学を解釈することは, 最も基本的な式を除いて, 経験に基づく知識によるやっかいな体験です. そのうえ, 聾盲の利用者にとって, 音声表現は, 完全にアクセシビリティに欠けています. 様々な数学用点字コードが国際的に一般的に利用されています. 例えば, Nemeth点字コード, 統一英語文字技術文書, ドイツ点字数学コード, フランス点字数学コードなどです. Liblouisといった動的数学文字変換ソフトウェアは, 更新可能な点字表示装置を用いてウェブに接続している人に対する, ウェブページのMathMLコンテンツの変換を手助けします. すなわち, 数学に対する動的点字コンテンツを提供するうえで, MathMLの利用は極めて重要です.
Braille output. The tactile rendering of mathematical expressions in braille is a very important use case. For someone who is blind, interpreting mathematics through auditory rendering alone is a cognitive taxing experience except for the most basic expressions. And for a deafblind user, auditory renderings are completely inaccessible. Several math braille codes are in common use globally, such as the Nemeth braille code, UEB Technical, German braille mathematics code, French braille mathematics code, etc. Dynamic mathematics braille translators such as Liblouis support translation of MathML content on webpages for individuals who access the web via a refreshable braille display. Thus, using MathML is essential for providing dynamic braille content for mathematics.
視覚的変換の他の形式. 音声と同時に動く強調表示は, 目の見える利用者向けの文字から音声への変換ソフトウェア共通の追加機能です. MathMLが式の基礎となるツリー構造を処理する機能を提供することから, 式の個々の要素は, 読み上げられる時に視覚的に強調できます. このことは, 利用者を文字の音読に引き入れるTTSの機能を高め, 潜在的に理解や学習を増大させられます. TTS無しで視覚的に読める人々に対してさえ, 閲覧する際の挿入記号を用いてウェブページを案内する式の視覚的強調は, MathMLが潜在的に対応している使い勝手の良いアクセシビリティ機能になるでしょう.
Other forms of visual transformation. Synchronized highlighting is a common addition to text-to-speech intended for sighted users. Because MathML provides the ability to parse the underlying tree structure of expressions, individual elements of the expression can be visually highlighted as they are spoken. This enhances the ability of TTS users to stay engaged with the text reading, which can potentially increase comprehension and learning. Even for people visually reading without TTS, visual highlighting within expressions as one navigates a web page using caret browsing can be a useful accessibility feature which MathML can potentially support.
耳が聞こえないか聞こえづらいが点字を利用できない人々に対して, MathMLで表現された数式は, 視覚的に表示される文字に潜在的に変えることができます. 研究がこのことを示したことから, 特に読み書きに障害がある就学年齢の子どもの間で, 数式の中に登場する記号表記を理解する能力は, 堅苦しい文章を読むことよりとても困難で, この表示機能を可能にすることは, これらの人々にとって使い勝手の良いアクセシビリティ技法となるでしょう.
For individuals who are deaf or hard of hearing but are unable to use braille, mathematical equations rendered in MathML can potentially be turned into visually displayed text. Since research has shown that, especially among school-age children with reading impairments, the ability to understand symbolic notation occurring in mathematical expression is much more difficult than reading literary text, enabling this capability could be a useful access technique for this population.
耳が聞こえないか耳が聞こえづらい人々にMathMLが提供できる, 他の潜在的なアクセシビリティの土台は, 自動手話アバターによるよる出力を提供する機能でしょう. アメリカ手話言語を生成する自動手話アバター技術は, 既に初等数学の水準に適用されています出展を追加. 手話言語は, 国(や場合によっては地域)によって変化し, 単に"言葉を手話"に置き換えたものではなく, 手話言語は独自の文法を持ちます. そのため, 数式の基礎となる構造を操作可能なことは, 手話を話す人間の静的な録画済の動画を使わなくとも, 動的にデジタル文書から手話で式を表現する潜在能力を提供するでしょう.
Another potential accessibility scaffold which MathML could provide for individuals who are deaf or hard of hearing would be the ability to provide input to automated signing avatars. Automated signing avatar technology which generates American Sign Language has already been applied to elementary level mathematics add citation. Sign languages vary by county (and sometimes locality) and are not simply "word to sign" translations, as sign language has its own grammar, so being able to access the underlying tree structure of mathematical expressions as can be done with MathML will provide the potential for representing expressions in sign language from a digital document dynamically without having to use static prerecorded videos of human signers.
式をグラフで示すことは, 一般に, 基礎となる数式の影響や関連を理解する助けとなる, 視覚的な出力を生成する方法として使われます. このことは全ての人々の助けとなりますが, 特に認知機能障害や学習障害を持った人々への影響が大きいです. 動的グラフツール(例えば, DesmosやMathTrax)の中には, 単に視覚的に線をなぞるだけでなく, この概念を聴覚的につなげること(例えば, 視覚的につなげることの聴覚的構成を提供するために, 音程を上げ下げすること)や, 視覚的なグラフの動的に生成された文章説明まで拡張するものもあります. デジタルコンテンツでのMathMLの利用は, そのような自動的なアクセシビリティのプログラムをウェブサイトに適用する潜在能力を, 開発者に提供するでしょう.
Graphing an equation is a commonly used means of generating a visual output which can aid in comprehending the effects and implications of the underlying mathematical expressions. This is helpful for all people, but can be especially impactful for those with cognitive or learning impairments. Some dynamic graphing utilities (e.g., Desmos and MathTrax) have extended this concept beyond a simple visual line trace, to auditory tracing (e.g., tones which rise and fall in pitch to provide an audio construct of the visual trace) as well as a dynamically generated text description of the visual graph. Using MathML in digital content will provide the potential for developers to apply such automated accessible graphing utilities to their websites.
ユーザーエージェント(例えば, ウェブブラウザ)は, アクセシビリティを最大化するために, MathMLの式のツリー構造における情報に影響を与えるべきです. ブラウザは, MathMLをDOMツリー構造の内部表現に処理すべきです. そのツリー構造は, 記述された全ての要素と属性を表わすものを含みます. 一般に, ユーザーエージェントは, プラットフォームのアクセシビリティ機能(例えば, アクセシビリティAPI)を通じて, アクセシビリティ情報を出力するでしょう. その情報は, アクセシビリティツリー構造を通じて, 支援技術ソフトウェアに受け渡されます. アクセシビリティツリー構造は, ほとんどのMathML要素に対するアクセシビリティに関係する情報を含むべきです. ブラウザは, DOMツリー構造から生成されたアクセシビリティツリー構造がそれらの情報を持ち続けることを確実にすべきで, そのため, アクセシビリティAPIは, 支援技術によって理解される表現を提供できます. ただし, W3Cユーザーエージェントアクセシビリティガイドライン達成基準4.14に従って, "ユーザー エージェント アクセシビリティ API が1つ以上のプラットフォームのアクセシビリティ サービスに十分な情報を提供しない場合は, Document Object Model(DOM)を支援技術でプログラム的に使用可能にしなければなりません" [UAAG20].
User agents (e.g., web browsers) should leverage information in the MathML expression tree structure to maximize accessibility. Browsers should process MathML into the DOM tree's internal representation, which contains objects representing all the markup's elements and attributes. In general, user agents will expose accessibility information via a platform accessibility service (e.g., an accessibility API), which is passed on to assistive technology applications via the accessibility tree. The accessibility tree should contain accessibility-related information for most MathML elements. Browsers should ensure the accessibility tree generated from the DOM tree retains this information so that Accessibility APIs can provide a representation that can be understood by assistive technologies. However, in compliance with the W3C User Agent Accessibility Guidelines Success Criterion 4.1.4, "If the user agent accessibility API does not provide sufficient information to one or more platform accessibility services, then Document Object Models (DOM), must be made programmatically available to assistive technologies" [UAAG20].
ほとんどのMathML要素が, DOMツリー構造, および, 結果として生じるアクセシビリティツリー構造の要素になることを確実にすることによって, ユーザーエージェントは, キーボード操作によって式の中の数学要素に触れることができます. このことは, 式の要素を強調表示したり, 矢印キーの操作によって個々の要素を音読したりする機能といった利用者の重要な要求を手助けします. さらに, このことは, 音読に合わせて動く更新可能な点字表示といった, 同時案内の他の形式を手助けできます.
By ensuring that most MathML elements become nodes in the DOM tree, and the resulting accessibility tree, user agents can expose math nodes for keyboard navigation within expressions. This can support important user needs such as the ability to visually highlight elements of an expression and/or speak individual elements as one navigates with arrow keys. This can further support other forms of synchronous navigation, such as individuals using refreshable braille displays along with synthetic speech.
アクセシビリティツリー構造にとって, 第一に視覚的表示の目的で使われる, ほとんどのDOM要素を無視することは一般的な慣行です. それにも関わらず, 支援技術ソフトウェアの形式によっては重要となる情報を伝えるために, 数式は視覚的書式として現れるものをよく利用することに注意することが重要です. 例えば, アクセシビリティツリー構造から<mspace>
要素を除外することは, 点字表示おける式の有効な数学点字表現を生成する機能に影響を与えるでしょう. さらに, 色がMathMLでmathcolor
属性やmathbackground
属性で表される場合, 要素は, 意味を表すためにそれらを利用しているかどうかの情報を含んでいる必要があります.
While it is common practice for the accessibility tree to ignore
most DOM node elements that are primarily used for visual display
purposes, it is important to point out that math expressions often use
what appears as visual styling to convey information which can be
important for some types of assistive technology applications. For
example, omitting the <mspace>
element from the accessibility tree will impact the ability to
generate a valid math braille representation of expressions on a
braille display. Further, when color is expressed in MathML with the
mathcolor
and mathbackground
attributes, these elements
need to be included if they are used to express meaning.
alttext
属性は, (例えば, 標準の評価でもよく行われる)標準の音読処理の決まりを上書きするのに利用できます. ただし, この方法には, 数多くの制限があります. 例えば, 著者が小さい一部分にのみ関心が有る場合でさえ, 式の音読される全体の文字列が, タグの中で与えられなければなりません. さらに, alttext
は書式無しの文字列に限られることから, 休止や音程の変更といった音読の一連の流れを, 音読ソフトウェアに渡すために含むことができません. また, alttext
属性は, MathMLツリー構造への直接のリンクを持たないことから, 式を音読に合わせて強調表示する処理を行う方法や, 式を通して利用者を案内する方法は何もないでしょう.
The
alttext
attribute can be used to
override standard speech rule processing (e.g., as is often done in
standardized assessments). However, there are numerous limitations to
this method. For instance, the entire spoken text of the expression
must be given in the tag, even if the author is only concerned about
one small portion. Further, alttext
is
limited to plain text, so speech queues such as pausing and pitch
changes cannot be included for passing on to speech engines. Also, the
alttext
attribute has no direct linkage
to the MathML tree, so there will be no way to handle synchronized
highlighting of the expression, nor will there be a way for users to
navigate through an expression.
MathMLアクセシビリティAPIの対応付け 1.0の初期の草案が利用可能です. この仕様書は, ユーザーエージェント製品におけるMathMLアクセシビリティに責任のある開発者向けです. この仕様書の目標は, 各支援技術がMathMLコンテンツをそれらが期待されている役割, 状態, 性質と一緒に受け取ることを確実にすることで, MatHMLコンテンツのアクセシビリティを最大化することです. ARIAラベルやaria-labeledby
の採用は, 点字の生成を上書きするであろうことから, MathMLでは適切ではありません.
An early draft of MathML Accessiblity API Mappings 1.0 is
available. This specification is intended for user agent developers
responsible for MathML accessibility in their product. The goal of
this specification is to maximize the accessibility of MathML content
by ensuring each assistive technology receives MathML content with the
roles, states, and properties it expects. The placing of ARIA labels
and aria-labeledby
is not appropriate in MathML because this will override
braille generation.
規範でないと記述された節と同様に, この仕様書の公認されたガイドライン, 図, 例, 注意は全て規範ではありません. この仕様書のそれら以外は規範です.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
この文書の鍵となる用語してもよいです(MAY), しなければなりません(MUST), すべきです(SHOULD), すべきではありません(SHOULD NOT)は, ここで示されているように下線付きで(訳注:原文では"全て大文字で")現れた場合, BCP 14[RFC2119] [RFC8174]で述べられているように解釈されます.
The key words MAY, MUST, SHOULD, and SHOULD NOT in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
情報は最近, 一般にソフトウェアによって生み出され, 処理され, 描画さてれています. インターネットの急成長は, 自動で情報を検索したり, 分類したり, 相互に通信したりする進歩したシステムの開発をたきつけています. 加えて, ウェブサービスの数が増えてきており, 中には資料や活動に技術的に基づくことを提案しているものもあります. したがって, MathMLは, 機械の助けを借りるか, 単にとても深い集中によって, 人の手で書かれたり, 人に読まれたりしてきたとはいえ, MathMLの将来はソフトウェアでそれらを処理することが広く可能になっていきます.
Information nowadays is commonly generated, processed and rendered by software tools. The exponential growth of the Web is fueling the development of advanced systems for automatically searching, categorizing, and interconnecting information. In addition, there are increasing numbers of Web services, some of which offer technically based materials and activities. Thus, although MathML can be written by hand and read by humans, whether machine-aided or just with much concentration, the future of MathML is largely tied to the ability to process it with software tools.
たくさんの別々の種類のMathML処理プログラムがあります. MathMLの式を書く編集ツール, 他のコードへ変換またはコードから変換するソフトウェア, MathMLの式を確認する検証ツール, MathMLの式を評価, 操作, 比較する計算プログラム, 数学表記の視覚的, 聴覚的, 触覚的表現を提供する表現プログラムがあります. MathMLに対応することが何を意味するかは, ソフトウェアによって大きく異なります. 例えば, 検証処理プログラムで挙がった問題は, 数式編集ツールで挙がった問題とは大きく違うでしょう.
There are many different kinds of MathML processors: editors for authoring MathML expressions, translators for converting to and from other encodings, validators for checking MathML expressions, computation engines that evaluate, manipulate, or compare MathML expressions, and rendering engines that produce visual, aural, or tactile representations of mathematical notation. What it means to support MathML varies widely between applications. For example, the issues that arise with a validating parser are very different from those for an equation editor.
この節は, MathMLへの対応のいろいろな種類について説明し, 与えられたソフトウェアでのMathMLへの対応の拡張を明らかにするガイドラインを示しています. 開発者, 利用者, 評価者は, 製品を特徴付けるのにこのガイドラインを利用することを促されます. このガイドラインの背景にある意図は, 数量化できる用語によって正確にMathMLソフトウェアの能力を説明することで, それらのソフトウェアの再利用や使用性を促進することです.
This section gives guidelines that describe different types of MathML support and make clear the extent of MathML support in a given application. Developers, users, and reviewers are encouraged to use these guidelines in characterizing products. The intention behind these guidelines is to facilitate reuse by and interoperability of MathML applications by accurately setting out their capabilities in quantifiable terms.
W3C数学作業部会はMathMLコンプライアンスガイドラインを管理しています. 適合の活動や資料の将来の更新についてはその文書を調べて下さい.
The W3C Math Working Group maintains MathML Compliance Guidelines. Consult this document for future updates on conformance activities and resources.
有効なMathMLの式は, MathML RelaxNGスキーマとこの仕様書で示されている追加の仕様で決められたXMLで構成されています.
A valid MathML expression is an XML construct determined by the MathML RelaxNG Schema together with the additional requirements given in this specification.
“MathML処理プログラム”という言葉を, 有効なMathMLの式を受け入れられるか提供できる何らかのソフトウェアを意味するものとして使用するでしょう. 有効なMathMLの式の受入れと提供の両方を行うMathML処理プログラムは, MathMLを“入出力処理”可能でもよいです. 場合によっては, MathMLを入出力処理するソフトウェアの単純な例は, 修飾なしで新しいファイルにMathMLを書き込む編集ツールでしょう.
We shall use the phrase “a MathML processor” to mean any application that can accept or produce a valid MathML expression. A MathML processor that both accepts and produces valid MathML expressions may be able to “round-trip” MathML. Perhaps the simplest example of an application that might round-trip a MathML expression would be an editor that writes it to a new file without modifications.
MathML適合の3つの形式が指定されています.
Three forms of MathML conformance are specified:
MathML入力適合処理プログラムは, 全ての有効なMathMLの式を受け入れなければなりません. そのプログラムは, 全てのMathMLの式を, ソフトウェアが機能する固有の操作で利用できる, ソフトウェア特有の形式に適切に変換できなければなりません.
A MathML-input-conformant processor must accept all valid MathML expressions; it should appropriately translate all MathML expressions into application-specific form allowing native application operations to be performed.
MathML出力適合処理プログラムは, 全てのソフトウェア特有のデータを適切に表現する, 有効なMathMLを生成しなければなりません.
A MathML-output-conformant processor must generate valid MathML, appropriately representing all application-specific data.
MathML入出力処理適合プログラムは, MathMLの等価性を維持しなければなりません. 2つのMathMLの式は, 何らかの関係した状況下で, 何らかのMathML処理プログラムによって, 両方の式が(MathML構文と仕様書で表現されている)同じ解釈を持つ場合に“等価”です. 要素どうしを基にした等価性は, この文書の他のところで論じています.
A MathML-round-trip-conformant processor must preserve MathML equivalence. Two MathML expressions are “equivalent” if and only if both expressions have the same interpretation (as stated by the MathML Schema and specification) under any relevant circumstances, by any MathML processor. Equivalence on an element-by-element basis is discussed elsewhere in this document.
上の定義の他には, MathML仕様書は個々の処理プログラムに何も要求していません. 開発者の手引きとなるために, MathML仕様書は助言となる資料を含んでいます. 例えば, 3. プレゼンテーションマークアップの至るところに, たくさんの推奨される描画の決まりがあります. しかしながら, 一般に開発者は, 何の種類のMathMLの定義が彼らの特定のソフトウェアに対して有意義であるかについて, 解釈するための広い許容範囲を与えられています.
Beyond the above definitions, the MathML specification makes no demands of individual processors. In order to guide developers, the MathML specification includes advisory material; for example, there are many recommended rendering rules throughout 3. Presentation Markup. However, in general, developers are given wide latitude to interpret what kind of MathML implementation is meaningful for their own particular application.
適合と何が有意義であるかの解釈の間の違いを明確にするために, いくつかの例について考えます.
To clarify the difference between conformance and interpretation of what is meaningful, consider some examples:
MathML入力適合のために, 検証処理プログラムは式を受け入れることのみ必要で, 有効なMathMLである式に対し“true”を返します. 特に, そのプログラムは少しもMathMLの式を描画したり解釈したりする必要はありません.
In order to be MathML-input-conformant, a validating parser needs only to accept expressions, and return “true” for expressions that are valid MathML. In particular, it need not render or interpret the MathML expressions at all.
MathML数式処理プログラムのコンテントマークアップに基づいた入出力部分は, 全てのプレゼンテーションマークアップを無視することを選ぶかもしれません. その入出力部分が, プレゼンテーションマークアップで構成された式も含め, 全ての有効なMathMLの式を受け入れるならば, そのソフトウェアをMathML入力適合として特徴付けることは技術的に正しいでしょう.
A MathML computer-algebra interface based on content markup might choose to ignore all presentation markup. Provided the interface accepts all valid MathML expressions including those containing presentation markup, it would be technically correct to characterize the application as MathML-input-conformant.
数式編集ツールは, 他の形式ではなく, MathMLとして式を出力することを容易にする内部のデータ表現を持っているかもしれません. 編集ツールが有効なMathMLとして単純な式を出力し, 他の形式への変換が失敗したというエラーメッセージを単に表示するならば, その編集ツールはそれでもMathML出力適合です.
An equation editor might have an internal data representation that makes it easy to export some equations as MathML but not others. If the editor exports the simple equations as valid MathML, and merely displays an error message to the effect that conversion failed for the others, it is still technically MathML-output-conformant.
前の例で示したように, 利用しやすいよう, MathML適合の概念は, 言語の部分部分が意味の通るように実装されているかの判断を頻繁に含みます. 単に, 部分部分が適合の定義を尊重する技術的に正しい方法で処理されるということではありません. この概念は, MathMLの部分部分が与えられたソフトウェアによって有意義に定義されるよう, 定量的な説明を示す仕組みを必要としています. この目的に向かって, W3C数学作業部会はテストツールを提供しています.
As the previous examples show, to be useful, the concept of MathML conformance frequently involves a judgment about what parts of the language are meaningfully implemented, as opposed to parts that are merely processed in a technically correct way with respect to the definitions of conformance. This requires some mechanism for giving a quantitative statement about which parts of MathML are meaningfully implemented by a given application. To this end, the W3C Math Working Group has provided a test suite.
テストツールは, マークアップの種類によって特徴付けられた, たくさんの数のMathMLの式や, 検証された主要なMathML要素から成り立っています. テストツールの存在は, 例えば定量的に仮の数式処理システムの入出力部分を特徴付けることができます. その入出力部分は, テストツールのコンテント―マークアップの部分にある全ての式を含めて, 有意義にMathMLコンテントマークアップを実装したMathML入力適合プログラムであると上で述べたものです.
The test suite consists of a large number of MathML expressions categorized by markup category and dominant MathML element being tested. The existence of this test suite makes it possible, for example, to characterize quantitatively the hypothetical computer algebra interface mentioned above by saying that it is a MathML-input-conformant processor which meaningfully implements MathML content markup, including all of the expressions in the content markup section of the test suite.
意義のある理由でMathML仕様書の一部を実装しないことを選んだ開発者は, テストツールの特定の種類の部分を示すことで, 省略した部分を提示することが促されています.
Developers who choose not to implement parts of the MathML specification in a meaningful way are encouraged to itemize the parts they leave out by referring to specific categories in the test suite.
MathML出力適合処理プログラムに対し, MathMLを検証する現在利用可能なソフトウェアの情報は, W3C MathML検証サービスで管理されています. MathML出力適合プログラムの開発者は, 検証サービスを利用してプログラムの出力を確認するよう促されます.
For MathML-output-conformant processors, information about currently available tools to validate MathML is maintained at the W3C MathML Validator. Developers of MathML-output-conformant processors are encouraged to verify their output using this validator.
MathMLソフトウェアの顧客は, MathML仕様書の部分部分がソフトウェアによって実装されているという主張を確認したいと願う場合, その確認の流れの中でテストツールを利用することが促されています.
Customers of MathML applications who wish to verify claims as to which parts of the MathML specification are implemented by an application are encouraged to use the test suites as a part of their decision processes.
MathML 3.0は, 現在は非推奨となっている以前のMathMLの機能を含んでいます. 次に示す点で, 非推奨となることが機能として何を意味しているのかを定義し, 非推奨となった機能とMathML適合との間の関係を明らかにします.
MathML 3.0 contains a number of features of earlier MathML which are now deprecated. The following points define what it means for a feature to be deprecated, and clarify the relation between deprecated features and current MathML conformance.
MathML出力適合であるために, MathMLを書き出すソフトウェアは, 非推奨の機能を含むMathMLマークアップを生成しなくてもよいです.
In order to be MathML-output-conformant, authoring tools may not generate MathML markup containing deprecated features.
MathML入力適合であるために, 描画ソフトウェアや音声読み上げソフトウェアは, ソフトウェアがMathML 1.xまたはMathML 2.xに適合するならば, 非推奨の機能に対応しなければなりません. それらのソフトウェアは, MathML 3.0に適合すると考えられているのなら, 非推奨の機能に対応しなくても良いです. しかしながら, 全てのソフトウェアは可能な限り古い形式に対応するよう促されています.
In order to be MathML-input-conformant, rendering and reading tools must support deprecated features if they are to be in conformance with MathML 1.x or MathML 2.x. They do not have to support deprecated features to be considered in conformance with MathML 3.0. However, all tools are encouraged to support the old forms as much as possible.
MathML入出力適合であるために, 処理プログラムは, 非推奨の機能を何も含まない式においてMathML等価性を維持することだけが必要です.
In order to be MathML-round-trip-conformant, a processor need only preserve MathML equivalence on expressions containing no deprecated features.
MathML 3.0は3つの基本的な拡張の仕組みを定義しています. まず, mglyph
要素は, ユニコード文字でない文字の字形や存在しているユニコード文字の異体字を表示する方法を提供します. また, maction
要素は, 実装で指定された変数を利用するのに他の名前空間の属性を利用します. 最後に, コンテントマークアップは, definitionURL
属性およびコンテント辞書やcd
属性を, 数学の意味の外部定義を指し示すために利用します.
MathML 3.0 defines three basic extension mechanisms: the mglyph
element provides a way of displaying glyphs for non-Unicode
characters, and glyph variants for existing Unicode characters; the
maction
element uses attributes from other namespaces to obtain
implementation-specific parameters; and content markup makes use of
the definitionURL
attribute, as well as
Content Dictionaries and the cd
attribute, to point to external
definitions of mathematical semantics.
これらの拡張の仕組みは重要です. なぜなら, これらの仕組みが, 現在明確に指定されたMathML 3.0の範囲を超え, まだ標準化されていない新しい考えを試しに利用するためにMathMLに認められた, 概念をコード化する手法を提供するからです. しかしながら, 新しい考えが定着するにつれ, その考えは将来の標準の一部となってもよいです. 例えば, 現在mglyph
要素で表現されなければならないと判明している文字が, 将来ユニコードのコードポイントを割当てられてもよいです. そのときは, 直接ユニコードのコードポイントを用いて文字を表す方が好ましいでしょう. 既にユニコードに移行した文字として, 数学で利用される数百の文字があります.
These extension mechanisms are important because they provide a way
of encoding concepts that are beyond the scope of MathML 3.0 as presently
explicitly specified, which
allows MathML to be used for exploring new ideas not yet susceptible
to standardization. However, as new ideas take hold, they may become
part of future standards. For example, an emerging character that
must be represented by an mglyph
element today may be
assigned a Unicode code point in the future. At that time,
representing the character directly by its Unicode code point would be
preferable. This transition into Unicode has
already taken place for hundreds of characters used for mathematics.
将来廃れる可能性が, 新しい考えを促進するための, 拡張の仕組みの利用には本質的に伴います. そのため, MathMLは, 代わりの標準的なマークアップが利用可能になったとしても, 拡張の仕組みの利用に影響する適合の必要条件が何も無いように考慮しています. 例えば, mglyph
要素を'x'を表現するために利用することは認められています. 同様に, MathML 3.0の拡張の仕組みを利用している文書の管理者は, 関連する標準化の活動(例えば, ユニコード, OpenMath等)を把握し, より標準的なマークアップが利用可能になったときに文書を更新するよう促されています.
Because the possibility of future obsolescence is inherent in the
use of extension mechanisms to facilitate the discussion of new ideas,
MathML can reasonably make
no conformance requirements concerning the use of
extension mechanisms, even when alternative standard markup is
available. For example, using an mglyph
element to represent
an 'x' is permitted. However, authors and implementers are
strongly encouraged to use standard markup whenever possible.
Similarly, maintainers of documents employing MathML 3.0 extension
mechanisms are encouraged to monitor relevant standards activity
(e.g., Unicode, OpenMath, etc.) and to update documents as more
standardized markup becomes available.
MathML入力適合ソフトウェアが, 不当な数や種類の, 属性や子要素を持つ1つ以上の要素を含む入力を受け取ったとしても, ソフトウェアは全ての入力を分かりやすい方法で描画しようと試みるべきです. すなわち, 入力のうちの有効な部分は通常どおり描画し, 無効な式の場所に(あたかもmerror
要素で囲まれたかのように描画された)エラーメッセージを表示するべきです.
If a MathML-input-conformant application receives
input containing one or more elements with an illegal number or type
of attributes or child schemata, it should nonetheless attempt to
render all the input in an intelligible way, i.e., to render normally
those parts of the input that were valid, and to render error messages
(rendered as if enclosed in an merror
element) in place of
invalid expressions.
編集ツールや変換ソフトウェアといったMathML出力適合ソフトウェアは, 入力の中の単独のエラーに対しmerror
の式を出力することを選んでもよいです. この方法は有効であり, おそらく正しくないMathMLを出力するより普通好まれます.
MathML-output-conformant applications such as
editors and translators may choose to generate merror
expressions to signal errors in their input. This is usually
preferable to generating valid, but possibly erroneous, MathML.
MathML仕様書で述べられているMathML属性は, 良い表現と内容のマークアップをできるようにするためのものです. しかしながら, 全ての利用者が必要としていることをマークアップで対応することは不可能です. 理想を言えば, 利用者が特定の描画ソフトウェアのための特定の属性を加えられるように, MathML属性は制限無しの一覧であるべきです. しかしながら, このことは, 単独のXML DTDや構文では限界があり, 実現できません. このことは標準のDTDの拡張を利用すれば実現できるかもしれませんが, 著者の中には, 標準DTDに厳密な適合を残す限り, 描画ソフトウェア特有の能力の有利な点を持つ, 標準でない属性を利用したいと願う人がいることを言っておきます.
The MathML attributes described in the MathML specification are intended to allow for good presentation and content markup. However it is never possible to cover all users' needs for markup. Ideally, the MathML attributes should be an open-ended list so that users can add specific attributes for specific renderers. However, this cannot be done within the confines of a single XML DTD or in a Schema. Although it can be done using extensions of the standard DTD, say, some authors will wish to use non-standard attributes to take advantage of renderer-specific capabilities while remaining strictly in conformance with the standard DTD.
このことを認めるために, MathML 1.0仕様書数学用マークアップ言語(MathML) 1.0仕様書は, 描画ソフトウェアに特有の情報を渡すためのフック(訳注:処理を割り込ませる仕組み)として利用するための属性other
を全ての要素の中で認めていました. 特に, その属性は, 聴覚表現ソフトウェア, 数式処理システム, 将来のマクロや拡張の仕組みとなる原型の部分に, 情報を渡すフックと考えられていました. この手法への意欲が問題へと向かったのは, 例えば, その言語の一部ではない情報を渡すのに, コメントを広く利用していたポストスクリプトを見てみると, 歴史上の事実です.
To allow this, the MathML 1.0 specification Mathematical Markup Language (MathML) 1.0 Specification
allowed the attribute other
on all elements, for use as a hook to pass
on renderer-specific information. In particular, it was intended as a hook for
passing information to audio renderers, computer algebra systems, and for pattern
matching in future macro/extension mechanisms. The motivation for this approach to
the problem was historical, looking to PostScript, for example, where comments are
widely used to pass information that is not part of PostScript.
MathMLの発展の次の期間の間に, 一般的なXML名前空間の仕組みの開発は, other
属性の利用を時代遅れのものにしました. MathML 2.0において, MathMLでない属性を特定するのに名前空間の接頭辞の利用が望ましいことから, other
属性は非推奨となっています. other
属性はMathML 3.0でも非推奨として残っています.
In the next period of evolution of MathML the
development of a general XML namespace mechanism
seemed to make the use of the other
attribute obsolete. In MathML 2.0, the other
attribute is
deprecated in favor of the use of
namespace prefixes to identify non-MathML attributes. The
other
attribute remains deprecated in MathML 3.0.
例えば, MathML 1.0において, 描画ソフトウェア特有の実装としての追加の情報は, maction
要素(3.7.1 式の一部に動作を結び付ける)で利用することが推奨されていました. それらの情報はother
属性を利用して渡すべきでした.
For example, in MathML 1.0, it was recommended that if additional information
was used in a renderer-specific implementation for the maction
element
(3.7.1 Bind Action to Sub-Expression),
that information should be passed in using the other
attribute:
<maction actiontype="highlight" other="color='#ff0000'"> expression </maction>
MathML 2.0 以降は, 他の名前空間のcolor
属性を利用すべきでしょう.
From MathML 2.0 onwards, a color
attribute from another namespace would be used:
<body xmlns:my="http://www.example.com/MathML/extensions">
...
<maction actiontype="highlight" my:color="#ff0000"> expression </maction>
...
</body>
標準でない属性を認めている意図は, ソフトウェア開発者にMathMLの中心となる慣習の裏をかく抜け道として, その属性の利用を進めている訳ではないことに注意して下さい. 著者やソフトウェアは, 標準でない属性を賢明に使用すべきです.
Note that the intent of allowing non-standard attributes is not to encourage software developers to use this as a loophole for circumventing the core conventions for MathML markup. Authors and applications should use non-standard attributes judiciously.
MathMLのウェブプラットフォームでの実装は, [MathMLコア]を実装すべきで, そのため, そこで指定されているプライバシーに関する考慮事項が適用されます.
Web platform implementations of MathML should implement [MathML-Core], and so the Privacy Considerations specified there apply.
MathMLのウェブプラットフォームでの実装は, [MathMLコア]を実装すべきで, そのため, そこで指定されているセキュリティに関する考慮事項が適用されます.
Web platform implementations of MathML should implement [MathML-Core], and so the Security Considerations specified there apply.
状況によって, MathMLの式はXMLとして処理されることもあります. その場合, [RFC7303]で説明されているように, XML処理のセキュリティに関する考慮事項が適用されます.
In some situations, MathML expressions can be parsed as XML. The security considerations of XML parsing apply then as explained in [RFC7303].
次に示す表は, コンテントMathML演算子要素についての鍵となる構文情報を要約したものです.
The following tables summarize key syntax information about the Content MathML operator elements.
次の表は, 構築要素記号に対応する入れ物要素に対する子要素の構文を表しています. 詳細や例については, 4.3.1 入れ物マークアップを参照して下さい.
The following table gives the child element syntax for container elements that correspond to constructor symbols. See 4.3.1 Container Markup for details and examples.
要素の名前は最初の列で, 構築要素について説明した節へのリンクを提供します.
The Name of the element is in the first column, and provides a link to the section that describes the constructor.
内容の列は, 構築要素の中に含まれてもよい子要素を表しています.
The Content column gives the child elements that may be contained within the constructor.
次の表は, 特定の演算子要素で提供されてもよい属性を一覧にしています. 加えて全ての演算子要素は, CommonAtt
属性とDefEncAtt
属性を持ちます.
The following table lists the attributes that may be supplied on specific operator elements. In addition, all operator elements allow the CommonAtt
and DefEncAtt
attributes.
要素の名前は最初の列で, 演算子について説明している節へのリンクを提供します.
The Name of the element is in the first column, and provides a link to the section that describes the operator.
属性の列は, その演算子要素で提供されてもよい属性の名前を指定しています.
The Attribute column specifies the name of the attribute that may be supplied on the operator element.
値の列は, その演算子要素特有の, 属性に対して提供されてもよい値を指定しています.
The Values column specifies the values that may be supplied for the attribute specific to the operator element.
要素の名前は最初の列で, 演算子について説明している節へのリンクを提供します.
The Name of the element is in the first column, and provides a link to the section that describes the operator.
記号の列は, 演算子をコード化するのに用いられてもよいcsymbol
の一覧を, 厳格なコンテントMathMLへの変換アルゴリズムで用いられるOpenMath記号へのリンクと一緒に提供します.
The Symbol(s) column provides a list of csymbol
s that may be used to encode the operator, with links to the OpenMath symbols used in the Strict Content MathML Transformation Algorithm.
種類の列は, 演算子の種類を指定します. その演算子の種類は, 4.3.4 演算子の種類で述べられているように, いくつの引数が演算子で期待されているかを示しており, 厳格なコンテントMathMLへの対応付けを決めてもよいです.
The Class column specifies the operator class, which indicates how many arguments the operator expects, and may determine the mapping to Strict Content MathML, as described in 4.3.4 Operator Classes.
修飾要素の列は, (入れ物要素に対する)子要素としてか, (空の演算子要素の)後に続く兄弟要素としてかのいずれかとして, 演算子に受け入れられる修飾要素を一覧にしています.
The Qualifiers column lists the qualifier elements accepted by the operator, either as child elements (for container elements) or as following sibling elements (for empty operator elements).
MathMLは, 厳格なコンテントMathMLへの対応付けを定義することで, コンテントマークアップに意味を割り当てています. 厳格なMathMLは, 同時にOpenMathに1対1で対応し, この方法でコンテントMathMLの式から得られる式の部分は全て, 標準的なOpenMathコンテント辞書の集合を通して, 明確な意味を持ちます. 結果的に, 任意のコンテントMathMLの式の等価な厳格なコンテントMathMLへの対応付けは, コンテントMathMLの意味を補強する役割を担います.
MathML assigns semantics to content markup by defining a mapping to Strict Content MathML. Strict MathML, in turn, is in one-to-one correspondence with OpenMath, and the subset of OpenMath expressions obtained from content MathML expressions in this fashion all have well-defined semantics via the standard OpenMath Content Dictionary set. Consequently, the mapping of arbitrary content MathML expressions to equivalent Strict Content MathML plays a key role in underpinning the meaning of content MathML.
任意のコンテントMathMLの厳格なコンテントMathMLへの対応付けは, アルゴリズムによって定義されます. このアルゴリズムは, 特定の厳格でない構造に適用される書き換えの決まりの集合として, 後で説明します. 個々の書き換えの変換方法は, 後の方の節で詳細に説明されています. この節の目的は, 1箇所に完全なアルゴリズムの概要を示すことです.
The mapping of arbitrary content MathML into Strict content MathML is defined algorithmically. The algorithm is described below as a collection of rewrite rules applying to specific non-Strict constructions. The individual rewrite transformations are described in the following subsections. The goal of this section is to outline the complete algorithm in one place.
このアルゴリズムは, 一連の9つの段階で構成されています. 各段階は, 入力がそれ以上書き換えられなくなるまで繰り返し適用されます. XSLTといった多くのプログラミング言語において, 自然な実装は, 後の説明で述べられる並列の実装ではなく, 再帰的なアルゴリズムとしてのものです. XSLへの変換は, 簡単で, 最終的に同じ厳格なコンテントMathMLを提供します. ただし, 並列のアルゴリズムの全体構造は明らかなので, ここではその全体構造を式で示します.
The algorithm is a sequence of nine steps. Each step is applied repeatedly to rewrite the input until no further application is possible. Note that in many programming languages, such as XSLT, the natural implementation is as a recursive algorithm, rather than the multi-pass implementation suggested by the description below. The translation to XSL is straightforward and produces the same eventual Strict Content MathML. However, because the overall structure of the multi-pass algorithm is clearer, that is the formulation given here.
任意のコンテントMathMLの式を厳格なコンテントMathMLに変換するのに, 次のそれぞれの決まりを, 順番に対象である構造の全ての厳格でないコンテントMathMLが取り除かれるまで, 入力された式に適用します.
To transform an arbitrary content MathML expression into Strict Content MathML, apply each of the following rules in turn to the input expression until all instances of the target constructs have been eliminated:
厳格でないbind
の書き換えと非推奨の要素の除去: 束縛する式の外側のbind
タグを, それらが修飾要素または複数の子要素を持っている場合, apply
に変更します. このことは, 状況の区別無しに, 厳格でない束縛する式に適用される後々の決まりを認めることで, アルゴリズムを単純化しています. 後の決まりは, この段階で導入されたapply
要素をbind
要素に戻すように変更するであろうことに注意して下さい.
Rewrite non-strict bind
and eliminate deprecated elements:
Change the outer bind
tags
in binding expressions to apply
if they have qualifiers or multiple
children. This simplifies the algorithm by allowing the subsequent rules to be applied
to non-strict binding expressions without case distinction. Note
that the later
rules will change the apply
elements introduced in this step back to
bind
elements.
修飾要素の慣用的な利用への特別な状況の決まりの適用:
Apply special case rules for idiomatic uses of qualifiers:
微分係数を, 書き換え: diff, 書き換え: nthdiff, 書き換え: partialdiffdegreeの決まりによって, 関係する変数の束縛された状態を展開するように書き換えます.
Rewrite derivatives with rules Rewrite: diff, Rewrite: nthdiff, and Rewrite: partialdiffdegree to explicate the binding status of the variables involved.
積分を, 書き換え: int, 書き換え: defint, 書き換え: defint 極限の決まりによって, 変数の束縛・自由の状態からあいまいさを取り除き, lowlimit
/uplimit
の組みが与えられているなら積分範囲のあいまいさを取り除くように書き換えます.
Rewrite integrals with the rules Rewrite: int, Rewrite: defint
and Rewrite: defint limits to disambiguate the status
of bound and free variables and of the orientation of the range of integration if
it is given as a lowlimit
/uplimit
pair.
極限を, 書き換え: tendstoと書き換え: 極限 conditionで説明されているように書き換えます.
Rewrite limits as described in Rewrite: tendsto and Rewrite: limits condition.
総和と総積を, 4.3.5.2 複数項の総和 <sum/>
と4.3.5.3 複数項の総積 <product/>
で説明されているように書き換えます.
Rewrite sums and products as described in
4.3.5.2 N-ary Sum <sum/>
and 4.3.5.3 N-ary Product <product/>
.
根を, F.2.5 根で説明されているように書き換えます.
Rewrite roots as described in F.2.5 Roots.
対数を, F.2.6 対数で説明されているように書き換えます.
Rewrite logarithms as described in F.2.6 Logarithms.
積率を, F.2.7 積率で説明されているように書き換えます.
Rewrite moments as described in F.2.7 Moments.
修飾要素のdomainofapplication
への書き換え:これらの決まりは, bvar
と修飾要素を使用している全てのapply
構造を, 一般的なdomainofapplication
のみを使用した構造に書き換えます.
Rewrite Qualifiers to domainofapplication
:
These rules rewrite all apply
constructions using bvar
and
qualifiers to those using only the general domainofapplication
qualifier.
範囲: interval
やlowlimit
/uplimit
として与えられる修飾要素を, 書き換え: interval 修飾要素を通して整数の範囲に書き換えます.
Intervals: Rewrite qualifiers given as interval
and
lowlimit
/uplimit
to intervals of integers via
Rewrite: interval qualifier.
複数のcondition
: 複数のcondition
修飾要素を, それらを連結することで単独のものに書き換えます. その結果として結合されたcondition
は, 書き換え: conditionの決まりによってdomainofapplication
に書き換えられます.
Multiple condition
s: Rewrite multiple condition
qualifiers to a single one by taking their conjunction. The resulting compound
condition
is then rewritten to domainofapplication
according
to rule Rewrite: condition.
複数のdomainofapplication
: 複数のdomainofapplication
修飾要素を, 指定された定義域の共通部分を用いることで, 単独のものに書き換えます.
Multiple domainofapplication
s: Rewrite multiple
domainofapplication
qualifiers to a single one by taking the
intersection of the specified domains.
入れ物マークアップの標準化:
Normalize Container Markup:
集合やリストを, 書き換え: 複数項の集合やリスト domainofapplicationの決まりによって書き換えます.
Rewrite sets and lists by the rule Rewrite: n-ary setlist domainofapplication.
範囲, ベクトル, 行列, 行列の行を, F.3.1 範囲, 4.3.5.8 複数項の行列構築要素: <vector/>
, <matrix/>
, <matrixrow/>
で説明されているように書き換えます. どの修飾要素もdomainofapplication
に書き換えられ, さらに段階6で書き換えられるであろうことに注意して下さい.
Rewrite interval, vectors, matrices, and matrix rows
as described in F.3.1 Intervals, 4.3.5.8 複数項の行列構築要素: <vector/>
, <matrix/>
, <matrixrow/>
. Note any qualifiers will have been rewritten to domainofapplication
and will be further rewritten in Step 6.
ラムダ式を, 書き換え: lambdaと書き換え: lambda domainofapplicationの決まりによって書き換えます.
Rewrite lambda expressions by the rules Rewrite: lambda and Rewrite: lambda domainofapplication.
区分的関数を, 4.3.10.5 区分的関数の定義 <piecewise>
, <piece>
, <otherwise>
で説明されているように書き換えます.
Rewrite piecewise functions as described in 4.3.10.5 Piecewise declaration <piecewise>
, <piece>
, <otherwise>
.
domainofapplication
修飾要素を使用した演算子に対する特別な状況の決まりの適用: この段階は, 4.3 具体的な構造に対するコンテントMathMLで導入された演算子に対する特別な状況を処理します. 様々な種類の考慮が必要な特別な状況があります.
Apply Special Case Rules for Operators using domainofapplication
Qualifiers:
This step deals with the special cases for the operators introduced in
4.3 Content MathML for Specific Structures. There are different classes of special cases to be taken into account:
min
, max
, mean
や同じような単一項または複数項の演算子を, 書き換え: 複数項または単一項の演算子 集合, 書き換え: 複数項または単一項の演算子 domainofapplication, 書き換え: 複数項または単一項の演算子 単独の引数の決まりによって書き換えます.
Rewrite min
, max
, mean
and similar n-ary/unary operators
by the rules Rewrite: n-ary unary set, Rewrite: n-ary unary domainofapplication
and Rewrite: n-ary unary single.
domainofapplication
を伴う量化記号forall
と量化記号exists
を, 書き換え: 量化記号の決まりによって, 含意と結合を用いた式に書き換えます.
Rewrite the quantifiers forall
and exists
used with domainofapplication
to expressions using implication and conjunction by the rule Rewrite: quantifier.
domainofapplication
要素と(状況に応じてbvar
と)一緒に使用される積分を, 書き換え: intと書き換え: defintの決まりによって書き換えます.
Rewrite integrals used with a domainofapplication
element (with or without a bvar
)
according to the rules Rewrite: int and
Rewrite: defint.
domainofapplication
要素と(状況に応じてbvar
と)一緒に使用される総和と総積を, 4.3.5.2 複数項の総和 <sum/>
と4.3.5.3 複数項の総積 <product/>
で説明されているように書き換えます.
Rewrite sums and products used with a domainofapplication
element
(with or without a bvar
) as described in
4.3.5.2 N-ary Sum <sum/>
and 4.3.5.3 N-ary Product <product/>
.
domainofapplication
の除去: この段階で, どのapply
も多くて1つのdomainofapplication
子要素を持っており, 特別な場合は処理されてきています. domainofapplication
は, 厳格なコンテントMathMLではないことから, 次のように書き換えられます.
Eliminate domainofapplication
: At this stage, any
apply
has at most one domainofapplication
child and special cases have been addressed. As
domainofapplication
is not Strict Content MathML, it is rewritten
apply
がbvar
子要素を含んでいない場合, 書き換え: 制限の決まりを通して, 制限された関数の適用に書き換えられます.
into an application of a restricted function via the rule
Rewrite: restriction if the apply
does not contain
a bvar
child.
関係演算子と一緒に使用されている場合, 書き換え: 複数項の関係演算子と書き換え: 複数項の関係演算子 bvarの決まりを通して, predicate_on_list記号の適用に書き換えられます.
into an application of the predicate_on_list symbol via the rules Rewrite: n-ary relations and Rewrite: n-ary relations bvar if used with a relation.
一般的な複数項の演算子の場合, 書き換え: 複数項の演算子 domainofapplicationの一般的な決まりを通して, apply_to_list記号を伴う構造に書き換えられます.
into a construction with the apply_to_list symbol via the general rule Rewrite: n-ary domainofapplication for general n-ary operators.
書き換え: apply bvar domainofapplicationの決まりを通して, 束縛変数を伴うapply
の中の, set1コンテント辞書のsuchthat記号を用いた構造に書き換えられます.
into a construction using the suchthat symbol
from the set1 content dictionary in an apply
with bound
variables via the Rewrite: apply bvar domainofapplication rule.
厳格でない素子要素の書き換え:
Rewrite non-strict token elements:
type
属性がe-notation
, rational
, complex-cartesian
, complex-polar
, constant
のいずれか1つであるcn
要素として表された数字を, 書き換え: cn sep, 書き換え: cn based_integer, 書き換え: cn constantの決まりを通して, 厳格なcn
に書き換えます.
Rewrite numbers represented as cn
elements where the type
attribute is one of e-notation
, rational
,
complex-cartesian
, complex-polar
,
constant
as strict cn
via rules
Rewrite: cn sep, Rewrite: cn based_integer
and Rewrite: cn constant.
プレゼンテーションMathMLを含んでいる何らかのci
, csymbol
, cn
を, 書き換え: cn プレゼンテーションMathMLと書き換え: ci プレゼンテーションMathMLの決まりと, csymbol
に対して類似した決まりによって, semantics
要素に書き換えます.
Rewrite any ci
, csymbol
or cn
containing
presentation MathML to semantics
elements with rules
Rewrite: cn presentation mathml and Rewrite: ci presentation mathml and
the analogous rule for csymbol
.
演算子の書き換え: 4.3 具体的な構造に対するコンテントMathMLで定義された何らかの残りの演算子を, 書き換え: 要素の決まりによって, 構文の表で指定された記号を参照するcsymbol
に書き換えます. 各演算子要素の説明で述べたように, 記号の適切な選択を決めるための, 特別な状況の決まりを必要とするものもあります. 特に注意すべき状況は次の場合です.
Rewrite operators: Rewrite any remaining operator defined in 4.3 Content MathML for Specific Structures
to a csymbol
referencing the symbol identified in the syntax table by the rule
Rewrite: element. As noted in the descriptions of each
operator element, some require special case rules to determine the proper choice
of symbol.
Some cases of particular note are:
selector
演算子の引数の順番は, 書き換えられなければならず, 記号は, 引数の型によって決まります.
The order of the arguments for the
selector
operator must be
rewritten, and the symbol depends on the type of the arguments.
minus
演算子に対する記号の選択は, 引数の数, すなわち二項演算子minus
なのか単一項の演算子minus
なのかによって決まります.
The choice of symbol for the minus
operator depends on the number of the arguments, minus
or minus
.
集合の演算子に対する記号の選択は, 引数のtype
の値によって決まることもあります.
The choice of symbol for some set operators depends on the values of
the type
of the arguments.
統計の演算子に対する記号の選択は, 引数の型の値によって決まることもあります.
The choice of symbol for some statistical operators depends on the values of the types of the arguments.
厳格でない属性の書き換え:
Rewrite non-strict attributes:
type
属性の書き換え: この時点で, type
を持つ全ての要素は, ci
とcsymbol
を除いて, 型情報は演算子記号の選択に反映されており, type
属性の無い等価な厳格なコンテントマークアップに書き換えられているべきです. 現時点で, type
属性を持った残っているci
要素とcsymbol
要素を, 書き換え: ci type付加情報と書き換え: csymbol type付加情報の決まりによって, semantics
を持った厳格な式に書き換えます.
Rewrite the type
attribute:
At this point, all elements
that accept the type
, other than ci
and csymbol
, should have been
rewritten into Strict Content Markup equivalents without type
attributes,
where type information is reflected in the choice of operator symbol. Now rewrite remaining
ci
and csymbol
elements with a type
attribute to a
strict expression with semantics
according to rules
Rewrite: ci type annotation and Rewrite: csymbol type annotation.
definitionURL
属性とencoding
属性の書き換え: csymbol
要素のdefinitionURL
属性とencoding
属性がコンテント辞書への参照として解釈できるならば(詳細は4.2.3.2 <csymbol>
の厳格でない利用を参照), 代わりにそれらをcd
属性によるコンテント辞書への参照に書き換えます.
Rewrite definitionURL
and encoding
attributes:
If the definitionURL
and encoding
attributes on a
csymbol
element can be interpreted as a reference to a
content dictionary (see 4.2.3.2 Non-Strict uses of <csymbol>
for details), then
rewrite to reference the content dictionary by the cd
attribute instead.
属性の書き換え: 厳格なマークアップで認められていない属性を持った何らかの要素を, それらの属性を除いた要素を最初の子要素にして, 書き換え: 属性の決まりによってannotation
要素の属性にしたsemantics
構造に書き換えます.
Rewrite attributes: Rewrite any element with attributes that are
not allowed in strict markup to a semantics
construction with
the element without these attributes as the first child and the attributes in
annotation
elements by rule Rewrite: attributes.
4.2.6 束縛と束縛変数 <bind>
と<bvar>
で述べたように, bind
要素に対する厳格な形式は, 修飾要素を認めておらず, 1つのbvar
でない要素しか認めていません.
As described in 4.2.6 Bindings and Bound Variables <bind>
and <bvar>
, the strict form
for the bind
element does not allow qualifiers,
and only allows one non-bvar
child element.
束縛する式それぞれの中のapply
と一緒のbind
タグを, その要素が修飾要素か複数のbvar
でない子要素を持っていた場合, 置き換えます.
Replace the bind
tag in each binding
expression with apply
if it has qualifiers
or multiple non-bvar
child elements.
この段階では, apply
を用いた厳格でない束縛する式を修正する後で実行される決まりが, 別の場合に必要なものを除いたbind
を用いる厳格でない式に対して使用されることが認められています.
This step allows subsequent rules that modify non-strict binding
expressions using apply
to be used for
non-strict binding expressions using bind
without the need for a separate case.
後で実行される決まりは, それらのapply
を用いた厳格でない束縛する式を, bind
を用いた厳格な束縛する式に戻すでしょう.
Later rules will change these non-strict binding expressions
using apply
back to strict binding
expressions using bind
elements.
修飾要素の慣用的な利用に対する特別な状況の決まりを適用します.
Apply special case rules for idiomatic uses of qualifiers.
書き換え: diff, 書き換え: nthdiff, 書き換え: partialdiffdegreeの決まりを用いて, 明確に変数が束縛状態になるように, 微分係数を書き換えます.
Rewrite derivatives using the rules Rewrite: diff, Rewrite: nthdiff, and Rewrite: partialdiffdegree to make the binding status of the variables explicit.
微分演算子において, 実際のところ, 式の中で微分演算子によって変数が束縛されていないことを, はっきり理解することが極めて重要です.
For a differentiation operator it is crucial to realize that in the expression case, the variable is actually not bound by the differentiation operator.
<ci>expression-in-x</ci>
が変数xの式である次の式があるとします.
Translate an expression
<apply><diff/>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</apply>
この式は, 次の式に変換されます.
where
<ci>expression-in-x</ci>
is an
expression in the variable x to the expression
<apply>
<apply><csymbol cd="calculus1">diff</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>E</ci>
</bind>
</apply>
<ci>x</ci>
</apply>
微分された関数は, 厳格なマークアップで明確に自由変数の状態になった変数xに適用されます.
Note that the differentiated function is applied to the variable x making its status as a free variable explicit in strict markup. Thus the strict equivalent of
<apply><diff/>
<bvar><ci>x</ci></bvar>
<apply><sin/><ci>x</ci></apply>
</apply>
よって, この式と等価な厳格なマークアップは, 次の式です.
is
<apply>
<apply><csymbol cd="calculus1">diff</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="transc1">sin</csymbol><ci>x</ci></apply>
</bind>
</apply>
<ci>x</ci>
</apply>
bvar
要素がdegree
要素を含んでいる場合, nthdiff
記号が使われます.
If the bvar
element contains a
degree
element, use the
nthdiff
symbol.
<apply><diff/>
<bvar><ci>x</ci><degree><ci>n</ci></degree></bvar>
<ci>expression-in-x</ci>
</apply>
<ci>expression-in-x</ci>
が変数xの式であるこの式は, 次の式に変換されます.
where
<ci>expression-in-x</ci>
is an
expression in the variable x
is translated to the expression
<apply>
<apply><csymbol cd="calculus1">nthdiff</csymbol>
<ci>n</ci>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</bind>
</apply>
<ci>x</ci>
</apply>
例
For example
<apply><diff/>
<bvar><degree><cn>2</cn></degree><ci>x</ci></bvar>
<apply><sin/><ci>x</ci></apply>
</apply>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<apply>
<apply><csymbol cd="calculus1">nthdiff</csymbol>
<cn>2</cn>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="transc1">sin</csymbol><ci>x</ci></apply>
</bind>
</apply>
<ci>x</ci>
</apply>
関数に適用するとき, partialdiff
要素は, calculus1コンテント辞書のpartialdiff記号に対応します. partialdiff
の2つの引数を, 直接partialdiffの2つの引数に変換するのに, 何も特別な決まりは必要ありません.
When applied to a function, the partialdiff
element corresponds to the partialdiff
symbol from the calculus1 content
dictionary. No special rules are necessary as the two arguments of
partialdiff
translate directly to the two
arguments of
partialdiff.
partialdiff
が式とbvar
修飾要素と一緒に利用される場合, partialdiffdegree記号を使って厳格なコンテントMathMLに書き換えられます.
If partialdiff
is used with an expression
and bvar
qualifiers it is rewritten to
Strict Content MathML using the
partialdiffdegree symbol.
<apply><partialdiff/>
<bvar><ci>x1</ci><degree><ci>n1</ci></degree></bvar>
<bvar><ci>xk</ci><degree><ci>nk</ci></degree></bvar>
<degree><ci>total-n1-nk</ci></degree>
<ci>expression-in-x1-xk</ci>
</apply>
<ci>expression-in-x1-xk</ci>
は, 束縛変数を含む任意の式です.
where <ci>expression-in-x1-xk</ci>
is an
arbitrary expression involving the bound variables.
<apply>
<apply><csymbol cd="calculus1">partialdiffdegree</csymbol>
<apply><csymbol cd="list1">list</csymbol>
<ci>n1</ci> <ci>nk</ci>
</apply>
<ci>total-n1-nk</ci>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x1</ci></bvar>
<bvar><ci>xk</ci></bvar>
<ci>expression-in-x1-xk</ci>
</bind>
</apply>
<ci>x1</ci>
<ci>xk</ci>
</apply>
束縛変数のどれかがdegree
修飾要素を使用していないならば, <cn>1</cn>
が階数の場所に用いられるべきです. 元の式がdegree修飾要素の合計を使用していなかったなら, partialdiffdegreeの2番目の引数は, 階数の合計となるべきです. 例えば次のようにです.
If any of the bound variables do not use a degree
qualifier,
<cn>1</cn>
should be used in place of the degree.
If the original expression did not use the total degree qualifier then
the second argument to partialdiffdegree
should be the sum of the degrees. For example
<apply><csymbol cd="arith1">plus</csymbol>
<ci>n1</ci> <ci>nk</ci>
</apply>
次の式があるとします.
With this rule, the expression
<apply><partialdiff/>
<bvar><ci>x</ci><degree><ci>n</ci></degree></bvar>
<bvar><ci>y</ci><degree><ci>m</ci></degree></bvar>
<apply><sin/>
<apply><times/><ci>x</ci><ci>y</ci></apply>
</apply>
</apply>
上の決まりによって, この式は次の式に変換されます.
is translated into
<apply>
<apply><csymbol cd="calculus1">partialdiffdegree</csymbol>
<apply><csymbol cd="list1">list</csymbol>
<ci>n</ci><ci>m</ci>
</apply>
<apply><csymbol cd="arith1">plus</csymbol>
<ci>n</ci><ci>m</ci>
</apply>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<apply><csymbol cd="transc1">sin</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<ci>x</ci><ci>y</ci>
</apply>
</apply>
</bind>
<ci>x</ci>
<ci>y</ci>
</apply>
</apply>
書き換え: int,
書き換え: defint, 書き換え: defint 極限の決まりを用いて, 積分範囲がlowlimit
/uplimit
の組みとして与えられた場合の範囲の決定方法のあいまいさや, 束縛変数と自由変数の状態のあいまいさを取り除くように, 積分を書き換えます.
Rewrite integrals using the rules Rewrite: int,
Rewrite: defint and Rewrite: defint limits
to disambiguate the status of bound and free variables and of the
orientation of the range of integration if it is given as a
lowlimit
/uplimit
pair.
不定積分が関数に適用される場合, int
要素は, calculus1コンテント辞書のint記号に対応します. 定積分が関数に適用される場合, int
要素は, calculus1コンテント辞書のdefint記号に対応します.
As an indefinite integral applied to a function, the
int
element corresponds to the
int
symbol from the calculus1 content
dictionary. As a definite integral applied to a function, the
int
element corresponds to the
defint
symbol from the calculus1 content
dictionary.
何も束縛変数が存在しない場合, 不定積分の厳格なコンテントMathMLへの変換は単純です. 束縛変数が存在する場合, 次の決まりが使われるべきです.
When no bound variables are present, the translation of an indefinite integral to Strict Content Markup is straight forward. When bound variables are present, the following rule should be used.
<ci>expression-in-x</ci>
が束縛変数<ci>x</ci>
を含む任意の式である, 次の不定積分があるとします.
Translate an indefinite integral, where
<ci>expression-in-x</ci>
is an
arbitrary expression involving the bound variable(s)
<ci>x</ci>
<apply><int/>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</apply>
この式は, 次の式に変換されます.
to the expression
<apply>
<apply><csymbol cd="calculus1">int</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</bind>
</apply>
<ci>x</ci>
</apply>
xは元の不定積分の中で束縛されていないため, 例え, 変数xが引数としてintに使われる式の一部で束縛されていたとしても, 厳格なコンテントMathMLで明確な自由変数である変数xに, 積分された関数は適用されることに注意して下さい.
Note that as x is not bound in the original indefinite integral, the integrated function is applied to the variable x making it an explicit free variable in Strict Content Markup expression, even though it is bound in the subterm used as an argument to int.
例えば, 次の式があるとします.
For instance, the expression
<apply><int/>
<bvar><ci>x</ci></bvar>
<apply><cos/><ci>x</ci></apply>
</apply>
<apply>
<apply><csymbol cd="calculus1">int</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><cos/><ci>x</ci></apply>
</bind>
</apply>
<ci>x</ci>
</apply>
束縛変数を伴わない定積分でも, 変換は単純です.
For a definite integral without bound variables, the translation is also straightforward.
例えば, 次のように表される, 任意の領域Cでの微分形式fの積分があるとします.
For instance, the integral of a differential form f over an arbitrary domain C represented as
<apply><int/>
<domainofapplication><ci>C</ci></domainofapplication>
<ci>f</ci>
</apply>
この式は, 次の厳格なコンテントMathMLと等価です.
is equivalent to the Strict Content MathML:
<apply><csymbol cd="calculus1">defint</csymbol><ci>C</ci><ci>f</ci></apply>
ただし, 後で示す定積分での決まりに基づいて積分範囲を指定するのに用いられてもよい, 他の種類の修飾要素の変換に追加の注意が必要です.
Note, however, the additional remarks on the translations of other kinds of qualifiers that may be used to specify a domain of integration in the rules for definite integrals following.
束縛変数が存在する場合, 状況は一般により複雑で, 次の決まりが用いられます.
When bound variables are present, the situation is more complicated in general, and the following rules are used.
<ci>expression-in-x</ci>
が束縛変数<ci>x</ci>
を含む任意の式である, 次の定積分があるとします.
Translate a definite integral, where
<ci>expression-in-x</ci>
is an
arbitrary expression involving the bound variable(s)
<ci>x</ci>
<apply><int/>
<bvar><ci>x</ci></bvar>
<domainofapplication><ci>D</ci></domainofapplication>
<ci>expression-in-x</ci>
</apply>
この式は, 次の式に変換されます.
to the expression
<apply><csymbol cd="calculus1">defint</csymbol>
<ci>D</ci>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</bind>
</apply>
ただし, lowlimit
/uplimit
の組みを持つ定積分は, 積分範囲を方向付ける強い意味合いを持っており, そのため, 下限と上限を入れ替えることは, 結果の符号を変えることになるでしょう. このことに適応するため, 次の特別な決まりが使われます.
But the definite integral with a lowlimit
/uplimit
pair carries the
strong intuition that the range of integration is oriented, and thus
swapping lower and upper limits will change the sign of the result.
To accommodate this, use the following special translation rule:
<apply><int/>
<bvar><ci>x</ci></bvar>
<lowlimit><ci>a</ci></lowlimit>
<uplimit><ci>b</ci></uplimit>
<ci>expression-in-x</ci>
</apply>
<ci>expression-in-x</ci>
が変数xの式であるこの式は, 次の式に変換されます.
where
<ci>expression-in-x</ci>
is an expression in the variable x
is translated to the expression:
<apply><csymbol cd="calculus1">defint</csymbol>
<apply><csymbol cd="interval1">oriented_interval</csymbol>
<ci>a</ci> <ci>b</ci>
</apply>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</bind>
</apply>
oriented_interval記号は, interval
修飾要素が変換されたときや, 積分範囲を指定するときにも使われます. 積分は, 左側の端点から右側の端点に向かって行われると想定されています.
The oriented_interval
symbol is also used when translating the interval
qualifier, when it is used to specify the domain of integration.
Integration is assumed to proceed from the left endpoint to the
right endpoint.
多重積分の場合も同じように扱われます.
The case for multiple integrands is treated analogously.
condition
修飾要素の利用も特別な取扱いを必要とすることに注意して下さい. 特に, condition
修飾要素は, 次の式と同様に追加の束縛変数とデカルト平面に対応した範囲を利用することで, 多変量の範囲に拡張されます.
Note that use of the condition
qualifier also
requires special treatment. In particular, it extends to multivariate domains by
using extra bound variables and a domain corresponding to a cartesian product as in:
<bind><int/>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<condition>
<apply><and/>
<apply><leq/><cn>0</cn><ci>x</ci></apply>
<apply><leq/><ci>x</ci><cn>1</cn></apply>
<apply><leq/><cn>0</cn><ci>y</ci></apply>
<apply><leq/><ci>y</ci><cn>1</cn></apply>
</apply>
</condition>
<apply><times/>
<apply><power/><ci>x</ci><cn>2</cn></apply>
<apply><power/><ci>y</ci><cn>3</cn></apply>
</apply>
</bind>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<apply><csymbol cd="calculus1">defint</csymbol>
<apply><csymbol cd="set1">suchthat</csymbol>
<apply><csymbol cd="set1">cartesianproduct</csymbol>
<csymbol cd="setname1">R</csymbol>
<csymbol cd="setname1">R</csymbol>
</apply>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="arith1">leq</csymbol><cn>0</cn><ci>x</ci></apply>
<apply><csymbol cd="arith1">leq</csymbol><ci>x</ci><cn>1</cn></apply>
<apply><csymbol cd="arith1">leq</csymbol><cn>0</cn><ci>y</ci></apply>
<apply><csymbol cd="arith1">leq</csymbol><ci>y</ci><cn>1</cn></apply>
</apply>
<bind><csymbol cd="fns11">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<apply><csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci><cn>2</cn></apply>
<apply><csymbol cd="arith1">power</csymbol><ci>y</ci><cn>3</cn></apply>
</apply>
</bind>
</apply>
</apply>
書き換え: tendstoと書き換え: 極限 conditionの決まりを用いて, 極限を書き換えます.
Rewrite limits using the rules Rewrite: tendsto and Rewrite: limits condition.
極限を修飾するtendsto
の利用は, 決まり書き換え: 極限 conditionを通して厳格なコンテントMathMLの式を書くことで, 正式に定義されます. 他のより慣用的なtendsto
の利用の意味は, 正式にはこの仕様書で定義されていません. これらの状況を厳格なコンテントMathMLに書き換える場合, tendsto
は下に示すような付加情報の着いた識別子に書き換えられるべきです.
The usage of tendsto
to qualify a limit
is formally defined by writing the expression in Strict Content MathML
via the rule Rewrite: limits condition. The meanings of other more
idiomatic uses of tendsto
are not formally
defined by this specification. When rewriting these cases to Strict
Content MathML, tendsto
should be rewritten
to an annotated identifier as shown below.
<tendsto/>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<semantics>
<ci>tendsto</ci>
<annotation-xml encoding="MathML-Content">
<tendsto/>
</annotation-xml>
</semantics>
<apply><limit/>
<bvar><ci>x</ci></bvar>
<condition>
<apply><tendsto/><ci>x</ci><cn>0</cn></apply>
</condition>
<ci>expression-in-x</ci>
</apply>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<apply><csymbol cd="limit1">limit</csymbol>
<cn>0</cn>
<csymbol cd="limit1">null</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</bind>
</apply>
<ci>expression-in-x</ci>
が束縛変数と選択された記号を含む任意の式ならば, nullは, 4.3.10.4 極限 <limit/>
で述べたtendsto
要素のtype
属性に依存します.
where
<ci>expression-in-x</ci>
is an
arbitrary expression involving the bound variable(s), and the choice of
symbol, null, depends on the
type
attribute of the
tendsto
element as described
in 4.3.10.4 Limits <limit/>
.
4.3.5.2 複数項の総和 <sum/>
と4.3.5.3 複数項の総積 <product/>
で説明されているように, 総和と総積を書き換えます.
Rewrite sums and products as described in
4.3.5.2 N-ary Sum <sum/>
and 4.3.5.3 N-ary Product <product/>
.
何も明確な束縛変数が用いられていない場合, 総和を厳格なコンテントMathMLに書き換えるのに, 修飾要素を用いた式を書き換える一般的な決まりを除いて, 何も特別な決まりは必要ありません. ただし, 束縛変数が用いられる場合, 束縛変数の式を関数として書き換えるのに, lambda
構造を導入することが必要です.
When no explicit bound variables are used, no special rules are
required to rewrite sums as Strict Content beyond the generic rules
for rewriting expressions using qualifiers. However, when bound
variables are used, it is necessary to introduce a lambda
construction to rewrite the expression in the bound variables as a
function.
コンテントMathML
Content MathML
<apply><sum/>
<bvar><ci>i</ci></bvar>
<lowlimit><cn>0</cn></lowlimit>
<uplimit><cn>100</cn></uplimit>
<apply><power/><ci>x</ci><ci>i</ci></apply>
</apply>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<apply><csymbol cd="arith1">sum</csymbol>
<apply><csymbol cd="interval1">integer_interval</csymbol>
<cn>0</cn>
<cn>100</cn>
</apply>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>i</ci></bvar>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci><ci>i</ci></apply>
</bind>
</apply>
何も明確な束縛変数が用いられていない場合, 総積を厳格なコンテントMathMLに書き換えるのに, 修飾要素を用いた式を書き換える一般的な決まりを除いて, 何も特別な決まりは必要ありません. ただし, 束縛変数が用いられる場合, 束縛変数の式を関数として書き換えるのに, lambda
構造を導入することが必要です.
When no explicit bound variables are used, no special rules are
required to rewrite products as Strict Content beyond the generic rules
for rewriting expressions using qualifiers. However, when bound
variables are used, it is necessary to introduce a lambda
construction to rewrite the expression in the bound variables as a
function.
コンテントMathML
Content MathML
<apply><product/>
<bvar><ci>i</ci></bvar>
<lowlimit><cn>0</cn></lowlimit>
<uplimit><cn>100</cn></uplimit>
<apply><power/><ci>x</ci><ci>i</ci></apply>
</apply>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<apply><csymbol cd="arith1">product</csymbol>
<apply><csymbol cd="interval1">integer_interval</csymbol>
<cn>0</cn>
<cn>100</cn>
</apply>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>i</ci></bvar>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci><ci>i</ci></apply>
</bind>
</apply>
F.2.5 根で説明されているように, 根を書き換えます.
Rewrite roots as described in F.2.5 Roots.
厳格なコンテントマークアップでは, root記号がいつも2つの引数と一緒に使用され, 2番目の引数が, 生成された根の次数を示します.
In Strict Content markup, the root symbol is always used with two arguments, with the second indicating the degree of the root being extracted.
コンテントMathML
Content MathML
<apply><root/><ci>x</ci></apply>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<apply><csymbol cd="arith1">root</csymbol>
<ci>x</ci>
<cn type="integer">2</cn>
</apply>
コンテントMathML
Content MathML
<apply><root/>
<degree><ci type="integer">n</ci></degree>
<ci>a</ci>
</apply>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<apply><csymbol cd="arith1">root</csymbol>
<ci>a</ci>
<cn type="integer">n</cn>
</apply>
4.3.7.9 対数 <log/>
, <logbase>
で説明されているように, 対数を書き換えます.
Rewrite logarithms as described in 4.3.7.9 Logarithm <log/>
, <logbase>
.
log
を厳格なコンテントMathMLに対応付ける場合, 最初の引数によって指定される底に関係した, 2番目の引数の対数を返す関数を意味するlog記号を用いるでしょう. logbase
が存在するなら, 底を決定します. そうでないなら, 既定値の10が, 厳格なマークアップでは明確に提供されなければなりません. 次の例を参照して下さい.
When mapping log
to Strict Content, one uses the
log symbol denoting the function
that returns the log of its second argument with respect to the base
specified by the first argument. When logbase
is present, it
determines the base. Otherwise, the default base of 10 must be
explicitly provided in Strict markup. See the following example.
<apply><plus/>
<apply>
<log/>
<logbase><cn>2</cn></logbase>
<ci>x</ci>
</apply>
<apply>
<log/>
<ci>y</ci>
</apply>
</apply>
等価な厳格なコンテントMathML
Strict Content MathML equivalent:
<apply>
<csymbol cd="arith1">plus</csymbol>
<apply>
<csymbol cd="transc1">log</csymbol>
<cn>2</cn>
<ci>x</ci>
</apply>
<apply>
<csymbol cd="transc1">log</csymbol>
<cn>10</cn>
<ci>y</ci>
</apply>
</apply>
4.3.7.8 積率 <moment/>
, <momentabout>
で説明されているように, 積率を書き換えます.
Rewrite moments as described in 4.3.7.8 Moment <moment/>
, <momentabout>
.
厳格なマークアップに書き換えるとき, s_data1コンテント辞書のmoment記号が, moment
要素が引数の明確な一覧に適用される場合に用いられます. この要素が度数分布に適用される場合, s_dist1コンテント辞書のmoment記号が用いられるべきです. 両方の場合に, 演算子は, 最初の要素を次数として, 2番目の引数を原点として, その後のものをデータの集合または確率変数として, それぞれ受け取ります.
When rewriting to Strict Markup, the moment symbol from the s_data1 content
dictionary is used when the moment
element is applied
to an explicit list of arguments. When it is applied to a distribution, then the
moment symbol from the s_dist1 content
dictionary should be used. Both operators take
the degree as the first argument, the point as the second, followed by
the data set or random variable respectively.
<apply><moment/>
<degree><cn>3</cn></degree>
<momentabout><ci>p</ci></momentabout>
<ci>X</ci>
</apply>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<apply><csymbol cd="s_dist1">moment</csymbol>
<cn>3</cn>
<ci>p</ci>
<ci>X</ci>
</apply>
修飾要素をdomainofapplication
へ書き換えます. これらの決まりは, bvar
と修飾要素を使用している全てのapply
構造を, 一般的なdomainofapplication
修飾要素のみを使用した構造に書き換えます.
Rewrite Qualifiers to domainofapplication
.
These rules rewrite all apply
constructions
using bvar
and qualifiers to those using only
the general domainofapplication
qualifier.
interval
やlowlimit
/uplimit
として与えられる修飾要素を, 書き換え: interval 修飾要素を通して整数の範囲に書き換えます.
Rewrite qualifiers given as interval
and
lowlimit
/uplimit
to intervals of integers via Rewrite: interval qualifier.
<apply><ci>H</ci>
<bvar><ci>x</ci></bvar>
<lowlimit><ci>a</ci></lowlimit>
<uplimit><ci>b</ci></uplimit>
<ci>C</ci>
</apply>
<apply><ci>H</ci>
<bvar><ci>x</ci></bvar>
<domainofapplication>
<apply><csymbol cd="interval1">interval</csymbol>
<ci>a</ci>
<ci>b</ci>
</apply>
</domainofapplication>
<ci>C</ci>
</apply>
この変換で使用される記号は, ここでは<ci>H</ci>
で表記されている, 最初の関数の適用に依存します. 通常, 最初の式の意味が, より具体的な範囲記号によって決められたり, そのような記号を示していたりする場合を除いて, intervalが使用されるべきです. 特に, 様々なコンテントMathML要素が, より具体的な範囲記号と共に使用されるべきです. 最初の式がint
の場合, oriented_intervalが用いられます. 最初の式が, ssum
またはsproduct
の場合, integer_intervalが使用されるべきです.
The symbol used in this translation depends on the head of the
application, denoted by <ci>H</ci>
here. By default interval should be
used, unless the semantics of the head term can be determined and
indicate a more specific interval symbol. In particular, several
predefined Content MathML elements should be used with more specific
interval symbols. If the head is int
then oriented_interval is used. When the head term
is sum
or product
, integer_interval should be used.
lowlimit
修飾要素とuplimit
修飾要素をdomainofapplication
要素で置き換える上の手法は, interval
修飾要素を置き換えるときにも用いらます. interval
は, 直接bvar
の後に続く場合のみ修飾要素として解釈されます. 他の文脈では, interval
は, F.4.2 範囲, ベクトル, 行列の構築要素として解釈されます.
The above technique for replacing lowlimit
and uplimit
qualifiers
with a domainofapplication
element is also used for replacing the
interval
qualifier.
Note that interval
is only interpreted as a qualifier if it immediately
follows bvar
. In other contexts interval
is interpreted as a constructor, F.4.2 Intervals, vectors, matrices.
複数のcondition
修飾要素を, それらを連結することで単独のものに書き換えます. その結果として結合されたcondition
は, 書き換え: conditionの決まりによってdomainofapplication
に書き換えられます.
Rewrite multiple condition
qualifiers to a single one by taking their conjunction. The resulting
compound condition
is then rewritten to
domainofapplication
according to rule
Rewrite: condition.
condition
修飾要素は, 大きな適用範囲でのブール値の式を指定することや, 与えられた値が制限された適用範囲の中かどうか指定することで, 束縛変数を制限します. condition
要素は, 真値である条件を表す単独の子要素を含んでいます. 複雑な条件は, 条件の中で, and
のようなブール値の演算子を適用することで形作ります.
The condition
qualifier restricts a bound variable by specifying a
Boolean-valued expression on a larger domain, specifying whether a given value is
in the
restricted domain. The condition
element contains a single child that represents
the truth condition. Compound conditions are formed by applying Boolean operators
such as
and
in the condition.
condition
修飾要素を使用している式を, domainofapplication
を使用する式に書き換えるには次のようにします.
To rewrite an expression using the condition
qualifier as one using domainofapplication
,
<bvar><ci>x1</ci></bvar>
<bvar><ci>xn</ci></bvar>
<condition><ci>P</ci></condition>
この式は次のように書き換えられます.
is rewritten to
<bvar><ci>x1</ci></bvar>
<bvar><ci>xn</ci></bvar>
<domainofapplication>
<apply><csymbol cd="set1">suchthat</csymbol>
<ci>R</ci>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x1</ci></bvar>
<bvar><ci>xn</ci></bvar>
<ci>P</ci>
</bind>
</apply>
</domainofapplication>
apply
が, (ひょっとしたら元々はinterval
またはuplimit
/lowlimit
の組みとして表されていた)domainofapplication
を持っているとして, それらは<ci>R</ci>
を用いて表されます. 一方で<ci>R</ci>
は, 存在するなら4.2.2.2 <ci>
の厳格でない利用で指定された, 束縛変数のtype
属性によって決められる集合です. type
が指定されていない場合, 変換は, コンテント要素の識別子<ci>R</ci>
として指定されている適用範囲を導入します.
If the apply
has a domainofapplication
(perhaps originally expressed as
interval
or an uplimit
/lowlimit
pair) then that is used for
<ci>R</ci>
. Otherwise <ci>R</ci>
is a set determined by the type
attribute
of the bound variable as specified in 4.2.2.2 Non-Strict uses of <ci>
, if that is
present. If the type is unspecified, the translation introduces an unspecified domain
via
content identifier <ci>R</ci>
.
複数のdomainofapplication
修飾要素を, 指定された定義域の共通部分を用いることで, 単独のものに書き換えます.
Rewrite multiple domainofapplication
qualifiers to a single one by taking the intersection of the specified
domains.
集合やリストを, 書き換え: 複数項の集合やリスト domainofapplicationの決まりによって書き換えます.
Rewrite sets and lists by the rule Rewrite: n-ary setlist domainofapplication.
set
とlist
の利用は, 他の複数項の構築要素と同じ形式に従いますが, 厳格なコンテントMathMLに書き換えるとき, 通常の決まりとは異なるものが用いられます. これは, map記号が暗に, 必要とされる集合やリストを構築しているためです. また, apply_to_listは, この場合に必要ありません.
The use of set
and list
follows the same format
as other n-ary constructors, however when rewriting to Strict
Content MathML a variant of the usual rule is used, since the map
symbol implicitly constructs the required set or list, and apply_to_list is
not needed in this case.
これらの複数項の演算子を表している要素は, nary-setlist-constructor.class
構文形式で指定されます.
The elements representing these n-ary operators are
specified in the schema pattern nary-setlist-constructor.class
.
引数の一覧が明確に示されるならば, 書き換え: 要素の決まりが適用されます.
If the argument list is given explicitly, the Rewrite: element rule applies.
修飾要素が, 引数の一覧を指定するために利用される場合, 次の決まりが用いられます.
When qualifiers are used to specify the list of arguments, the following rule is used.
次に示す形式の式で, <set/>
は, 要素set
または要素list
のどちらかで, <ci>expression-in-x</ci>
は, 束縛変数を含む任意の式です.
An expression of the following form,
where <set/>
is either of the elements set
or list
and
<ci>expression-in-x</ci>
is an arbitrary expression involving the bound variable(s)
<set>
<bvar><ci>x</ci></bvar>
<domainofapplication><ci>D</ci></domainofapplication>
<ci>expression-in-x</ci>
</set>
この式は, 次のように書き換えられます.
is rewritten to
<apply><csymbol cd="set1">map</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</bind>
<ci>D</ci>
</apply>
<ci>D</ci>
が既に入れ物要素に対する適切な型の集合またはリストであり, <ci>expression-in-x</ci>
から創られたラムダ式が同一であるとき, 全ての入れ物要素は, 直接<ci>D</ci>
として書き換えられるべきことに注意して下さい.
Note that
when <ci>D</ci>
is already a set
or list of the appropriate type for the container element, and the lambda function
created
from <ci>expression-in-x</ci>
is
the identity, the entire container element should be rewritten
directly as <ci>D</ci>
.
set
の場合, コンテント辞書と記号の選択は, 引数のtype
属性の値に依存します. 通常, set記号が用いられますが, 引数のどれかがmultiset
の値であるtype
属性を持つならば, multiset記号が用いられます. set
でもmultiset
でもない値のtype
属性がある場合, set記号が使われるべきで, 引数は, 書き換え: 属性の決まりを使ってそれら自身のtype
属性を書き換えた型が付加されるべきです.
In the case of set
, the choice of Content
Dictionary and symbol depends on the value of the type
attribute of the arguments. By default the set symbol is used, but if one of the arguments has
type
attribute with value multiset
, the multiset symbol is used.
If there is a type
attribute with value other than set
or multiset
the set symbol should be used, and the arguments should be annotated with their type
by rewriting the type
attribute using the rule
Rewrite: attributes.
範囲, ベクトル, 行列, 行列の行を, F.3.1 範囲, 4.3.5.8 複数項の行列構築要素: <vector/>
, <matrix/>
, <matrixrow/>
で説明されているように書き換えます. どの修飾要素もdomainofapplication
に書き換えられ, さらに後の段階で書き換えられるであろうことに注意して下さい.
Rewrite interval, vectors, matrices, and matrix rows as
described in F.3.1 Intervals, 4.3.5.8 N-ary Matrix Constructors:
<vector/>
,
<matrix/>
,
<matrixrow/>
.
Note any qualifiers will have been rewritten to domainofapplication
and will be further rewritten in a later step.
厳格なマークアップでは, interval
要素は, interval1コンテント辞書の4つの記号の1つに対応付けられます. closure
の値がopen
であれば, interval
はinterval_ooに対応付けられます. 値がclosed
ならinterval
は記号interval_ccに, 値がopen-closed
ならinterval_ocに, 値がopen-closed
ならinterval_coに対応付けられます.
In Strict markup, the interval
element corresponds to one
of four symbols from the interval1 content
dictionary. If closure
has the value open
then
interval
corresponds to the
interval_oo.
With the value closed
interval
corresponds to the symbol
interval_cc,
with value open-closed
to
interval_oc, and with
closed-open
to
interval_co.
ラムダ式を, 書き換え: lambdaと書き換え: lambda domainofapplicationの決まりによって書き換えます.
Rewrite lambda expressions by the rules Rewrite: lambda and Rewrite: lambda domainofapplication.
lambda
要素が修飾要素を含んでいない場合, ラムダ式は, 直接bind
の式に変換されます.
If the lambda
element does not contain qualifiers, the
lambda expression is directly translated into a bind
expression.
<lambda>
<bvar><ci>x1</ci></bvar><bvar><ci>xn</ci></bvar>
<ci>expression-in-x1-xn</ci>
</lambda>
この式は, 次の厳格なコンテントMathMLに書き換えられます.
rewrites to the Strict Content MathML
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x1</ci></bvar><bvar><ci>xn</ci></bvar>
<ci>expression-in-x1-xn</ci>
</bind>
lambda
要素が修飾要素を含んでいて, 修飾要素がdomainofapplication
に書き換えられてもよい場合, ラムダ式は, lambdaで構成される関数の式に変換され, restrictionを用いて指定された範囲に制限されます.
If the lambda
element does contain qualifiers, the
qualifier may be rewritten to domainofapplication
and then the lambda expression is translated to a
function term constructed with lambda
and restricted to the specified domain using
restriction.
<lambda>
<bvar><ci>x1</ci></bvar><bvar><ci>xn</ci></bvar>
<domainofapplication><ci>D</ci></domainofapplication>
<ci>expression-in-x1-xn</ci>
</lambda>
この式は, 次の厳格なコンテントMathMLに書き換えられます.
rewrites to the Strict Content MathML
<apply><csymbol cd="fns1">restriction</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x1</ci></bvar><bvar><ci>xn</ci></bvar>
<ci>expression-in-x1-xn</ci>
</bind>
<ci>D</ci>
</apply>
区分的関数を, 4.3.10.5 区分的関数の定義 <piecewise>
, <piece>
, <otherwise>
で説明されているように書き換えます.
Rewrite piecewise functions as described in 4.3.10.5 Piecewise declaration <piecewise>
, <piece>
, <otherwise>
.
厳格なコンテントMathMLでは, 入れ物要素piecewise
, piece
, otherwise
は, piece1コンテント辞書の同じ名前の構築要素記号の適用に対応付けられます. これらの3つの要素(それぞれの記号)は一緒に使われるという事実とは関係なく, 厳格なマークアップへの対応付けは, すっきりしています.
In Strict Content MathML, the container elements
piecewise
, piece
and otherwise
are mapped
to applications of the constructor symbols of the same names in the
piece1 CD. Apart from the fact that these three
elements (respectively symbols) are used together, the mapping to
Strict markup is straightforward:
コンテントMathML
Content MathML
<piecewise>
<piece>
<cn>0</cn>
<apply><lt/><ci>x</ci><cn>0</cn></apply>
</piece>
<piece>
<cn>1</cn>
<apply><gt/><ci>x</ci><cn>1</cn></apply>
</piece>
<otherwise>
<ci>x</ci>
</otherwise>
</piecewise>
等価な厳格なコンテントMathML
Strict Content MathML equivalent
<apply><csymbol cd="piece1">piecewise</csymbol>
<apply><csymbol cd="piece1">piece</csymbol>
<cn>0</cn>
<apply><csymbol cd="relation1">lt</csymbol><ci>x</ci><cn>0</cn></apply>
</apply>
<apply><csymbol cd="piece1">piece</csymbol>
<cn>1</cn>
<apply><csymbol cd="relation1">gt</csymbol><ci>x</ci><cn>1</cn></apply>
</apply>
<apply><csymbol cd="piece1">otherwise</csymbol>
<ci>x</ci>
</apply>
</apply>
domainofapplication
修飾要素を使用した演算子に対する特別な状況の決まりを適用します. この段階は, 4.3 具体的な構造に対するコンテントMathMLで導入された演算子に対する特別な状況を処理します. 様々な種類の考慮が必要な特別な状況があります.
Apply Special Case Rules for Operators using domainofapplication
Qualifiers.
This step deals with the special cases for the operators introduced in
4.3 Content MathML for Specific Structures. There are different classes of special cases to be taken into account.
min
, max
, mean
や同じような単一項または複数項の演算子を, 書き換え: 複数項または単一項の演算子 集合, 書き換え: 複数項または単一項の演算子 domainofapplication, 書き換え: 複数項または単一項の演算子 単独の引数の決まりによって書き換えます.
Rewrite min
, max
, mean
and similar n-ary/unary operators
by the rules Rewrite: n-ary unary set, Rewrite: n-ary unary domainofapplication
and Rewrite: n-ary unary single.
演算子の種類nary-statsまたは種類nary-minmaxの要素<max/>
が, 0個, または2個, またはさらに多くの引数の明確な一覧<ci>a1</ci><ci>a2</ci><ci>an</ci>
に適用される場合を考えます.
When an element,
<max/>
, of class nary-stats or nary-minmax
is applied to an explicit
list of 0 or 2 or more arguments,
<ci>a1</ci><ci>a2</ci><ci>an</ci>
<apply><max/><ci>a1</ci><ci>a2</ci><ci>an</ci></apply>
この式は, <csymbol cd="set1" name="set"/>
記号を用いて構築される引数の集合に対する, 要素の構文の表で指定された記号<csymbol cd="minmax1" name="max"/>
の単一項の関数の適用に変換されます.
it is translated to the unary application of the symbol
<csymbol cd="minmax1" name="max"/>
as specified in the syntax table for the element to the set of
arguments, constructed using the
<csymbol cd="set1" name="set"/>
symbol.
<apply><csymbol cd="minmax1">max</csymbol>
<apply><csymbol cd="set1">set</csymbol>
<ci>a1</ci><ci>a2</ci><ci>an</ci>
</apply>
</apply>
全てのMathMLの複数項の演算子のように, 引数の一覧は, 暗に修飾要素を用いて指定されてもよいです. このことは, 次に示す決まりを用いて厳格なコンテントMathMLで表されます. その決まりは, 書き換え: 複数項の演算子 domainofapplicationの決まりに似ていますが, 引数で構築された集合に記号が直接適用される点で異なっており, apply_to_listを使用する必要がありません.
Like all MathML n-ary operators, the list of arguments may be specified implicitly using qualifier elements. This is expressed in Strict Content MathML using the following rule, which is similar to the rule Rewrite: n-ary domainofapplication but differs in that the symbol can be directly applied to the constructed set of arguments and it is not necessary to use apply_to_list.
次の形式の式があるとします. <max/>
が何らかの関係演算子の種類の要素を表しており, <ci>expression-in-x</ci>
は束縛変数を含む任意の式です.
An expression of the following form,
where <max/>
represents any
element of the relevant class and
<ci>expression-in-x</ci>
is an arbitrary expression involving the bound variable(s)
<apply><max/>
<bvar><ci>x</ci></bvar>
<domainofapplication><ci>D</ci></domainofapplication>
<ci>expression-in-x</ci>
</apply>
この式は, 次のように書き換えられます.
is rewritten to
<apply><csymbol cd="minmax1">max</csymbol>
<apply><csymbol cd="set1">map</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</bind>
<ci>D</ci>
</apply>
</apply>
<ci>D</ci>
が明確に集合で, <ci>expression-in-x</ci>
から構築されるラムダ式がいつも同じならば, domainofapplication
の項は, <ci>D</ci>
で直接書き換えられるべきことに注意して下さい.
Note that
when <ci>D</ci>
is already a set
and the lambda function created from <ci>expression-in-x</ci>
is
the identity, the domainofapplication
term should be
rewritten directly
as <ci>D</ci>
.
要素が単独の引数に適用される場合, set記号は使われず, 要素に対する記号が直接引数に適用されます.
If the element is applied to a single argument the set symbol is not used and the symbol is applied directly to the argument.
種類nary-statsまたは種類nary-minmaxの要素<max/>
が単独の引数に適用されるとします.
When an element,
<max/>
, of class nary-stats or nary-minmax
is applied to a single argument,
<apply><max/><ci>a</ci></apply>
この式は, 要素の構文の表に基づいて, 単一項の記号の適用に変換されます.
it is translated to the unary application of the symbol in the syntax table for the element.
<apply><csymbol cd="minmax1">max</csymbol> <ci>a</ci> </apply>
注意: MathMLの初期のバージョンは, この種類の要素の正確な解釈をはっきりさせておらず, max(X)といった式が, 単集合に対する最大関数の適用なのか, もしくは集合Xの最大値を意味するものと解釈されるべきか, 定義しないままにしていました. 書き換え: 複数項または単一項の演算子 単独の引数の決まりを, 提供された引数がスカラーなので適用できないと判断したソフトウェアは, エラーの回復のために書き換え: 複数項または単一項の演算子 集合の決まりを使おうとしてもよいです. より困難なことに, 統計関数の場合に用いられるコンテント辞書は, 明確なデータの集合または分布を表す確立変数としての, 引数の望まれた解釈に依存します.
Note: Earlier versions of MathML were not explicit about the correct interpretation of elements in this class, and left it undefined as to whether an expression such as max(X) was a trivial application of max to a singleton, or whether it should be interpreted as meaning the maximum of values of the set X. Applications finding that the rule Rewrite: n-ary unary single can not be applied as the supplied argument is a scalar may wish to use the rule Rewrite: n-ary unary set as an error recovery. As a further complication, in the case of the statistical functions the Content Dictionary to use in this case depends on the desired interpretation of the argument as a set of explicit data or a random variable representing a distribution.
domainofapplication
を伴う量化記号forall
と量化記号exists
を, 書き換え: 量化記号の決まりによって, 含意と結合を用いた式に書き換えます.
Rewrite the quantifiers forall
and exists
used with domainofapplication
to expressions using implication and conjunction by the rule Rewrite: quantifier.
修飾要素無しでbind
と用いられる場合, 厳格なコンテントMathMLでの解釈は単純です. 一般に, apply
または修飾要素と用いられる場合, 厳格なコンテントMathMLでの解釈は, 次の決まりを通して行われます.
If used with bind
and no qualifiers,
then the interpretation in Strict Content MathML is simple. In general
if used with apply
or qualifiers, the interpretation in
Strict Content MathML is via the following rule.
次の形式の式があり, <exists/>
が量化記号
という演算子の種類の要素を示しており, <ci>expression-in-x</ci>
は束縛変数を含む任意の式です.
An expression of following form where
<exists/>
denotes an element of
class quantifier
and
<ci>expression-in-x</ci>
is an arbitrary expression involving the bound variable(s)
<apply><exists/>
<bvar><ci>x</ci></bvar>
<domainofapplication><ci>D</ci></domainofapplication>
<ci>expression-in-x</ci>
</apply>
この式は, 次のように書き換えられます.
is rewritten to an expression
<bind><csymbol cd="quant1">exists</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="set1">in</csymbol><ci>x</ci><ci>D</ci></apply>
<ci>expression-in-x</ci>
</apply>
</bind>
ここで, 記号<csymbol cd="quant1">exists</csymbol>
と記号<csymbol cd="logic1">and</csymbol>
は, 要素の構文の式で指定されたものです. (exists
の場合にand, forall
の場合にimpliesとなる追加の記号が必要です.) domainofapplication
が1つも存在しないならば, 論理的な結合は必要なく, 直接変換されます.
where the symbols
<csymbol cd="quant1">exists</csymbol>
and
<csymbol cd="logic1">and</csymbol>
are as specified in the syntax table of the element.
(The additional symbol being
and in the case of exists
and
implies in the case of forall
.) When no
domainofapplication
is present, no logical conjunction is necessary, and the translation
is direct.
forall
要素がcondition
修飾要素と一緒に使用される場合, 等価な厳格なマークアップは, 書き換え: 量化記号の決まりによる論理的含意に手助けされながら構築されます.
When the forall
element is used with a condition
qualifier the
strict equivalent is constructed with the help of logical implication by the rule
Rewrite: quantifier. Thus
<bind><forall/>
<bvar><ci>p</ci></bvar>
<bvar><ci>q</ci></bvar>
<condition>
<apply><and/>
<apply><in/><ci>p</ci><rationals/></apply>
<apply><in/><ci>q</ci><rationals/></apply>
<apply><lt/><ci>p</ci><ci>q</ci></apply>
</apply>
</condition>
<apply><lt/>
<ci>p</ci>
<apply><power/><ci>q</ci><cn>2</cn></apply>
</apply>
</bind>
よって, この式は次のように変換されます.
translates to
<bind><csymbol cd="quant1">forall</csymbol>
<bvar><ci>p</ci></bvar>
<bvar><ci>q</ci></bvar>
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="set1">in</csymbol>
<ci>p</ci>
<csymbol cd="setname1">Q</csymbol>
</apply>
<apply><csymbol cd="set1">in</csymbol>
<ci>q</ci>
<csymbol cd="setname1">Q</csymbol>
</apply>
<apply><csymbol cd="relation1">lt</csymbol><ci>p</ci><ci>q</ci></apply>
</apply>
<apply><csymbol cd="relation1">lt</csymbol>
<ci>p</ci>
<apply><csymbol cd="arith1">power</csymbol>
<ci>q</ci>
<cn>2</cn>
</apply>
</apply>
</apply>
</bind>
domainofapplication
要素と(状況に応じてbvar
と)一緒に使用される積分を, 書き換え: intと書き換え: defintの決まりによって書き換えます. F.2.2 積分を参照して下さい.
Rewrite integrals used with a domainofapplication
element (with or without a bvar
)
according to the rules Rewrite: int and
Rewrite: defint. See F.2.2 Integrals.
domainofapplication
要素と(状況に応じてbvar
と)一緒に使用される総和と総積を, 4.3.5.2 複数項の総和 <sum/>
と4.3.5.3 複数項の総積 <product/>
で説明されているように書き換えます. F.2.4 総和と総積を参照して下さい.
Rewrite sums and products used with a domainofapplication
element
(with or without a bvar
) as described in
4.3.5.2 N-ary Sum <sum/>
and 4.3.5.3 N-ary Product <product/>
.
See F.2.4 Sums and Products.
この段階で, どのapply
も多くて1つのdomainofapplication
子要素を持っており, 特別な場合は処理されてきています. domainofapplication
は, 厳格なコンテントMathMLではないことから, 後で示す状況の1つとして書き換えられます.
At this stage, any
apply
has at most one domainofapplication
child and special cases have been addressed. As
domainofapplication
is not Strict Content MathML, it is rewritten as one of the following cases.
上の決まりを適用することで, interval
, condition
, uplimit
, lowlimit
を用いた式は, domainofapplication
のみを用いて書き換えられるでしょう. 一度domainofapplication
が得られたならば, 厳格なマークアップへの最終的な結び付けは, 次の決まりを用いて成し遂げられます.
By applying the rules above, expressions using the
interval
,
condition
,
uplimit
and
lowlimit
can be rewritten using only
domainofapplication
. Once a
domainofapplication
has
been obtained, the final mapping to Strict markup is accomplished
using the following rules:
apply
がbvar
子要素を含んでいない場合, 書き換え: 制限の決まりを通して, 制限された関数の適用に書き換えられます.
Into an application of a restricted function via the rule
Rewrite: restriction if the apply
does not contain
a bvar
child.
(束縛変数を伴わないapply
で表される)domainofapplication
修飾要素によって修飾された関数の適用は, restriction記号によって構成される関数の適用の式に変換されます.
An application of a function that is qualified by the
domainofapplication
qualifier (expressed by an apply
element without
bound variables) is converted to an application of a function term constructed with
the
restriction symbol.
<apply><ci>F</ci>
<domainofapplication>
<ci>C</ci>
</domainofapplication>
<ci>a1</ci>
<ci>an</ci>
</apply>
この式は次のように書き換えられてもよいです.
may be written as:
<apply>
<apply><csymbol cd="fns1">restriction</csymbol>
<ci>F</ci>
<ci>C</ci>
</apply>
<ci>a1</ci>
<ci>an</ci>
</apply>
関係演算子と一緒に使用される場合, 書き換え: 複数項の関係演算子と書き換え: 複数項の関係演算子 bvarの決まりを通して, predicate_on_list記号の適用に書き換えられます.
Into an application of the predicate_on_list symbol via the rules Rewrite: n-ary relations and Rewrite: n-ary relations bvar if used with a relation.
次の形式の式があるとします.
An expression of the form
<apply><lt/>
<ci>a</ci><ci>b</ci><ci>c</ci><ci>d</ci>
</apply>
この式は, 次の厳格なコンテントMathMLに書き換えられます.
rewrites to Strict Content MathML
<apply><csymbol cd="fns2">predicate_on_list</csymbol>
<csymbol cd="reln1">lt</csymbol>
<apply><csymbol cd="list1">list</csymbol>
<ci>a</ci><ci>b</ci><ci>c</ci><ci>d</ci>
</apply>
</apply>
次の形式の式があるとします.
An expression of the form
<apply><lt/>
<bvar><ci>x</ci></bvar>
<domainofapplication><ci>R</ci></domainofapplication>
<ci>expression-in-x</ci>
</apply>
<ci>expression-in-x</ci>
が束縛変数を含む任意の式であるならば, この式は, 次の厳格なコンテントMathMLに書き換えられます.
where
<ci>expression-in-x</ci>
is an arbitrary expression involving the bound variable, rewrites to the Strict Content
MathML
<apply><csymbol cd="fns2">predicate_on_list</csymbol>
<csymbol cd="reln1">lt</csymbol>
<apply><csymbol cd="list1">map</csymbol>
<ci>R</ci>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</bind>
</apply>
</apply>
上の決まりは, 種類nary-reln.class
と種類nary-set-reln.class
の全ての記号に適用されます. 後者の場合には, 用いられるコンテント辞書の選択は, 記号のtype
属性に依存し, 通常はset1が, type
=multiset
の場合はmultiset1が使用されるべきです.
The above rules apply to all symbols in classes nary-reln.class
and nary-set-reln.class
. In the latter case the choice of Content
Dictionary to use depends on the type
attribute on the
symbol, defaulting to set1, but multiset1
should be used if type
=multiset
.
一般的な複数項の演算子の場合, 書き換え: 複数項の演算子 domainofapplicationの一般的な決まりを通して, apply_to_list記号を伴う構造に書き換えられます.
Into a construction with the apply_to_list symbol via the general rule Rewrite: n-ary domainofapplication for general n-ary operators.
引数の一覧が明確に示されるならば, 書き換え: 要素の決まりが適用されます.
If the argument list is given explicitly, the Rewrite: element rule applies.
どの修飾要素の利用も, 次の決まりで示したapply_to_list記号を用いて, 引数の一覧に関数をはっきりと適用することによって, 厳格なコンテントMathMLで表されます. 前に説明したようにdomainofapplication
以外の修飾要素はdomainofapplication
に書き換えられてもよいことから, この決まりは, domainofapplication
修飾要素のみを考慮しています.
Any use of qualifier elements is expressed in Strict Content
MathML via explicitly applying the function to a list of arguments
using the apply_to_list symbol as shown
in the following rule. The rule only considers the
domainofapplication
qualifier as other qualifiers may be
rewritten to domainofapplication
as described earlier.
次に示す形式の式で, <union/>
は, 関数の種類を表す何らかの要素で, <ci>expression-in-x</ci>
は, 束縛変数を含む任意の式です.
An expression of the following form,
where <union/>
represents any
element of the relevant class and
<ci>expression-in-x</ci>
is an arbitrary expression involving the bound variable(s)
<apply><union/>
<bvar><ci>x</ci></bvar>
<domainofapplication><ci>D</ci></domainofapplication>
<ci>expression-in-x</ci>
</apply>
この式は, 次のように書き換えられます.
is rewritten to
<apply><csymbol cd="fns2">apply_to_list</csymbol>
<csymbol cd="set1">union</csymbol>
<apply><csymbol cd="list1">map</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>expression-in-x</ci>
</bind>
<ci>D</ci>
</apply>
</apply>
上の決まりは, 一覧にされた演算子の種類の全ての記号に適用されます. nary-set.class
の場合, 使用されるコンテント辞書の選択は, 引数のtype
属性に依存し, 通常はset1が, type
=multiset
の場合はmultiset1が使用されるべきです.
The above rule applies to all symbols in the listed classes.
In the case of nary-set.class
the choice of Content
Dictionary to use depends on the type
attribute on the
arguments, defaulting to set1, but multiset1
should be used if type
=multiset
.
vector
といった, nary-constructor.class
の中の要素は, 引数と修飾要素を, 囲っているapply
の子要素ではなく, その要素自身の子要素として示す構築要素の構文を使用することに注意して下さい. この場合, 上の決まりは, 類似した構文上の修飾と一緒に適用されます.
Note that the members of the nary-constructor.class
, such
as vector
, use constructor syntax where the arguments and
qualifiers are given as children of the element rather than as
children of a containing apply
. In this case, the above rules apply
with the analogous syntactic modifications.
書き換え: apply bvar domainofapplicationの決まりを通して, 束縛変数を伴うapply
の中の, set1コンテント辞書のsuchthat記号を用いた構造に書き換えられます.
Into a construction using the suchthat symbol
from the set1 content dictionary in an apply
with bound
variables via the Rewrite: apply bvar domainofapplication rule.
一般に, 束縛変数や(おそらく)domainofapplication
を含む関数の適用は, 適用範囲を関数の最初に位置する引数とし, 変数の束縛をコード化するのにラムダ式を使用する, 次に示す決まりを用いて書き換えられます. この種類の演算子は, 後で説明する代わりの決まりが適用されます.
In general, an application involving bound variables and (possibly)
domainofapplication
is rewritten using the following rule,
which makes the domain the first positional argument of the application,
and uses the lambda symbol to encode the variable bindings.
Certain classes of operator have alternative rules, as described below.
束縛変数やdomainofapplication
を含むコンテントMathMLの式があるとします.
A content MathML expression with bound variables and
domainofapplication
<apply><ci>H</ci>
<bvar><ci>v1</ci></bvar>
...
<bvar><ci>vn</ci></bvar>
<domainofapplication><ci>D</ci></domainofapplication>
<ci>A1</ci>
...
<ci>Am</ci>
</apply>
この式は次のように書き換えられます.
is rewritten to
<apply><ci>H</ci>
<ci>D</ci>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>v1</ci></bvar>
...
<bvar><ci>vn</ci></bvar>
<ci>A1</ci>
</bind>
...
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>v1</ci></bvar>
...
<bvar><ci>vn</ci></bvar>
<ci>Am</ci>
</bind>
</apply>
1つもdomainofapplication
修飾要素が無い時, 子要素<ci>D</ci>
は省略されます.
If there is no domainofapplication
qualifier the <ci>D</ci>
child is
omitted.
厳格でない素子要素を書き換えます.
Rewrite non-strict token elements
type
属性がe-notation
, rational
, complex-cartesian
, complex-polar
, constant
のいずれか1つであるcn
要素として表された数字を, 書き換え: cn sep, 書き換え: cn based_integer, 書き換え: cn constantの決まりを通して, 厳格なcn
に書き換えます.
Rewrite numbers represented as cn
elements where the type
attribute is one of e-notation
, rational
,
complex-cartesian
, complex-polar
,
constant
as strict cn
via rules
Rewrite: cn sep, Rewrite: cn based_integer
and Rewrite: cn constant.
cn
の子要素sep
があるとき, 現れた文字列はcn
要素として書き換えられてもよいです. sep
を含むcn
要素がbase
属性も持っている場合, base
属性は, 下で示すように, 書き換え後の記号の各引数cn
に複写されます.
If there are sep
children of the cn
,
then intervening text may be rewritten as cn
elements. If the cn
element containing sep
also has a base
attribute, this is copied to each
of the cn
arguments of the resulting symbol, as
shown below.
<cn type="rational" base="b">n<sep/>d</cn>
この式は次のように書き換えられます.
is rewritten to
<apply><csymbol cd="nums1">rational</csymbol>
<cn type="integer" base="b">n</cn>
<cn type="integer" base="b">d</cn>
</apply>
書き換え後に使用される記号は, type
属性に応じて次の表のようになります.
The symbol used in the result depends on the type
attribute according to the following table:
type属性 type attribute |
OpenMath記号 OpenMath Symbol |
e-notation | bigfloat |
rational | rational |
complex-cartesian | complex_cartesian |
complex-polar | complex_polar |
注意: bigfloatの場合, 記号は3つの引数を持ち, <cn type="integer">10</cn>
が, 使われている指数の底を示すのに, 2番目の引数として挿入されるべきです.
Note: In the case of bigfloat the symbol
takes three arguments, <cn type="integer">10</cn>
should be inserted as the second argument, denoting the base of the exponent used.
type
属性が別の値を持つか, 複数の<sep/>
要素がある場合, 現れた式は上のように変換されますが, 関数の適用における最初の引数に対する, ソフトウェア固有の記号の選択がされなければなりません.
If the type
attribute has a different value,
or if there is more than one <sep/>
element,
then the intervening expressions are converted as above,
but a system-dependent choice of symbol for the head of the application must be used.
base属性が使われている場合, 書き換えられた式は, 厳格なコンテントMathMLではなく, 各引数は再帰的に処理される必要があります.
If a base attribute has been used then the resulting expression is not Strict Content MathML, and each of the arguments needs to be recursively processed.
10以外のbase属性を持つcn
要素は, 次のように書き換えられます.
A cn
element with a base attribute other than 10 is rewritten as follows. (A base attribute
with value 10 is simply removed.)
<cn type="integer" base="16">FF60</cn>
<apply><csymbol cd="nums1">based_integer</csymbol>
<cn type="integer">16</cn>
<cs>FF60</cs>
</apply>
元々の要素がtype属性をinteger
に指定していたり, type属性は無いが, 要素の内容が単に文字[a-zA-Z0-9]と空白で構成されていたりする場合, 書き換えられた関数の適用の先頭で使われる記号は, 示したようにbased_integerであるべきです. そうでない場合, based_floatが使われるべきです.
If the original element specified type integer
or if there is no type attribute, but the content of the
element just consists of the characters [a-zA-Z0-9] and white space
then the symbol used as the head in the resulting application should
be based_integer as shown. Otherwise it
should be based_float.
厳格なコンテントMathMLでは, 定数はcsymbol
要素を使用して表現すべきです. 数々の重要な定数がnums1コンテント辞書で定義されています. 書き方の例は次のとおりです.
In Strict Content MathML, constants should be represented using
csymbol
elements. A number of important constants are defined in the
nums1 content dictionary. An expression of the form
<cn type="constant">c</cn>
これと等価な厳格なコンテントMathMLは次のとおりです.
has the Strict Content MathML equivalent
<csymbol cd="nums1">c2</csymbol>
c
に対応するc2
は, 次の表で指定されているとおりです.
where c2
corresponds to c
as specified in the following table.
内容 Content |
説明 Description |
OpenMath記号 OpenMath Symbol |
U+03C0 (π ) |
三角法の通常のπ. およそ3.141592653... The usual π of trigonometry: approximately 3.141592653... |
pi |
U+2147 (ⅇ or ⅇ ) |
自然対数の底. およそ2.718281828... The base for natural logarithms: approximately 2.718281828... |
e |
U+2148 (ⅈ or ⅈ ) |
-1の平方根 Square root of -1 |
i |
U+03B3 (γ ) |
オイラーの定数. およそ0.5772156649... Euler's constant: approximately 0.5772156649... |
gamma |
U+221E (∞ or &infty; ) |
無限. 適切な解釈は文脈によって変わる Infinity. Proper interpretation varies with context |
infinity |
プレゼンテーションMathMLを含んでいる何らかのci
, csymbol
, cn
を, 書き換え: cn プレゼンテーションMathMLと書き換え: ci プレゼンテーションMathMLの決まりと, csymbol
に対する類似した決まりによって, semantics
要素に書き換えます.
Rewrite any ci
, csymbol
or cn
containing
presentation MathML to semantics
elements with rules
Rewrite: cn presentation mathml and Rewrite: ci presentation mathml and
the analogous rule for csymbol
.
cn
がプレゼンテーションMathMLのマークアップを含んでいる場合, 構築要素の引数が提供されたプレゼンテーションMathMLを付加したci
要素になるという, 上の決まりの変形した形式を用いて, 厳格なコンテントMathMLに書き換えられてもよいです.
If the cn
contains Presentation MathML markup, then it may
be rewritten to Strict MathML using variants of the rules above where
the arguments of the constructor are ci
elements annotated
with the supplied Presentation MathML.
文字列でない内容の次の形式のcn
の式があるとします.
A cn
expression with non-text content of the form
<cn type="rational"><mi>P</mi><sep/><mi>Q</mi></cn>
この式は, 次のように書き換えることで厳格なコンテントMathMLに変換されます.
is transformed to Strict Content MathML by rewriting it to
<apply><csymbol cd="nums1">rational</csymbol>
<semantics>
<ci>p</ci>
<annotation-xml encoding="MathML-Presentation">
<mi>P</mi>
</annotation-xml>
</semantics>
<semantics>
<ci>q</ci>
<annotation-xml encoding="MathML-Presentation">
<mi>Q</mi>
</annotation-xml>
</semantics>
</apply>
識別子が名付けられる場合, (文字列でなければならない)pとqは, プレゼンテーションMathMLの内容から, ソフトウェアが定義した方法で, ひょっとしたら上の例のように要素のマークアップを無視した要素の文字データを使用して, 決められるべきでしょう. そのような書き換えを行うソフトウェアは, 同じプレゼンテーションMathMLの内容を使用した構造が同じci
を用いたsemantics
要素に書き換えられることを確実にすべきです. 逆に言えば, (プレゼンテーション要素が同じ文字データを持っていたとしても)異なるMathMLを使用した構造は, 違う識別子に書き換えられるべきです.
Where the identifier names, p and q, (which have to be a text string) should be
determined from the presentation MathML content, in a system defined way, perhaps
as
in the above example by taking the character data of the element ignoring any element
markup. Systems doing such rewriting should ensure that constructs using the same
Presentation MathML content are rewritten to semantics
elements using the
same ci
, and that conversely constructs that use different MathML should be
rewritten to different identifier names (even if the Presentation MathML has the
same character data).
関連する特別な例として, cn
要素が厳格なコンテントMathMLの利用で認められていない文字データ, 例えば数字やアルファベットでない文字を含んでいる場合が挙げられます. 概念上, このことは, プレゼンテーションマークアップのmtext
要素を含むcn
要素に類似しており, そのため書き換えることができます. しかしながら, 書き換えられた付加情報は, 追加の描画情報を含まないであろうことから, そのようなデータは, semantics
構造としてよりも, 直接ci
要素として書き換えられるべきです.
A related special case arises when a cn
element
contains character data not permitted in Strict Content MathML
usage, e.g. non-digit, alphabetic characters. Conceptually, this is
analogous to a cn
element containing a presentation
markup mtext
element, and could be rewritten accordingly.
However, since the resulting annotation would contain no additional
rendering information, such instances should be rewritten directly
as ci
elements, rather than as a semantics
construct.
ci
要素は, 現在ユニコードで利用できない文字を参照するmglyph
要素, または描画に利用される(4.1.2 コンテントマークアップの式参照)一般的な構造のプレゼンテーションマークアップ(3.1.8 プレゼンテーション要素の概要参照)を含むことができます.
The ci
element can contain
mglyph
elements to refer to characters not currently available in Unicode, or a
general presentation construct (see 3.1.8 Summary of Presentation Elements), which is used for
rendering (see 4.1.2 Content Expressions).
文字列でない内容の次の形式のci
の式があるとします.
A ci
expression with non-text content of the form
<ci><mi>P</mi></ci>
この式は, 次のように書き換えることで厳格なコンテントMathMLに変換されます.
is transformed to Strict Content MathML by rewriting it to
<semantics>
<ci>p</ci>
<annotation-xml encoding="MathML-Presentation">
<mi>P</mi>
</annotation-xml>
</semantics>
識別子が名付けられる場合, (文字列でなければならない)pとqは, プレゼンテーションMathMLの内容から, ソフトウェアが定義した方法で, ひょっとしたら上の例のように要素のマークアップを無視した要素の文字データを使用して, 決められるべきでしょう. そのような書き換えを行うソフトウェアは, 同じプレゼンテーションMathMLの内容を使用した構造が同じci
を用いたsemantics
要素に書き換えられることを確実にすべきです. 逆に言えば, (プレゼンテーション要素が同じ文字データを持っていたとしても)異なるMathMLを使用した構造は, 違う識別子に書き換えられるべきです.
Where the identifier name, p, (which has to be a text string) should be
determined from the presentation MathML content, in a system defined way, perhaps
as
in the above example by taking the character data of the element ignoring any element
markup. Systems doing such rewriting should ensure that constructs using the same
Presentation MathML content are rewritten to semantics
elements using the
same ci
, and that conversely constructs that use different MathML should be
rewritten to different identifier names (even if the Presentation MathML has the
same character data).
次の例は, 視覚的にC2を表示させる微小な記号をコード化したもので, 内容の目的に応じて単独の記号として扱われます.
The following example encodes an atomic symbol that displays visually as C2 and that, for purposes of content, is treated as a single symbol
<ci>
<msup><mi>C</mi><mn>2</mn></msup>
</ci>
これと等価な厳格なコンテントMathMLは次のとおりです.
The Strict Content MathML equivalent is
<semantics>
<ci>C2</ci>
<annotation-xml encoding="MathML-Presentation">
<msup><mi>C</mi><mn>2</mn></msup>
</annotation-xml>
</semantics>
4.3 具体的な構造に対するコンテントMathMLで定義された何らかの残りの演算子を, 書き換え: 要素の決まりによって, 構文の表で指定された記号を参照するcsymbol
に書き換えます.
Rewrite any remaining operator defined in 4.3 Content MathML for Specific Structures
to a csymbol
referencing the symbol identified in the syntax table by the rule
Rewrite: element.
例えば, 次の式があるとします.
For example,
<plus/>
この式は, 次の厳格な形式と等価です.
is equivalent to the Strict form
<csymbol cd="arith1">plus</csymbol>
各演算子要素の説明で述べたように, 記号の適切な選択を決めるための, 特別な状況の決まりを必要とする演算子もあります. 特に注意すべき状況は次の場合です.
As noted in the descriptions of each operator element, some operators require special case rules to determine the proper choice of symbol. Some cases of particular note are:
selector
演算子の引数の順番は, 書き換えられなければならず, 記号は, 引数の型によって決まります.
The order of the arguments for the
selector
operator must be
rewritten, and the symbol depends on the type of the arguments.
minus
演算子に対する記号の選択は, 引数の数, すなわち二項演算子minus
なのか単一項の演算子minus
なのかによって決まります.
The choice of symbol for the minus
operator depends on the number of the arguments, minus
or minus
.
集合の演算子に対する記号の選択は, 引数のtype
の値によって決まります.
The choice of symbol for some set operators depends on the values of
the type
of the arguments.
統計の演算子に対する記号の選択は, 引数の型の値によって決まります.
The choice of symbol for some statistical operators depends on the values of the types of the arguments.
emptyset
要素に対する記号の選択は, 文脈によって決まります.
The choice of symbol for the emptyset
element depends on context.
minus
要素は, 単一項の算術演算子としても(つまり, - xを表すためにも), または二項算術演算子としても(つまり, x- yを表すためにも)利用されるでしょう.
The minus
element can be used as a unary arithmetic operator
(e.g. to represent - x), or as a binary arithmetic operator
(e.g. to represent x- y).
この要素が1つの引数と一緒に使用される場合, minus
はunary_minus記号に対応します.
If it is used with one argument, minus
corresponds to the unary_minus symbol.
この要素が2つの引数と一緒に利用される場合, minus
はminus記号に対応します.
If it is used with two arguments, minus
corresponds to the
minus symbol
どちらの場合も, 厳格なコンアテントマークアップへの変換は直接, 書き換え: 要素で述べたように行われます. このことは, 単に実際の利用を反映した記号を選ぶだけの問題です.
In both cases, the translation to Strict Content markup is direct, as described in Rewrite: element. It is merely a matter of choosing the symbol that reflects the actual usage.
厳格なコンテントMathMLに変換する場合, type
が値multiset
を持つならば, 代わりにmultiset1のin記号が用いられるべきです.
When translating to Strict Content Markup, if the type
has value multiset
, then the in symbol from multiset1 should
be used instead.
厳格なコンテントMathMLに変換する場合, type
が値multiset
を持つならば, 代わりにmultiset1のnotin記号が用いられるべきです.
When translating to Strict Content Markup, if the type
has value multiset
, then
the notin symbol from multiset1 should be used instead.
厳格なコンテントMathMLに変換する場合, type
が値multiset
を持つならば, 代わりにmultiset1のsubset記号が用いられるべきです.
When translating to Strict Content Markup, if the type
has value multiset
, then
the subset symbol from multiset1 should be used instead.
厳格なコンテントMathMLに変換する場合, type
が値multiset
を持つならば, 代わりにmultiset1のprsubset記号が用いられるべきです.
When translating to Strict Content Markup, if the type
has value multiset
, then
the prsubset symbol from multiset1 should be used instead.
厳格なコンテントMathMLに変換する場合, type
が値multiset
を持つならば, 代わりにmultiset1のnotsubset記号が用いられるべきです.
When translating to Strict Content Markup, if the type
has value multiset
, then
the notsubset symbol from multiset1 should be used instead.
厳格なコンテントMathMLに変換する場合, type
が値multiset
を持つならば, 代わりにmultiset1のnotprsubset記号が用いられるべきです.
When translating to Strict Content Markup, if the type
has value multiset
, then
the notprsubset symbol from multiset1 should be used instead.
厳格なコンテントMathMLに変換する場合, type
が値multiset
を持つならば, 代わりにmultiset1のsetdiff記号が用いられるべきです.
When translating to Strict Content Markup, if the type
has value multiset
, then
the setdiff symbol from multiset1 should be used instead.
厳格なコンテントMathMLに変換する場合, type
が値multiset
を持つならば, 代わりにmultiset1のsize記号が用いられるべきです.
When translating to Strict Content Markup, if the type
has value multiset
, then the size symbol from multiset1 should be used
instead.
mean
要素が引数の明確な一覧に適用される場合, 厳格なコンテントマークアップへの変換は, 書き換え: 要素で説明したように, s_data1コンテント辞書のmean記号を直接使用します. この要素が度数分布に適用される場合, s_dist1コンテント辞書のmean記号が使用されるべきです. 修飾要素と一緒の場合には, 書き換え: 複数項の演算子 domainofapplicationを注意事項も含め使用します.
When the mean
element is applied to an explicit list of arguments, the
translation to Strict Content markup is direct, using the mean symbol from the s_data1 content dictionary, as described in
Rewrite: element. When it is applied to a distribution, then the
mean symbol from the s_dist1 content
dictionary should be used. In the case with qualifiers use Rewrite: n-ary domainofapplication
with the same caveat.
sdev
要素が引数の明確な一覧に適用される場合, 厳格なコンテントマークアップへの変換は, 書き換え: 要素で説明したように, s_data1コンテント辞書のsdev記号を直接使用します. この要素が度数分布に適用される場合, s_dist1コンテント辞書のsdev記号が使用されるべきです. 修飾要素と一緒の場合には, 書き換え: 複数項の演算子 domainofapplicationを注意事項も含め使用します.
When the sdev
element is applied to an explicit list of arguments, the
translation to Strict Content markup is direct, using the sdev
symbol from the s_data1 content dictionary, as described in
Rewrite: element. When it is applied to a distribution, then the
sdev symbol from the s_dist1 content
dictionary should be used. In the case with qualifiers use
Rewrite: n-ary domainofapplication with the same caveat.
variance
要素が引数の明確な一覧に適用される場合, 厳格なコンテントマークアップへの変換は, 書き換え: 要素で説明したように, s_data1コンテント辞書のvariance記号を直接使用します. この要素が度数分布に適用される場合, s_dist1コンテント辞書のvariance記号が使用されるべきです. 修飾要素と一緒の場合には, 書き換え: 複数項の演算子 domainofapplicationを注意事項も含め使用します.
When the variance
element is applied to an explicit list of arguments, the
translation to Strict Content markup is direct, using the variance
symbol from the s_data1 content dictionary, as described in
Rewrite: element. When it is applied to a distribution, then the
variance symbol from the s_dist1 content
dictionary should be used. In the case with qualifiers use Rewrite: n-ary domainofapplication
with the same caveat.
median
要素が引数の明確な一覧に適用される場合, 厳格なコンテントマークアップへの変換は, 書き換え: 要素で説明したように, s_data1コンテント辞書のmedian記号を直接使用します.
When the median
element is applied to an explicit list of arguments, the
translation to Strict Content markup is direct, using the median
symbol from the s_data1 content dictionary, as described in
Rewrite: element.
mode
要素が引数の明確な一覧に適用される場合, 厳格なコンテントマークアップへの変換は, 書き換え: 要素で説明したように, _data1コンテント辞書のmode記号を直接使用します.
When the mode
element is applied to an explicit list of arguments, the
translation to Strict Content markup is direct, using the mode
symbol from the s_data1 content dictionary, as described in
Rewrite: element.
状況によっては, emptyset
がmultiset1コンテント辞書のemptyset記号に対応することは, 文脈から明らかであってもよいです. しかしながら, このことを明確に示す方法は, 著者には付加情報を付け加えるほかにないことから, set1コンテント辞書のeemptyset記号に変換することがいつでも無難です.
In some situations, it may be clear from context that emptyset
corresponds to the emptyset symbol from the multiset1 content dictionary.
However, as there is no method other than annotation for an author to explicitly indicate
this,
it is always acceptable to translate to the emptyset symbol from the set1 content dictionary.
この時点で, type
を持つ全ての要素は, ci
とcsymbol
を除いて, 型情報は演算子記号の選択に反映されており, type
属性の無い等価な厳格なコンテントマークアップに書き換えられているべきです. 現時点で, type
属性を持った残っているci
要素とcsymbol
要素を, 書き換え: ci type付加情報と書き換え: csymbol type付加情報の決まりによって, semantics
を持った厳格な式に書き換えます.
At this point, all elements
that accept the type
, other than ci
and csymbol
, should have been
rewritten into Strict Content Markup equivalents without type
attributes,
where type information is reflected in the choice of operator symbol. Now rewrite remaining
ci
and csymbol
elements with a type
attribute to a
strict expression with semantics
according to rules
Rewrite: ci type annotation and Rewrite: csymbol type annotation.
厳格なコンテントマークアップでは, type属性は, 意味付加情報を通して表現されます. 次の形式の式があるとします.
In Strict Content, type attributes are represented via semantic attribution. An expression of the form
<ci type="T">n</ci>
この式は次のように書き換えられます.
is rewritten to
<semantics>
<ci>n</ci>
<annotation-xml cd="mathmltypes" name="type" encoding="MathML-Content">
<ci>T</ci>
</annotation-xml>
</semantics>
厳格でない利用では, csymbol
はtype
属性を利用できます.
In non-Strict usage csymbol
allows the use of
a type
attribute.
厳格なコンテントMathMLでは, type属性は, 意味付加情報を通して表現されます. 次の形式の式があるとします.
In Strict Content, type attributes are represented via semantic attribution. An expression of the form
<csymbol type="T">symbolname</csymbol>
この式は次のように書き換えられます.
is rewritten to
<semantics>
<csymbol>symbolname</csymbol>
<annotation-xml cd="mathmltypes" name="type" encoding="MathML-Content">
<ci>T</ci>
</annotation-xml>
</semantics>
csymbol
要素のdefinitionURL
属性とencoding
属性がコンテント辞書への参照として解釈できるならば(詳細は4.2.3.2 <csymbol>
の厳格でない利用を参照), 代わりにそれらをcd
属性によるコンテント辞書への参照に書き換えます.
If the definitionURL
and encoding
attributes on a
csymbol
element can be interpreted as a reference to a
content dictionary (see 4.2.3.2 Non-Strict uses of <csymbol>
for details), then
rewrite to reference the content dictionary by the cd
attribute instead.
厳格なマークアップで認められていない属性を持った何らかの要素を, それらの属性を除いた要素を最初の子要素にして, 書き換え: 属性の決まりによってannotation
要素の属性にしたsemantics
構造に書き換えます.
Rewrite any element with attributes that are
not allowed in strict markup to a semantics
construction with
the element without these attributes as the first child and the attributes in
annotation
elements by rule Rewrite: attributes.
cn
やinterval
といった数々のコンテントMathMLの要素が, それらが表す事象の意味を専門に扱う属性を認めています. これらの場合に, 特別な書き換えの決まりが, 4.3 具体的な構造に対するコンテントMathMLでの, 基本となる状況に応じて与えられます. ただし, コンテントMathML要素は, 全てのMathML要素で利用される属性も受入れ, 文脈に応じて他の名前空間の属性も含んでよいです. このような属性は, 厳格なコンテントマークアップの, 代わりの形式に書き換えられなければなりません.
A number of content MathML elements such as cn
and
interval
allow attributes to specialize the semantics of the
objects they represent. For these cases, special rewrite rules are
given on a case-by-case basis in 4.3 Content MathML for Specific Structures. However,
content MathML elements also accept attributes shared by all MathML elements, and
depending on the context, may also contain attributes from other XML
namespaces. Such attributes must be rewritten in alternative form in
Strict Content Markup.
例えば, 次の式があるとします.
For instance,
<ci class="foo" xmlns:other="http://example.com" other:att="bla">x</ci>
この式は次のように書き換えられます.
is rewritten to
<semantics>
<ci>x</ci>
<annotation cd="mathmlattr"
name="class" encoding="text/plain">foo</annotation>
<annotation-xml cd="mathmlattr" name="foreign" encoding="MathML-Content">
<apply><csymbol cd="mathmlattr">foreign_attribute</csymbol>
<cs>http://example.com</cs>
<cs>other</cs>
<cs>att</cs>
<cs>bla</cs>
</apply>
</annotation-xml>
</semantics>
厳格なコンテントMathMLで認められていないMathML属性に対し, コンテント辞書mathmlattrが参照されます. このコンテント辞書は, コンテントMathML要素で認められている全ての属性に対する記号を提供します.
For MathML attributes not allowed in Strict Content MathML the content dictionary mathmlattr is referenced, which provides symbols for all attributes allowed on content MathML elements.
この節は規範ではありません.
This section is non-normative.
現在の数学作業部会は, 2021年4月から2023年5月までの期間で組織されており, Neil SoifferとBrian Kardell(Igalia)が共同議長を努めています.
The current Math Working Group is chartered from April 2021, until May 2023 and is co-chaired by Neil Soiffer and Brian Kardell (Igalia).
2019年から2021年の間, W3C MathML更新共同部会は, Neil Soifferが議長を努め, MathMLコアの最初の案とMathML 4の要件を開発しました.
Between 2019 and 2021 the W3C MathML-Refresh Community Group was chaired by Neil Soiffer and developed the initial proposal for MathML Core and requirements for MathML 4.
MathML 3(2012年-2013年)に功績のあったW3C数学作業部会は, NAG(訳注:ニューメリカルアルゴリズムグループ)のDavid Carlisleとアメリカ数学会のPatrick Ionが共同議長を務めていました. 2006年-2011年にかけては, Patrick IonとDesign ScienceのRobert Minerが共同で議長を務めていました. 作業部会のメンバーについては, 議長にお問合せ下さい. 最新のメンバーについては, W3C数学ホームページを参照して下さい.
The W3C Math Working Group responsible for MathML 3 (2012–2013) was co-chaired by David Carlisle of NAG and Patrick Ion of the AMS; Patrick Ion and Robert Miner of Design Science were co-chairs 2006-2011. Contact the co-chairs about membership in the Working Group. For the current membership see the W3C Math home page.
Robert Minerの統率や寄与は, 数学作業部会とMathMLの開始以来, それらの進展に特筆すべきものでした. 彼は悲劇的なことに2011年12月に若くして亡くなりました.
Robert Miner, whose leadership and contributions were essential to the development of the Math Working Group and MathML from their beginnings, died tragically young in December 2011.
MathML3.0に功績のあった作業部会の参加者は, 次のとおりです.
Participants in the Working Group responsible for MathML 3.0 have been:
Ron Ausbrooks, Laurent Bernardin, Pierre-Yves Bertholet, Bert Bos, Mike Brenner, Olga Caprotti, David Carlisle, Giorgi Chavchanidze, Ananth Coorg, Stéphane Dalmas, Stan Devitt, Sam Dooley, Margaret Hinchcliffe, Patrick Ion, Michael Kohlhase, Azzeddine Lazrek, Dennis Leas, Paul Libbrecht, Manolis Mavrikis, Bruce Miller, Robert Miner, Chris Rowley, Murray Sargent III, Kyle Siegrist, Andrew Smith, Neil Soiffer, Stephen Watt, Mohamed Zergaoui
上の全ての人は, 数学作業部会のメンバーでしたが, 何人かは作業部会の全ての期間に渡ってではありません. MathML3仕様書の開始時点で一覧にされた22人の著者は, 仕様書の実際の文章で使用された改訂や再編成の一助となった人達です. よって, この一覧は, MathML2での文章の大半がここで再利用された, MathML2の主要な著者を含んでいます. この一覧の人達はもちろん, 数学作業部会全体の活動や議論, また, W3C内外両方からの作業部会外からの助けとなる論評によって支えられたり励まされたりしました.
All the above persons have been members of the Math Working Group, but some not for the whole life of the Working Group. The 22 authors listed for MathML3 at the start of that specification are those who contributed reworkings and reformulations used in the actual text of the specification. Thus the list includes the principal authors of MathML2 much of whose text was repurposed here. They were, of course, supported and encouraged by the activity and discussions of the whole Math Working Group, and by helpful commentary from outside it, both within the W3C and further afield.
2003年から2006年にかけて, W3C数学作業部会は, NAGのDavid CarlisleとDesign ScienceのRobert Minerが議長を務める数学関連部会を構成しました.
For 2003 to 2006 W3C Math Activity comprised a Math Interest Group, chaired by David Carlisle of NAG and Robert Miner of Design Science.
W3C数学作業部会(2001年-2003年)では, アメリカ数学会のPatrick IonとIBMのAngel Diazが2001年6月から2002年5月まで共同議長を務めていました. それ以降, Patrick Ionは, 作業部会の延長された憲章の期間が満了するまで議長を続けていました.
The W3C Math Working Group (2001–2003) was co-chaired by Patrick Ion of the AMS, and Angel Diaz of IBM from June 2001 to May 2002; afterwards Patrick Ion continued as chair until the end of the WG's extended charter.
MathML2.0第2版に功績のあった作業部会の参加者は, 次のとおりです.
Participants in the Working Group responsible for MathML 2.0, second edition were:
Ron Ausbrooks, Laurent Bernardin, Stephen Buswell, David Carlisle, Stéphane Dalmas, Stan Devitt, Max Froumentin, Patrick Ion, Michael Kohlhase, Robert Miner, Luca Padovani, Ivor Philips, Murray Sargent III, Neil Soiffer, Paul Topping, Stephen Watt
W3C数学作業部会(2001年-2003年)の初期の活動的な参加者は, 次の人々を含みます.
Earlier active participants of the W3C Math Working Group (2001 – 2003) have included:
Angel Diaz, Sam Dooley, Barry MacKichan
W3C数学作業部会では, アメリカ数学会のPatrick IonとIBMのAngel Diazが1998年7月から2000年12月まで共同議長を務めていました.
The W3C Math Working Group was co-chaired by Patrick Ion of the AMS, and Angel Diaz of IBM from July 1998 to December 2000.
MathML2.0に功績のあった作業部会の参加者は, 次のとおりです.
Participants in the Working Group responsible for MathML 2.0 were:
Ron Ausbrooks, Laurent Bernardin, Stephen Buswell, David Carlisle, Stéphane Dalmas, Stan Devitt, Angel Diaz, Ben Hinkle, Stephen Hunt, Douglas Lovell, Patrick Ion, Robert Miner, Ivor Philips, Nico Poppelier, Dave Raggett, T.V. Raman, Murray Sargent III, Neil Soiffer, Irene Schena, Paul Topping, Stephen Watt
この2期目のW3C数学作業部会の初期の活動的な参加者は, 次の人々を含みます.
Earlier active participants of this second W3C Math Working Group have included:
Sam Dooley, Robert Sutor, Barry MacKichan
MathML1.0[MathML1]の公表時に, 数学作業部会では, 当時Geometry CenterのPatrick IonとRobert Minerが共同議長を務めていました. その時から様々なメンバーの変更が生じてきました. MathML1.01への更新を進める中で, 下の元々のメンバーに一覧にした人達に加えて, 訂正がDavid Carlisle, Don Gignac, Kostya Serebriany, Ben Hinkle, Sebastian Rahtz, Sam Dooleyらによって加えられました.
At the time of release of MathML 1.0 [MathML1] the Math Working Group was co-chaired by Patrick Ion and Robert Miner, then of the Geometry Center. Since that time several changes in membership have taken place. In the course of the update to MathML 1.01, in addition to people listed in the original membership below, corrections were offered by David Carlisle, Don Gignac, Kostya Serebriany, Ben Hinkle, Sebastian Rahtz, Sam Dooley and others.
MathML1.0仕様書完成に功績のあった作業部会の参加者は, 次のとおりです.
Participants in the Math Working Group responsible for the finished MathML 1.0 specification were:
Stephen Buswell, Stéphane Dalmas, Stan Devitt, Angel Diaz, Brenda Hunt, Stephen Hunt, Patrick Ion, Robert Miner, Nico Poppelier, Dave Raggett, T.V. Raman, Bruce Smith, Neil Soiffer, Robert Sutor, Paul Topping, Stephen Watt, Ralph Youngen
初期のころにW3C数学作業部会のメンバーだった他の人々は次のとおりです.
Others who had been members of the W3C Math WG for periods at earlier stages were:
Stephen Glim, Arnaud Le Hors, Ron Whitney, Lauren Wood, Ka-Ping Yee
作業部会は, MathML2.0仕様書の開発にあたって, たくさんの人々の手助けを享受してきました. 特に, 7. 文字, 実体, フォントの文字の表を組み立てるのに, 手助けや情報提供を頂いたBarbara Beeton, Chris Hamlin, John Jenkins, Ira Polans, Arthur Smith, Robby Villegas, Joe Yurvati, 同様に, www-mathメーリングリストに注意深い検証や建設的な批評を寄稿頂いたPeter Flynn, Russell S.S. O'Connor, Andreas Strotmann始め多くの人々の名前を挙げたいです.
The Working Group benefited from the help of many other people in developing the specification for MathML 1.0. We would like to particularly name Barbara Beeton, Chris Hamlin, John Jenkins, Ira Polans, Arthur Smith, Robby Villegas and Joe Yurvati for help and information in assembling the character tables in 7. Characters, Entities and Fonts, as well as Peter Flynn, Russell S.S. O'Connor, Andreas Strotmann, and other contributors to the www-math mailing list for their careful proofreading and constructive criticisms.
数学作業部会がMathML2.0に進んだ際, 再度, 相互作用の取り決めを持つことを必要としている, W3Cの仲間の作業部会からたくさんの手助けを頂きました. W3C以外で, 特に活動的な関係する最前線の団体は, ユニコード技術委員会(UTC)やISO 10646を扱うNTSC WG2です. ここで, STIXプロジェクトは一緒に数学表記のための文字をユニコードに加える提案を行い, この作業はアメリカ数学会のBarbara Beetonに先頭に立って頂きました. 最終的に全ての課題は3つの提案に分けられ, そのうち2つは, 数学作業部会メンバーでありUTCのメンバーでもある, マイクロソフトのMurray Sargentによって前進させられてきました. 一方, 数学分野の団体は, SybaseのKenneth Whistlerや, UTCやWG2のメンバー, また, UTCやWG2の拡張に携わり, 科学表記の必要性に熱心で精通した手助けを行ったAsmus Freytagによる, 数学に役立つ提案の改良における2年以上の期間に渡って行われた特筆すべき手助けや案内に感謝すべきです.
As the Math Working Group went on to MathML 2.0, it again was helped by many from the W3C family of Working Groups with whom we necessarily had a great deal of interaction. Outside the W3C, a particularly active relevant front was the interface with the Unicode Technical Committee (UTC) and the NTSC WG2 dealing with ISO 10646. There the STIX project put together a proposal for the addition of characters for mathematical notation to Unicode, and this work was again spearheaded by Barbara Beeton of the AMS. The whole problem ended split into three proposals, two of which were advanced by Murray Sargent of Microsoft, a Math WG member and member of the UTC. But the mathematical community should be grateful for essential help and guidance over a couple of years of refinement of the proposals to help mathematics provided by Kenneth Whistler of Sybase, and a UTC and WG2 member, and by Asmus Freytag, also involved in the UTC and WG2 deliberations, and always a stalwart and knowledgeable supporter of the needs of scientific notation.
https
を使用し, GitHub Issuesページを参照するよう, この文章の位置付けを更新.
https
and referencing the GitHub Issues page
as required for current W3C publications.<math>
からmode
属性とmacros
属性を削除しました. これらの属性は, MathML 2から非推奨となっていました. macros
は挙動が何も定義されておらず, mode
はdisplay
を使用したより適切な形に置き換えることができます. mathml4-legacy
構文は, 従来のアプリケーションソフトウェアで必要ならば, それらの属性を有効にします.
mode
and macros
attributes from <math>
. These have been deprecated
since MathML 2. macros
had no
defined behaviour, and mode
can be
replaced by suitable use of display
.
The mathml4-legacy
schema makes these valid if needed for legacy applications.mo
演算子と一緒に記述されるべきであることを, 3.2.4.4 <mn>
単独で書かれるべきではない数字の中で明確化.
mo
operator
in 3.2.4.4 Numbers that should not be written
using <mn>
alone.<mmultiscripts>
, <mprescripts/>
, <none/>
<munder>
の中で, 添え字の水平方向の位置揃えを基となる式の方向であることを明確化, 新しい例の追加.
<mmultiscripts>
,
<mprescripts/>
,
<none/>
<munder>
is towards the base, and
add a new example.fontfamily
, fontweight
, fontstyle
, fontsize
, color
, background
を削除し, mathvariant
, mathsize
, mathcolor
, mathbackground
を利用するようにしました. これらの属性は, mstyle
でもはや有効ではありません. mathml4-legacy
構文は, 従来のアプリケーションソフトウェアで必要ならば, それらの属性を有効にします.
fontfamily
,
fontweight
, fontstyle
, fontsize
, color
and background
are removed in favor of mathvariant
, mathsize
,
mathcolor
and
mathbackground
.
These attributes are also no longer valid on mstyle
.
The mathml4-legacy
schema makes these valid if needed for legacy applications.mglyph
から, 全ての非推奨のフォントに関連する属性が削除されました.
mglyph
which is still retained to include images in MathML.newline
と等価だった)indentingnewline
の値は, mspace
ではもはや有効ではありません.
indentingnewline
is no longer valid for mspace
(it was equivalent to newline
).mtr
やmtd
ではっきり記述しなければなりません. [MathML1]は, 行の記述が省略された場合に, その記述を推測する実装を必要としていました.
mtr
and mtd
. The [MathML1] required that an
implementation infer the row markup if it was omitted.malignmark
の利用が, 既存の実装で実装された機能に合致する場合に限定され, 単純化されました. 表におけるgroupalign
属性には, もはや対応していません.
malignmark
has been
restricted and simplified, matching the features implemented in
existing implementations.
The groupalign
attribute on table
elements is no longer supported.share
要素, 4.2.7.2 非循環の制限, 4.2.7.3 共有と束縛の構造, 4.2.7.4 構造を共有した式の描画の例を, href
ではなく, (規範的な構文に合致する)src
を使用するように訂正. href
は, 全ての要素で利用可能なプレゼンテーションマークアップの共通の属性なので, 元々の例も有効です.
share
element, 4.2.7.2 An Acyclicity Constraint, 4.2.7.3 Structure Sharing and Binding, 4.2.7.4 Rendering Expressions with Structure Sharing
to use src
(to match the normative
schema) not href
. The previous
examples were also valid, as href
is a common presentational attribute allowed on all elements.reln
, declare
, fn
は削除されました. mathml4-legacy
構文は, 従来のアプリケーションソフトウェアで必要ならば, それらの要素を有効にします.
reln
,
declare
and fn
have been removed.
The mathml4-legacy
schema makes these valid if needed for legacy applications.数式に対するマークアップ言語の混在から名前が変わった章.
Mixing Markup Languages for Mathematical Expressions
intent
属性について説明する新しい節5.1 intent
属性の導入.
intent
attribute describing the
intent
attribute.<semantics>
要素を利用する場合についての既存の文章は, 2番目の節で維持管理されている一方, 規範的でない文章と例を[MathMLメモ]に移動させることで減らされました.
<semantics>
element to mix
Presentation and Content MathML is maintained in the second
section, although reduced with some non normative text and
examples moved to [MathML-Notes].<semantics>
におけるencoding
とdefinitionURL
の利用を非推奨にしていました. それらの属性は, この仕様書では無効です. mathml4-legacy
構文は, 従来のアプリケーションソフトウェアで必要ならば, それらの属性を有効にします.
encoding
and definitionURL
on <semantics>
. They are invalid in this
specification. The mathml4-legacy
schema may be used if these
attributes need to be validated for a legacy application.mathml4-presentation
の基礎として使用され, [MathMLコア]に合致する新しいmathml4-core
構文や, [MathML3]に合致する文書の既存の主要部分を有効とするのに使用される新しいmathml4-legacy
構文に再整理されました.
mathml4-core
schema
matching [MathML-Core] being used as the basis for
mathml4-presentation
, and a new mathml4-legacy
schema that can
be used to validate an existing corpus of documents matching [MathML3].compact表現が, 以前から使われていた表の表現と同様に提供されました.
compactpresentation is provided as well as the tabular presentation used previously.
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in:
参照元:Referenced in: