1.1 수학 및 그 표기법

1.2 기원과 목표

1.2.1 MathML의 역사

1.2.2 HTML의 한계

1.2.3 수학적 마크업 요구사항

1.2.4 MathML 프로젝트의 목표

1.3 웹에서 MathML의 역할

1.3.1 기존 수학적 마크업 언어

1.3.2 HTML 확장 메커니즘

1.3.3 브라우저 확장 메커니즘

1.4 MathML 개요

1.4.1 MathML 요소의 분류

1.4.2 마크업 보기

1.4.3 콘텐츠 마크업

1.4.4 프레젠테이션과 콘텐츠 결합

1.5 문서의 MathML

1.6 MathML 예제

1.6.1 마크업 예제 보기

1.6.2 콘텐츠 마크업 예제

1.6.3 혼합 마크업의 예

1.7 MathML 구문 및 문법

1.7.2 XML 구문 예제

2.1 모질라와 파이어폭스

2.2 마이크로소프트 인터넷 익스플로러

MathML( 수학적 마크업 Language)는 수학 응용 프로그램을 위한 XML 기반 마크업 언어입니다. WWW 컨소시엄(W3C)에서 개발했으며 권장 사항으로 채택되었습니다. 현재 버전 2003년 10월 21일 승인된 MathML(수학 마크업 언어) 버전 2.0(2판)입니다.

MathML은 수학적 마크업의 두 가지 "관점"을 구현합니다. 그 유형 중 하나는 수학 공식의 시각적 표현 형식을 설명하는 프레젠테이션 마크업입니다. 두 번째는 의미론적 내용을 표현하는 Content Markup이다.

MathML은 표현뿐만 아니라 공식 요소의 의미도 고려합니다. MathML을 보완하기 위해 수학적 의미 체계 마크업 시스템도 개발 중입니다. OpenMath라고 합니다.

1.2.1 MathML의 역사

컴퓨터 처리 및 전자 통신 수단에 대한 수학적 정보를 제시하는 작업은 인터넷이 출현하기 오래 전에 발생했습니다. 과학자들이 ASCII 문자를 기반으로 한 어떤 형식으로 논문을 작성한 다음 이를 통해 서로에게 보내는 것이 일반적인 관행이었습니다. 이메일. 여러 수학적 마크업 언어, 특히 TEX은 웹이 그처럼 두드러진 위치를 차지하기 전인 1992년에 이미 널리 사용되었습니다.

네트워크는 처음부터 효과적인 방법많은 사람들에게 정보를 제공합니다. 그러나 World Wide Web은 원래 과학자를 위해 과학자에 의해 구상되고 구현되었지만 HTML에 수학적 표현을 포함할 수 있는 가능성은 극히 제한적이었습니다. 현재 웹상의 대부분의 수학적 정보는 다음과 같은 텍스트 형식으로 제공됩니다. 그래픽 이미지과학적 표현(GIF 또는 JPEG 형식) 또는 전체 PDF 문서.

W3C(World Wide Web Consortium)는 과학적 커뮤니케이션 기반의 부족이 주요 문제임을 이해했습니다. 일찍이 1994년에 Dave Raggett은 HTML 3.0 프로토타입에 HTML Math를 포함하자는 제안을 했습니다. 1995년 4월 다름슈타트에서 열린 회의에서 수학적 표기법에 대한 원탁회의가 열렸다. 같은 해 11월 Wolfram Research의 대표자들은 W3C 팀에 HTML 내에서 수학 지원을 구현하기 위한 제안을 제출했습니다. 1996년 5월 Champaign-Urbana에서 열린 Digital Library Initiative 회의는 많은 이해 관계자를 모으는 데 중요한 역할을 했습니다. 이 회의는 HTML Math에 대한 편집 검토 위원회를 구성하는 결과를 가져왔습니다. 이어서 이 작업 그룹 1997년 3월에 최초의 W3C Math Working Group으로 공식 개편되었습니다. 두 번째 W3C 수학 작업 그룹은 1998년 7월에 구성되었습니다.

MathML 프로젝트는 다양한 전문가 그룹의 관심과 의견을 반영합니다. MathML 개발의 많은 부분은 특별히 언급할 가치가 있습니다. 예를 들어, 특히 가시적인 어려움이 있었던 접근성 문제와 관련이 있습니다. T. V. Raman은 이 방향으로 많은 일을 했습니다. Wolfram Research의 Neil Soiffer와 Bruce Smith는 Mathematica 3.0 프로젝트 작업 중에 얻은 수학적 표현 문제를 해결한 경험을 공유했습니다. 그들의 아이디어는 뷰 요소의 구조에 중요한 영향을 미쳤습니다. Design Science의 Paul Topping은 수학 형식 지정 및 편집에도 기여했습니다. MathML은 SGML 및 컴퓨터 대수학 커뮤니티에서 수학적 정보를 인코딩하는 다른 작업과 관련된 여러 작업 그룹 구성원과의 파트너십을 통해 많은 이점을 얻었습니다. 여기에는 StiloTechnologies의 Stephen Buswell, ElsevierScience의 NicoPoppelier, INRIA(SophiaAntipolis)의 StéphaneDalmas, WaterlooMaple의 StanDevitt, AngelDiaz 및 RobertS가 포함됩니다. IBM의 Sutor와 StephenM. 웨스턴 온타리오 대학교의 와트. 또한 MathML은 OpenMath 프로젝트, ISO 12083 작업 그룹의 작업 및 "의미론적" 수학을 위한 DTD 조각에 대한 Stilo Technologies의 작업의 영향을 받았습니다. 미국 수학 학회는 MathML 개발에 핵심적인 역할을 했습니다. 무엇보다도 이 조직의 대표가 두 W3C 수학 워킹 그룹의 의장이 되었습니다. 1996년 5월부터 1997년 3월까지 밴드는 Ron Whitney가 이끌었습니다. Patrick Ion은 1997년 3월부터 1998년 6월까지 The Geometry Center의 Robert Miner와, 1998년 7월부터 IBM의 Angel Diaz와 함께 그룹의 공동 의장을 맡았습니다.

MathML 개발의 목표는 다양한 정보 환경에서 외부 프로그램과 고품질 디스플레이와의 상호 작용을 허용하는 유연하고 확장 가능한 수학 표기 시스템을 요구합니다. 그러나 이러한 모든 요구 사항을 충족하는 마크업 언어는 매우 복잡합니다.

동시에 학생과 같은 많은 사용자 그룹의 경우 웹 페이지에 수학적 표현을 포함하는 쉬운 방법을 갖는 것이 중요합니다. 마찬가지로 다른 그룹의 경우, 예를 들어 TEX 시스템 사용자의 경우 최고의 솔루션 TEX과 같은 언어를 사용하여 마크업을 웹 페이지에 직접 통합할 수 있는 시스템이 있을 것입니다. 일반적으로 사용자 그룹에 따라 필요에 가장 적합한 다양한 형태의 입력 및 출력이 필요합니다. 따라서 이상적으로는 수학 문서를 웹에 게재하는 시스템은 다양한 정보 환경에서 정보 교환 및 표시를 위한 일반 서비스뿐만 아니라 입력 및 출력을 위한 전문 서비스를 모두 제공해야 합니다.

실제로, 수학적 표준이 전문적이고 일반적인 요구를 위해 네트워크에서 무엇을 제공해야 하는지에 대한 검토는 계층 구조의 아이디어로 이어집니다. 첫 번째 수준에는 수학 데이터의 교환, 처리 및 표시를 위한 강력한 표준 도구가 포함됩니다. 두 번째 수준에는 특정 사용자 그룹을 위해 설계된 특수 도구가 포함되어 있어 제한된 사용자 그룹에 배포하기 위해 수학적 정보를 쉽게 인코딩할 수 있습니다.

MathML은 2계층 아키텍처의 더 낮고 더 일반적인 수준에서 수학적 정보를 표시하도록 설계되었습니다. 여기에는 표시, 검색 및 인덱싱 도구, 기타 수학적 응용 프로그램으로 처리하기 쉬운 엄격하고 규칙적인 형식으로 복잡한 표기 및 의미 구조를 표시하는 작업이 포함됩니다.

결과적으로 MathML 마크업은 작성자가 직접 사용하도록 의도되지 않았습니다. MathML은 사람이 읽을 수 있어 디버깅에 많은 도움이 되지만 가장 단순한 경우를 제외하고는 수동 코딩을 하기에는 너무 복잡합니다. 대신 작성자는 특수 수식 편집기, 변환기 및 기타 특수 소프트웨어 MathML 문서를 생성합니다. 또는 일부 렌더링 프로그램 및 수학 문서 지원 시스템은 다른 입력 형식을 즉석에서 MathML로 변환할 수 있습니다.

어떤 면에서 MathML은 Adobe에서 개발한 PostScript 언어와 같은 다른 저급 통신 형식과 유사합니다. PostScript 파일을 만들 수 있습니다. 다른 방법들, 필요에 따라 전문가가 수동으로 작성 및 편집하고 작성자는 다음을 사용하여 작성합니다. 워드 프로세서, 디자이너 - 일러스트레이터 등. PostScript 파일이 있는 경우 프린터 및 화면 뷰어와 같은 PostScript 디스플레이 장치를 널리 사용할 수 있으므로 매우 많은 청중에게 배포할 수 있습니다.

