การเตรียมข้อความทางคณิตศาสตร์โดยใช้ MathML คณิตศาสตร์กับอินเทอร์เน็ต: คุณควรใช้โปรแกรมใด การนำเสนอในรูปแบบ HTML5

ทั้งหมดข้างต้นใช้กับแต่ละสูตรนอกบริบทของเอกสาร มาดูตัวอย่างที่สอดคล้องกับตัวอย่าง "Hello, World!" ที่ใช้ในการเรียนภาษาการเขียนโปรแกรมกันดีกว่า เราจะนำเสนอโค้ดที่สมบูรณ์สำหรับเอกสาร XHTML 1.0 ที่มีกำลังสองของผลรวมของตัวแปรสองตัวที่กล่าวถึงข้างต้น:

Hello Square ของ MathML

นี่คือกำลังสองที่สมบูรณ์แบบ:

นี่คือโครงสร้างเอกสาร XHTML มาตรฐาน มันเริ่มต้นด้วยแท็กเปิด ซึ่งมีการประกาศเนมสเปซ XML และการประกาศภาษา องค์ประกอบ head มีชื่อตามปกติ กำลังเปิดแท็ก นอกจากนี้ การเริ่มต้นยังมีการประกาศเนมสเปซของตัวอักษรนำหน้าตัวย่อ m ที่จะใช้สำหรับเนมสเปซ MathML มาตรฐาน แล้วก็มาถึงย่อหน้าปกติ ในที่สุดก็มีองค์ประกอบทางคณิตศาสตร์ซึ่งมีการประกาศเนมสเปซด้วย ภายในองค์ประกอบทางคณิตศาสตร์คือมาร์กอัป MathML

ตัวอย่าง MathML

ดูตัวอย่างมาร์กอัป

สัญกรณ์: x 2 + 4x + 4 = 0.

มาร์กอัป:

สังเกตการใช้องค์ประกอบ mrow ที่ซ้อนกันเพื่อแสดงคำศัพท์ ตัวอย่างเช่น ทางด้านซ้ายของสมการคือตัวถูกดำเนินการสำหรับ "=" การเน้นคำศัพท์ช่วยปรับปรุงโครงสร้างสำหรับการแสดงภาพ การเล่นเสียง และการตัดบรรทัดอย่างมาก สัญลักษณ์ MathML InvisibleTimes ใช้เพื่อบอกตัวเรนเดอร์ว่าไม่อนุญาตให้ขึ้นบรรทัดใหม่ระหว่าง 4 ถึง x ที่จริงแล้ว ไม่แนะนำให้ใช้องค์ประกอบนี้ซึ่งนำมาใช้ใน MathML 1.0 ข้อมูลข้อความปกติทั้งหมดระบุไว้ในโค้ด Unicode อย่างไรก็ตาม แม้ว่า Unicode 3.2 คาดว่าจะมีอักขระแทนที่ และกำลังพิจารณาข้อเสนอในการปรับปรุง Unicode แต่ Unicode 3.0 เวอร์ชันปัจจุบันไม่ได้ใช้อักขระดังกล่าว เราสามารถใช้การอ้างอิงดิจิทัลที่คาดหวัง ࠎ ได้ แต่เพื่อความชัดเจน เราจะใช้องค์ประกอบ InvisibleTimes ในตัวอย่างต่อไป

มาร์กอัป:

±

องค์ประกอบ mfrac และ msqrt ใช้เพื่อสร้างเศษส่วนและรากที่สองตามลำดับ

โปรดทราบว่าเครื่องหมายบวก-ลบถูกกำหนดโดยเอนทิตีพิเศษ แม้ว่าในกรณีนี้จะมีอักขระ Unicode เช่น B1; MathML มีรายการชื่อองค์ประกอบมากมายที่กำหนดสัญลักษณ์ทางคณิตศาสตร์ นอกจากสัญลักษณ์ทางคณิตศาสตร์สำหรับการแสดงและการพิมพ์เอกสารแล้ว MathML ยังมีสัญลักษณ์สำหรับการแสดงผลเอกสารโดยใช้คำพูดอีกด้วย สำหรับการเล่นเสียงพูด สิ่งสำคัญคือต้องกำหนดวิธีการอ่านข้อความโดยอัตโนมัติ

ยังไง " zคูณด้วยค่า xบวก "หรือ" zคูณด้วย xบวก " อักขระ (U+2062) และ (U+2061) ช่วยให้ผู้เขียนมีวิธีการเข้ารหัสความแตกต่างดังกล่าวสำหรับโปรแกรมคำพูดได้โดยตรง ตัวอย่างเช่น ในกรณีแรก จะต้องแทรกอักขระ (U+2062) หลังบรรทัด ซึ่งประกอบด้วย z- MathML ยังมีเอนทิตี เช่น (U+2146) ซึ่งแสดงถึงส่วนต่าง เมื่อพิมพ์ออกมา จะแสดงในช่วงเวลาที่แตกต่างจากสัญลักษณ์ "d" ปกติ และสามารถออกเสียงได้ว่า "d" หรือ "เทียบกับ" แม้ว่าแท็กเนื้อหาหรือกลไกอื่นใดจะถูกนำมาใช้เพื่อคลายความกำกวม ผู้เขียนควรใช้สัญลักษณ์ที่อธิบายไว้ข้างต้นเป็นเอนทิตีเพื่อทำให้เอกสารเข้าถึงได้มากขึ้น

