맨위로가기

MathML

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

MathML은 웹에서 수식을 표현하기 위해 개발된 XML 기반 마크업 언어이다. 1998년 W3C에서 MathML 1.0을 발표했으며, 이후 버전 2.0과 3.0이 발표되었다. MathML은 수식의 시각적 표현에 중점을 둔 표현 MathML과 수식의 의미에 중점을 둔 내용 MathML로 구성된다. HTML5 파일과 XHTML 파일 내에 포함될 수 있으며, 다양한 소프트웨어에서 지원된다. MathML은 웹 브라우저, 편집기, 변환 도구 등 다양한 환경에서 활용되며, 수식의 가독성과 접근성을 높이는 데 기여한다.

광고

더 읽어볼만한 페이지

  • XML 마크업 언어 - 스케일러블 벡터 그래픽스
    스케일러블 벡터 그래픽스(SVG)는 W3C가 개발한 XML 기반의 마크업 언어로, 웹에서 벡터 그래픽을 표현하며, 확대/축소 시 화질 저하가 없고, 다양한 그래픽 기능과 텍스트 표현, 메타데이터 지원 등을 제공한다.
  • XML 마크업 언어 - 무선 마크업 언어
    무선 마크업 언어(WML)는 초기 무선 인터넷 환경에서 텍스트 기반 콘텐츠를 위해 고안된 마크업 언어였으나, 스마트폰과 웹 기술 발전으로 사용이 제한적이다.
  • W3C 표준 - HTML
    HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다.
  • W3C 표준 - 타임드 텍스트
    타임드 텍스트는 영상이나 오디오 콘텐츠에 시간 정보를 담아 표현되는 텍스트로, 자막이나 캡션 등에 활용되며 TTML, WebVTT 등의 표준이 존재한다.

2. 역사

MathML은 웹에서 수식을 표현하기 위한 초기 시도들 이후에 개발되었다. 아레나 브라우저에서 HTML의 수학적 마크업 제안에 대한 실험을 거친 후,[4] 1998년 4월, W3C는 MathML 1.0을 첫 번째 XML 언어 권고안으로 발표했다. 1999년 7월에 1.01 버전, 2001년 2월에 버전 2.0이 출시되었다. Amaya 1.1, 모질라 1.0, Opera 9.5에서 구현되었다.[5][6] 2003년 10월, MathML 버전 2.0의 두 번째 에디션이 W3C 수학 실무 그룹의 최종 릴리스로 게시되었다.

MathML은 원래 XML 네임스페이스가 최종 확정되기 전에 설계되었다. 그러나 네임스페이스 권고안이 완료된 직후 네임스페이스가 할당되었으며, XML 사용을 위해서는 요소가 네임스페이스 URL이 ''http://www.w3.org/1998/Math/MathML''인 네임스페이스에 있어야 한다. MathML이 XML이 아닌 HTML에서 사용될 때는 이 네임스페이스가 HTML 파서에 의해 자동으로 추론되므로 문서에 지정할 필요가 없다.[7]

MathML 사양 버전 3은 2010년 10월 20일에 W3C 권고안으로 발표되었다. 이후 2011년 6월 7일에는 ''CSS 프로파일용 MathML'' 권고안이 발표되었는데,[8] 이는 CSS 서식에 적합한 MathML의 하위 집합이다. 2014년 4월 10일, MathML 3.0의 두 번째 에디션이 발표되었다.[2] 2015년, MathML 표준 채택을 지원하기 위한 MathML 협회가 설립되었다.[14] 2021년 8월, 브라우저 구현에 적합한 MathML Core 사양이 발표되었다.[16]

컴퓨터에서 수식 표기 요구는 웹 보급 이전부터 있었다. TeX는 유명하고 자주 사용되었으며, 위키백과를 포함한 위키 등에서 수식을 표현하는 수단으로 오늘날에도 많이 사용되고 있다. 하지만, HTML에서 수식을 표현하는 수단이 없어, 웹에서 수식을 표현하려면 이미지로 만들거나 PDF 등 HTML 이외의 형식으로 하는 경우가 많았다. MathML의 오리지널 버전에서는 네임스페이스가 정해져 있지 않았는데, 이는 XML 네임스페이스의 사양 자체가 아직 정해져 있지 않았기 때문이다.

2. 1. 한국어 위키백과 참고 사항

초기 HTML 3.0에서는 `` 요소가 포함될 예정이었으나[31], 대부분의 브라우저는 이에 대응하지 않았다.

3. 표현과 의미

