MathML In Action

MathML in Action

คุณเห็นสมการที่สวยงามตลอดหน้านี้รึเปล่า? ไม่เหรอ? ว้า.. แย่หน่อยนะ. นี่คือ ภาพจับหน้าจอ แสดงสิ่งที่คุณพลาดไป. ดาวน์โหลด Mozilla ที่ใช้ MathML ได้ (MathML-enabled build) เสียตั้งแต่ตอนนี้ เพื่ออะไรๆ จะได้ดีขึ้น.

หรือว่าคุณมี build ที่ใช้ MathML ได้แล้ว แต่สิ่งที่คุณได้เห็นนั้น ไม่เหมือนกับในภาพจับหน้าจอ? ถ้าเป็นอย่างนั้น บางทีคุณอาจจะยังไม่มี ฟอนต์ MathML บางตัวก็ได้.

เอาละ ตกลงว่า ตอนนี้คุณมีทุกอย่างพร้อมแล้ว, คุณน่าจะเห็นสมการนี้ ในรูปแบบต่างๆ : x ^ + xy ^ + xyz ^ . ลองสมการเล็กๆ ดู, det | a c b d | = a d - b c , ซึ่งก็สามารถที่จะแสดงในแบบ displaystyle เป็น det | a b c d | = a d - b c .

การจัดตัวพิมพ์สำหรับสมการคณิตศาสตร์นั้นเป็นเรื่องละเอียดอ่อน MathML ใน Mozilla มุ่งหวังที่จะทำตาม ข้อกำหนด MathML เพื่อให้ สิ่งที่คุณเห็นคือสิ่งที่คุณได้มาร์คอัพไว้ (What You See Is What You Markup), หรือจะเรียกอีกแบบ สิ่งที่คุณเห็นคือสิ่งที่คุณได้ทำ (What You See Is What You Made), หรือเอาสั้นๆ "WYSIWYM". ความแตกต่างระหว่างสมการสองอันข้างล่างนี้ คือ การมาร์คอัพ! ( ... ( ( a 0 + a 1 ) n 1 + a 2 ) n 2 + ... + a p ) n p ( ... ( ( a 0 + a 1 ) n 1 + a 2 ) n 2 + ... + a p ) n p

สัญลักษณ์ "ราก" ของสมการที่เป็นตัวหนาอันนี้ y 3 + p y + q = 0 ก็เป็นตัวหนาเช่นเดียวกัน y = - q 2 + q 2 4 + p 3 27 2 3 + - q 2 - q 2 4 + p 3 27 2 3 .

เหมือนๆ กับสัญลักษณ์ "ราก" ของสมการนี้ a x 2 + b x + c = 0 , คลิกตรงไหนก็ได้ในพื้นที่สีเหลือง เพื่อ ย่อ/ขยาย :

Zoomable Math

HTML Content

    <p>
      <math display="block">
        <mstyle id="zoomableMath" mathbackground="yellow">
          <mrow>
            <mi>x</mi>
            <mo>=</mo>
            <mfrac>
              <mrow>
                <mrow>
                  <mo>-</mo>
                  <mi>b</mi>
                </mrow>
                <mo>&#xB1;</mo>
                <msqrt>
                  <mrow>
                    <msup>
                      <mi>b</mi>
                      <mn>2</mn>
                    </msup>
                    <mo>-</mo>
                    <mrow>
                      <mn>4</mn>
                      <mi>a</mi>
                      <mi>c</mi>
                    </mrow>
                  </mrow>
                </msqrt>
              </mrow>
              <mrow>
                <mn>2</mn>
                <mi>a</mi>
              </mrow>
            </mfrac>
          </mrow>
        </mstyle>
      </math>
    </p>

JavaScript Content

      function zoomToggle()
      {
      if (this.hasAttribute("mathsize")) {
      this.removeAttribute("mathsize");
      } else {
      this.setAttribute("mathsize", "200%");
      }
      }

      function load()
      {
      document.getElementById("zoomableMath").
      addEventListener("click", zoomToggle, false);
      }

      window.addEventListener("load", load, false);

ลองพิจารณาการมาร์คอัพที่น่าสนใจอันนี้ { u t + f ( u ) x = 0 u ( 0 , x ) = { u - if  x < 0 u + if  x > 0 หรือการมาร์คอัพที่ซับซ้อนอย่าง Ell ^ Y ( Z ; z , τ ) := Y ( l ( y l 2 π i ) θ ( y l 2 π i - z ) θ ( 0 ) θ ( - z ) θ ( y l 2 π i ) ) × ( k θ ( e k 2 π i - ( α k + 1 ) z ) θ ( - z ) θ ( e k 2 π i - z ) θ ( - ( α k + 1 ) z ) ) π ( n ) = m = 2 n ( k = 1 m - 1 ( m / k ) / m / k ) - 1 ϕ W s k ( Ω g ) ( | α | k α ϕ ξ α L s ( Ω g ) s ) 1 / s

ตัวอย่างอื่นๆ, ให้ดูที่ลิงก์ในหน้าของ โครงการ MathML, และถ้าคุณ สร้าง ตัวโปรแกรม Mozilla ใช้เอง, กรุณาดูที่ไดเรกทอรี mozilla/layout/mathml/tests.

เอาละ, แล้วยังไงต่อไปล่ะ? หลังจากที่คุณได้ลอง MathML ใน Mozilla แล้ว คุณได้เห็นอะไรบ้าง? จะทำยังไงกับบางสิ่งบางอย่างที่คุณคิดว่า มันดูจะไม่ตรงตามข้อกำหนด MathML ซะเท่าไหร่? หรือบางอย่างที่มันดูน่ารำคาญ ไม่น่าดู, และคุณคิดว่าคุณสามารถทำมันได้ดีกว่าซะอีก? หรือบางอย่างที่มันเคยใช้ได้ก่อนหน้านี้ แต่ว่าตอนนี้มันใช้ไม่ได้แล้ว (เรียกอีกอย่างว่า regressions)? ไม่ว่าจะเป็นกรณีไหน, ให้ตรงไปที่ Bugzilla เพื่อรายงานปัญหาที่พบ. Bugzilla มีเนื้อที่จำนวนมากสำหรับจัดเก็บปัญหาเหล่านี้, และแน่นอน, ปัญหาของคุณคงจะไม่ได้รับการแก้ไขแน่ ถ้ามันไม่เคยถูกรายงาน!

มาช่วยกัน ต่อเติม เสริม Gecko ด้วยตัววาด MathML ที่มีความสามารถสูง และทำตามมาตรฐาน. คุณสามารถทำได้เดี๋ยวนี้ ตอนนี้ โดย ใส่เนื้อหา MathML ลงในเวบของคุณ, แจ้งข้อผิดพลาดที่ Bugzilla, และถ้าคุณสามารถช่วยเรื่องเขียนโปรแกรมได้, มาช่วย ตรวจสอบ/ปรับปรุง โค้ดปัจจุบัน, และ/หรือ เลือกอะไรสักอย่างนึงจาก รายการสิ่งที่ต้องทำ (ToDo).

Attachments

ไฟล์ Size วันที่ Attached by
start.png
85642 bytes 2011-09-24 22:52:54 fred.wang

Document Tags and Contributors

Contributors to this page: fred.wang
Last updated by: fred.wang,