มาร์กอัป:

x

z

องค์ประกอบ mtable ชี้ไปที่จุดเริ่มต้นของตารางใน MathML องค์ประกอบ mtr กำหนดแถวของตาราง และองค์ประกอบ mtd มีข้อมูลสำหรับองค์ประกอบแถว (เซลล์) องค์ประกอบส่วนใหญ่มีคุณลักษณะที่กำหนดคุณสมบัติการแสดงผลบนหน้าจอและในการพิมพ์ ตัวอย่างเช่น องค์ประกอบ mfenced มีแอตทริบิวต์ที่ระบุว่าควรใช้อักขระใดที่จุดเริ่มต้นและจุดสิ้นสุดของนิพจน์การจัดกลุ่ม คุณลักษณะขององค์ประกอบตัวดำเนินการถูกตั้งค่าเป็นค่าเริ่มต้นที่กำหนดโดยไดเร็กทอรีโดยใช้องค์ประกอบ .

ก่อน HTML5 การใช้สูตรถือเป็นการลงโทษอย่างแท้จริง ตัดสินด้วยตัวคุณเอง: ในปี 2548 จำเป็นต้องมีเบราว์เซอร์พิเศษในมือหรือแยกข้อความเป็น HTML และแทรกจากรูปภาพหรือ PDF การค้นหาและการแก้ไขอื่นๆ และ/หรือการจัดแสดง/กระดาษเป็นงานที่คลุมเครือ ซึ่งอุทิศให้กับเอกสารทั้งหมด

ในปี 2012 มันง่ายกว่าแล้ว ตอนนี้คุณสามารถเชื่อมต่อปลั๊กอินที่จำเป็นได้แล้ว (Firemath สำหรับ FireFox และ Daum Equation Editor สำหรับ Chrome) แต่ความคลุมเครือของมาตรฐาน (และการสนับสนุน) ทำให้เราเขียนบทความเดียวกันสำหรับแต่ละเบราว์เซอร์ (และสำหรับเวอร์ชัน) หรือทักทายผู้ใช้ด้วยคำทักทายมหัศจรรย์ “เบราว์เซอร์ของคุณต้องได้รับการอัปเดต/เพิ่มด้วยส่วนขยาย”

อึดอัด? - ใช่! การค้นหาโซลูชันแบบสากลใช้เวลานานหรือไม่ - ใช่! ทำให้คุณคิดว่าการบันทึกประเภทใดดีกว่า (การนำเสนอหรือเนื้อหา) ควรใช้ตัวแปลงใด (และโดยทั่วไปมีประมาณโหลเท่านั้นที่รู้จัก) - ใช่! ใช่! ใช่!

เป็นผลให้งานเผยแพร่กลายเป็นการเรียนรู้ศัพท์มาร์กอัปสองหรือสามตัวและศึกษาการทำงานของโปรแกรมแปลงรหัสอย่างน้อยหนึ่งโปรแกรม

ตอนนี้ด้วยการถือกำเนิดของ HTML5 ทุกอย่างก็ง่ายขึ้นมาก มีคอนเทนเนอร์ใหม่อยู่ในนั้น .
ทุกอินสแตนซ์ที่ถูกต้องของ MathML จะต้องอยู่ภายในคอนเทนเนอร์นี้
ไม่อนุญาตให้มีการซ้อน แต่อาจมีองค์ประกอบย่อยอื่น ๆ ภายในจำนวนเท่าใดก็ได้

คุณสมบัติของแท็ก

นอกเหนือจากแอตทริบิวต์ต่อไปนี้ แท็ก ยอมรับแอตทริบิวต์ใด ๆ จาก "> .

คลาส รหัส สไตล์
เรื่องที่จะใช้ร่วมกับสไตล์ชีต
ผบ
ระบุทิศทางของสูตร: ltr - ซ้ายไปขวา หรือ rtl - ขวาไปซ้าย
อ้างอิง
ใช้เพื่อสร้างไฮเปอร์ลิงก์ไปยัง URI ที่ระบุ
พื้นหลังทางคณิตศาสตร์
สีพื้นหลัง. คุณสามารถใช้ชื่อสี #rgb , #rrggbb และ HTML ได้
สีคณิต
สีข้อความ คุณสามารถใช้ชื่อสี #rgb , #rrggbb และ HTML ได้
แสดง
คุณลักษณะนี้ระบุวิธีการส่งออก ค่าที่เป็นไปได้:

  • ปิดกั้น- หมายความว่าองค์ประกอบนี้จะแสดงนอกช่วงข้อความปัจจุบัน เป็นบล็อกที่สามารถวางตำแหน่งได้ทุกที่โดยไม่ต้องเปลี่ยนความหมายของข้อความ
  • อินไลน์ - หมายความว่าองค์ประกอบนี้จะปรากฏภายในช่วงข้อความปัจจุบัน และไม่สามารถย้ายออกได้โดยไม่เปลี่ยนค่าของข้อความนั้น

ค่าเริ่มต้นคือแบบอินไลน์

โหมด

ค่าแอตทริบิวต์การแสดงผลที่เลิกใช้แล้ว
ค่าที่เป็นไปได้คือ display (ซึ่งมีผลเหมือนกับ display="block") และ inline
ล้น
กำหนดวิธีการทำงานของนิพจน์หากข้อความยาวเกินกว่าจะพอดีกับช่วงความกว้างที่ระบุ
ค่าที่เป็นไปได้: linebreak (ค่าเริ่มต้น), เลื่อน, เลื่อน, ตัดทอน, สเกล