MathML은 수식의 ''표현''과 ''의미'' 요소를 모두 다룬다. 수식의 의미는 표현과는 별개로 보존되므로, 내용 전달 방식은 사용자에게 맡겨진다.[32] 예를 들어 MathML 내장 웹 페이지는 여러 브라우저에서 일반 웹 페이지처럼 보이지만, 시각 장애인은 스크린 리더(인터넷 익스플로러용 매스플레이어 플러그인, 오페라 9.50 빌드 9656 이상, 파이어폭스용 파이어 복스 확장 등)를 통해 MathML을 읽을 수 있다.[20]

MathML은 수식의 표현(Presentation MathML)과 의미(Content MathML)를 모두 다루는데, 표현 MathML은 수식의 시각적 표시에, 내용 MathML은 수식의 의미론적 내용에 중점을 둔다.

3. 1. 표현 MathML (Presentation MathML)

표현 MathML은 수식의 시각적 표현을 담당하며, 약 30개의 요소로 구성된다. 이 요소들의 이름은 모두 `m`으로 시작한다. 표현 MathML 식은 토큰들이 모여 구성되며, 레이아웃을 조절하는 고수준 엘리먼트에 의해 조합된다.

토큰 엘리먼트는 일반적으로 문자만을 포함하며(다른 엘리먼트를 포함하지 않음), 다음을 포함한다:

  • `x` – 식별자
  • `+` – 연산자
  • `2` – 숫자
  • `non zero` – 텍스트


HTML5에서의 MathML은 `mtext`에서 대부분의 HTML 마크업을 허용한다. 예를 들어, `<mtext><b>non</b> zero</mtext>`와 같이 HTML 마크업을 MathML 내에 내장된 텍스트를 꾸미는 데 사용할 수 있다.

레이아웃 엘리먼트는 토큰들을 조합하는 데 사용된다:

  • `` – 항목들로 이루어진 가로 행
  • ``, `` 등 – 위첨자, 연산자 위아래의 limits (예: 합계)
  • `` – 분수
  • `` and `` – 근호
  • `` - 내용을 괄호 등으로 감쌈


HTML이나 XML처럼, 특수 기호나 이름을 나타내는 많은 엔티티(entities)가 있다. (예: `π`, `→`) MathML은 보이지 않는 연산자를 표현하기 위한 엔티티도 제공한다. 예를 들어, 암묵적인 곱셈 연산자 `⁢`가 있다. 그 외에도 다음과 같은 것들이 있다:

  • U+2061 FUNCTION APPLICATION
  • U+2062 INVISIBLE TIMES
  • U+2063 INVISIBLE SEPARATOR
  • U+2064 INVISIBLE PLUS


MathML 엔티티 명세는 MathML 엔티티 명세에서 확인할 수 있으며, HTML 및 XML에서의 일반적인 사용을 위한 연관 명세(XML 엔티티 명세)와 밀접하게 관련되어 있다.

예를 들어, 수식 a x^2+b x+c는 다음과 같이 표현될 수 있다:

```xml



a x2

+bx

+c


3. 2. 내용 MathML (Content MathML)

x`는 \sin(x)를 나타내며, `x5`는 x+5를 나타낸다. 연산자와 함수를 표현하는 엘리먼트들은 빈 엘리먼트(empty element)인데, 그 이유는 그들의 피연산자들이 ``를 포함하는 다른 엘리먼트이기 때문이다.

수식 a x^2+b x+c는 아래와 같이 표현할 수 있다.

```xml











a





x

2









b

x



c





```

내용 MathML은 Scheme 같은 functional language의 expressions와 거의 같은 구조이다. `...`는 Scheme의 `(...)`에 해당하고, 많은 연산자 및 함수들이 Scheme 함수에 대응된다. 이런 간단한 문자 변환과 개별 토큰의 태그 제거만으로, 위 예제를 아래와 같이 변환할 수 있다:[45][46]

```scheme

(plus

(times a (power x 2))

(times b x)

c)

```

이는 널리 알려진 XML 엘리먼트 구조와 LISP 또는 Scheme의 S-expressions 사이의 가까운 관계를 반영한다.

SIGIR 회의에서 발표된 2018년 논문[28]위키데이터라는 의미 지식 기반을 수학 공식의 의미 요소와 고유하고 언어에 독립적인 위키데이터 항목을 연결하는 OpenMath 콘텐츠 사전으로 사용할 수 있다고 제안했다.

4. MathML을 HTML/XHTML 파일에 포함시키기

MathML은 XML 기반이므로, XHTML과 같은 다른 XML 파일에 삽입될 수 있다. 파이어폭스 3+, 오페라 9.6+ (불완전 지원)와 같은 최신 브라우저는 XHTML에 포함된 표현 MathML을 표시할 수 있다.