MathML이 일반 의사소통 수준의 마크업 언어로 발전한 이유 중 하나는 수학적 발달을 자극하기 위함이다. 소프트웨어최상위 네트워크. MathML은 수학적 자료를 만들고 표시하기 위한 소프트웨어 모듈 개발자의 노력을 조정하는 방법입니다. 기능 부품 개발 간소화 큰 시스템, MathML은 잠재적인 사용자에게 매우 유용한 프로그램 개발을 자극할 수 있습니다.

작성자는 필요에 가장 적합한 도구를 사용하여 MathML 문서를 작성할 수 있습니다. 학생들이 선호할 수 있음 비주얼 에디터 XHTML 파일에 MathML 마크업 블록을 저장하는 기능이 있는 공식. 연구원은 동료가 웹 페이지에서 가져와 처리할 수 있도록 수학 정보를 자동으로 인코딩하는 컴퓨터 대수학 패키지를 사용할 수 있습니다. 학술지 발행인은 TEX 마크업을 HTML 및 MathML로 변환하는 프로그램을 사용할 수 있습니다. MathML을 포함하는 웹 페이지를 만드는 방법에 관계없이 공통 통신 계층의 모든 이점을 사용할 수 있습니다. MathML과 함께 작동하는 다른 프로그램을 동일한 문서에서 음성 및 인쇄로 출력하고 컴퓨터 대수학 시스템에 입력하고 웹 문서의 대규모 아카이브의 일부로 관리하는 데 사용할 수 있습니다. MathML 형식의 수학 문서를 고품질로 인쇄하려면 표준 시스템이 목적을 위해 특별히 만들어진 T E X를 포함한 레이아웃. 마지막으로 MathML은 스프레드시트, 집계 패키지 및 엔지니어링 도구와 같이 수학 공식이 발생하는 다른 영역에 결국 통합될 것으로 예상할 수 있습니다.

W3C Math Working Group은 문서 생성 및 표시 도구를 포함하여 다양한 MathML 도구를 곧 사용할 수 있도록 다양한 소프트웨어 회사와 협력하고 있습니다. MathML과 함께 작동하는 프로그램의 현재 목록은 Math World Wide Web Consortium 페이지에 있습니다.

HTML Math의 원래 개념은 단순히 HTML 태그 집합을 확장하여 브라우저에서 직접 해석을 제공하는 것이었습니다. 그러나 그 이전에도 네트워크의 폭발적인 성장으로 인해 글로벌 확장 메커니즘이 필요했으며 수학적 정보는 이러한 메커니즘을 사용하여 웹에 통합할 수 있는 구조화된 데이터 유형 중 하나일 뿐이라는 것이 분명해졌습니다.

MathML이 확장으로 웹에 통합된다는 점을 감안할 때 MathML과 이를 사용하는 프로그램이 기존 웹 환경과 잘 상호 운용될 수 있는 것이 매우 중요합니다. 특히 MathML은 세 가지 유형의 상호 작용을 염두에 두고 설계해야 합니다. 첫째, 수학적 콘텐츠 생성을 위해서는 기존의 수학적 마크업 언어를 MathML로 변환할 수 있고 MathML 문서를 생성할 수 있는 기능을 기존 에디터에 추가하는 것이 중요하다. 둘째, 추가로 HTML 마크업에 MathML 마크업을 포함할 수 있어야 하며, 이 경우 향후 브라우저에서 사용할 수 있습니다. 검색 엔진이제 HTML과 함께 작동하는 모든 유형의 웹 애플리케이션. 마지막으로 HTML에 포함된 MathML을 표시할 수 있어야 합니다. 최신 브라우저결과가 이상적이지 않더라도. HTML에서 XHTML로의 전환과 함께 위의 모든 요구 사항은 더욱 필요하게 될 것입니다.

월드 와이드 웹은 완전히 국제적입니다. 수학은 전 세계적으로 사용되는 언어입니다. 과학 기술의 수학적 표기법은 자국어와 밀접한 관련이 있습니다. W3C는 세계와 소통하는 건설적인 힘이 되는 것을 목표로 합니다. 따라서 MathML 개발자는 국제화 문제에 직면했습니다. 이 버전의 MathML은 왼쪽에서 오른쪽으로 쓰는 언어와 호환되지 않는 것으로 알려져 있습니다. 왼쪽에서 오른쪽으로 표기하는 것은 MathML 2의 표준이며 일부 국가 언어의 텍스트에 수학 공식을 작성할 필요성이 아직 발생하지 않은 것이 분명합니다. 소위 "양방향 기술"이 개발되고 있는 단계에 불과하며, 최고의 지원이 맥락에서 공식은 향후 개발 과제입니다.

1.7.1 MathML 구문 및 문법

MathML은 (Extensible Markup Language)를 기반으로 합니다. 즉, 구문은 XML 구문의 규칙을 따르고 문법은 DTD(Document Type Definition)로 정의됩니다. 즉, 태그, 속성, 엔티티 등의 사용에 대한 세부 사항은 XML 언어 사양에 정의되어 있고 MathML 요소 및 속성, 요소 중첩 등에 대한 세부 사항은 MathML DTD에 정의되어 있습니다.

W3C는 웹에서 XML 사용의 용이성과 유연성을 높이고 모듈식 XML 응용 프로그램 생성을 지원하기 위해 DTD의 기본 형식이 충분히 유연하지 않다는 것을 발견했습니다. 따라서 W3C 워킹 그룹은 사양 문서이며 DTD를 대체해야 하는 XML 스키마를 개발하기 위해 구성되었습니다. MathML 2.0은 수학자들이 새로운 웹 기술을 최대한 활용할 수 있도록 설계되었습니다. 따라서 MathML에 대한 스키마가 있습니다.

MathML은 또한 구문 및 문법 규칙을 정의합니다. 일반적인 규칙, XML 응용 프로그램으로 상속됩니다. 이러한 규칙을 통해 MathML은 다음을 도입하지 않고도 순수 XML로 가능한 것보다 훨씬 더 많은 정보를 표현할 수 있습니다. 큰 수새로운 요소를 만들고 훨씬 더 복잡한 DTD 또는 스키마를 사용합니다. 물론 MathML 특정 규칙을 도입할 때의 단점은 생성된 문서를 XML 프로세서 및 유효성 검사기로 처리할 수 없다는 것입니다.

추가 MathML 문법 및 구문 규칙에는 두 가지 주요 유형이 있습니다. 첫 번째 유형은 속성 값에 대한 추가 기준을 설정하는 것입니다. 예를 들어, 순수 XML에서는 속성 값이 양의 정수가 되도록 요구할 수 없습니다. 두 번째 유형의 규칙은 DTD 또는 스키마에 제공된 것보다 하위 요소(예: 순서)에 대한 더 자세한 제한을 정의합니다. 예를 들어 XML은 첫 번째 자식 요소를 나머지 요소와 다르게 처리하도록 지정할 수 없습니다.

1.7.2 XML 구문 예제

MathML은 XML을 기반으로 하기 때문에 MathML 사양은 XML 용어를 사용합니다. XML 데이터는 유니코드 문자(일반 ASCII 문자 포함), 다음과 같은 엔터티 참조(비공식적으로 엔터티라고 함)로 구성됩니다.<, которые обычно представляют расширенные символы, и элементы, такие как 엑스.

요소는 HTML에서와 같이 "open"과 "end" 태그 사이에 "content" 또는 "body"라고 하는 다른 XML 데이터를 포함하는 경우가 많습니다. 다음과 같은 "빈 요소"도 있습니다. 여는 태그가 />로 끝나는 위치에서 요소에 내용이나 끝 태그가 없음을 나타냅니다. 여는 태그는 위의 예에서 fontstyle="normal"과 같이 속성이라고 하는 명명된 옵션을 포함해야 합니다.

XML에서는 대문자와 소문자를 구분하므로 MathML 요소 및 속성 이름은 대소문자를 구분합니다. 가독성을 위해 MathML 사양은 대부분을 소문자로 정의합니다.

XML 마크업에 대한 공식적인 논의에서는 mrow와 같은 요소와 이를 정의하는 태그를 구분합니다. 그리고. 태그 사이에 무엇이 있습니까? 그리고, mrow 요소의 내용 또는 본문이라고 합니다. 없음과 같은 "빈 요소"는 본문이 없고 단일 보기 태그로 정의됩니다. . 이 사양은 태그와 요소 간의 이러한 구분을 강조하지 않습니다. 예를 들어, 때때로 요소를 참조합니다. 그리고 , 이러한 태그가 속한 요소를 의미합니다. 이것은 요소 참조가 속성 참조와 구별되도록 수행됩니다. 그러나 "요소" 및 "태그"라는 용어는 다음에서 사용됩니다. 엄격한 준수 XML 용어로.

1.7.3 자식 요소 대 인수