ตัวอย่าง

การนำเสนอในรูปแบบ HTML5

MathML ใน HTML5 2 + 2 = 2

การแสดงในรูปแบบ XHTML

MathML ใน XHTML 2 + 2 = 2
หมายเหตุ:เอกสาร XHTML ที่มี MathML ควรทำหน้าที่เป็น application/xhtml+xml คุณสามารถบรรลุสิ่งนี้ได้อย่างง่ายดายโดยการเพิ่มนามสกุล .xhtml ลงในไฟล์ในเครื่อง สำหรับเซิร์ฟเวอร์ Apache คุณสามารถกำหนดค่าไฟล์ .htaccess สำหรับส่วนขยายนี้เป็นประเภท MIME ที่ถูกต้องได้ เนื่องจากเราบันทึก MathML ของเราเป็นเอกสาร XML เราจึงต้องแน่ใจว่าเอกสาร XML มีรูปแบบที่ถูกต้อง

รองรับเบราว์เซอร์

รองรับเบราว์เซอร์

เวอร์ชันเต็ม
องค์ประกอบ โครเมียม ไฟร์ฟอกซ์ (ตุ๊กแก) อินเทอร์เน็ตเอ็กซ์พลอเรอร์ โอเปร่า ซาฟารี
คำอธิบาย XHTML (วันที่ 24 เท่านั้น) 1.0 (1.7 และสูงกว่า) 9.5 5.1
คำอธิบาย HTML5 (วันที่ 24 เท่านั้น) 4.0 (2.0) 5.1
ผบ 12.0 (12.0)
href ข้อบกพร่องของ WebKit 85733 7.0 (7.0) ข้อบกพร่องของ WebKit 85733
พื้นหลังทางคณิตศาสตร์ (วันที่ 24 เท่านั้น) 4.0 (2.0) 5.1
สีคณิต (วันที่ 24 เท่านั้น) 4.0 (2.0) 5.1
ล้น

รุ่นมือถือ

องค์ประกอบ หุ่นยนต์ โครมสำหรับแอนดรอยด์ Firefox มือถือ (ตุ๊กแก) ไออี โมบาย โอเปร่ามือถือ ซาฟารีมือถือ
คำอธิบาย XHTML 1.0 (1.0)
คำอธิบาย HTML5 4.0 (2.0)
ผบ 12.0 (12.0)
href 7.0 (7.0)
พื้นหลังทางคณิตศาสตร์ 4.0 (2.0)
สีคณิต 4.0 (2.0)
ล้น

ก่อน HTML5 การใช้สูตรถือเป็นการลงโทษอย่างแท้จริง ตัดสินด้วยตัวคุณเอง: ในปี 2548 จำเป็นต้องมีเบราว์เซอร์พิเศษในมือหรือแยกข้อความเป็น HTML และแทรกจากรูปภาพหรือ PDF การค้นหาและการแก้ไขอื่นๆ และ/หรือการจัดแสดง/กระดาษเป็นงานที่คลุมเครือ ซึ่งอุทิศให้กับเอกสารทั้งหมด

ในปี 2012 มันง่ายกว่าแล้ว ตอนนี้คุณสามารถเชื่อมต่อปลั๊กอินที่จำเป็นได้แล้ว (Firemath สำหรับ FireFox และ Daum Equation Editor สำหรับ Chrome) แต่ความคลุมเครือของมาตรฐาน (และการสนับสนุน) ทำให้เราเขียนบทความเดียวกันสำหรับแต่ละเบราว์เซอร์ (และสำหรับเวอร์ชัน) หรือทักทายผู้ใช้ด้วยคำทักทายมหัศจรรย์ “เบราว์เซอร์ของคุณต้องได้รับการอัปเดต/เพิ่มด้วยส่วนขยาย”

อึดอัด? - ใช่! การค้นหาโซลูชันแบบสากลใช้เวลานานหรือไม่ - ใช่! ทำให้คุณคิดว่าการบันทึกประเภทใดดีกว่า (การนำเสนอหรือเนื้อหา) ควรใช้ตัวแปลงใด (และโดยทั่วไปมีประมาณโหลเท่านั้นที่รู้จัก) - ใช่! ใช่! ใช่!

เป็นผลให้งานเผยแพร่กลายเป็นการเรียนรู้ศัพท์มาร์กอัปสองหรือสามตัวและศึกษาการทำงานของโปรแกรมแปลงรหัสอย่างน้อยหนึ่งโปรแกรม

ตอนนี้ด้วยการถือกำเนิดของ HTML5 ทุกอย่างก็ง่ายขึ้นมาก มีคอนเทนเนอร์ใหม่อยู่ในนั้น .
ทุกอินสแตนซ์ที่ถูกต้องของ MathML จะต้องอยู่ภายในคอนเทนเนอร์นี้
ไม่อนุญาตให้มีการซ้อน แต่อาจมีองค์ประกอบย่อยอื่น ๆ ภายในจำนวนเท่าใดก็ได้

คุณสมบัติของแท็ก

นอกเหนือจากแอตทริบิวต์ต่อไปนี้ แท็ก ยอมรับแอตทริบิวต์ใด ๆ จาก "> .