Mac OS X에서 Firefox 22를 사용하여 MathML+XHTML로 원의 공식을 렌더링한 그림


HTML5 파일에서도 인라인 MathML이 지원된다. WebKit (사파리, 크롬), 게코 (파이어폭스) 엔진을 사용하는 브라우저에서는 XHTML에서처럼 네임스페이스를 지정할 필요 없이 MathML을 사용할 수 있다.[1]

5. 지원 소프트웨어

마이크로소프트 워드, 오픈오피스 워드프로세서, 아래한글 HWP 등 여러 문서 편집기에서 MathML을 지원한다. 매스매직, MathType, 매스매티카, 메이플 등 수식 입력 및 편집 전문 소프트웨어에서도 MathML 포맷으로 수식을 저장하거나 불러올 수 있다.

W3.org는 MathML 관련 소프트웨어 목록을 제공하며[47], ASCIIMathML[48], LaTeXMathML[49], MathJax[50], Blahtex, jqMath[51], LaTeXML 등 다양한 도구를 사용하여 MathML을 다른 형식으로 변환하거나 웹에서 렌더링할 수 있다.

5. 1. 편집기

최근 마이크로소프트 워드, 오픈오피스 워드프로세서, 아래한글 HWP 등의 여러 문서 편집기에서 MathML을 지원하고 있다.

수식 입력 및 편집 전문 소프트웨어인 매스매직, MathType, 매스매티카, 메이플 등에서도 입력된 수식을 MathML 포맷으로 저장하거나, MathML 수식을 읽어들여 편집할 수 있도록 지원한다. MathML을 지원하는 네이티브 에디터에는 Design Science|디자인 사이언스영어의 MathFlow와 MathType, 볼프럼 리서치의 MathMagic|매스매직영어, Publicon|퍼블리콘영어, 그리고 WIRIS가 있다.[34] W3C에 MathML 에디터 목록이 있다.[35]

아파치 오픈오피스(OpenOffice Math), LibreOffice Math, KOffice (현재는 Calligra Suite), MS 오피스 2007과 같은 주요 제품에서도 MathML을 지원한다. Mathematica, Maple, Casio ClassPad 300|카시오 클래스패드 300영어 윈도우 버전과 같은 수학 소프트웨어 제품도 마찬가지이다.

Mozilla Firefox의 애드온인 Firemath|파이어매스영어는 WYSIWYG MathML 에디터를 제공한다.

대부분의 에디터는 표현 MathML만 생성한다. MathDox의 수식 편집기는 표현뿐만 아니라 내용 MathML도 제공하는 OpenMath 에디터이다. Formulator MathML Weaver는 MathML 표현, 내용, 그리고 이들의 혼합된 마크업을 편집하기 위해 WYSIWYG 스타일을 사용한다.

TeXmacs와 같은 WYSIWYG 에디터에서 MathML 출력을 할 수 있으며, MathML을 네이티브로 읽고 저장할 수 있는 소프트웨어로는 Formulator[36], Amaya 등이 있다.

다른 수식 표현 형식에서 MathML로 변환하는 소프트웨어도 있으며, 예를 들어 TeX에서 변환하는 소프트웨어로는 ConTeXt, MathType, itex2mml 등이 있다. 또한 웹상에서 변환을 하는 페이지도 있다.

5. 2. 웹 변환

W3.org는 MathML 관련 소프트웨어의 다운로드를 위한 목록을 유지하고 있다.[47]

웹 페이지에서 MathML을 렌더링하기 위해 여러 자바스크립트 라이브러리와 TeX-to-MathML 변환기를 사용할 수 있다. 주요한 소프트웨어는 다음과 같다:

  • ASCIIMathML[48]: 웹 페이지에서 인라인으로 사용되는 편리한 위키와 유사한 텍스트 구문을 MathML로 즉시 변환하는 자바스크립트 라이브러리를 제공한다. 게코 기반 브라우저와 MathPlayer를 사용하는 Internet Explorer에서 작동한다. ASCIIMathML 구문은 전자 과학 계산기에 익숙한 사람에게도 매우 친숙하다.

  • LaTeXMathML[49]: 표준 LaTeX 수학 구문(의 하위 집합)을 MathML로 변환한다.

  • MathJax: 자바스크립트 라이브러리로서 인라인 렌더링이 가능하다. LaTeX을 MathML로 변환하여 브라우저가 해석하게 할 수도 있다.[50]

  • Blahtex: TeX-to-MathML 변환기로 MediaWiki에서 쓸 목적으로 만들어졌다.

  • jqMath:[51] TeX과 비슷한 간단한 문법을, 브라우저가 MathML을 지원하면 MathML로, 그렇지 않으면 단순 HTML과 CSS로 동적으로 변환하는 자바스크립트 모듈이다.

  • LaTeXML: 펄 유틸리티로, LaTeX 문서를 HTML로 변환한다. 수식 변환에 MathML 또는 비트맵 이미지를 선택할 수 있다.

