Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As aplicações do Microsoft 365 (Word, PowerPoint, Excel e OneNote) podem importar e exportar MathML (Linguagem de Marcação Matemática). Este documento descreve que elementos, atributos e padrões MathML são suportados e que limitações se aplicam.
Importação de MathML (MathML → Matemática do Office)
Versão MathML suportada
O importador suporta MathML 3 (MathML de Apresentação), incluindo elementos e atributos preteridos no MathML Core, mas ainda utilizados, como <mfenced>, <maligngroup>, <malignmark>e o mathvariant atributo .
Processamento de espaços de nomes
O <math> elemento raiz tem de utilizar o espaço de nomes http://www.w3.org/1998/Math/MathMLMathML. Os prefixos de espaço de nomes são aceites (por exemplo, <m:math xmlns:m="...">). Um erro de criação comum ( omitindo o http: protocolo ) é corrigido automaticamente antes da importação.
O display="block" atributo em <math> é reconhecido e produz uma equação de modo de apresentação (centrado). Sem ela, a equação está inline.
Elementos suportados
Elementos de token
| Elemento | Descrição |
|---|---|
<mi> |
Identificador (variável, nome da função) |
<mo> |
Operador ou caráter de vedação |
<mn> |
Número |
<mtext> |
Texto |
<ms> |
Literal de cadeia (com lquote/rquote atributos) |
<mspace> |
Espaço explícito (com width, height, depth) |
<mglyph> |
Referência do Glifo |
Elementos de esquema
| Elemento | Descrição |
|---|---|
<mrow> |
Grupo horizontal de subexpressões |
<mfrac> |
Fração |
<msqrt> |
Raiz quadrada |
<mroot> |
n-th raiz |
<msub> |
Subscrito |
<msup> |
Sobrescrito |
<msubsup> |
Inferior à linha e superior à linha |
<munder> |
Inferior à linha (limite abaixo) |
<mover> |
Superior à linha (limite acima/destaque) |
<munderover> |
Scripts por baixo e por cima |
<mmultiscripts> |
Vários prescripts e postscripts |
<mprescripts/> |
Separador entre postscripts e prescripts em <mmultiscripts> |
<none/> |
Marcador de posição de script vazio no <mmultiscripts> |
<mfenced> |
Expressão vedada (delimitada) — Legado MathML 3 |
<menclose> |
Bastidor (caixa, círculo, rasurado, etc.) |
<mphantom> |
Conteúdo invisível (ocupa espaço) |
<mpadded> |
Caixa de espaçamento ajustável |
<mstyle> |
Alteração de estilo (atributos herdáveis) |
<merror> |
Apresentação de erros (composta como fórmula em caixa) |
Elementos da tabela
| Elemento | Descrição |
|---|---|
<mtable> |
Matriz ou tabela |
<mtr> |
Linha da tabela |
<mlabeledtr> |
Linha de tabela etiquetada |
<mtd> |
Célula da tabela |
<maligngroup> |
Marcador de grupo de alinhamento |
<malignmark> |
Marcador de contorno de alinhamento |
Elementos de anotação
| Elemento | Descrição |
|---|---|
<semantics> |
Wrapper de anotação semântica |
<annotation> |
Anotação de texto (por exemplo, origem LaTeX) |
<annotation-xml> |
Anotação XML (por exemplo, Content MathML) |
Quando <semantics> está presente, o primeiro subordinado (Presentation MathML) é utilizado para composição.
<annotation> e <annotation-xml> as crianças são atualmente ignoradas.
Outros
| Elemento | Descrição |
|---|---|
<maction> |
Elemento de ação — primeiro subordinado utilizado para composição |
Atributos com suporte
Atributos globais
Estes atributos são aceites na maioria dos elementos:
| Atributo | Values | Padrão | Descrição |
|---|---|---|---|
mathvariant |
Veja a tabela abaixo | normal* |
Variante do tipo de letra |
mathsize |
small, normal, bigou comprimento |
herdado | Tamanho do tipo de letra |
mathcolor |
Nome da cor ou #RRGGBB |
herdado | Cor de primeiro plano |
mathbackground |
Nome da cor ou #RRGGBB |
transparent |
Cor da tela de fundo |
* Para elementos de tokens em geral, a predefinição MathML é normal, mas para elementos de caráter <mi> único, a predefinição é itálico.
Não há suporte para dir.
mathvariant valores
Todos os 18 valores MathML 3 mathvariant são reconhecidos:
| Valor | Mapeamento OMML |
|---|---|
normal |
Vertical (simples) |
bold |
Negrito |
italic |
Itálico |
bold-italic |
Negrito e itálico |
double-struck |
Duplo toque (negrito de quadro preto) |
script |
Script (calligraphic) |
bold-script |
Script a negrito → mapeado para script |
fraktur |
Fraktur |
bold-fraktur |
Negrito → mapeado para fraktur |
sans-serif |
Sans-serif |
bold-sans-serif |
Negrito sans-serif → mapeado a negrito |
sans-serif-italic |
→ itálico sans-serif mapeados para itálico |
sans-serif-bold-italic |
→ itálico negrito sem serifa mapeado a negrito itálico |
monospace |
Espaço monoespaço |
initial |
Inicial (Árabe) |
tailed |
Caudal (Árabe) |
looped |
Looped (Árabe) |
stretched |
Disperso (árabe) |
<mo> atributos de operador
| Atributo | Values | Padrão | Descrição |
|---|---|---|---|
stretchy |
true, false |
dicionário de operador | Se o operador se alonga |
fence |
true, false |
dicionário de operador | Se o operador é uma vedação/parêntese reto |
separator |
true, false |
dicionário de operador | Se o operador é um separador |
largeop |
true, false |
dicionário de operador | Se o operador é um operador grande |
accent |
true, false |
dicionário de operador | Se o operador é um destaque |
movablelimits |
true, false |
dicionário de operador | Se os limites podem ser movidos |
lspace |
Comprimento | dicionário de operador | Espaçamento à esquerda |
rspace |
Comprimento | dicionário de operador | Espaçamento à direita |
form |
prefix, infix, postfix |
automático (determinado a partir da posição) | Formulário de operador |
Os valores predefinidos para os atributos são determinados a partir de um dicionário de operador. Apenas stretchy, largeop, separatore fence podem ser substituídas por valores explícitos.
<mfrac> atributos
| Atributo | Values | Padrão | Descrição |
|---|---|---|---|
linethickness |
Comprimento ou medium0 |
medium |
Espessura da barra de fração.
0 produz um coeficiente binomial (sem barra).
thin e thick não são suportados. |
bevelled |
true, false |
false |
Fração distorcida (inline) |
<mfenced> atributos (legado MathML 3)
| Atributo | Padrão | Descrição |
|---|---|---|
open |
( |
Abrir o caráter delimitador |
close |
) |
Caráter delimitador de fecho |
separators |
, |
Carateres separadores entre elementos subordinados |
<mfenced> é expandido internamente para o equivalente <mrow> com <mo> delimitadores. Por exemplo:
<mfenced open="[" close="]" separators=",">
<mi>a</mi><mi>b</mi><mi>c</mi>
</mfenced>
é equivalente a:
<mrow>
<mo>[</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo>]</mo>
</mrow>
Nota: quando U+251C ├ e U+2524 ┤ são utilizados como delimitadores de cerca, são tornados invisíveis. As versões anteriores das aplicações do Microsoft 365 podem tê-las exportado para delimitadores invisíveis.
<menclose> atributos
| Atributo | Values | Padrão | Descrição |
|---|---|---|---|
notation |
bottom, box, downdiagonalstrike, horizontalstrike, left, madruwb, none, radical, right, top, updiagonalstrike, verticalstrike |
none (A predefinição MathML 3 de longdiv não é suportada.) |
Estilos de bastidor.
actuarial, circle, longdiv, phasoranglee roundedbox não são suportados. |
Podem ser combinados vários valores de notação (separados por espaço).
<munder>
/
<mover>
/
<munderover> atributos
| Atributo | Values | Padrão | Descrição |
|---|---|---|---|
accent |
true, false |
automatic |
Se a linha superior é um destaque |
accentunder |
true, false |
automatic |
Se o inferior à linha é um destaque |
<msub>
/
<msup>
/
<msubsup> atributos
subscriptshift e superscriptshift não são suportados.
<mtable> atributos
rowalign, , columnaligncolumnwidth, rowspacing, columnspacing, width, alignmentscope, frame, e framespacing não são suportados.
<mtr> e <mtd> atributos
rowalign, columnalign, rowspane columnspan não são suportados.
<mpadded> atributos
width, lspace, heighte depth não são suportados.
<mspace> atributos
width, heighte depth não são suportados.
Referências de carateres
Standard referências de carateres numéricos XML (√, √) são suportadas em todas as entradas MathML.
As referências de carateres com nome HTML (α, ≤, ⁢, etc.) só são suportadas quando MathML é incorporado em HTML. Estas não fazem parte das especificações XML ou MathML e não são reconhecidas ao importar XML MathML autónomo. Consulte a secção HTML abaixo para obter detalhes.
As referências de carateres nomeados nunca são escritas durante a exportação de MathML. Todos os carateres são escritos como Unicode literal, exceto <, >e &, que têm de ser codificados em XML.
Dicionário de operador
O importador inclui um dicionário de operador incorporado que fornece propriedades de composição predefinidas para operadores comuns. Isso inclui:
-
Carateres de vedação:
(,),[,],{,|}, ,⌈‖, ,⌉⌊, ,⌋,⟨, ,⟩,⟦,⟧, e CJK - Operadores dispersos: Setas, parênteses retos, sinais integrais, radicais, chavetas e parênteses
- Operadores grandes: ∑, ∏, ∐, ∫, ∮, ∮∮, ⊕, ⊗, ⊙, ⋂, ⋃, ⋀, ⋁, etc.
- Operadores de destaque: Circunflexo, til, macron, letra modificadora macron, breve, ponto, agudo, grave, carão, setas (como acima da linha), chavetas e parênteses retos
- Operadores de limites móveis: ∑, ∏, ⋂, ⋃, lim, max, min e outros
Tradução de destaques espaçamento para combinação
Os carateres de destaque de espaçamento em MathML (por exemplo, U+02C6 circunflexo, til U+02DC) são traduzidos automaticamente para os formulários de combinação para utilização em construções de destaque OMML. Isto é necessário porque MathML utiliza formulários de espaçamento no <mo> , enquanto o OMML requer a combinação de carateres.
Exportação MathML (Expressões Matemáticas do Office → MathML)
Formato de saída
A exportação MathML produz a saída compatível com MathML Core na maioria dos casos. Evita as funcionalidades legadas do MathML 3:
Não
<mfenced>: as expressões delimitadas são escritas como<mrow>com um abridor explícito<mo>, conteúdo e<mo>mais perto, com exceção de o OneNote copiar matemática para a área de transferência.Não
<maligngroup>ou<malignmark>: as colunas são adicionadas ao para alinhar o<mtable>conteúdo nos pontos de alinhamento com o espaçamento entre colunas 0. Tenha em atenção que o espaçamento e o alinhamento das colunas têm suporte limitado em todo o ecossistema.Nenhum
mathvariantatributo para carateres com estilo: em vez demathvariant="bold"em<mi>, a exportação emite Símbolos Alfanuméricos Matemáticos Unicode do plano suplementar (U+1D400–U+1D7FF) ou símbolos matemáticos semelhantes a letras Unicode do intervalo U+2100–U+214F. Por exemplo, negrito itálico x é escrito como U+1D499 em vez<mi mathvariant="bold-italic">x</mi>de e o script H é escrito como U+210B em vez de<mi mathvariant="script">H</mi>. Omathvariant="normal"atributo é utilizado apenas para identificadores de múltiplos carateres que não devem ser itálicos.
Uma exceção é que <menclose> pode ser utilizada no MathML exportado.
Mapeamento de elementos OMML para MathML
A tabela seguinte mostra como os elementos OMML são convertidos em MathML.
| Elemento OMML | Saída MathML |
|---|---|
<m:oMathPara> |
<math display="block"> |
<m:oMath> (inline) |
<math> |
<m:f> (fração, barra) |
<mfrac> |
<m:f> (fração, sem barra) |
<mfrac linethickness="0"> (binomial) |
<m:f> (fração, distorcido) |
<mfrac bevelled="true"> |
<m:f> (fração, linear) |
<mrow>num<mo>/</mo>den</mrow> |
<m:rad> (sem grau) |
<msqrt> |
<m:rad> (com grau) |
<mroot> |
<m:d> (delimitador) |
<mrow><mo>(</mo>...<mo>)</mo></mrow> |
<m:d> (com separadores) |
<mrow><mo>(</mo>...<mo>\|</mo>...<mo>)</mo></mrow> |
<m:nary> |
<munderover>, <munder>ou<msup><msub>/com <mo> o operador |
<m:acc> |
<mover accent="true"> |
<m:bar> (superior) |
<mover> com <mo> caráter de barra |
<m:bar> (inferior) |
<munder> com <mo> caráter de barra |
<m:groupChr> |
<munder> ou <mover> com caráter de agrupamento |
<m:limLow> |
<munder> |
<m:limUpp> |
<mover> |
<m:func> |
<mrow> com <mo>⁡</mo> (ApplyFunction) |
<m:sSub> |
<msub> |
<m:sSup> |
<msup> |
<m:sSubSup> |
<msubsup> |
<m:sPre> |
<mmultiscripts> com <mprescripts/> |
<m:m> (matriz) |
<mtable> / <mtr> / <mtd> |
<m:eqArr> |
<mtable> com alinhamento |
<m:borderBox> |
<menclose notation="box"> |
<m:box> |
<mpadded> |
<m:phant> |
<mphantom> |
<m:r> (executar) |
<mi>, <mn>, <mo>ou <mtext> consoante o conteúdo |
Atributos escritos durante a exportação
| Atributo | Quando utilizado |
|---|---|
display="block" |
Ativado <math> para equações do modo de apresentação |
mathvariant="normal" |
Múltiplos carateres <mi> que devem estar na vertical (por exemplo, nomes de funções) |
mathcolor |
Quando a execução tem uma cor de primeiro plano não predefinida |
mathbackground |
Quando a execução tem uma cor de fundo não predefinida |
accent="true" |
Ativado <mover> quando a linha superior é um destaque |
accentunder="true" |
Ativado <munder> quando a linha inferior é um destaque |
stretchy |
Ativado <mo> para delimitadores e operadores dispersos |
separator="true" |
Ativado <mo> para carateres separadores em expressões delimitadas |
fence="true" |
Ativado <mo> para carateres de cerca/parêntese reto |
linethickness="0" |
Ativado <mfrac> para frações sem barras (binomials) |
bevelled="true" |
Ativado <mfrac> para frações distorcidas/inline |
columnalign |
Ativado <mtable> ou <mtd> para alinhamento de colunas |
rowalign |
Ativado <mtable> ou <mtr> para alinhamento de linhas |
notation |
Ativado <menclose> para estilos de box/strike |
Processamento de tipos de letra durante a exportação
Em vez de utilizar o mathvariant atributo para carateres com estilo, a exportação converte os carateres nos respetivos equivalentes Alfanuméricos Matemáticos Unicode:
| Estilo OMML | Bloco Unicode | Exemplo |
|---|---|---|
| Negrito | U+1D400–U+1D433 | A → 𝐀 |
| Itálico | U+1D434–U+1D467 | um → um |
| Negrito e itálico | U+1D468–U+1D49B | x → x |
| Script | U+1D49C–U+1D4CF | L → L |
| Fraktur | U+1D504–U+1D537 | g → g |
| Duplo toque | U+1D538–U+1D56B | R → R |
| Sans-serif | U+1D5A0–U+1D5D3 | x → x |
| Espaço monoespaço | U+1D670–U+1D6A3 | x → x |
Em alguns casos, são escritos símbolos matemáticos semelhantes a letras Unicode no intervalo U+2100–U+214F.
Esta abordagem produz resultados compatíveis com o MathML Core e não depende do suporte do compositor para o mathvariant atributo .
Codificação de Carateres
Importar codificação
O importador de MathML aceita a entrada nas seguintes codificações:
- UTF-16LE — utilizado quando MathML é recebido através da área de transferência.
-
UTF-8 — utilizado quando MathML é lido a partir de ficheiros (por exemplo, documentos ODF, ficheiros HTML). A declaração XML (
<?xml version="1.0" encoding="UTF-8"?>) no início da entrada é opcional.
Ambas as codificações suportam o intervalo Unicode completo. Para UTF-16LE, os pares de substituição são suportados para os carateres suplementares do plano (U+10000 e superiores).
Exportar codificação
- UTF-16LE – a predefinição para a saída da área de transferência.
- UTF-8 — para exportação baseada em ficheiros (atributos ODF, PDF).
O MathML exportado utiliza carateres Unicode literais. As referências de carateres nomeados (como α) nunca são escritas. As referências de carateres numéricos são utilizadas apenas quando são exigidas pelo serializador XML (por exemplo, ⁡ para operadores invisíveis em alguns caminhos de código).
Suporte da área de transferência
As aplicações podem copiar e colar MathML para uma boa interoperabilidade com outras aplicações que suportam MathML.
MathML colocado na área de transferência durante a cópia
| Nome do formato da área de transferência | Descrição |
|---|---|
MathML |
Marcação da Apresentação MathML (UTF-16LE) |
MathML Presentation |
O mesmo conteúdo que MathML, registado como um formato separado para compatibilidade com aplicações que utilizam este nome |
Os CF_TEXT formatos e CF_UNICODETEXT também são preenchidos com MathML se o utilizador tiver ativado a opção para o mesmo.
Formatos aceites durante a colagem
Ao colar, as aplicações marcar área de transferência para formatos específicos de matemática pela seguinte ordem de prioridade:
-
MathMLouMathML Presentation -
CF_UNICODETEXT/CF_TEXT— importar como MathML é tentado e, se for bem-sucedido, é mantido. Caso contrário, a aplicação continua a tentar importar outros formatos.
HTML
MathML na importação de HTML
Quando o MathML é incorporado num documento HTML (por exemplo, colado a partir de uma página Web ou aberto como um ficheiro HTML), o analisador html extrai blocos <math>...</math> e transmite-os ao importador de MathML. Neste contexto, são reconhecidas mais de 2000 referências de carateres com nome HTML, incluindo:
- Letras gregas:
α,β,Γ, etc. - Operadores:
+,−,×,⁢, etc. - Relações:
≤, ,≥≠,≡,⊂, etc. - Setas:
→, ,↔←,⇒, etc. - Letterlike:
𝔄(fraktur A),𝔸(duplo toque A),𝒜(script A), etc. - Operadores invisíveis:
⁢(U+2062),⁡(U+2061),⁣(U+2063)
Estas referências de carateres nomeados são definidas pela especificação HTML, não por XML ou MathML.
Não são reconhecidos ao importar XML MathML autónomo (que só suporta referências de carateres numéricos, como α e α).
MathML como uma ilha de dados XML com prefixo xmlns em HTML também é importado, embora não seja composto como matemática nativamente por browsers.
MathML na exportação DE HTML
MathML não é atualmente escrito ao exportar HTML. As equações na exportação HTML são compostas como imagens ou omitidas, consoante as definições de aplicação e exportação.
Formato Open Document (ODF)
Ao carregar e guardar documentos no Formato Open Document (.odt, .odp), o MathML é utilizado como o formato de equação. Ao carregar e guardar o Formato Open Document, o MathML é importado e exportado da mesma forma que o descrito acima.
Acessibilidade
Automação da Interface do Usuário (Windows)
No Windows, a representação MathML de cada equação é exposta na árvore de acessibilidade através de uma propriedade de Automação da Interface do Usuário (UIA) personalizada. As tecnologias de apoio, como os leitores de ecrã, podem ler esta propriedade para obter uma descrição matemática estruturada do conteúdo da equação.
Exportação de PDF/UA
Ao exportar para PDF, as equações são escritas com um atributoMSFT_MathML personalizado na árvore de etiquetas PDF/UA. Este atributo contém a marcação MathML para a equação. Os leitores de PDF que suportam este atributo podem utilizá-lo para tornar o conteúdo matemático acessível a tecnologias de apoio.
Limitações
Limitações de importação
Content MathML não suportado. Só é importado o MathML da Apresentação. Os elementos MathML de Conteúdo (
<apply>,<ci>,<cn>,<csymbol>, etc.) no interior<annotation-xml>são ignorados.<maction>parcialmente suportado. Apenas o primeiro subordinado de<maction>é composto. Oactiontypeatributo e o comportamento de seleção/alternância não são suportados.<mlabeledtr>tratado como<mtr>. A etiqueta (primeiro subordinado) é tratada como uma norma<mtd>.<mstyle>herança de atributos. A maioria dos atributos é herdada através<mstyle>de , mas algumas cadeias de herança complexas podem não estar totalmente resolvidas.<mpadded>dimensionamento. Oswidthajustes ,height,depthelspacesão analisados, mas mapeados para construções fantasma OMML, que têm um controlo de dimensionamento limitado em comparação com o modelo flexível da MathML.Quebra de linha. Os atributos de quebra de linha MathML (
linebreak,linebreakstyle,lineleading, etc.) não são suportados.<menclose>cobertura de notação. Apenas é suportado um subconjunto denotationvalores. Os valores não suportados (por exemplo,phasorangle,longdiv,actuarial) são ignorados.<ms>composição de cadeias de carateres. O<ms>elemento é tratado de forma semelhante a<mtext>. Os atributos erquotepersonalizadoslquotesão reconhecidos, mas o comportamento de citação pode diferir da especificação MathML.Expansão de colunas/linhas. Os
rowspanatributos ecolumnspanno<mtd>são analisados, mas as matrizes OMML não suportam a expansão, pelo que estes são ignorados.intent. o atributo MathML 4intentnão é suportado.
Limitações de exportação
Não
<semantics>ou<annotation>. O MathML exportado não inclui anotações semânticas nem representações alternativas.Sem numeração de equação. Os números/etiquetas de equação não são exportados.
Tamanho e exportação de cores.
mathsize,mathcoloremathbackgroundnão são exportados.Alinhamento da matriz. O alinhamento de colunas do OMML é exportado, mas os padrões de alinhamento complexos (múltiplos grupos de alinhamento, âmbitos de alinhamento) podem não ser totalmente preservados.
Operadores invisíveis. As construções OMML function-apply são exportadas com
<mo>⁡</mo>(ApplyFunction), mas nem todas as distinções de operadores invisíveis são preservadas.Sem MathML na exportação HTML. Ao guardar em HTML, as equações não são escritas como MathML.
Considerações de ida e volta
Importar → Exportação: MathML importado para o Office Math e depois exportado de volta para MathML produz uma saída semântica equivalente, mas a estrutura de markup pode ser diferente. Por exemplo,
<mfenced>na entrada torna-se<mrow>com<mo>elementos na saída.mathvariant→ Alfanumérica Unicode: a utilizaçãomathvariant="bold"de entrada é exportada através de Símbolos Alfanuméricos Matemáticos Unicode (U+1D400–U+1D7FF) ou símbolos matemáticos semelhantes a letras Unicode (U+2100–U+214F).Referências de carateres → Carateres: As referências de carateres com nome na entrada HTML (por exemplo,
α) são exportadas como carateres Unicode literais (α). Ambos são semanticamente idênticos.
Requisitos
Salvo indicação em contrário, as funcionalidades descritas aqui são suportadas no Microsoft 365 Versão 2606 (Compilação 20131.xxxxx) para Windows e Versão 16.110 para Mac e posterior. As versões anteriores suportam algumas, mas nem todas as funcionalidades descritas aqui.