คลาส รหัส สไตล์
เรื่องที่จะใช้ร่วมกับสไตล์ชีต
ผบ
ระบุทิศทางของสูตร: ltr - ซ้ายไปขวา หรือ rtl - ขวาไปซ้าย
อ้างอิง
ใช้เพื่อสร้างไฮเปอร์ลิงก์ไปยัง URI ที่ระบุ
พื้นหลังทางคณิตศาสตร์
สีพื้นหลัง. คุณสามารถใช้ชื่อสี #rgb , #rrggbb และ HTML ได้
สีคณิต
สีข้อความ คุณสามารถใช้ชื่อสี #rgb , #rrggbb และ HTML ได้
แสดง
คุณลักษณะนี้ระบุวิธีการส่งออก ค่าที่เป็นไปได้:

  • ปิดกั้น- หมายความว่าองค์ประกอบนี้จะแสดงนอกช่วงข้อความปัจจุบัน เป็นบล็อกที่สามารถวางตำแหน่งได้ทุกที่โดยไม่ต้องเปลี่ยนความหมายของข้อความ
  • อินไลน์ - หมายความว่าองค์ประกอบนี้จะปรากฏภายในช่วงข้อความปัจจุบัน และไม่สามารถย้ายออกได้โดยไม่เปลี่ยนค่าของข้อความนั้น

ค่าเริ่มต้นคือแบบอินไลน์

โหมด

ค่าแอตทริบิวต์การแสดงผลที่เลิกใช้แล้ว
ค่าที่เป็นไปได้คือ display (ซึ่งมีผลเหมือนกับ display="block") และ inline
ล้น
กำหนดวิธีการทำงานของนิพจน์หากข้อความยาวเกินกว่าจะพอดีกับช่วงความกว้างที่ระบุ
ค่าที่เป็นไปได้: linebreak (ค่าเริ่มต้น), เลื่อน, เลื่อน, ตัดทอน, สเกล

ตัวอย่าง

การนำเสนอในรูปแบบ HTML5

MathML ใน HTML5 2 + 2 = 2

การแสดงในรูปแบบ XHTML

MathML ใน XHTML 2 + 2 = 2
หมายเหตุ:เอกสาร XHTML ที่มี MathML ควรทำหน้าที่เป็น application/xhtml+xml คุณสามารถบรรลุสิ่งนี้ได้อย่างง่ายดายโดยการเพิ่มนามสกุล .xhtml ลงในไฟล์ในเครื่อง สำหรับเซิร์ฟเวอร์ Apache คุณสามารถกำหนดค่าไฟล์ .htaccess สำหรับส่วนขยายนี้เป็นประเภท MIME ที่ถูกต้องได้ เนื่องจากเราบันทึก MathML ของเราเป็นเอกสาร XML เราจึงต้องแน่ใจว่าเอกสาร XML มีรูปแบบที่ถูกต้อง

รองรับเบราว์เซอร์

รองรับเบราว์เซอร์

เวอร์ชันเต็ม
องค์ประกอบ โครเมียม ไฟร์ฟอกซ์ (ตุ๊กแก) อินเทอร์เน็ตเอ็กซ์พลอเรอร์ โอเปร่า ซาฟารี
คำอธิบาย XHTML (วันที่ 24 เท่านั้น) 1.0 (1.7 และสูงกว่า) 9.5 5.1
คำอธิบาย HTML5 (วันที่ 24 เท่านั้น) 4.0 (2.0) 5.1
ผบ 12.0 (12.0)
href ข้อบกพร่องของ WebKit 85733 7.0 (7.0) ข้อบกพร่องของ WebKit 85733
พื้นหลังทางคณิตศาสตร์ (วันที่ 24 เท่านั้น) 4.0 (2.0) 5.1
สีคณิต (วันที่ 24 เท่านั้น) 4.0 (2.0) 5.1
ล้น

รุ่นมือถือ

องค์ประกอบ หุ่นยนต์ โครมสำหรับแอนดรอยด์ Firefox มือถือ (ตุ๊กแก) ไออี โมบาย โอเปร่ามือถือ ซาฟารีมือถือ
คำอธิบาย XHTML 1.0 (1.0)
คำอธิบาย HTML5 4.0 (2.0)
ผบ 12.0 (12.0)
href 7.0 (7.0)
พื้นหลังทางคณิตศาสตร์ 4.0 (2.0)
สีคณิต 4.0 (2.0)
ล้น

แม้ว่าอินเทอร์เน็ตจะถูกสร้างขึ้นโดยความพยายามของนักฟิสิกส์และนักคณิตศาสตร์เป็นส่วนใหญ่ แต่เส้นทางของสูตรทางคณิตศาสตร์บนหน้าเว็บนั้นยาวและยุ่งยากมาก ในช่วงไม่กี่ปีที่ผ่านมาเราสามารถพูดได้ว่าสูตรทางคณิตศาสตร์ได้รับการยอมรับอย่างมั่นคงบนอินเทอร์เน็ต

ความจริงก็คือภาษา HTML ที่ใช้สร้างหน้าเว็บไม่มีวิธีในการแสดงสูตร ผู้สร้างเว็บไซต์ต้องหลีกเลี่ยง: ใช้ตาราง ดัชนี และวิธีแก้ปัญหาอื่น ๆ มีรายการเทคนิคดังกล่าวสรุปได้ดังนี้ เส้นทางยาก และผลลัพธ์ก็น่าสมเพช