많은 MathML 요소에는 특정 수의 하위 요소가 필요하거나 특정 위치의 하위 요소에 추가 의미를 부여합니다. 위에서 언급했듯이 이 유형의 제약 조건은 MathML에만 해당되며 XML 구문 및 문법을 사용하여 지정할 수 없습니다. 주어진 MathML 요소의 자식 요소가 다음을 만족할 때 추가적인 조건들, 우리는 그것에 대해 이야기 할 것입니다 논쟁에 대해가 아니라 자식 요소사용의 특수성을 강조합니다. 달리 명시되지 않는 한 "인수"라는 용어는 이 기술적인 의미로 사용됩니다.

일부 요소에는 인수의 수 또는 유형에 대한 요구 사항이 다릅니다. 이러한 추가 요구 사항은 각 특정 요소에 대해 설명됩니다.

1.7.4 MathML 속성 값

XML 언어 사양에 따라 요소 속성은 다음 형식 중 하나로 지정되어야 합니다.

속성 이름 = "값"

속성 이름 = "값"

여기서 "=" 기호 주위의 공백은 선택 사항입니다.

속성 이름은 예와 같이 사양 텍스트에서 고정 폭 글꼴로 표시됩니다.

MathML에서 임의의 문자로 구성된 문자열이 될 수 있는 속성 값은 큰따옴표("") 또는 작은따옴표("")로 묶어야 합니다. 속성 값에는 전체 값을 묶는 데 사용되지 않는 인용 부호 유형이 포함될 수 있습니다.

MathML은 MathML DTD에서 지정한 일반 XML 구문보다 속성 값에 더 복잡한 구문을 사용합니다. 이러한 추가 규칙은 MathML 응용 프로그램을 위한 것이며 이를 위반하는 것은 MathML 버그이지만 XML 프로세서에서 추적할 수 없습니다. MathML 요소에 대한 값 구문은 속성 테이블에 정의되며 아래에 설명된 표기법을 사용하여 각 요소에 대한 설명이 이어집니다. MathML 응용 프로그램이 속성 값을 처리할 때 개별 단어나 숫자를 구분하는 공백을 제외한 모든 공백은 무시됩니다. 문자 데이터는 속성 값에 직접 또는 참조 엔티티를 사용하여 포함될 수 있습니다.

특히 ", ", & 및< могут быть включены в значения атрибутов MathML (когда это разрешено синтаксисом) с использованием сущностей ",",& и <, соответственно.

MathML DTD는 대부분의 속성 값의 유형을 CDATA 문자열로 선언합니다. 이를 통해 기존 SGML 및 XML 기반 소프트웨어와의 호환성을 높이고 사전 정의된 값 목록을 확장할 수 있습니다. XML 스키마에도 동일한 논리가 적용됩니다.

1.7.4.1 MathML 사양에서 사용되는 구문 표기법

유효한 속성 값에 대한 MathML 관련 구문을 설명하기 위해 이 문서에서는 다음 규칙과 표기법을 사용합니다.

표기법 무엇을합니까
숫자 10진수 정수 또는 유리수(소수점이 1개인 숫자 문자열), "-" 기호로 시작 가능
부호 없는 숫자 십진 정수 또는 실수, 부호 없는
정수 "-" 기호로 시작하는 십진 정수
양의 정수 0이 아닌 부호 없는 10진수 정수
임의의 문자열(항상 속성의 전체 값)
캐릭터 공백이 아닌 단일 문자 또는 참조 MathML 엔터티 공백으로 구분할 수 있음
#rrggbb RGB 형식의 색상; 예 #5599dd에서 세 쌍의 16진수는 밝은 청록색을 생성하는 x00에서 xFF까지의 눈금에서 빨강, 녹색 및 파랑의 비율을 정의합니다.
h 단위 수평 길이 단위(허용 단위는 아래에 나열됨)
v-단위 수직 길이 단위(허용되는 단위는 아래에 나열됨)
CSS 글꼴 패밀리
CSS 색상 이름 CSS에 대한 하위 섹션에서 아래에 설명되어 있습니다.
이탤릭체로 된 다른 단어 각 속성에 대해 별도로 텍스트에 설명
양식 + 하나 이상의 "양식" 인스턴스
형태* "form"의 0개 이상의 인스턴스
f1 f2...fn 연속적으로, 선택적으로 공백으로 구분된 각 형식의 하나의 인스턴스
f1 | f2 |... | fn 위의 형식 중 하나
선택적 "양식" 인스턴스
(형태) 그냥 형태와 동일
표시되지 않은 단어 속성 값에 그대로 포함된 단어(설명 문구의 일부가 아닌 경우)
따옴표 안의 문자 속성 값에 포함된 문자 그대로(예: "+" 또는 "+")

작업 우선 순위, 가장 높은 것부터 가장 낮은 것:

형식 + 또는 형식 *

f1 f2... fn(모양 시퀀스)

f1 | f2 |... | fn(형식 중 하나)

유형 XML CDATA 속성 값에 정의된 임의의 문자를 포함할 수 있습니다. MathML에는 구문 규칙이 없습니다. 전체 값이 아니라 속성 값의 일부일 수 있습니다.

속성 값의 인접한 키워드와 숫자는 공백 문자로 구분해야 합니다. 단, 숫자 뒤에 오는 단위 식별자는 제외됩니다(h-unit 및 v-unit 문자 구문에 지정된 대로). 공백 문자는 필수는 아니지만 위에 나열된 토큰 사이에 허용됩니다. 단(CSS 호환성을 위해) 단위 식별자 바로 앞, "-" 기호와 숫자 사이, #과 rrggbb 또는 rgb 사이는 예외입니다.

치수를 지정하고 현재 글꼴에 종속되어야 하는 숫자 속성의 값은 글꼴 관련 단위 또는 지정된 절대 단위(아래에 설명됨)로 지정할 수 있습니다. 가로 치수는 일반적으로 em으로 지정되고 세로 치수는 ex로 지정됩니다. em 또는 ex 식별자는 번호 바로 뒤에 옵니다. 예를 들어, "+" 연산자의 가로 들여쓰기는 일반적으로 ems로 지정되지만 다른 단위를 사용할 수도 있습니다. 글꼴 관련 단위는 현재 글꼴 크기에 따라 렌더링된 요소의 크기를 늘리거나 줄일 수 있으므로 절대 단위보다 선호됩니다.

대부분의 숫자 속성의 경우 가능한 값은 일부 하위 집합으로 제한되고 다른 값은 오류가 아니지만(달리 명시되지 않는 한) 매퍼에 의해 가장 가까운 유효한 값으로 반올림되거나 내림됩니다. 유효한 값 세트는 렌더러에 따라 다를 수 있으며 MathML에 의해 정의되지 않습니다.

속성 구문에 따라 숫자 값에 숫자 또는 정수와 같은 빼기 기호("-")가 포함될 수 있는 경우 음수 값이 중요하지 않을 때 사용하는 것은 오류가 아닙니다. 대신 이전 단락에서 설명한 대로 애플리케이션에서 값을 처리해야 합니다. 더하기 기호("+")를 숫자 값의 일부로 명시적으로 지정하는 것은 구문에 구체적으로 명시된 경우("+" 또는 "+")를 제외하고 금지되며, 그 존재는 속성 값의 의미를 변경할 수 있습니다(설명된 대로 이러한 각 속성에서).

h-unit, v-unit, css-fontfamily 및 css-color-name 기호는 다음 하위 섹션에서 설명합니다.

1.7.4.2 단위가 있는 속성

일부 속성은 "단위 식별자"(종종 "단위"라고도 함)가 뒤따르는 숫자로 가로 및 세로 치수를 허용합니다. 구문 기호 h-unit 및 v-unit은 각각 수평 및 수직 차원을 나타냅니다. 가능한 측정 단위와 적용되는 크기는 아래 표에 나열되어 있습니다. 수평 및 수직 차원에서 동일하지만 구문 기호는 다릅니다(사용 방향을 상기시키기 위해).

단위 식별자와 의미론적 의미는 다음에서 가져옵니다. 그러나 MathML에서 숫자 뒤에 식별자가 오는 구문은 CSS의 구문과 동일하지 않습니다. CSS의 숫자는 소수점으로 끝날 수 없고 "+" 기호로 시작할 수 있기 때문입니다.

MathML의 유효한 수평 및 수직 단위:

표기 단위 em 및 ex는 "추가 참고 사항" 섹션에서 자세히 설명합니다.

%는 "상대 단위"입니다. 속성 값이 n%(모든 숫자 값 n에 대해)로 주어지면 값은 n을 곱한 기본값을 100으로 나눈 값으로 정의됩니다. 기본값(또는 상수가 아닌 경우 얻을 수 있는 방법) 각 요소의 속성 테이블에 설명되어 있으며 그 의미는 후속 속성 문서에 설명되어 있습니다. (mpadded 요소에는 %에 대한 고유한 구문이 있으며 단위 식별자로 사용할 수 없습니다.)

