Mục tiêu chính mà đề tài hướng đến là ứng dụng MathML, các phần mềm mãnguồn mở để soạn thảo, quản lý, tìm kiếm công thức toán học trên văn bản và saochép công thức toán học từ hai phần m
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
PHAN THỊ LỆ THUYỀN
NGHIÊN CỨU ỨNG DỤNG MATHML
ĐỂ QUẢN LÝ CÁC CÔNG THỨC TOÁN HỌC TRÊN VĂN BẢN
Chuyên ngành: KHOA HỌC MÁY
TÍNH Mã số: 60.48.01
LUẬN VĂN THẠC SĨ KỸ THUẬT
Người hướng dẫn khoa học: PGS.TS VÕ TRUNG
HÙNG
Đà Nẵng - Năm 2011
Trang 3LỜI CẢM ƠN
Tôi xin chân thành cảm ơn các Thầy của Khoa Công nghệ Thông tin, Trường Đại học Bách khoa, Đại học Đà Nẵng đã truyền đạt cho em những kiến thức về chuyên ngành cũng như xã hội Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến PGS.TS Võ Trung Hùng – Đại học Đà Nẵng, đã trực tiếp hướng dẫn và giúp đỡ em hoàn thành luận văn Trong quá trình làm luận văn, em đã gặp nhiều khó khăn nhưng thầy luôn động viên và đưa ra định hướng giúp em hoàn thành đúng tiến độ Thầy chính là tấm gương cho em trong công tác giảng dạy, nghiên cứu khoa học, cũng như trong cuộc sống Em xin cảm ơn thầy.
Em xin chân thành cảm ơn!
Đà Nẵng, tháng 06 năm 2011
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan:
- Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của PGS.TS Võ Trung Hùng.
- Những nội dung tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
- Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm.
Tác giả
Phan Thị Lệ Thuyền
Trang 5MỤC LỤC
Trang 6LỜI CẢM ƠN ii
LỜI CAM ĐOAN iii
MỤC LỤC iv
DANH MỤC CÁC T VI T T T vi
DANH MỤC BẢNG vii
DANH MỤC HÌNH ẢNH viii
DANH MỤC HÌNH ẢNH viii
MỞ ĐẦU 1
CHƯƠNG 1 NGHIÊN CỨU TỔNG QUAN 3
1.1 SOẠN THẢO, LƯU TRỮ VÀ TÌM KIẾM CÁC CÔNG THỨC TOÁN HỌC TRÊN VĂN BẢN 3
1.1.1.Khái niệm văn bản 3
1.1.2.Hệ soạn thảo văn bản 4
1.1.3.Quá trình nhập công thức 4
1.1.4.Tình trạng sử dụng phần mềm gõ công thức toán học hiện nay 6
1.1.5.Biểu diễn công thức toán học trên máy tính 7
1.1.6.Thực trạng tìm kiếm công thức toán học 10
1.1.7.Các phần mềm hỗ trợ soạn thảo công thức toán học 10
1.2 GIỚI THIỆU MỘT SỐ NGÔN NGỮ ĐÁNH DẤU TOÁN HỌC 12
1.2.1.Ngôn ngữ đánh dấu LaTex 12
1.2.2.Ngôn ngữ đánh dấu AMS-Latex 15
1.2.3.Ngôn ngữ đánh dấu HTML 16
1.3 NGÔN NGỮ ĐÁNH DẤU MATHML 18
1.3.1.Lịch sử của MathML 19
Trang 71.3.2.Tính năng của MathML 19
1.3.3.Cách thức hiển thị của MathML 19
1.3.4.Cấu trúc của MathML 20
1.3.5.Tạo công thức toán học 21
Tiểu kết chương 1 28
CHƯƠNG 2 ĐỀ XUẤT GIẢI PHÁP 29
2.1.MÔ TẢ ỨNG DỤNG 29
2.2.MÔ HÌNH TỔNG QUÁT 29
2.3 ĐỀ XUẤT GIẢI P H Á P 30 2.3.1.Tiêu chuẩn lưu trữ nội dung 31
2.3.2.Hệ thống soạn thảo 33
2.3.3.Giải pháp quản lý, tìm kiếm công thức toán học 34
2.3.4.Giải pháp sử dụng ClipBoard sao chép công thức toán học 45
Tiểu kết chương 2 56
CHƯƠNG 3 TRIỂN KHAI ỨNG DỤNG 57
3.1.XÂY DỰNG MÔI TRƯỜNG SOẠN THẢO 57
3.2.SỬ DỤNG TRÌNH DUYỆT AMAYA 62
3.3.TÍCH HỢP PHẦN MỀM GÕ CÔNG THỨC TOÁN HỌC 63
3.4.THỬ NGHIỆM 64
Tiểu kết chương 3 70
K T LUẬN 71
DANH MỤC TÀI LIỆU THAM KHẢO 72
Trang 85
Trang 9DANH MỤC CÁC T VI T T T
CSS Cascading Style Sheets Các bảng định kiểu theo tầngHTML HyperText Markup Language Ngôn ngữ Đánh dấu Siêu văn
bảnMathML Mathematical Markup Language Ngôn ngữ Đánh dấu Toán họcOLE Object Linking and Embedding Liên kết và nhúng đối tượng
SVG Scalable Vector Graphics
Một ngôn ngữ đánh dấu của XML, dùng để miêu tả các hình ảnh đồ họa véc tơ hai chiều, tĩnh và động
W3C The World Wide WebConsortium Hiệp hội Web thế giới
WYSIWYG What You See Is What You Get Thấy gì thì nhận được như vậyXHTML Extensible HyperText MarkupLanguage Ngôn ngữ Đánh dấu Siêu văn bản Mở rộngXML eXtensible Markup Language Ngôn ngữ Đánh dấu Mở rộng
Trang 10DANH MỤC BẢNG
Bảng 1 1 So sánh các phần mềm soạn thảo 10
Bảng 1 2 So sánh các công cụ soạn thảo 12
Bảng 1 3 So sánh các ngôn ngữ đánh dấu 18
Bảng 1 4 Một số thẻ đặc trưng của MathML 21
Bảng 2 1 Các định dạng ClipBoard phổ biến của OpenOffice 46
Bảng 2 2 So sánh mã MathML ghi trên tập tin mml và trình duyệt Amaya 50
Bảng 2 3 So sánh hai ngôn ngữ đánh dấu trên hai trình soạn thảo 53
Trang 11DANH MỤC HÌNH ẢNH
Hình 1 1 Nhập công thức bằng bảng hoặc menu ngữ cảnh 5
Hình 1 2 Hiển thị công thức trên màn hình soạn thảo 5
Hình 1 3 Cửa sổ soạn thảo trên TeXworks 6
Hình 1 4 Cửa sổ sau khi biên dịch sang .pdf 6
Hình 1 5 Cửa sổ soạn thảo của Equation 11
Hình 1 6 Cửa sổ của MathType 11
Hình 1 7 Công cụ MyEqText soạn thảo trực tiếp trong cửa sổ Word 12
Hình 1 8 Quá trình soạn thảo bằng Latex 14
Hình 1 9 Gói Amsmath cung cấp môi trường subequations đánh số tự động 16
Hình 1 10 Biểu diễn công thức bậc hai theo từng phần tử 22
Hình 1 11 Mô tả tính cấu trúc trong bình bày công thức 24
Hình 1 12 MathML biểu diễn theo cấu trúc câu 27
Hình 2 1 Mô hình tổng quát của hệ thống 30
Hình 2 2 Hệ thống lưu trữ nội dung 33
Hình 2 3 Mỗi công thức bắt đầu thẻ <math xmlns …> và kết thúc </math> 36
Hình 2 4 Cấu trúc các thẻ lồng vào nhau 37
Hình 2 5 Tìm kiếm ký tự a và tìm kiếm ký hiệu căn bậc hai 41
Hình 2 6 Hình ảnh được định dạng bởi các thẻ SVG 49
Hình 2 7 Sơ đồ quá trình chuyển đổi dữ liệu trong ClipBoard 51
Hình 2 8 Thuật toán chuyển công thức từ OpenOffice.Org Math sang cấu trúc
MathML trong Amaya 52
Hình 3 1 Kiến trúc Amaya 57
Trang 12Hình 3 2 Lược đồ cấu trúc trình biên dịch của cây nhị phân 59
Hình 3 3 Chức năng gõ công thức được tích hợp trên phần mềm 63
Hình 3 4 Sử dụng thanh trình đơn để nhập công thức 64
Hình 3 5 Giao diện màn hình soạn thảo văn bản 64
Hình 3 6 Thanh trình đơn chứa các menu chức năng 65
Hình 3 7 Cửa sổ hiển thị nội dung và mã nguồn 65
Hình 3 8 Tìm kiếm công thức x y 66
Hình 3 9 Tìm kiếm ký hiệu toán học 67
Hình 3 10 Tìm kiếm chỉ số trong toán học 68
Hình 3 11 Duyệt trang:http://www.mathjax.org/demos/mathml-samples/ 68
Hình 3 12 Duyệt tranghttp://www.w3.org/Math/XSL/pmathml2.xml 69
Hình 3 13 Kết quả của chương trình chuyển đổi Math Clipboard Converted 69
Trang 131
-MỞ ĐẦU
Hiện nay, có rất nhiều công cụ cho phép soạn thảo các công thức toán học trênvăn bản như Winword, OpenOffice.org Writer, Acrobat, WebEditor,… Mỗi phầnmềm soạn thảo văn bản có một chuẩn lưu trữ và được quản lý khác nhau Điều nàylàm cho người sử dụng gặp nhiều khó khăn khi sao chép nội dung các công thứctoán học giữa các ứng dụng và không thể thực hiện yêu cầu tìm kiếm một công thứctoán học trên một ứng dụng soạn thảo
Xuất phát từ nhu cầu thực tế đó, việc nghiên cứu về cách thức lưu trữ, soạnthảo, tìm kiếm các công thức toán học và đặc biệt nghiên cứu tiêu chuẩn MathMLtrong việc quản lý các công thức toán học trên văn bản có ý nghĩa khoa học và thựctiễn rất cao Để có điều kiện nghiên cứu sâu hơn về MathML và ứng dụng, tôi đã
chọn đề tài tốt nghiệp “Nghiên cứu ứng dụng MathML để quản lý các công thức toán học trên văn bản”.
Mục tiêu chính mà đề tài hướng đến là ứng dụng MathML, các phần mềm mãnguồn mở để soạn thảo, quản lý, tìm kiếm công thức toán học trên văn bản và saochép công thức toán học từ hai phần mềm soạn thảo với hai ngôn ngữ đánh dấu khácnhau Để đáp ứng mục tiêu đã nêu, đề tài cần giải quyết những vấn đề chính sau:Nghiên cứu tổng quan về tiêu chuẩn lưu trữ, soạn thảo và hiển thị các công thức toánhọc trên các văn bản; Nghiên cứu một số công cụ hỗ trợ soạn thảo công thức toánhọc và thực trạng tìm kiếm công thức toán học hiện nay; Nghiên cứu một phần mềm
mã nguồn mở để mô phỏng ứng dụng soạn thảo công thức, lưu trữ và hỗ trợ tìmkiếm trên văn bản; Xây dựng phần mềm thực hiện chức năng sao chép công thứctoán học từ hai trình soạn thảo
Đối tượng nghiên cứu khi thực hiện đề tài là công cụ hỗ trợ soạn thảo, các tiêuchuẩn lưu trữ, phương pháp hiển thị và tìm kiếm công thức toán học Trong đề tàinày, tôi chọn mã nguồn mở Amaya để triển khai ứng dụng
Việc xây dựng một môi trường soạn thảo và tìm kiếm công thức toán học trênchuẩn MathML trong môi trường Web có ý nghĩa hết sức thiết thực đối với việc trao
Trang 142 đổi tài liệu khoa học trong thời đại công nghệ thông tin như hiện nay Kết quả của đềtài sẽ góp phần quan trọng trong việc xử lý các công thức toán học trong các hệthống hỗ trợ dạy và học qua mạng Internet (E-Learning), diễn đàn khoa học,…Báo cáo của luận văn được tổ chức thành 3 chương Trong chương 1, chúng tôitrình bày kết quả nghiên cứu về các ứng dụng soạn thảo văn bản, các công cụ hỗ trợsoạn thảo công thức toán học và ngôn ngữ đánh dấu MathML Chương 2 được dành
-để mô tả ứng dụng, xây dựng mô hình tổng quát, đề xuất giải pháp xây dựng môitrường soạn thảo công thức, tiêu chuẩn lưu trữ và tìm kiếm công thức toán học, giảipháp sao chép công thức từ OpenOffice.Org writer sang WebBrowser Amaya Nộidung chương 3 trình bày việc lựa chọn môi trường triển khai ứng dụng, quá trìnhxây dựng môi trường soạn thảo, tìm kiếm công thức toán học và sao chép công thứcgiữa hai trình soạn thảo
Trang 153
-CHƯƠNG 1 NGHIÊN CỨU TỔNG QUAN
Trong thời đại ngày nay, máy tính đã trở thành công cụ không thể thiếu đểphục vụ công tác soạn thảo văn bản Hiện nay các công cụ hỗ trợ việc soạn thảo vănbản khoa học khá đa dạng, tuy nhiên các công cụ này không đồng nhất về một chuẩnsoạn thảo Vì vậy, việc chuyển đổi tài liệu qua lại giữa các phần mềm này rất khókhăn do đó cần phải có một chuẩn thống nhất để lưu trữ, quản lý Trong chương này,tôi trình bày cơ sở lý thuyết và thực tiễn về soạn thảo, lưu trữ và tìm kiếm công thứctoán trên văn bản
1.1 SOẠN THẢO, LƯU TRỮ VÀ TÌM KI M CÁC CÔNG THỨC TOÁN HỌC TRÊN VĂN BẢN
1.1.1 Khái niệm văn bản
Theo nghĩa rộng, văn bản là vật mang tin (Các vật liệu dùng để viết như:xương thú vật, đồng, đá, gỗ, da, tre, giấy,…) được ghi bằng ký hiệu ngôn ngữ nhấtđịnh (Các loại chữ viết như: chữ Hán, chữ Nôm, chữ Quốc ngữ,…) Theo định nghĩanày thì mọi vật có ghi ký hiệu ngôn ngữ như: bia đá, gia phả, câu đối, các tác phẩmvăn học, các công trình nghiên cứu khoa học, các công văn, giấy tờ của các cơ quan
… đều là văn bản Khái niệm này được dùng phổ biến trong nghiên cứu về ngôn ngữhọc, sử học và văn bản học
Theo nghĩa hẹp, văn bản là các công văn, giấy tờ, hồ sơ được hình thành trongquá trình hoạt động của các cơ quan, doanh nghiệp, đoàn thể như: nghị định, chỉ thị,thông tư, nghị quyết, báo cáo, biên bản, tờ trình, thông báo… Khái niệm này được
sử dụng rộng rãi trong hoạt động quản lý của các cơ quan
Cùng với phát triển của công nghệ thông tin, nhu cầu ứng dụng công nghệthông tin trong thực tiễn đã sản sinh ra một loại hình đó là văn bản điện tử Văn bảnđiện tử được tạo ra và đọc trong môi trường điện tử Đó là môi trường của các thiết
bị kỹ thuật (phương tiện máy móc), hoạt động trên cở sở các quy luật vật lý và được
sử dụng vào công nghệ thông tin để xử lý, lưu giữ và truyền tải các dữ liệu
Trang 164 Nói một cách khái quát, văn bản là phương tiện ghi tin và truyền đạt thông tinbằng một ngôn ngữ hay kí hiệu nhất định Ở mỗi lĩnh vực văn bản có những hìnhthức và nội dung khác nhau Chẳng hạn, văn bản nghệ thuật khác với văn bản quản
-lí Nhà nước; văn bản lập pháp khác với văn bản lập quy; văn bản báo cáo khác vớivăn bản kế hoạch [13]
1.1.2 Hệ soạn thảo văn bản
Hệ soạn thảo văn bản là một phần mềm ứng dụng cho phép thực hiện cácthao tác liên quan đến công việc soạn thảo văn bản như: nhập văn bản, sửa đổi vănbản, trình bày, lưu trữ, tìm kiếm và in văn bản với sự trợ giúp của máy tính Ví dụ:Microsoft Word, Notepad, WordPad, …
1.1.3 Quá t ình nhập công thức
Có ba cách nhập công thức bằng công cụ soạn thảo văn bản Cách thứ nhất lànhập công thức bằng các ký tự có sẵn trong bảng lựa chọn(seclection) hiện ra Cáchthứ hai là nhấp chuột phải lên trình soạn thảo công thức và chọn ký tự từ menu ngữcảnh Cách thứ ba là nhập công thức bằng ngôn ngữ đánh dấu Nhưng thực chất việc
sử dụng menu ngữ cảnh hay sử dụng bảng lựa chọn tức là cũng đã nhập vào đoạn
mã (code) tương ứng với ký tự
1.1.3.1 Sử dụng bảng lựa chọn
Phương pháp thứ nhất và thứ hai thì đơn giản, trực quan và dễ sử dụng Ví dụqua phần mềm OpenOffice.Org, quá trình soạn thảo công thức chúng ta có thể chọncác thành phần để tạo công thức qua bảng hoặc qua menu ngữ cảnh sau đó nhập cácgiá trị tương ứng vào công thức:
Trang 175
-Hình 1 1 Nhập công thức bằng bảng hoặc menu ngữ cảnh
Hình 1 2 Hiển thị công thức trên màn hình soạn thảo
1.1.3.2 Sử dụng ngôn ngữ đánh dấu
Trong cách này, chúng ta có thể gõ trực tiếp thông qua ngôn ngữ đánh dấu(Markup Language) vào vùng soạn thảo công thức toán Với phương pháp này thìđòi hỏi người soạn thảo phải học cách soạn thảo dựa trên các dòng lệnh hoặc thẻ Vìvậy đây không phải là một phương pháp thân thiện cho người sử dụng
Trang 18trên TeXworks, chúng ta phải nhớ đoạn
mã lệnh khai báo cần thiết cho tài liệu và mã lệnh tạo công thức Sau khi hoàn thànhquá trình soạn thảo, người sử dụng tiến hành biên dịch sang tập tin pdf khi đó mớixem kết quả soạn thảo
Trang 19Hình 1 3 Cửa sổ soạn thảo trên TeXworks
Hình 1 4 Cửa sổ sau khi biên dịch sang pdf
1.1.4 Tình t ạng sử dụng phần mềm g công thức toán học hiện nay
Hiện nay, trên thế giới có rất nhiều phần mềm hỗ trợ quá trình gõ công thứctoán học trên văn bản Ngoài những phần mềm thương mại như: Mathtype,Microsoft Equation trong bộ Microsoft Office,… hoặc những phần mềm mã nguồn
mở như: MathCast, Math trong OpenOffice.Org, hoặc phần mềm phi thương mạicủa Việt Nam như MyeqText,…
Nhưng mỗi công cụ chỉ hỗ trợ phù hợp cho từng phần mềm soạn thảo cụ thể
Do đó, khi sử dụng phần mềm soạn thảo nào thì người sử dụng dùng công cụ hỗ trợ
gõ công thức tương ứng với nó Nhưng việc sử dụng công cụ hỗ trợ gõ công thứctoán học của người dùng lại không nhất quán, nghĩa là không theo một phần mềm
Trang 20nhất định Mặc khác, với mỗi trình soạn thảo văn bản có một chuẩn lưu trữ khácnhau vì vậy sẽ gặp rất nhiều khó khăn trong việc hợp nhất các văn bản được tạo ra từnhiều ứng dụng khác nhau.
1.1.5 Biểu diễn công thức toán học t ên máy tính
Ký hiệu toán học là một loại văn bản định dạng đặc biệt Nó dựa trên các bảngchữ cái khác nhau (tiếng Hy Lạp, tiếng Do Thái,…), các quy tắc và các bit của kýhiệu Để biểu diễn các ký hiệu này phải dựa vào các chuẩn trong văn bản, các phôngchữ được cài đặt sẵn
Trong quá trình soạn thảo công thức toán học trong văn bản, các ký tự toán học
mà chúng ta nhìn thấy đó chỉ là hình ảnh của công thức Vậy thật sự các công thứcnày lưu trong văn bản ở dạng mã như thế nào và mỗi trình soạn thảo văn bản thìdạng thức lưu có khác nhau không Ở đây chúng ta chỉ tìm hiểu ở ba loại văn bảnthường sử dụng nhất
1.1.5.1 Biểu diễn công thức toán học trên Microsoft Word
Ví dụ trong Microsoft word 2003, để hiển thị công thức 3 x , soạn thảo bằng
phương trình Editor thì phải sử dụng đoạn mã sau:
{ EQ \r(3,x) }
Trang 21Hoặc 2 được biểu diễn bằng đoạn mã sau:
5
{ EQ \f(2,5) }
Equation Editor (Soạn thảo phương trình) là một trình soạn thảo công thứcphát triển bởi Design Science Cho phép người dùng xây dựng các phương trìnhtoán học và khoa học trong một môi trường WYSIWYG (What You See Is WhatYou Get), được tích hợp trong tất cả các phiên bản Microsoft Office và nhiều ứngdụng thương mại khác Equation có thể được sử dụng như là một chương trình độclập hoặc nó cũng có thể được sử dụng từ bên trong ứng dụng hỗ trợ OLE như mộtđối tượng nhúng
Trang 22Giống như những phiên bản trước, Microsoft Word chứa chuẩn định dạng dữliệu nhị phân Nhưng hiện nay chuẩn Office Open XML (OOXML) hay làopenXML được phát triển bởi Microsoft, hỗ trợ định dạng văn bản được đề xuất sửdụng các phiên bản mới từ năm 2006 Microsoft Office 2003 có thể cập nhật kiểuđịnh dạng văn bản này và phiên bản mới chẳng những hỗ trợ OOXML mà còn hỗtrợ chuẩn Open Document Format (ODF).
1.1.5.2 Biểu diễn công thức toán học trên WebSite
Các ngôn ngữ và các định dạng khác nhau tạo nên các trang web hiện đại(HTML, XHTML, CSS, …) đáp ứng hầu hết các mục đích, nhưng có một vấn đềkhó khăn là trong việc trình bày phương trình toán học và sơ đồ Do đó các côngthức toán học được tạo là sự nhúng hỉnh ảnh vào HTML
Ví dụ sử dụng website của Casiovn chạy trên Firefox tại địa chỉhttp://www.casiovn.com/web/gotoanhoc.aspx, để tạo công thức toán học chúng taphải nhập vào đoạn mã của Latex tương ứng Sau đây là ví dụ minh hoạ:
Trang 231.1.5.3 Biểu diễn công thức toán học trên OpenOffice.Org
Đối với bộ OpenOffice.Org, việc tạo ra một công thức toán học trên trình soạnthảo là rất đơn giản thông qua OpenOffice.org Math Ta chỉ việc sử dụng bảng lựachọn các ký hiệu cần chèn và công thức tạo ra sẽ tương ứng với đoạn mã được sinh
ra Sau đây là ví dụ minh họa:
Trang 24Hoặc hiển thị công thức 3 x thì chúng ta có đoạn mã tương ứng sau:
nroot{3}{x}
Open Document Format (ODF) là chuẩn định dạng văn bản trênOpenOffice.org ODF đây là một chuẩn định dạng mở, miễn phí được hậu thuẫn bởi
2 tên tuổi rất lớn là IBM và Sun Microsystem
Năm 2006, định dạng văn bản mở Open Document Format (ODF) được Tổchức tiêu chuẩn quốc tế (ISO) thông qua Chuẩn này được thiết kế để đại diện chochức năng của sản phẩm OpenOffice.org, với tên ban đầu là “Open Office XMLFormat”, hỗ trợ cho cả OOXML và hỗ trợ luôn chuẩn công thức toán học cho việcsoạn thảo văn bản báo cáo khoa học
So sánh các phần mềm soạn thảo
- Chuẩn định dạng tập tin ở
dạng nhị phân-chuẩn độc
quyền của hãng Microsoft
Nhưng sau năm 2006 thì
Microsoft hỗ trợ thêm
chuẩn định dạng văn bản là
XML
- Mozilla Firefox tích hợp nhiều tiêu chuẩnweb, bao gồm HTML, XML, XHTML,… Đây
là phần mềm mã nguồn mở
- Chuẩn định dạng văn bản là chuẩn định dạng
mã nguồn mở ODF, đây
- Tổng công ty Oracle vànhiều tổ chức, cá nhânkhác
- Sở hữu độc quyền EULA
(End User License
Agreement – Thỏa thuận
giấy phép người sử dụng
- Được viết bằng C++, JavaScript,…
- Sử dụng ngôn ngữ C++, Java
Trang 25MS Word 2003 Firefox [19] OpenOffice.Org
cuối)
- Dùng soạn thảo và hiển thị
nội dung văn bản
1.1.6 Thực t ạng tìm kiếm công thức toán học
Hàng ngày, chúng ta thường sử dụng chức năng tìm kiếm tài liệu trong côngviệc, nhưng thực tế đó chỉ là tìm kiếm văn bản dưới dạng chuỗi Vậy tìm kiếm vănbản dưới dạng công thức thì sao? Đây là một vấn đề mà chúng ta ít quan tâm nhưngrất quan trọng
Công thức được định dạng như một tập tin hình ảnh Vì lý do đó, chúng takhông thể thực hiện quá trình tìm kiếm giống như tìm kiếm chuỗi trong văn bảnthông thường mà chúng ta thường sử dụng
Các trình ứng dụng soạn thảo văn bản thông dụng hiện nay chưa có công cụtrợ giúp cho việc tìm kiếm công thức toán học Trên Internet, Website LatexSearch
có hỗ trợ tìm kiếm các công thức toán học được soạn thảo bằng ngôn ngữ đánh dấuLatex Đây là bản quyền của MPS Technologies (Mathematical ProgrammingSystem) Nhưng những kết quả tìm thấy chỉ giới hạn trên những tài liệu điện tử trênmáy chủ SpringerLink
1.1.7 Các phần mềm hỗ t ợ soạn thảo công thức toán học
Hiện nay có rất nhiều phần mềm hỗ trợ soạn thảo công thức toán học trong đó
có cả phần mềm thương mại và phần mềm mã nguồn mở Chúng tôi giới thiệu ở đây
3 ứng dụng hỗ trợ cho quá trình nhập công thức toán học vào văn bản
1.1.7.1 Ứng dụng Microsoft Equation 3.0 trong bộ Office
Microsoft Equation là 1 ứng dụng trong bộ Office mà hãng Microsoft bán kèmtheo Microsoft Equation là công cụ dùng để tạo các biểu thức, đẳng thức toán học
Trang 26trong văn bản Trong cửa sổ soạn thảo Equation, công thức được chèn vào dưới dạng lựa chọn bằng bảng.
Hình 1 5 Cửa sổ soạn thảo của Equation
1.1.7.2 Phần mềm MathType
Mathtype là một phần mềm thương mại của Design Science cho phép tạo các
ký hiệu toán học để xứ lý văn bản như Microsoft word, OpenOffice, E-Learning, …Trong cửa sổ soạn thảo của Mathtype các công thức được tạo dưới dạng lựa chọnbằng bảng Với Mathtype, chúng ta có thể chuyển công thức sang các dạng chuẩn khác nhau như: Latex, MathML, …
Hình 1 6 Cửa sổ của MathType
1.1.7.3 Phần mềm MyEqText
Tiện ích Microsoft Equation 3.0 có sẵn trong MS Word, tuy dễ sử dụng nhưngrất mất thời gian, làm giảm tiến độ công việc cũng như gây khó chịu cho ngườidùng Nắm bắt được nhu cầu đó, MyEqText của Mỵ Duy Thọ [8][9] ra đời như một
Trang 27yêu cầu tất yếu, một phần mềm Việt cho người Việt Không như một số công cụ hỗtrợ soạn thảo công thức toán học khác, MyEqText được tích hợp ngay vào MS Wordnhư một thanh công cụ trong Word bạn hoàn toàn có thể soạn thảo trực tiếp ngaytrong Word.
Hình 1 7 Công cụ MyEqText soạn thảo trực tiếp trong cửa sổ Word
So sánh các công cụ soạn thảo
- Phần mềm thương mại -Phần mềm thương mại - Đang dùng thử
- Độc quyền của Microsoft - Sở hữu bởi Design
- Là một chương trìnhtạo các ký hiệu toán học trong Microsoft Office thay thế cho Equation của
Bảng 1 2 So sánh các công cụ soạn thảo
1.2.1 Ngôn ngữ đánh dấu LaTex
Trang 28Tex là một hệ thống sắp chữ được viết bởi Donald E.Knuth ở Đại học Stanfordvào năm 1977 Nó phổ biến trong môi trường hàn lâm , đặc biệt là trong cộng đồngtoán học , vật lí và khoa học máy tính Tex được xem là cách tốt nhất để gõ côngthức toán học phức tạp nhằm phục vụ nhu cầu soạn thảo các tài liệu toán học vớichất lượng bản in cao Với Tex, người sử dụng có thể tạo ra các ký hiệu khác màTex không có, điều này làm tăng sức mạnh của Tex so với các công cụ khác chỉdùng các ký hiệu đã có sẵn Tex như chúng ta thấy ngày nay được phát hành vàonăm 1982 cùng với một số nâng cấp được bổ sung vào năm 1989 để hỗ trợ tốt hơncho các ký tự 8 bit và đa ngôn ngữ Tex được cải tiến và trở nên ổn định, có thể chạytrên các hệ thống máy tính khác nhau và gần như không có lỗi [17].
Bắt đầu từ năm 1980, Leslie Lamport bắt đầu tạo ra hệ thống soạn thảo vănbản ngày nay gọi là LaTex dựa trên định dạng của Tex Hệ thống LaTex thêm vàonhững lệnh tổng quát cho Tex và hướng người dùng vào cấu trúc văn bản hơn làđịnh dạng chi tiết Một số lệnh bậc cao cho phép người dùng dễ dàng soạn ra hầu hếtcác loại tài liệu Người dùng LaTex và Tex càng ngày càng nhiều, để đáp ứng vớiđòi hỏi đó và ứng dụng các công nghệ thông tin hiện đại, từ năm 1989 có một dự ánxem xét lại LaTex và mở rộng nó MikTex là một phần mềm miễn phí chế bảnLaTex tốt nhất hiện nay [26] Mặc dù từ MikTex 2.8 có bổ sung thêm trình soạnthảo TexWorks để soạn thảo văn bản Tex nhưng quá đơn giản nên rất khó cho ngườimới học Tex
Với MS Word thì người soạn thảo có thể tương tác trực tiếp với văn bản đangsoạn thảo và họ thấy ngay kết quả định dạng tuy nhiên họ lại không thể đảm bảo sựthống nhất trong việc trình bày văn bản Latex khắc phục yếu điểm này bằng cáchyêu cầu người soạn thảo định nghĩa cấu trúc lô-gic của văn bản thông qua một loạtlệnh được cài lẫn trong văn bản Sau đó sẽ biên dịch tập tin văn bản dạng tex thànhtập tin pdf với cách trình bày tốt nhất Việc tạo ra tập tin PDF từ tập nguồn LaTex
đã trở nên rất dễ dàng nhờ vào công cụ chuyển đổi
Có nhiều lý do để sử dụng Latex
Trang 29- Hỗ trợ tối đa cho việc soạn thảo các tài liệu toán học hay rộng
hơn là các tài liệu kỹ thuật
- Chất lượng bản in bằng Latex rất cao.
- Có thể đọc được các tài liệu bằng Latex trên nền tảng nhiều hệ
điều hành khác nhau với các định dạng không thay đổi
- Cấu trúc và môi trường trong Latex rất sáng sủa, dễ hiểu và
người dùng có thể tạo ra những dòng lệnh cho riêng mình
- Được sử dụng phổ biến trong các tài liệu khoa học.
Bên cạnh những điểm mạnh trên thì LaTeX cũng có một số điểm yếunhư:
- Người soạn thảo phải học cách soạn thảo dựa trên các dòng lệnh.
Việc ghi nhớ đối với những người mới bắt đầu là khó khăn
- Việc thiết kế một kiểu trình bày mới mất nhiều thời gian.
- Biên soạn các tài liệu không có cấu trúc, hoặc cấu trúc lộn xộn rất
khó khăn
- Không hình dung ra hình dáng của tài liệu trước khi biên dịch.
- Phải chuyển sang một dạng tập tin khác để hiển thị vì vậy phải sử
dụng một công cụ để chuyển đổi
Hình 1 8 Quá trình soạn thảo bằng Latex
Biểu diễn toán học trên văn bản [11]
Tạo/Soạn
thảo
Xem/Inấn
B1Biêndịch
Vănbản
Tex
Vănbản
pdfB2
Trang 30Latex định nghĩa một chế độ đặc biệt để soạn thảo công thức toán học Cáccông thức này có thể được đưa vào ngay trong môi trường văn bản hay ta có thể táchrời chúng khỏi các đoạn văn bản Phần nội dung toán học trong đoạn văn bản có thểđược soạn thảo ở giữa dấu \(và \) hay $ và $ hay \begin{math} và \end{math}.
Ví dụ nội dung soạn thảo và hiển thị bằng Latex:
Cộng $a$ bình phương với $b$ bình phương được $c$ bình phương Ta
có thể viết dưới dạng công thức là: $c^{2} = a^{2}+b^{2}$
Cộng a bình phương với b bình phương được c bình phương Ta
có thể viết dưới dạng công thức là: c2
a2
b2
1.2.2 Ngôn ngữ đánh dấu AMS-Latex
AMS-LaTeX (American Mathematical Society–LaTex) được phát triển bởi
Hội Toán học Mỹ (AMS) Tên gọi AMS-LaTex có nghĩa là sử dụng Latex với phần
mở rộng AMS AMS-LaTex ban đầu được viết bởi Michael Spivak và gần như chỉphổ biến ở Mỹ
ASM-LaTex cũng là phần mềm biên dịch ra tập tin pdf giống như LaTex.Trong ASM-LaTex có 2 gói là: Amsmath – gói mở rộng cho Latex tạo thuận lợi choquá trình tạo công thức, nâng cao chất lượng in ấn và Amscls bao gồm lớp các tàiliệu và thuật toán hỗ trợ trong quá trình soạn thảo
Gói amsmath dành cho LaTex cung cấp nhiều tiện ích để typeset các tài liệutoán học phứt tạp [12][18] Với gói amsmath chúng ta có thể tìm thấy những giảipháp thường gặp khi soạn thảo LaTex Ví dụ như: Dễ dàng định nghĩa toán tử, hàmtoán học mới (tương tự như \sin, \cos); các toán tử mới sẽ tự động canh chỉnh kíchthước, kiểu phông, và khoảng cách tương quan với các phần tử khác trong biểu thức
Dễ dàng đánh số các phương trình con dạng (1.3a) (1.3b) (1.3c) từ một nhóm cácphương trình và việc đánh số này là tự động Ví dụ:
Trang 31
\end{subequations}
Hình 1 9 Gói Amsmath cung cấp môi trường subequations đánh số tự động
Biểu diễn toán học trên văn bản
Gói amsmath cung cấp thêm các môi trường biểu diễn phương trình sau đây, bên cạnh các môi trường chuẩn của LaTex: equation, align, split,…
Ví dụ nội dung soạn thảo và hiển thị bằng AMS-LaTex:
Trang 321
e2
Việc đưa các công thức toán học vào tài liệu HTML không được hỗ trợ Mặc
dù chúng ta đã có chuẩn để thực hiện điều này nhưng hầu hết các trình duyệt chưa
hỗ trợ hay thiếu các phông chữ cần thiết Tuy nhiên, ta nhìn thấy công thức biểudiễn không rõ ràng, rất khó khăn trong việc thể hiện ý nghĩa toán học
Trang 33Ví dụ soạn thảo và hiển thị trên Microsoft Office FrontPage 2003:
√ 1- e<sup>2</sup>
√ 1- e 2
Việc in ấn các tài liệu HTML thật đơn giản nhưng kết quả xuất ra lại phụ thuộcrất nhiều vào hệ điều hành và trình duyệt Điều này có nghĩa là các bản in của cùngmột tài liệu có thể trông rất khác nhau Bên cạnh đó, chất lượng của bản in sẽ kém
xa so với LaTex
Hiện nay, người ta đã có rất nhiều cố gắng để tạo ra các chương trình chuyển
từ tập tin LaTex sang tập tin HTML Trong số đó có một số chương trình thực hiệntương đối thành công việc tạo ra các trang web rõ ràng, dễ đọc từ một tài liệu đượcsoạn thảo bằng Latex như bản TeX4ht trong TeXLive2005 của VNTex là một ví dụ.Tuy nhiên, hầu hết các phần mềm đều không làm tốt vì chúng không thể giữ nguyênđịnh dạng ban đầu Đối với các tài liệu sử dụng các tính năng phức tạp của LaTex vàcác gói mở rộng thì các chương trình chuyển từ LaTex sang HTML không thể thựchiện tốt việc chuyển đổi Do đó, nếu chúng ta muốn đưa tài liệu của mình lên Webnhưng muốn giữ nguyên cách trình bày bản in với chất lượng cao đã lựa chọn PDF
- HTML giờ đây đã trở thành một chuẩn Internet
do tổ chức World WideWeb Consortium (W3C)
Trang 34LaTex AMS-Latex HTML
duy trì
- Đề xuất bởi Leslie
Lamport vào những năm
1980 Được sử dụng chủ
yếu ở Châu Âu
- AMS-TeX ban đầu đượcviết bởi Michael Spivak,
và được sử dụng vào những năm 1983 AMS- LaTex được sử dụng phổbiến ở Châu Mỹ
- World Wide Weblần đầu tiên được đề cập trên mạng Internet của Berners-Lee vào cuối năm 1991
- LaTex là phần mềm
miễn phí
- AMS- LaTex là phần mềm miễn phí
- HTML dựa trên chuẩn SGML (Standard
Generalized Markup Language), được phát triểncho việc định cấu trúc và nội dung tài liệu điện vàCSS
- Tạo ra bản in rất tốt - Tạo ra bản in tốt - Không đáp ứng bản in
đối với tài liệu khoa học
Bảng 1 3 So sánh các ngôn ngữ đánh dấu
Việc lập trang web cho mọi cá nhân, đặc biệt là cho mỗi giáo viên, ngày càngtrở nên bình thường và phổ biến Đặc biệt với những giáo viên các môn tự nhiên,vấn đề đặt ra là làm thế nào để biểu diễn công thức toán học trên trang Web? Trongkhi đó ngôn ngữ HTML nguyên thuỷ không đủ khả năng biểu diễn công thức toán,
Trang 35in ấn tài liệu khoa học Vì vậy, thực tiễn đặt ra yêu cầu phải có một ngôn ngữ đánh dấu có thể khắc phục nhược điểm trên.
Có rất nhiều ngôn ngữ đánh dấu giúp cho quá trình hiển thị công thức trên vănbản Nhưng chúng ta đều biết rằng, việc hiển thị công thức trên văn bản không phảichỉ đơn giản là hiển thị mà nó còn làm sáng rõ ý kiến và mục đích của công thứctrên đó Ví dụ như ngôn ngữ HTML, việc hiển thị công thức trên web rất mờ nhạt và
bị đứt khúc nên làm cho người dùng khó đọc và thể hiện hết đặc điểm quan trọngcủa công thức cần thể hiện
1.3.1 Lịch sử của MathML
MathML (Mathematical Markup Language - Ngôn ngữ Đánh dấu Toán học)[1][2][15] là một ứng dụng của XML để thể hiện ký hiệu và công thức toán học vớimục đích rộng là phương cách trao đổi thông tin toán học trên máy tính (để hiển thịcũng như để tính toán) và mục đích hẹp là hiển thị tài liệu toán học trên World WideWeb Nhóm toán học của W3C đề xuất mọi người nên dần sử dụng ngôn ngữ nàytrên mạng Phiên bản 1.01 được công bố vào tháng 7 năm 1999 và bản 2.0 xuất hiệnvào tháng 2 năm 2001 Tháng 10 năm 2003, bản chỉnh sửa lần thứ hai của phiên bản2.0 và 21 tháng 10 năm 2010 bản 3.0
Đối với hiển thị trên trang mạng, cấu trúc XML không ngắn gọn như TeX,nhưng có thể được dễ dàng sử dụng bởi các trình duyệt, cho phép hiển thị ngay lậptức công thức toán học một cách đẹp mắt, đồng thời truyền tải ý nghĩa toán học chocác phần mềm tính toán
1.3.2 Tính năng của MathML
MathML được hỗ trợ bởi các phần mềm văn phòng như Microsoft Word,OpenOffice.org cùng với các phần mềm tính toán kỹ thuật như Maple, Mathematica,
và MathCad trên các nền nhiều hệ điều hành khác nhau như Linux, Windows,…
1.3.3 Cách thức hiển thị của MathML
Ưu điểm
Trang 36- Không chỉ hiển thị tốt mà còn chứa ý nghĩa nội dung công thức
toán học
- Dễ dàng sử dụng trên các trình duyệt.
- Cho phép hiển thị ngay công thức một cách đẹp mắt.
- Truyền tải ý nghĩa toán học cho các phần mềm tính toán.
Nhược điểm
- Cấu trúc không ngắn gọn như Tex.
- Cần có công cụ soạn thảo thân thiện với người dùng.
Hiển thị trên browser
- Trong số các trình duyệt thân thiện như Mozilla Firefox, Amaya thì
hiển thị trực tiếp MathML
- Các trình duyệt khác cần phần mềm hỗ trợ như: các phiên bản
trước Internet Explore cài thêm MathPlayer, từ Internet Explore 6 càiJavaScript MathJax
1.3.4 Cấu t úc của MathML
Tất cả các ký hiệu toán học muốn thể hiện phải được đặt trong các cặp tab như
T T
1.2.3
T h ẻ
G i ả i t h í c h
Thẻ
hằng
số
Thẻ
ký
tựThẻ
tạo
số
mũ
trên
<
mn
>
<
/mn
>
<
mi
>
<
/mi
>
<
msup
>
<
/msup
>
Trang 3711 Text <mtext> </mtext> Thẻ nội dung văn bản
12 <mrow> </mrow> Thẻ biểu thức
13 <mtable> </mtable> Thẻ ma trận
14
<mtr> </mtr> Thẻ hàng trong một bảnghoặc ma trận
15 <mspace> </mspace> Thẻ khoảng trắng
16 <apply> </apply> Thẻ khai báo ứng dụng hàm
23 <root/
<degree> <ci type = ‘ integer’>n</ci> </degree> Thẻ dùng căn bậc cao thì viết
theo cú pháp và n là số cănbậc
25 <csymbol></csymbol> Thẻ định nghĩa hằng
Bảng 1 4 Một số thẻ đặc trưng của MathML
1.3.5 Tạo công thức toán học
Chúng ta soạn một tài liệu bằng ngôn ngữ đánh dấu MathML bằng cách dùng
một phần mềm soạn thảo hỗ trợ chuẩn MathML nhưng phải tuân thủ theo các tab
được quy định sẵn MathML cung cấp 2 cách thức trình bày ngôn ngữ đánh dấu toán
học Một là nhằm nhấn mạnh cách trình bày của công thức và hai là nhấn mạnh nội
dung của toán học
S ố
T T
1.2.3
G i ả i t h í c h
Thẻ
hằng
số
Thẻ
ký
tựThẻ
tạo
số
mũ
trên
<
mn
>
<
/mn
>
<
mi
>
<
/mi
>
<
msup
>
<
/msup
>
Trang 384
a c
Trang 40m r o w
>
<
m i
>
x
<
/ m i
>
<
m o
>
=
<
/ m o
>
<
m f r a c
>
<
m r o w
>
<
m r o w
>
<
m o
>
-<
/ m o
>
<
m i
>
B
<
/ m i
>
<
m s u p
>
<
m o
>
-<
/ m o
>
<
m i
>
b
<
/ m i
>
<
m n
>
2
<
/ m n
>
<
/ m r o w
>
<
/ m r o w
>
<
m r o w
>
<
m n
>
4
<
/ m n
>
<
m o
>
$ I n v i s i b l e T
i m e s
;
<
/ m o
>
<
m n
>
a
<
/ m n
>
<
m o
>
$ I n v i s i b l e T
i m e s
;
<
/ m o
>
<
m n
>
c
<
/ m n
>
<
/ m s u p
>
<
/ m r o w
>
<
/ m r o w
>
<
/ m f r a c
>
<
/ m r o w
>
Mô tả tính cấu trúc trong trình bày công thức