วิธีแก้ปัญหาบางส่วนคือการแทรกสูตรในรูปแบบของรูปภาพ มีเครื่องมือมากมายสำหรับการสร้างมัน คุณสามารถใช้โปรแกรมแก้ไขภาพ (เช่น Equation Editor จาก Microsoft Office) หรือแปลงสูตรที่พิมพ์ใน LaTeX โดยใช้ตัวแปลงออนไลน์ ในที่สุดก็มี Google Docs ซึ่งโปรแกรมแก้ไขสูตรทำหน้าที่ทั้งสองสิ่งนี้ แต่เว็บมาสเตอร์ต้องเลือกขนาดและตำแหน่งรูปภาพ ซึ่งหมายความว่าเราทำได้เพียงฝันถึงการโต้ตอบของไซต์เท่านั้น ในการดำเนินการนี้ เราจำเป็นต้องมีภาษาที่อนุญาตให้ผู้เยี่ยมชมไซต์พิมพ์สูตรด้วยตนเอง

ในช่วงเปลี่ยนผ่านของยุค 2000 มีสองภาษาดังกล่าว: LaTeX - สำหรับการแสดงสูตรด้วยภาพ และ MathML - สำหรับอธิบายโครงสร้าง เมื่อถึงเวลานั้น LaTeX ได้ถูกนำมาใช้เป็นเวลาหลายปีในการเตรียมข้อความทางคณิตศาสตร์ ดังนั้นจึงไม่น่าแปลกใจเลยที่ LaTeX จะเริ่มถูกนำมาใช้สำหรับคณิตศาสตร์แบบเครือข่าย ความพยายามครั้งแรกในลักษณะนี้คือโปรแกรม LaTeXML เขียนด้วยภาษา Perl โดยจะประมวลผลเอกสาร LaTeX และส่งออกผลลัพธ์เป็นไฟล์ XML หลังโปรเซสเซอร์จะแปลง XML ที่เป็นผลลัพธ์ให้เป็นรูปแบบข้อความอื่นๆ เช่น HTML และ XHTML (และปัจจุบันคือ MathML) หรือกราฟิก สามารถดูผลลัพธ์ของ LaTeXML ได้

เปรียบเทียบการป้อนสูตรในMathML และลาเท็กซ์

อย่างไรก็ตาม สิ่งนี้ไม่ได้แก้ปัญหาการโต้ตอบ เมื่อต้องการทำเช่นนี้ โปรแกรมตัวจัดการจะต้องดำเนินการโดยตรงในเบราว์เซอร์ jsMath ของ Davide Cervone เป็นคนแรกที่ย้ายไปยังฝั่งไคลเอ็นต์ แปลงสูตรที่ผู้ใช้พิมพ์ใน LaTeX เป็นรูปภาพที่เรนเดอร์โดยใช้ HTML และ CSS ทำให้สามารถสร้างหน้าเว็บเชิงคณิตศาสตร์เชิงโต้ตอบได้อย่างแท้จริง

ก้าวแรกผ่านไปแล้ว แต่ปัญหายังคงอยู่มากมาย จำเป็นต้องตรวจสอบให้แน่ใจว่าโปรแกรมทำงานได้กับเบราว์เซอร์ทั้งหมด (เริ่มต้นด้วยรุ่นเก๋า เช่น Internet Explorer 6) และส่งออกสูตรเป็นรูปแบบต่างๆ โดยหลักคือ MathML โครงการ MathJax เปิดตัวในปี 2552 ภายใต้การนำของ American Mathematical Society โดยได้รับการสนับสนุนจากพอร์ทัล Stack Exchange ได้รับการออกแบบมาเพื่อแก้ไขปัญหาเหล่านี้ ไลบรารี่ MathJax ที่เป็นผลลัพธ์ทำงานได้กับทุกเบราว์เซอร์และสามารถบันทึกสูตรเป็น HTML+CSS, SVG และ MathML ได้ ผู้ใช้ไม่จำเป็นต้องติดตั้งปลั๊กอินหรือแบบอักษร - ตอนนี้ใช้งานได้แล้ว

การใส่สูตรลงไปแมทแจ็กซ์...

และการแสดงผลของมัน

หาก jsMath ฟื้นคืนคณิตศาสตร์บนอินเทอร์เน็ต MathJax จะ "ปล่อยจินนี่ออกจากขวด" ซึ่งจะทำให้คุณสามารถนำแนวคิดดีๆ มากมายไปใช้ในเวลาอันสั้น คุณต้องการเรียนคณิตศาสตร์ออนไลน์หรือไม่? ตรวจสอบที่นี่และที่นี่ ต้องการพูดคุยกับเพื่อนร่วมงาน? ถ้าคุณจะกรุณา. สร้างสิ่งพิมพ์ด้วยโค้ดและสูตร "สด" หรือไม่? ที่นี่และที่นั่น. สนใจระบบพีชคณิตคอมพิวเตอร์บน Android หรือไม่? ทำไมจะไม่ล่ะ . แชทกับฝ่ายสนับสนุนทางคณิตศาสตร์? อย่างง่ายดาย . สร้างบล็อกเพื่อพูดคุยเกี่ยวกับงานของคุณ? โปรด . MathJax ยังใช้ Wikipedia ซึ่งเป็นแหล่งเก็บข้อมูลสิ่งพิมพ์อิเล็กทรอนิกส์ arXiv ฟรี และพอร์ทัลคณิตศาสตร์ All-Russian นี่คือวิธีที่ MathJax กลายเป็นมาตรฐานโดยพฤตินัยสำหรับการแสดงสูตรบนหน้าเว็บ