5. 3. 웹 브라우저

주요 웹 브라우저 중 게코 엔진을 사용하는 브라우저(파이어폭스, 카미노 등)와 오페라 9.5 이상은 MathML을 지원한다.[37] 게코 엔진 기반 브라우저에서는 특정 글꼴을 다운로드해야 제대로 된 기능을 지원받을 수 있다. 오페라 브라우저는 MathML for CSS profile 기능을 지원한다.[8]

웹 브라우저의 MathML 네이티브 지원(브라우저 렌더링 엔진에 의한 MathML 렌더링)은 더디게 진행되고 있다. Safari 5.1 이후 버전을 지원하며, 구글 크롬(Google Chrome)은 Chrome 24에서 지원했다가 구현 문제로 Chrome 25에서 제외되었으나,[38] Chrome 109부터 다시 지원한다.[39] Microsoft Edge도 MathML을 지원한다. Presto 엔진을 채택한 오페라 브라우저(Opera) 9.50[40]~12.1 버전은 대부분 수식 표시가 가능했지만, Opera 14부터 렌더링 엔진이 WebKit과 Blink로 바뀌면서 지원이 중단되었다.

인터넷 익스플로러(Internet Explorer)는 MathML을 지원하지 않는다. MathML 미지원 브라우저에서도 MathJax[41] 같은 자바스크립트 라이브러리나, 인터넷 익스플로러용 플러그인 [http://www.dessci.com/en/products/mathplayer/ MathPlayer]를 사용하면 MathML을 표시할 수 있다.

브라우저에서 MathML 렌더링 품질은 설치된 폰트에 따라 달라진다. STIX 폰트 프로젝트는 오픈 라이선스 수학 폰트를 제공하며, Microsoft Windows에 포함된 Cambria Math 폰트도 지원한다.

5. 4. 기타

안테나 하우스의 AH Formatter는 XML이나 HTML에 포함된 MathML을 시각화하여 인쇄하거나 PDF, SVG 등으로 출력할 수 있다.[42]

JAWS2015년에 출시된 16.0 버전부터 MathML을 지원한다.[43]

6. 예제

MathML영어은 복잡한 수학 공식을 표현하고 그 의미를 전달하기 위해 설계된 마크업 언어이다. 이 섹션에서는 이차 방정식의 근의 공식을 예로 들어, MathML영어 (표현 및 내용), LaTeX, troff/eqn, 오픈오피스 수식 편집 등 다양한 형식으로 어떻게 표현되는지 살펴본다.
이차 방정식 근의 공식::x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
다양한 형식으로 표현:

형식표현
LaTeX
troff/eqn
오픈오피스 수식 편집
표현 MathML
내용 MathML



위 예제들에서 볼 수 있듯이, LaTeX와 같은 마크업 언어는 사람이 읽고 쓰기 쉬운 반면, MathML영어은 수식의 구조와 의미를 명확하게 표현하여 컴퓨터가 처리하기에 용이하다.[33]

참조

[1] 웹사이트 ISO - ISO/IEC 40314:2016 - Information technology — Mathematical Markup Language (MathML) Version 3.0 2nd Edition https://www.iso.org/[...] 2021-04-06
[2] 웹사이트 Mathematical Markup Language (MathML) Version 3.0 2nd Edition https://www.w3.org/T[...] W3C 2021-04-06
[3] 웹사이트 MathML Core https://www.w3.org/T[...] W3C 2023-03-03
[4] 웹사이트 12 - Mathematical Equations https://www.w3.org/M[...] 1993-11-08
[5] 웹사이트 Mozilla 1.0 Released! http://www.mozillazi[...] 2002-06-05
[6] 간행물 Can Kestrels do Math? MathML support in Opera Kestrel http://dev.opera.com[...] Opera 2007-09-27
[7] 웹사이트 HTML Living Standard https://html.spec.wh[...] 2023-03-03
[8] 웹사이트 A MathML for CSS Profile https://www.w3.org/T[...] W3C 2013-07-25
[9] 웹사이트 Mathematical Markup Language Version 3.0 W3C Recommendation https://www.w3.org/T[...] 2012-05-09
[10] 웹사이트 Announcing…MathML! https://webkit.org/b[...] 2010-08-17
[11] 웹사이트 A web developer's guide to the latest Chrome Beta https://blog.chromiu[...] 2012-11-08
[12] 웹사이트 Comment 32 on Issue 152430: Enabling support for MathML https://bugs.chromiu[...] 2013-02-05
[13] 웹사이트 W3C MathML 3.0 Approved as ISO/IEC International Standard https://www.w3.org/2[...] 2015-06-12
[14] 간행물 Mondial Association for Tools Handling MathML http://mathml-associ[...] 2016-06-20
[15] 웹사이트 MathML forges on http://radar.oreilly[...] 2014-11-22
[16] 웹사이트 MathML Core https://www.w3.org/T[...] 2023-03-03
[17] 웹사이트 Igalia Brings MathML Back to Chromium https://www.igalia.c[...] Igalia News 2023-01-10
[18] 웹사이트 The MathML Interface https://www.w3.org/T[...] W3C 2023-09-02
[19] 웹사이트 MathML Media-type Declarations https://w3c.github.i[...] W3C 2023-09-02
[20] 웹사이트 JAWS Version 16 https://support.free[...] 2023-09-07
[21] 간행물 Viewing Mathematics on the Internet https://vismor.com/d[...] 2011-04-13
[22] 웹사이트 Characters, Entities and Fonts http://www.w3.org/TR[...]
[23] 웹사이트 XML Entity Definitions for Characters (2nd Edition) http://www.w3.org/TR[...]
[24] 웹사이트 Content Markup http://www.w3.org/TR[...]
[25] 서적 The SGML FAQ Book: Understanding the Relationship of SGML and XML Kluwer Academic Publishers 1997
[26] 문서 Canonical S-expressions#cite note-0
[27] 웹사이트 OpenMath Home · OpenMath https://www.openmath[...]
[28] 학술 Representing Mathematical Formulae in Content MathML using Wikidata. http://ceur-ws.org/V[...] 2018
[29] 웹사이트 Mathematical Markup Language (MathML) 1.01 Specification (Abstract) https://www.w3.org/T[...] 1999-07-07
[30] 웹사이트 XHTML and MathML from Office 2007 https://dpcarlisle.b[...] Blogspot 2007-09-20
[31] Youtube HTML Math https://www.w3.org/M[...]
[32] 서적 HTML入門 続 プレンティスホール出版 1998-08
[33] 웹사이트 Mathematical Markup Language (MathML™) 1.01 Specification (Abstract) https://www.w3.org/T[...] 1999-07-07
[34] Youtube WIRIS editor page describing the use of MathML http://www.wiris.com[...]
[35] Youtube MathML Software - Editors at W3C http://www.w3.org/Ma[...]
[36] 웹사이트 Hermitech Laboratory - Formulator Mathml Weaver http://www.hermitech[...]
[37] 웹사이트 Authoring MathML for Mozilla http://www.mozilla.o[...]
[38] 블로그 WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。 http://blog.cas-ub.c[...] アンテナハウス株式会社 2014-03-08
[39] 웹사이트 「MathML」に対応した「Google Chrome 109」が正式版に ~Windows 7/8.1対応はこれが最後 https://forest.watch[...] 窓の杜 2023-01-11
[40] 웹사이트 Opera Desktop Team - Even more work https://web.archive.[...]
[41] 웹사이트 MathJax http://www.mathjax.o[...]
[42] 웹사이트 MathML で記述した数式を PDF に変換 http://www.antenna.c[...]
[43] 웹사이트 JAWS16.0日本語版 http://www.extra.co.[...]
[44] 웹사이트 MathFlow http://www.dessci.co[...] Dessci.com 2012-05-09
[45] 서적 The SGML FAQ Book: Understanding the Relationship of SGML and XML Kluwer Academic Publishers 1997
[46] 문서 Canonical S-expressions#cite note-0
[47] 웹인용 MathML Implementations https://web.archive.[...] 2010-11-08
[48] 웹사이트 ASCIIMathML: Math on the web for everyone http://www1.chapman.[...] .chapman.edu 2012-05-09
[49] 웹사이트 LaTeXMathML: a dynamic LaTeX mathematics to MathML converter http://www.maths.not[...] Maths.nottingham.ac.uk 2012-05-09
[50] 웹사이트 MathJax MathML Support http://www.mathjax.o[...] Mathjax.org 2012-05-09
[51] 웹사이트 jqMath – Put Math on the Web http://mathscribe.co[...] Mathscribe.com 2012-05-09



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com