CSS와의 일관성을 위해 MathML의 길이 단위는 선택 사항일 수 있습니다. 이 경우 속성 구문의 단위 문자는 number 와 같이 대괄호로 묶입니다. 단위가 없는 속성 값의 의미는 각 속성에 대한 문서에 설명되어 있습니다. 일반적으로 지정된 숫자에 기본값을 곱합니다. (이 경우 단위가 없는 숫자 nnn은 % 기호가 있는 숫자 nnn에 100을 곱한 것과 같습니다. 예를 들어, (에 해당 ()

예외로(CSS 호환성의 경우에도) 0의 숫자 값은 구문에 필요한 경우에도 단위 식별자가 필요하지 않습니다. 이 경우 0을 곱한 숫자는 0이므로 단위 식별자의 유무는 중요하지 않습니다.

이 사양에 있는 대부분의 속성에 대해 활자체 세트에 사용된 단위는 표준 측정 단위로 선택됩니다. 특정 수량 값이 지정되지 않은 경우 표준 측정 단위는 일반적으로 표 또는 속성 설명에 지정됩니다. 가장 일반적으로 사용되는 단위는 em 또는 ex입니다. 그러나 특정 속성의 설명에 달리 지정되지 않는 한 모든 단위를 사용할 수 있습니다.

프레임 간격과 같은 일부 속성은 , 두 개 이상의 숫자 값을 포함할 수 있으며 각각 다른 측정 단위가 뒤따릅니다.

요구 사항은 아니지만 주로 수직 치수의 경우 단위 ex를 사용하고 수평 치수의 경우 em을 사용하는 것이 일반적입니다. 이러한 측정 단위는 속성이 적용된 요소를 표시하는 데 사용되는 글꼴과 크기에 따라 다릅니다. 그래서 그들은 해석해야합니다 ~ 후에 fontfamily 및 fontsize와 같은 속성은 동일한 요소에서 발생하는 경우 현재 글꼴 또는 해당 크기를 변경하면 단위 크기가 변경될 수 있기 때문입니다.

각 측정 단위의 길이 정의(길이 값에 대한 MathML 구문 제외)는 글꼴이 에 정의된 값과 다른 em 및 ex에 대한 특수 값을 설정한다는 점을 제외하고 CSS에서와 동일합니다. CSS(각각 글꼴 크기 및 "x" - 높이).

1.7.4.3 CSS 호환 속성

아래 나열된 MathML 속성 중 일부는 CSS1에 정의된 텍스트 표시 속성에 해당합니다. 이는 렌더러가 기본 속성 값을 정의할 때 적절한 속성에 대해 CSS 환경을 쿼리할 수 있도록 하기 위해 수행됩니다.

MathML 및 CSS 속성을 통해 스타일 속성을 정의하는 기능에도 단점이 있습니다. 적어도 이것은 혼란스럽고 최악의 경우 전체 문서의 CSS를 변경할 때 방정식이 의도하지 않게 의미를 변경하게 합니다. 따라서 이러한 속성은 더 이상 사용되지 않습니다. 이에 따라 MathML 2.0은 4가지 새로운 수학적 스타일 속성을 도입합니다. 이러한 속성은 부울 값을 사용하여 수학에 사용되는 추상적인 기호 범주를 더 잘 전달하고 MathML과 CSS를 명확하게 구분합니다.

다음 표는 더 이상 사용되지 않는 MathML 1.01 스타일 속성을 해당 CSS 속성에 매핑합니다.

속성 및 스타일 시트가 처리되는 순서입니다.

CSS 또는 유사한 스타일 시트는 MathML 요소의 표시 속성에 대한 변경 사항을 지정할 수 있습니다. 표시 속성은 요소의 속성과 렌더러 모두에 의해 변경될 수 있으므로 다른 소스에서 변경이 발생하는 순서를 결정해야 합니다. 자동 협상의 예는 fontsize의 상황입니다. 이전 값과 독립적으로 새 속성 값을 설정하는 것과 같은 "절대" 변경의 경우(숫자로 증가 또는 곱하는 것과 같은 "상대적" 변경과 반대) 가장 최근의 절대 변경만 적용됩니다. 따라서 가장 높은 우선 순위 변경 소스는 마지막에 처리되어야 합니다.

CSS의 경우 다른 소스에서 MathML 요소의 표시 속성에 영향을 미치는 변경 사항이 처리되는 순서는 다음과 같아야 합니다. (먼저 변경됨, 가장 낮은 우선 순위)

상위 요소의 유형과 상위 요소의 위치에 따라 속성 또는 속성에 대한 자동 변경(위에서 언급한 대로 스크립트 수준에 따른 fontsize 변경 사항; 이러한 변경 사항은 일반적으로 표시 속성을 렌더링하기 전에 상위 요소 자체에 의해 적용됩니다. 현재 요소

독자의 스타일 시트에서: 스타일 ~ 아니다"중요하다"고 선언

현재 MathML 요소의 속성을 명시적으로 설정

독자의 스타일 시트에서: "중요"로 선언된 스타일(마지막 수정됨, 가장 높은 우선 순위).

CSS 스타일 시트에 의한 변경 순서는 CSS 자체에서 정의됩니다(이것은 CSS2에서 정의한 순서입니다). 다음 설명은 MathML 속성의 정확한 사양으로 인해 이 순서가 변경된 경우에만 적용됩니다.

설명: MathML의 표시 속성은 CSS에 정의된 순서에 따라 동일한 우선 순위로 처리되어야 하는 HTML 표시 속성(예: 정렬)과 유사합니다. 또한 이러한 우선 순위 선택을 통해 독자는 CSS 스타일을 "중요"로 정의하여 명시적 MathML 설정을 재정의해야 하는 설정을 결정할 수 있습니다. 콘텐츠 또는 프리젠테이션 요소로 구성된 MathML 표현식은 주로 의미를 전달하기 위한 것이며 "그래픽 표현"(있는 경우)이 이를 지원해야 하기 때문에(그러나 그 자체로는 중요하지 않음) 독자는 자신의 스타일 선호도를 원할 것입니다. 우선했다. 주요 예외는 표시 속성이 표현식의 의미를 변경하는 경우입니다.

1.7.4.4 기본 속성 값

MathML 속성의 기본값은 일반적으로 해당 요소에 대한 자세한 설명과 함께 제공됩니다. 속성 테이블에서 일반 글꼴로 제공된 기본값은 정확하며(명백한 설명이 아닌 한) 기울임꼴 구절은 기본값을 계산하는 방법을 설명합니다.

상속된 것으로 선언된 기본값은 mstyle에 대해 설명된 대로 디스플레이 환경에서 가져오거나, 어떤 경우에는 별도로 설명된 경우 주변 요소의 다른 속성 값 또는 해당 값의 일부에서 가져옵니다. 알고 있는 경우 정확하게 제공할 수 있는 값이 항상 사용됩니다. 주어진 요소의 내용이나 속성에 의존하지 않고 환경에만 의존합니다. (단, 이러한 속성이나 내용에 따라 의미가 달라질 수 있음)

자동으로 설명된 기본값은 고품질 이미지를 생성하는 방식으로 렌더러에서 계산해야 합니다. 이를 달성하는 방법은 일반적으로 MathML 사양에 지정되어 있지 않습니다. 알고 있는 경우 정확하게 제공할 수 있는 값이 항상 사용됩니다. 그러나 일반적으로 요소의 내용과 표시 환경에 따라 다릅니다.

속성 테이블에서 발생하는 기본값에 대한 기타 기울임꼴 설명은 각 속성에 대해 별도로 설명합니다.

여는 XML 태그에 있는 속성의 값으로 묶어야 하는 작은따옴표 또는 큰따옴표는 속성 테이블의 값 구문에 표시되지 않고 예제 텍스트에 표시됩니다.

일반적으로 MathML 속성에 정확하게 할당할 수 있는 값은 없으며 상속되거나 자동 속성에 대한 부재의 효과를 모방합니다. "상속" 또는 "자동"을 지정하는 것은 확실히 작동하지 않으며 전혀 허용되지 않습니다. 또한 뷰 속성(여기에 특정 기본값이 제공됨)의 경우에도 mstyle 요소를 사용하여 포함된 요소를 변경해야 합니다. 따라서 MathML DTD는 대부분의 프레젠테이션 속성 기본값을 #IMPLIED로 정의하여 XML 프로세서가 이러한 속성에 특별한 기본값을 추가하지 못하도록 합니다. MathML 스키마는 동일한 방식으로 작동합니다.

1.7.4.5 MathML DTD의 속성 값

XML DTD에서 허용되는 속성 값은 일반 문자열로 정의되거나 다양한 방식으로 제한될 수 있습니다(가능한 값을 열거하거나 특정 데이터 유형을 지정하여). XML 속성 유형의 선택은 DTD를 사용하여 수행할 수 있는 유효성 검사 범위에 영향을 줍니다.

MathML DTD는 경우에 따라 유효한 값의 열거를 포함하여 모든 MathML 속성에 대한 형식 XML 속성 유형을 정의합니다. 그러나 일반적으로 MathML DTD는 상대적으로 느슨하며 종종 속성 값을 문자열로 정의합니다. 이는 동일한 MathML 요소의 여러 속성이 동일한 값(예: true 및 false)을 가질 수 있도록 하고 사전 정의된 값 목록을 확장할 수 있도록 하는 SGML 파서와 호환되도록 수행됩니다.

동시에 속성의 값이 DTD에서 문자열로 정의될 수 있다고 해도 위에서 설명한 것과 이 사양의 나머지 부분에서 설명한 것처럼 MathML에서는 특정 값만 유효합니다. 예를 들어 많은 속성에는 숫자 값이 필요합니다. 다음 섹션에서는 각 요소의 유효한 속성 값을 설명합니다. 그러나 DTD의 강성이 부족하다고 해서 해당 요구 사항이 MathML의 일부가 아니거나 특정 MathML 렌더러에서 적용할 수 없다는 의미는 아닙니다.

또한 MathML DTD는 편의상 제공됩니다. 사양의 텍스트와 완전한 호환성을 의도하지만 충돌하는 경우 텍스트가 우선합니다.

1.7.5 모든 MathML 요소에 공통적인 속성

XSLT 및 CSS2와 같은 스타일 지정 메커니즘의 사용을 용이하게 하기 위해 모든 MathML 요소에는 각 요소에 대해 설명된 속성 외에 class, style 및 id 속성이 있습니다. CSS를 지원하지 않는 MathML 렌더러는 이러한 속성을 무시할 수 있습니다. MathML은 이러한 속성의 값을 일반 문자열로 정의하지만, 스타일 엔진에는 더 엄격한 구문이 있습니다. 따라서 이들에 대한 모든 값은 MathML에서 유효합니다.

연결 메커니즘과의 호환성을 보장하기 위해 모든 MathML 요소에는 xlink: href 속성이 있습니다.

모든 MathML 요소에는 병렬 마크업에 사용하기 위한 외부 참조 속성도 있습니다. id도 이 컨텍스트에서 사용됩니다.

MathML 1.0의 레거시인 각 MathML 요소는 MathML DTD를 위반하지 않고 비표준 속성을 전달하기 위한 더 이상 사용되지 않는 다른 속성도 허용합니다. MathML 렌더러는 모든 비표준 MathML 속성에 응답하는 경우에만 이 속성을 처리해야 합니다. 그러나 MathML에 특정 정보를 전달하는 다른 방법이 있으므로 other 속성을 사용하는 것은 강력히 권장하지 않습니다.

1.7.6 입력에서 공백 축소

MathML은 토큰 외부에서 발생하는 공백 문자를 무시합니다. 공백이 아닌 문자는 여기에 사용할 수 없습니다. 토큰 내용에서 발생하는 공백 문자는 끝에서 제거됩니다. 즉, 내용의 시작과 끝에서 모든 공백 문자가 제거됩니다. MathML 요소 콘텐츠 내의 공백 문자는 원뿔형으로 축소됩니다. 즉, 1개 이상의 이러한 문자의 각 시퀀스는 1(널 문자라고도 함)로 대체됩니다.

XML에서와 같이 MathML에서 공백은 단순한 공백, 탭, 개행 또는 개행, 즉 유니코드 코드가 각각 U+0020, U+0009, U+000A, U+000D인 문자를 나타냅니다.

예를 들어,

(에 해당 (, 그리고

에 해당 정리 1:.

토큰 내용의 시작이나 끝에 공백 문자를 배치하거나 무시되지 않도록 두 개 이상의 공백 문자 시퀀스를 배치하려는 작성자는 표시할 수 없는 다른 공백 문자를 사용해야 합니다. 예를 들어, 비교

정리 1:

첫 번째 예가 표시되면 "Theorem"이라는 단어 앞에 공백이 없고 "Theorem"과 "1: " 사이에 공백이 하나 있고 "1: " 뒤에 공백이 없습니다. 두 번째 예에서는 "Theorem"이라는 단어 앞에 단일 공백이 표시되고 "1: " 앞에 두 공백이 표시되고 "1: " 뒤에는 공백이 표시되지 않습니다.

XML 프로세서가 토큰의 공백 문자를 MathML 프로세서에 전달하기 때문에 xml: space 속성은 이 상황에 적용할 수 없습니다. MathML 처리 규칙에 따라 삭제됩니다.

mi, mn, mo, ms, mtext, ci, cn 및 주석 토큰의 내용 외부에서 발생하는 공백 문자의 경우 공백 문자만 포함하는 mtext 요소와 달리 mspace 요소를 사용해야 합니다.

2. MathML로 작업할 때 최신 브라우저의 가능성

브라우저의 기능을 보여주기 위한 테스트 사례로 두 마크업의 예를 포함하는 간단한 XHTML 페이지를 만들었습니다. 우리는 그것에 대한 주요 요구 사항을 설명합니다. 첫째, 유효한 XHTML 문서여야 합니다. 예:

유효한 xml 문서여야 합니다.

루트 요소는 다음과 같이 XHTML 네임스페이스의 html 요소여야 합니다.

"http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">

MathML 조각은 MathML 네임스페이스에 속해야 합니다. 예를 들면 다음과 같습니다.

...

아래에 사용된 테스트 케이스: test. xhtml.

2.1 모질라와 파이어폭스

사용 버전: Mozilla/5.0(Windows; U; Windows NT 5.0; en-US; rv: 1.7 5) Gecko/20041107 Firefox/1.0.

동일한 코어에 구축된 Mozilla와 Firefox에는 내장 MathML 마크업 렌더링 기능이 있습니다. 사실, 지금까지는 뷰 마크업만 지원하도록 제한되어 있습니다. 따라서 우리의 테스트 사례에서는 보기 마크업의 조각이 올바르게 표시되었으며 콘텐츠 마크업에 대해서는 말할 수 없습니다.

이 문제에 대한 해결책은 특별한 XSLT 스타일 "MathML용 XSLT 스타일시트"를 사용하는 것입니다. 이 접근 방식은 XSLT 변환에 대한 지원이 브라우저에 내장되어 있기 때문에 가능합니다. 이렇게 하려면 XSLT 스타일 세트를 다운로드해야 하며 페이지의 첫 번째 줄에 헤더 파일 mathml에 대한 링크를 표시해야 합니다. xsl:

보안상의 이유로 Mozilla는 선택 강조 표시가 있는 다른 MathML 소스 보기 도메인에 있는 XSLT 스타일을 허용합니다. 사실, 콘텐츠 마크업 및 XSLT 스타일을 사용할 때 소스 코드가 표시되지 않고 변환 결과가 표시됩니다.

다른 기능에는 검색 엔진과의 통합이 포함됩니다. 수식 조각을 선택하면 상황에 맞는 메뉴를 사용하여 검색 엔진에 쿼리를 보낼 수 있습니다.

그러나 그러한 검색이 아직 결과를 얻지 못했기 때문에 지금까지 이것은 미래를 위한 예비입니다.

2.2 마이크로소프트 인터넷 익스플로러

사용 버전: 6.0.2800.1106(SP1; Q867801; Q823353; Q833989)

Microsoft의 브라우저는 MathML을 기본적으로 지원하지 않습니다. 수학 공식을 올바르게 표시하려면 무료로 배포되는 MathPlayer 플러그인을 사용할 수 있습니다.


수학적 마크업의 실제 표시 외에도 MathML 표기법을 빠르게 복사할 수 있습니다. 원하는 경우 더 명확하게 하기 위해 공식을 확대할 수도 있습니다.

단점 중 하나는 수학적 표현의 일부를 선택하거나 복사할 수 없다는 점입니다. 또한 (Mozilla에서와 같이) 주변 텍스트와 함께 수식을 올바르게 복사하는 방법도 없습니다.

2.3 오페라

사용 버전: 7.54u1(빌드 3918, 플랫폼 Win32, 시스템 Windows 2000, Java가 설치되지 않음).

현재 개발 단계의 이 브라우저는 MathML 마크업을 올바르게 표시하는 기능이 없습니다.

중고 문헌 목록

1. Dorofeev A.V., Fedotov A.M. 인터넷 환경의 전자 출판물과 러시아어 인코딩의 다양성 // Computational technologies, 1997, v.2, N 3, pp.31-44.

2. Oleinik O.V., Tolkacheva E.M., Fedotov A.M. WWW // Computational technologies, 1997, v.2, N 3, pp.60-67에 대한 전자 판 및 수학 텍스트 프레젠테이션.

3. Shokin Yu.I., Fedotov A.M., Znamensky S.에. 전자 출판물 및 러시아어 인코딩의 다중성 문제 // 정보 기술 및 컴퓨팅 시스템, 1997, N 2, pp.90-101.

4. 즈나멘스키 S.에. 러시아어 TeX의 표준화: 유토피아 또는 필연 // 컴퓨팅 기술, 1997, v.2, N 3, pp.51 - 59.

5. 갈락티오노프 V.V. XML(Extensible Mark-up Language): 차세대 인터넷 소프트웨어 아키텍처를 정의하는 산업 표준입니다. 커뮤니케이션 JINR, Р10-2000-44, Dubna, 2000.

6. 미튜닌 V.A. 인터넷에서 수학 문서를 게시하고 보기 위한 도구 개요 - http://mathmag. spbu.ru/article/4/

7. 웹에서의 수학: 상태 보고서 - http://www.dessci.com/webmath /status/

8. 웹 페이지에 수학 표기법 포함하기 - http://mathforum.org/typeseting/

9. MathML 1.01 - http://www.w3.org/TR/REC-MathML/

10. MathML 2.0 - http://www.w3.org/TR/MathML2/

인터넷은 대부분 물리학자와 수학자들의 노력으로 만들어졌지만, 그 페이지에 있는 수학 공식의 길은 매우 길고 험난했습니다. 최근 몇 년 동안에만 수학 공식이 웹에서 확고하게 자리 잡았다고 말할 수 있습니다.

사실 웹 페이지가 생성되는 HTML 언어에는 공식을 표시할 수단이 없습니다. 웹사이트 제작자는 어떻게든 빠져나와야 했습니다. 테이블, 인덱스 및 기타 해결 방법을 사용하십시오. 그러한 기술의 목록이 제공되며 다음과 같이 요약할 수 있습니다. 경로는 어렵고 결과는 비참합니다.

부분적인 탈출구는 그림의 형태로 공식을 삽입하는 것이었습니다. 그것들을 만들기 위한 많은 도구가 있습니다. Microsoft Office의 Equation Editor와 같은 시각적 편집기를 사용하거나 온라인 변환기를 사용하여 LaTeX에서 입력한 공식을 변환할 수 있습니다. 마지막으로 공식 편집기가 이 두 기능을 모두 구현하는 Google 문서도구가 있습니다. 그러나 웹마스터는 치수를 선택하고 이미지를 배치해야 했습니다. 따라서 사이트의 상호 작용은 상상할 수 있습니다. 이를 위해 사이트 방문자가 직접 수식을 입력할 수 있는 언어가 필요했습니다.

2000년대 초에는 이러한 두 가지 언어가 있었습니다. LaTeX - 수식의 시각적 표현을 위한 것이고 MathML - 구조를 설명하기 위한 것입니다. 그때까지 LaTeX는 수년 동안 수학 텍스트의 준비에 사용되었으므로 네트워크 수학에 사용된 것은 놀라운 일이 아닙니다. 이러한 종류의 첫 번째 시도 중 하나는 LaTeXML 프로그램이었습니다. Perl로 작성된 LaTeX 문서를 처리하고 결과를 XML 파일로 출력합니다. 그 후 후처리기는 결과 XML을 HTML 및 XHTML(현재는 MathML도 포함) 또는 이미지와 같은 다른 텍스트 형식으로 변환합니다. LaTeXML 작업 결과를 볼 수 있습니다.

수식 작성 비교MathML 및유액

그러나 이것은 상호 작용의 문제를 해결하지 못했습니다. 이를 위해서는 브라우저에서 핸들러 프로그램을 직접 실행해야 했습니다. David Cervone의 jsMath는 클라이언트 측으로 처음으로 이동한 것입니다. 사용자가 LaTeX에서 입력한 수식을 HTML 및 CSS를 사용하여 렌더링된 이미지로 변환했습니다. 이것은 진정한 대화형 수학 웹 페이지를 만드는 것을 가능하게 했습니다.

첫 발을 내디뎠지만 여전히 많은 문제가 있었다. 프로그램이 모든 브라우저(Internet Explorer 6과 같은 베테랑부터 시작)에서 작동하는지 확인하고 수식을 주로 MathML로 다양한 형식으로 내보내야 했습니다. 이러한 문제를 해결하기 위해 2009년 미국 수학 학회(American Mathetical Society)의 주도 하에 시작되고 Stack Exchange 포털이 지원하는 MathJax 프로젝트가 요청되었습니다. 결과 MathJax 라이브러리는 모든 브라우저에서 작동하며 HTML+CSS, SVG 및 MathML로 수식을 저장할 수 있습니다. 사용자는 플러그인이나 글꼴을 설치할 필요가 없습니다. 이제 제대로 작동합니다.

수식 입력매스 잭스…

그리고 그 디스플레이

jsMath가 인터넷에서 수학을 부활시켰다면 MathJax는 "지니를 병에서 꺼내게"하여 많은 훌륭한 아이디어를 짧은 시간에 구현할 수 있게 되었습니다. 웹에서 수학 교육을 받고 싶습니까? 여기 저기 보세요. 동료와 채팅이 필요하십니까? 제발. "라이브" 코드와 수식으로 발행물을 만드시겠습니까? 여기와 여기. Android의 컴퓨터 대수 시스템에 관심이 있으십니까? 왜 안 돼 . 수학 지원팀과 채팅하시겠습니까? 용이하게 . 작업에 대해 이야기할 블로그를 만드시겠습니까? 제발 . MathJax는 또한 Wikipedia, 전자 출판물 arXiv의 무료 아카이브 및 All-Russian Mathematical Portal을 사용합니다. 이것이 MathJax가 웹 페이지에 공식을 표시하기 위한 사실상의 표준이 된 방법입니다.

이것은 모든 문제가 과거에 있다는 것을 의미합니까? 당연히 아니지. 그래서,

.

필요 MathML 마크업 HTML 형식은 많은 훌륭한 속성에도 불구하고 수학적 표기법을 전송할 가능성이 다소 제한적이라는 사실에 기인합니다. 대부분 HTML 페이지의 공식은 그래픽(래스터 또는 벡터)으로 표시되지만 이 방법에는 분명한 단점이 있습니다. 예를 들어, 그리기 공식은 편집이 거의 불가능하고 인쇄 품질은 일반적으로 많이 부족합니다. 아이디어의 발전은 MathML을 포함하는 전체 수학적 마크업 언어 제품군의 생성으로 이어졌습니다.개발자들은 문제의 깊이를 알고 다음과 같은 제한적이지만 여전히 매우 중요한 요구 사항을 충족하는 사양을 만드는 목표를 설정했습니다.

ü 기본 수학 표기법의 학습 및 수동 입력 용이성

ü 해당 봉투에 의해 보장되어야 하는 다른 수학 형식과의 최대 호환성

ü 다양한 단말 장치에 수식을 표시하는 기능

ü 확장성 지원, 즉 새로운 기호, 체계의 도입.

MathML 사용 이면의 일반적인 원칙은 수학적 구성이 일반 HTML 문서에 포함되고 문서가 웹에서 다운로드될 때 재생된다는 것입니다.

MathML 언어는 외부 프로그램과 상호 작용하고 다양한 정보 환경에서 고품질 표시를 수행할 수 있는 수학 자료 작성을 위한 유연하고 확장 가능한 시스템을 제공합니다. MathML을 사용하는 일반적인 원칙은 XHTML/HTML 문서에 수학적 구성을 포함하는 것입니다.MathML을 사용하여 웹 페이지를 만드는 것은 HTML + 프리젠테이션 MathML, XHTML + 프리젠테이션 MathML, XML + MathML의 세 가지 방법으로 가능합니다.

수학 표현식을 MathML로 변환하기 위해 많은유용. 주요 브라우저 MathML을 직접 지원하는 최신 버전모질라 그리고 그 품종. 다른 많은 브라우저는 적절한 설정을 통해 이 형식을 지원합니다.플러그인 . 또한 MathML은 다음과 같은 주요 사무 프로그램에서 지원됩니다.마이크로소프트 워드와 오픈오피스.org , 다음과 같은 수학 소프트웨어 제품뿐만 아니라매스매티카, 메이플. MathML - 정보 매우 강력하고 다양한 수식 마크업 언어입니다. 맞아, 에드.수식 활성화(및읽기) 꽤 어렵습니다. MathML 언어는 XML 기술을 기반으로 하며 자체 태그를 사용하여 공식 조각을 정의합니다.

간단한 수식 설명의 예

엑스

+

3

실시예 2

마크업을 사용하여 html 문서에 수식 삽입 텍스

텍스많은 사람들이 특히 수학 세계, 워드 프로세서, 문서 서식 시스템에서 사용하는 인기 있는 마크업 언어입니다.

이 패키지를 사용하면 여러 언어로 입력, 섹션 및 공식 번호 매기기, 상호 참조, 페이지에 삽화 및 표 배치, 참고 문헌 유지 등을 포함하여 기사 입력 및 준비의 많은 작업을 자동화할 수 있습니다.

LaTeX의 수식은 특수 명령을 사용하여 입력됩니다. 예를 들어,정규 분포 LaTeX에서 다음과 같이 보일 것입니다: \frac(1)(\sigma\sqrt(2\pi))\exp\left(-\frac((x-\mu) ^2)(2\sigma^2)\ right )

다음과 같이 표시됩니다.

수학 공식의 소스 코드는 태그 내부에 작성됩니다 ... 공백은 무시됩니다(TeX는 공백을 스스로 만듭니다). 빈 줄은 허용되지 않습니다.

TEX의 장점:

  • 거의 모든 유형의 컴퓨터에 대한 TEX의 소프트웨어 구현이 있습니다.
  • 하드웨어 리소스에 대한 낮은 요구 사항(286/386 프로세서가 있는 IBM PC 호환 컴퓨터가 작동하기에 충분함)
  • 소스 텍스트의 이식성(포맷 결과, 즉 문서의 최종 모양은 모든 플랫폼에서 동일함)
  • 인쇄는 인쇄 품질의 텍스트를 생성하고,
  • 많은 수의 무료 구현
  • 최소한의 노력으로 인쇄할 때 멋지게 보일 수 있는 복잡한 수학 공식 및 기타 공식을 준비하는 능력
  • 확장성(기존의 기본 명령을 기반으로 자신만의 보다 복잡한 명령을 생성할 수 있음)

TeX를 설계하는 동안 통합된 주요 기능 중 하나는 수학 공식을 쉽게 설정할 수 있는 기능이었습니다.

복잡한 공식 세트는 "시각적" 편집기(M $ Equation, MathCAD)보다 훨씬 쉽고 빠릅니다. 이것은 수식을 서로에 대해 정렬하고, 번호 매기기를 정렬해야 하고, 비표준 수학 표기법을 사용할 때 특히 두드러집니다.

수식은 TeX 표기법에서만 지원됩니다. 예시:

표기법='TeX'>E=mc^2

다음과 같이 보일 것입니다.

html 문서에 수식을 그림으로 삽입하기

가장 쉬운 방법은 태그를 사용하여 수식을 비트맵으로 삽입하는 것입니다.이미지 . 수식 이미지는 수동(시각적 수식 편집기에서)과 자동으로 모두 얻을 수 있습니다. 수식은 문서에 포함된 플러그인 개체로 표시됩니다. 여기에는 다단계 단순 분수, 그리스 문자, 행렬이 포함될 수 있습니다.

장점:

이미지를 표시하는 모든 브라우저에서 원본과 동일한 방식으로 표시됩니다.

Office 문서에 비교적 쉽게 복사

결점:

모든 옵션의 공식이 고려된 가장 큰 페이지 크기

수식의 크기를 변경하는 것은 불가능합니다. 종종 텍스트에 비해 너무 작거나 너무 크거나 텍스트에 비해 너무 작거나 너무 큽니다.

인쇄할 때 보기 좋지 않음 - 해상도가 일치하지 않음

소스 코드와 특수 프로그램 없이 수식을 변경하는 것은 불가능합니다.

텍스트의 수식을 가운데에 맞추기가 매우 어렵습니다.

공식을 단어로 옮기는 것은 불가능합니다 - 필요한 경우 여러 줄로 나눕니다

참조.

1. 갈락티오노프 V.V. XML(Extensible Mark-up Language): 차세대 인터넷 소프트웨어 아키텍처를 정의하는 산업 표준입니다. 커뮤니케이션 JINR, Р10-2000-44, Dubna, 2000.

2. D. 크누트. "Tex에 관한 모든 것."

3. http://math.accent.kiev.ua

4. http://www.raleigh.ru/MathML/MathML2/chapter2.html

5. www.elbib.ru/index.phtml?page=elbib/rus/journal/2005/

6. http://www.ibb.ru/articles/tex/node3.phtml

글로벌 컴퓨터 네트워크(특히 인터넷)의 확산으로 무엇보다도 그 안에 수학 텍스트를 배치할 필요가 생겼습니다.

MathML 언어는 XML 언어(e 엑스인장 아크업 anguage - Extensible Markup Language)는 다른 언어를 만드는 데 자주 사용됩니다. XML의 이러한 사용은 오늘날 매우 자연스럽고 새로운 유형의 데이터를 전달하기 위해 HTML을 사용하는 것이 형식의 한계에 부딪힌 다른 경우에 잘 작동했습니다. 현재까지 W3C는 프로젝트의 실행 가능성과 지속 가능성을 나타내는 MathML 언어 사양의 2판 버전 2.0을 발표했습니다.

XML 기반 마크업 언어:

  • WML(Wireless Markup Language): WAP(무선) 장치(휴대폰)용 데이터 형식.
  • 동기화 멀티미디어 통합 언어(SMIL):
  • 임시 레이아웃, 모양 등을 지정합니다. 멀티미디어 프레젠테이션용;
  • 멀티미디어 파일이 재생되는 순서를 지정합니다.
  • 보기에 SMIL 호환 플레이어가 필요합니다(AMBULANT, MS IE6).
  • 가이드 및 예시: http://www.multimedia4everyone.com/
  • SVG(Scalable Vector Graphics): 2차원 벡터 그래픽을 설명합니다.
  • 수학 마크업 언어(MathML): 수학적 표기법(공식)을 설명합니다.
  • CML(Chemical Markup Language): 화학식을 나타내기 위한 것입니다.
  • 다른.

MathML을 생성할 때 W3C Mathematics Working Group에서 설정한 목표는 다음과 같습니다.

  • 모든 수준의 교육 및 과학 유형의 커뮤니케이션을 위한 수학 자료 코딩 제공;
  • 수학적 상징과 그 의미의 인코딩을 제공합니다.
  • 템플릿 생성 및 기타 수학적 편집 기술 지원
  • 순수한 표현 및 의미적 성격의 다른 수학적 형식으로의 변환은 물론 이러한 형식에서 생성된 수학적 마크업 언어로의 변환을 보장합니다. 출력 형식에는 그래픽 정보 표시 수단, 음성 합성, 컴퓨터 대수학 시스템에 입력하기에 적합한 형식으로 텍스트 표현, TAR과 같은 수학 텍스트를 설명하기 위한 다른 언어와의 호환성, "순수" 텍스트를 표시하는 기능( 즉, 수학 기호 및 표현을 포함하지 않음), 점자 출력을 포함하여 다양한 형식으로 텍스트를 인쇄하는 기능. 동시에 서로 다른 형식 간의 변환으로 인해 정보가 손실될 수 있습니다.
  • 특정 시각화 프로그램의 특성을 고려하여 정보를 전송하는 능력;
  • 긴 수학적 표현을 위한 효율적인 검색 프로세스 지원;
  • 확장성 제공(미리 알려지지 않은 방식으로).

MathML을 사용하는 일반적인 원칙은 수학적 구성이 일반 HTML 문서에 포함되고(브라우저 또는 특수 프로그램이 이 사양을 지원하는 경우) 문서가 네트워크에서 다운로드될 때 적절하게 재현된다는 것입니다.

MathML에서 처리해야 하는 첫 번째 사항과 이 마크업 언어를 유사 언어와 구별하는 것은 표현식을 인코딩하는 두 가지 방법을 사용하는 것입니다. 그 중 하나는 수식 구문( 프레젠테이션), 반대로 다른 하나는 표현의 의미를 반영합니다 ( 콘텐츠). 프리젠테이션 마크업은 분수, 위 첨자 및 아래 첨자와 같은 하위 표현식을 배치하는 방법을 지정하는 일부 추론 체계를 사용하여 작성된 표현식으로 수학적 상징을 설명합니다. 시맨틱 마크업은 수학적 객체와 기능을 설명합니다. 여기서 각 노드에 대해 표현식 트리가 특정 체계에 따라 구성되고 이 트리의 분기가 하위 표현식에 해당합니다.

현재 MathML을 사용하여 만든 웹 페이지는 다음 브라우저에서 볼 수 있습니다("+" 기호는 최신 버전도 작동함을 의미합니다).

  • 윈도우:

o Techexplorer 플러그인이 포함된 IE 5.0

  • 매킨토시:

o Techexplorer 플러그인이 포함된 IE 5.0 이상

모질라 0.9.9+

  • 리눅스/유닉스:

o Techexplorer 플러그인이 포함된 Netscape 6.1

모질라 0.9.9+

o Amaya, 모든 버전(Presentation MathML만 해당)

MathML의 모든 요소는 다음 세 그룹으로 나뉩니다. 대표, 요소 콘텐츠그리고 상호 작용집단.

뷰 요소는 시각적으로 지향된 수학 표기법의 2차원 구조를 설명합니다. 예를 들어, 요소 mrow일반적으로 표현식 부분의 수평 행을 나타내는 데 사용되며 요소 msup, 위 첨자를 표시합니다. 일반적으로 각 보기 요소는 행, 위 첨자, 아래 첨자 등과 같은 한 가지 유형의 표기법에 해당합니다. 모든 수식은 숫자, 문자 또는 기타 기호와 같은 가장 단순한 요소로 구성될 수 있는 부분으로 구성됩니다.

가장 중요한 표현 요소는 각각 식별자, 숫자 및 연산자를 나타내는 데 사용되는 mi , mn 및 mo 입니다. 일반적으로 이러한 요소는 다양한 스타일로 표시됩니다. 숫자는 로마자, 식별자는 기울임꼴, 연산자 주위에는 추가 공백이 있습니다.

마크업 용어로 대부분의 MathML 요소가 정의됩니다. 열리는그리고 폐쇄요소의 내용을 제한하는 태그. 조작 기호( )는 단일 태그로 정의됩니다.

프리젠테이션 마크업을 예로 사용하여 수학 공식의 레이아웃에 필요한 몇 가지 요소를 더 자세히 살펴보겠습니다.

토큰(토큰 요소)개별 문자, 이름, 숫자, 명칭 등을 나타냅니다. 기본적으로 토큰은 문자만 콘텐츠로 가질 수 있습니다.

MathML은 토큰 외부에서 발생하는 공백 문자를 무시합니다. 공백이 아닌 문자는 여기에 사용할 수 없습니다. 토큰 내용에서 발생하는 공백 문자는 끝에서 제거됩니다. 즉, 내용의 시작과 끝에서 모든 공백 문자가 제거됩니다. MathML 요소 콘텐츠 내의 공백 문자는 정식으로 축소됩니다. 즉, 1개 이상의 이러한 문자의 각 시퀀스는 1(널 문자라고도 함)로 대체됩니다.

주요 요소

지수

태그와 함께 사용할 수 있는 몇 가지 수학 연산 .

+ +
< >
<
<= >=
++ ++
.아니다.~ 아니다
그리고그리고
보이지 않는 곱셈 기호
+ +

MathML의 수식에 대한 몇 가지 예를 살펴보겠습니다.

1) 죄 2 α + 코스 2 α \u003d 1

α

+

코사인

α

=

그리스 문자 α는 코드 α를 사용하여 얻습니다(유니코드가 사용됨을 기억하십시오).

결과

또한 Internet Explorer에서 MathML을 사용하려면 MathPlayer를 설치해야 합니다.

MathML 마크업을 포함하는 모든 파일에는 문서 헤더 앞에 행이 있어야 합니다.

또한 모든 MathML 코드는 태그와 함께 열립니다.

그리고 태그로 닫힘.

2

2

엑스+와이

2엑스

엑스2

와이2

테이블과 행렬의 레이아웃을 위한 요소를 고려하십시오.

1

1

1

1

1

1

0

0

0

1

1

0

0

0

1

1

0

0

0

1

1

1

1

1

1

실시예 2

엑스+와이

=

1엑스+

1와이=

1

필요한 경우 다양한 수학 기호를 유니코드 인코딩 테이블에서 조회해야 합니다.

예시.

에스

-1

Σ

=0

적분을 사용하는 상당히 많은 예를 찾을 수 있으므로 여기에서는 다루지 않을 것이므로 독자가 표시된 리소스의 예를 숙지하는 것이 좋습니다.

위에서 언급했듯이 MathML은 표현 및 의미 표현을 허용합니다. 여기서는 가장 소화하기 쉽고 일반적으로 사용되는 프레젠테이션에 중점을 두었습니다. 그러나 다른 옵션에 대한 최소한의 아이디어를 제공하기 위해 작은 예시적인 예를 고려하고 두 가지 표현으로 작성하십시오.

예시. x 2 - 6x + 9 = 0

물론 MathML에서 수식을 입력하는 것은 다소 시간이 많이 걸리는 작업이며 약간의 노력이 필요합니다. 그러나 LaTeX에서 충분히 오래 일한 사람들은 큰 차이를 느끼지 못할 것입니다. 그러나 더 자주 사용자는 다른 도구를 사용하는 것을 선호합니다. 몇 가지 이름을 지정해 보겠습니다.

첫째, 수학 패키지(예: Mathematica 또는 Maple)를 사용하면 입력한 공식을 MathML 형식으로 저장할 수 있습니다.

이 리소스는 사용자의 컴퓨터에서 실행되는 Java 스크립트 ASCIIMathML.js(버전 2.0; 2007년 9월; http://www1.chapman.edu/~jipsen/mathml/asciimath.html , Peter Jipsen 작성)를 사용합니다. 데모 페이지 다운로드 http://www1.chapman.edu/~jipsen/mathml/asciimathdemo.html . 따라서 특히 이 리소스는 로컬에서 사용할 수 있습니다. 언급한 데모 html 페이지를 저장하는 것으로 충분하고 인터넷에 연결하지 않고도 간단한 수식을 변환할 수 있습니다.

결론적으로, 마크업 도구로서의 MathML은 다양한 수학적 작업을 생성하는 데에도 매우 적합합니다(위의 예 참조). 동시에 예를 들어 JavaScript를 프로그래밍에 사용할 수 있으며 사용자는 재량에 따라 임의의 수의 작업 옵션을 생성할 수 있습니다. 또한 모든 작업에 대한 답변 생성을 제공할 수 있으며 이는 매우 간단합니다.

우리는 독자의 수학 텍스트 레이아웃 수단에 대한 지식이 거기서 끝나지 않을 것으로 기대하며, 독자가 관심 있는 도구를 독립적으로 선택하고 설명된 기술을 실제로 적용할 수도 있습니다.

문헌 및 인터넷 리소스

위의 모든 내용은 문서 컨텍스트 외부의 개별 수식에 적용됩니다. 프로그래밍 언어 학습에 사용되는 "Hello, World!" 예제에 해당하는 예제를 자세히 살펴보겠습니다. 위에서 논의한 두 변수의 제곱합을 포함하는 XHTML 1.0 문서에 대한 완전한 코드를 제시합니다.

MathML의 Hello Square

다음은 완전제곱수입니다.

이것은 XHTML 문서의 표준 구조입니다. 여는 태그로 시작합니다. XML 네임스페이스 선언 및 언어 선언을 포함하는 . head 요소는 평소와 같이 제목을 포함합니다. 여는 태그 또한 시작에는 표준 MathML 네임스페이스에 사용할 약어 접두사 문자 m의 네임스페이스 선언이 있습니다. 그런 다음 일반적인 단락이옵니다. 마지막으로, 네임스페이스 선언도 있는 수학 요소가 있습니다. 수학 요소 내부에는 MathML 마크업이 있습니다.

MathML 예제

마크업 예 보기

표기법: 엑스 2 + 4엑스 + 4 = 0.

마크업:

중첩된 mrow 요소를 사용하여 용어를 나타냅니다. 예를 들어, 방정식의 왼쪽은 "="에 대한 피연산자입니다. 용어 강조 표시는 시각적 표시, 음성 재생 및 줄 바꿈을 위한 구조를 크게 개선합니다. MathML InvisibleTimes 기호는 4와 x 사이에 줄 바꿈이 허용되지 않음을 렌더러에 알리는 데 사용됩니다. 사실 MathML 1.0에 도입된 이 요소의 사용은 권장되지 않습니다. 모든 일반 텍스트 데이터는 유니코드 코드로 지정됩니다. 그러나 유니코드 3.2에서 대체 문자가 예상되고 유니코드를 개선하기 위한 제안이 고려되고 있지만 현재 버전의 유니코드 3.0에서는 그러한 문자가 사용되지 않습니다. 예상되는 숫자 참조 ࠎ을 사용할 수 있지만 명확성을 위해 예제에서 InvisibleTimes 요소를 계속 사용할 것입니다.

마크업:

±

mfrac 및 msqrt 요소는 각각 분수와 제곱근을 만드는 데 사용됩니다.

이 경우에는 B1;과 같은 유니코드 문자가 있지만 더하기/빼기 기호는 특수 엔터티에 의해 제공됩니다. MathML은 수학 기호를 정의하는 광범위한 요소 이름 목록을 제공합니다. 문서를 표시하고 인쇄하기 위한 수학 기호 외에도 MathML은 음성을 사용하여 문서를 재현하기 위한 기호를 제공합니다. 음성을 사용하여 재생하려면 조각을 읽는 방법을 자동으로 결정하는 것이 중요합니다.

어떻게 " 값을 곱하다 엑스플러스 와이"또는" 곱하다 엑스플러스 와이". (U+2062) 및 (U+2061) 문자는 작성자에게 이러한 차이점을 음성 프로그램에 대해 직접 인코딩하는 방법을 제공합니다. 예를 들어, 첫 번째 경우 문자(U+2062)는 행 뒤에 삽입해야 합니다. 함유 . MathML에는 미분을 나타내는 (U+2146)과 같은 엔터티도 포함되어 있습니다. 인쇄 시 일반적인 "d" 문자와 다른 간격으로 표시되며 "d" 또는 "~에 대하여"로 발음할 수 있습니다. 모호성을 제거하기 위해 콘텐츠 태그 또는 기타 메커니즘이 사용되는 동안 작성자는 문서에 더 쉽게 액세스할 수 있도록 항상 위에 설명된 문자를 엔터티로 사용해야 합니다.

마크업:

엑스

와이

mtable 요소는 MathML에서 테이블의 시작 부분을 가리킵니다. mtr 요소는 테이블 행을 정의하고 mtd 요소는 행(셀) 요소에 대한 데이터를 포함합니다. 대부분의 요소에는 화면 및 인쇄 시 표시 속성을 결정하는 속성이 있습니다. 예를 들어, mfenced 요소에는 그룹화 표현식의 시작과 끝에 사용해야 하는 문자를 결정하는 속성이 있습니다. 연산자 요소의 속성은 요소를 사용하여 참조에 의해 정의된 기본값으로 설정됩니다. .