นี่หมายความว่าปัญหาทั้งหมดเป็นเรื่องของอดีตหรือเปล่า? ไม่แน่นอน ดังนั้น,

ด้วยการแพร่กระจายของเครือข่ายคอมพิวเตอร์ทั่วโลก (โดยเฉพาะอินเทอร์เน็ต) ความจำเป็นในการวางข้อความทางคณิตศาสตร์บนเครือข่ายจึงเกิดขึ้น

ภาษา MathML เป็นส่วนหนึ่งของภาษา XML (เช่น เอ็กซ์ตึงเครียด อาร์คอัพ anguage เป็นภาษามาร์กอัปที่ขยายได้) ซึ่งมักใช้ในการสร้างภาษาอื่น การใช้ XML นี้ค่อนข้างเป็นธรรมชาติในปัจจุบัน และทำงานได้ดีในกรณีอื่นๆ ที่การใช้ HTML เพื่อถ่ายทอดข้อมูลประเภทใหม่ๆ พบกับข้อจำกัดของรูปแบบนี้ จนถึงปัจจุบัน สมาคม W3C ได้เผยแพร่ข้อกำหนดภาษา MathML เวอร์ชัน 2.0 ฉบับที่ 2 ซึ่งบ่งชี้ถึงความมีชีวิตและความยั่งยืนของโครงการ

ภาษามาร์กอัปที่ใช้ XML:

  • ภาษามาร์กอัปไร้สาย (WML): รูปแบบข้อมูลสำหรับอุปกรณ์ WAP (ไร้สาย) (โทรศัพท์มือถือ);
  • ภาษาบูรณาการมัลติมีเดียแบบซิงโครไนซ์ (SMIL):
  • ตั้งเวลา ลักษณะที่ปรากฏ ฯลฯ สำหรับการนำเสนอมัลติมีเดีย
  • กำหนดลำดับการเล่นไฟล์มีเดีย
  • ต้องใช้เครื่องเล่นที่รองรับ SMIL (AMBULANT, MS IE6) ในการดู
  • คำแนะนำและตัวอย่าง: http://www.multimedia4everyone.com/
  • กราฟิกแบบเวกเตอร์ที่ปรับขนาดได้ (SVG): สำหรับการอธิบายกราฟิกแบบเวกเตอร์สองมิติ
  • ภาษามาร์กอัปทางคณิตศาสตร์ (MathML): เพื่ออธิบายสัญลักษณ์ทางคณิตศาสตร์ (สูตร)
  • ภาษามาร์กอัปเคมี (CML): สำหรับแสดงสูตรทางเคมี
  • อื่น.

เป้าหมายที่กำหนดโดยคณะทำงานคณิตศาสตร์ W3C เมื่อสร้าง MathML ได้แก่:

  • สร้างความมั่นใจในการเข้ารหัสวัสดุที่มีลักษณะทางคณิตศาสตร์เพื่อการสื่อสารในทุกระดับของประเภทการศึกษาและวิทยาศาสตร์
  • สร้างความมั่นใจในการเข้ารหัสทั้งสัญลักษณ์ทางคณิตศาสตร์และความหมาย
  • รองรับการสร้างเทมเพลตและเทคนิคการแก้ไขทางคณิตศาสตร์อื่น ๆ
  • รับประกันการแปลงเป็นรูปแบบทางคณิตศาสตร์อื่น ๆ ทั้งในลักษณะการนำเสนอและความหมายล้วนๆ รวมถึงจากรูปแบบเหล่านี้เป็นภาษามาร์กอัปทางคณิตศาสตร์ที่สร้างขึ้น รูปแบบผลลัพธ์ควรรวมถึงวิธีการแสดงข้อมูลกราฟิก การสังเคราะห์เสียง การนำเสนอข้อความในรูปแบบที่เหมาะสมสำหรับการป้อนเข้าสู่ระบบพีชคณิตคอมพิวเตอร์ ความเข้ากันได้กับภาษาอื่น ๆ สำหรับการอธิบายข้อความทางคณิตศาสตร์ เช่น TAR ความสามารถในการแสดงข้อความที่ "บริสุทธิ์" (คือไม่รวมสัญลักษณ์และสำนวนทางคณิตศาสตร์) สามารถพิมพ์ข้อความในรูปแบบต่างๆ รวมทั้งแสดงผลเป็นอักษรเบรลล์ อย่างไรก็ตาม การแปลงระหว่างรูปแบบที่แตกต่างกันอาจทำให้ข้อมูลสูญหายได้
  • ความสามารถในการส่งข้อมูลโดยคำนึงถึงลักษณะของโปรแกรมสร้างภาพเฉพาะ
  • สนับสนุนกระบวนการที่มีประสิทธิภาพสำหรับการดูนิพจน์ทางคณิตศาสตร์แบบยาว
  • สร้างความมั่นใจในการขยาย (ในรูปแบบที่ไม่ทราบล่วงหน้า)

หลักการทั่วไปของการใช้ MathML คือโครงสร้างทางคณิตศาสตร์ถูกฝังอยู่ในเอกสาร HTML ปกติ และ (หากเบราว์เซอร์หรือโปรแกรมพิเศษรองรับข้อกำหนดนี้) จะถูกทำซ้ำอย่างเพียงพอเมื่อโหลดเอกสารจากอินเทอร์เน็ต

สิ่งแรกที่คุณพบใน MathML และสิ่งที่ทำให้ภาษามาร์กอัปนี้แตกต่างจากภาษาอะนาล็อกคือการใช้สองวิธีในการเข้ารหัสนิพจน์ หนึ่งในนั้นขึ้นอยู่กับการส่งผ่านไวยากรณ์ของสูตรโดยตรง ( การนำเสนอ) ในทางกลับกัน สะท้อนความหมายของนิพจน์ ( เนื้อหา- มาร์กอัปการนำเสนอจะอธิบายสัญลักษณ์ทางคณิตศาสตร์ด้วยนิพจน์ที่สร้างขึ้นโดยใช้รูปแบบการอนุมาน โดยระบุวิธีการวางนิพจน์ย่อย เช่น เศษส่วน ตัวยก และตัวห้อย มาร์กอัปความหมายอธิบายอ็อบเจ็กต์และฟังก์ชันทางคณิตศาสตร์ โดยที่แต่ละโหนดมีการสร้างแผนผังนิพจน์ตามสคีมาเฉพาะบางรายการ และกิ่งก้านของแผนผังนี้สอดคล้องกับนิพจน์ย่อย

ปัจจุบัน หน้าเว็บที่สร้างโดยใช้ MathML สามารถดูได้ในเบราว์เซอร์ต่อไปนี้ (เครื่องหมาย “+” หมายความว่าเวอร์ชันที่ใหม่กว่ายังใช้งานได้):

  • หน้าต่าง:

o IE 5.0 พร้อมปลั๊กอิน Techexplorer

  • แมคอินทอช:

o IE 5.0+ พร้อมปลั๊กอิน Techexplorer

หรือมอซซิลา 0.9.9+

  • ลินุกซ์/ยูนิกซ์:

o Netscape 6.1 พร้อมปลั๊กอิน Techexplorer

หรือมอซซิลา 0.9.9+

o Amaya ทุกรุ่น (Presentation MathML เท่านั้น)

องค์ประกอบ MathML ทั้งหมดแบ่งออกเป็นสามกลุ่ม: องค์ประกอบ การเป็นตัวแทน,องค์ประกอบ เนื้อหาและ อินเตอร์เฟซองค์ประกอบ

องค์ประกอบการเป็นตัวแทนอธิบายโครงสร้างสองมิติเชิงการมองเห็นของสัญกรณ์ทางคณิตศาสตร์ ตัวอย่างเช่น องค์ประกอบ พรุ่งนี้มักใช้เพื่อแสดงถึงชุดแนวนอนของส่วนของนิพจน์และองค์ประกอบ msupซึ่งทำเครื่องหมายตัวยก โดยทั่วไป แต่ละองค์ประกอบการเป็นตัวแทนจะสอดคล้องกับรูปแบบสัญลักษณ์ประเภทเดียว เช่น แถว ตัวยก ตัวห้อย ฯลฯ สูตรใดๆ ประกอบด้วยส่วนต่างๆ ซึ่งอาจประกอบด้วยองค์ประกอบง่ายๆ เช่น ตัวเลข ตัวอักษร หรือสัญลักษณ์อื่นๆ

องค์ประกอบการเป็นตัวแทนที่สำคัญที่สุดคือ mi, mn และ mo ซึ่งใช้แทนตัวระบุ ตัวเลข และตัวดำเนินการตามลำดับ โดยทั่วไป องค์ประกอบเหล่านี้จะแสดงในรูปแบบที่แตกต่างกัน: ตัวเลขอยู่ในแบบอักษรตั้งตรง ตัวระบุอยู่ในตัวเอียง และพื้นที่สีขาวเพิ่มเติมจะเหลือรอบๆ โอเปอเรเตอร์

ในแง่มาร์กอัป องค์ประกอบ MathML ส่วนใหญ่ถูกกำหนดไว้ เปิดและ ปิดแท็กที่จำกัดเนื้อหาขององค์ประกอบ องค์ประกอบบางอย่าง เช่น ป้ายปฏิบัติการ ( ) ถูกกำหนดโดยแท็กเดียว

มาดูองค์ประกอบบางอย่างที่จำเป็นสำหรับการจัดวางสูตรทางคณิตศาสตร์โดยละเอียดยิ่งขึ้น โดยใช้มาร์กอัปการนำเสนอเป็นตัวอย่าง

องค์ประกอบโทเค็นเป็นตัวแทนสัญลักษณ์ ชื่อ ตัวเลข ชื่อเรียก ฯลฯ ของแต่ละบุคคล โดยพื้นฐานแล้ว โทเค็นสามารถมีได้เฉพาะอักขระเป็นเนื้อหาเท่านั้น

MathML จะละเว้นอักขระช่องว่างที่พบภายนอกโทเค็น ที่นี่ไม่อนุญาตให้ใช้อักขระที่ไม่ใช่ช่องว่าง อักขระช่องว่างที่เกิดขึ้นในเนื้อหาโทเค็นจะถูกถอดออกที่ส่วนท้าย กล่าวคือ อักขระช่องว่างทั้งหมดที่จุดเริ่มต้นและจุดสิ้นสุดของเนื้อหาจะถูกลบออก อักขระช่องว่างที่อยู่ในเนื้อหาขององค์ประกอบ MathML จะถูกยุบตามรูปแบบบัญญัติ นั่นคือ แต่ละลำดับของอักขระดังกล่าวตั้งแต่ 1 ตัวขึ้นไปจะถูกแทนที่ด้วย 1 (บางครั้งเรียกว่าอักขระช่องว่าง)

องค์ประกอบสำคัญ

ดัชนี

การดำเนินการทางคณิตศาสตร์บางอย่างที่สามารถใช้กับแท็กได้ .

+ +
< >
<
<= >=
++ ++
.ไม่.ไม่
และและ
เครื่องหมายคูณที่มองไม่เห็น
+ +

มาดูตัวอย่างสูตรใน MathML กัน

1) บาป 2 α + cos 2 α = 1

บาป

α

+

เพราะ

α

=

ได้รับตัวอักษรกรีก α โดยใช้รหัส α (โปรดจำไว้ว่าใช้ Unicode)

ผลลัพธ์

นอกจากนี้เรายังเตือนคุณว่าในการทำงานกับ MathML ใน Internet Explorer คุณต้องติดตั้ง MathPlayer

ไฟล์ใดๆ ที่มีมาร์กอัป MathML ต้องมีบรรทัดต่อไปนี้ก่อนส่วนหัวของเอกสาร:

นอกจากนี้ รหัส MathML ใดๆ จะเปิดขึ้นพร้อมกับแท็ก

และปิดท้ายด้วยแท็ก.

2

2

บาป

x+

2x

x2

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

x+

=

1x+

1=

1

หากจำเป็น จะต้องค้นหาสัญลักษณ์ทางคณิตศาสตร์ต่างๆ ในตารางการเข้ารหัส Unicode

ตัวอย่าง.

-1

Σ

ฉัน=0

สามารถพบตัวอย่างที่มีอินทิกรัลจำนวนมากพอสมควรได้ ดังนั้นเราจะไม่พูดถึงตัวอย่างเหล่านี้ในที่นี้ เราขอแนะนำให้ผู้อ่านทำความคุ้นเคยกับตัวอย่างในแหล่งข้อมูลที่ระบุ

ตามที่ระบุไว้ข้างต้น MathML อนุญาตให้ใช้การนำเสนอและการนำเสนอความหมายได้ ที่นี่เรามุ่งเน้นไปที่การนำเสนอในรูปแบบที่เข้าใจง่ายที่สุดและใช้บ่อยที่สุด อย่างไรก็ตาม เพื่อให้อย่างน้อยมีแนวคิดเกี่ยวกับตัวเลือกอื่น ลองดูตัวอย่างประกอบเล็กๆ น้อยๆ แล้วเขียนเป็นสองตัวเลือกแทน

ตัวอย่าง- x 2 - 6x + 9 = 0

แน่นอนว่าการพิมพ์สูตรใน MathML นั้นเป็นงานที่ค่อนข้างยาวและต้องใช้ความพยายามพอสมควร อย่างไรก็ตาม ผู้ที่ทำงานใน LaTeX มานานพอจะไม่เห็นความแตกต่างมากนัก อย่างไรก็ตาม บ่อยครั้งที่ผู้ใช้ต้องการใช้เครื่องมือที่แตกต่างกัน ลองชื่อไม่กี่

ประการแรก แพ็คเกจทางคณิตศาสตร์ เช่น Mathematica หรือ Maple ช่วยให้คุณสามารถบันทึกสูตรที่พิมพ์ในรูปแบบ MathML ได้

ทรัพยากรนี้ใช้สคริปต์ Java ASCIIMathML.js (เวอร์ชัน 2.0; กันยายน 2550; http://www1.chapman.edu/~jipsen/mathml/asciimath.html ผู้เขียนสคริปต์ - Peter Jipsen) ทำงานบนคอมพิวเตอร์ของผู้ใช้ ซึ่งก็คือ โหลดแล้วเมื่อโหลดหน้าสาธิต http://www1.chapman.edu/~jipsen/mathml/asciimathdemo.html ดังนั้นโดยเฉพาะอย่างยิ่งทรัพยากรนี้สามารถใช้ได้ในเครื่อง: เพียงบันทึกหน้า HTML สาธิตที่กล่าวถึงก็เพียงพอแล้วและคุณสามารถแปลงสูตรง่ายๆโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต

โดยสรุป เราทราบว่า MathML ในฐานะเครื่องมือมาร์กอัปยังค่อนข้างเหมาะสมสำหรับการสร้างงานทางคณิตศาสตร์ต่างๆ (ดูตัวอย่างด้านบน) ในกรณีนี้คุณสามารถใช้ JavaScript ได้เช่นในการเขียนโปรแกรมผู้ใช้จะมีโอกาสสร้างตัวเลือกงานตามจำนวนที่ต้องการตามดุลยพินิจของตน คุณยังสามารถสร้างคำตอบให้กับงานทั้งหมดได้ซึ่งง่ายมาก

เราหวังว่าความคุ้นเคยของผู้อ่านกับวิธีการจัดวางข้อความทางคณิตศาสตร์ไม่ได้สิ้นสุดเพียงแค่นั้น และเขาจะสามารถเลือกเครื่องมือที่เขาสนใจได้อย่างอิสระ และอาจใช้เทคโนโลยีที่อธิบายไว้ในทางปฏิบัติด้วยซ้ำ

วรรณกรรมและแหล่งข้อมูลอินเทอร์เน็ต