Upload
buicong
View
222
Download
3
Embed Size (px)
Citation preview
บทท 1
แรกเรมเรยนร X ETEX
1.1 บทนำโดยทวไปการผลตเอกสารดวยวธทางอเลกทรอนกส ประกอบไปดวย 4 ขนตอน คอ
1. การบนทกตวอกษร เครองหมาย และขอความทตองการ เขาไปในคอมพวเตอร โดยอาศยโปรแกรม "บรรณาธกรณขอความ" หรอ "เทกซเอดเตอร" (text editor)
2. การจดเรยงขอความทบนทกไวใหอยในรปแบบทตองการ (text formatting) หรอทรจกกนในวงการสงพมพวา "การเรยงพมพ" (typesetting) เชน การจดลำดบหวขอ การตดคำ การจดบรรทด การจดยอหนา และการกนหนากระดาษ เปนตน
3. การแสดงผลลพธของเอกสารทจดรปแบบแลวบนจอคอมพวเตอร
4. การพมพเอกสารทจดรปแบบแลวออกทางเครองพมพ
ปจจบนม "โปรแกรมประมวลผลคำ" หรอ "เวรดโปรเซสเซอร" (word processor) จำนวนมากมายในทองตลาด ทงทตองซอ และแจกฟรแบบ "เปดเผยรหสตนฉบบ" ทเรยกกนวา "โอเพนซอรส" (open sources) อาท โปรแกรมเวรด (Word) ในชดออฟฟส ของบรษทไมโครซอฟท (Mi-crosoft Corporation) โปรแกรมไรทเตอร (Writer) ในชดสตารออฟฟส (Star Office) 1 ของบรษท
1http://www.sun.com/software/staroffice/
1
2 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
ซน ไมโครซสเตมส (Sun Microsystems Inc.) รวมทง เวรดโปรเซสเซอรอนๆ ในชดออฟฟสสายพนธเดยวกน ทอยในตระกลออฟฟสแบบเปด อยางเชน OpenOffice.org 2 เปนตน นอกจากน ยงมเวรดโปรเซสเซอรแบบเปด สายพนธอนๆ ทนยมใชกนอกหลายตว อาท เคเวรด (KWord) ในชดเคออฟฟส (KOffice) ซงเปนออฟฟสแบบโอเพนซอรส สำหรบใชงานบน KDE 3 และ Abi-Word ซงรวมอยในชดออฟฟสของ GNOME 4 เปนตน
"เวรดโปรเซสเซอร" ทกลาวถงทงหมด สามารถผลตเอกสาร ในรปแบบอเลกทรอนกสตามกระบวนการ ทง 4 ขนตอน โดยใชโปรแกรม หรอฟงกชนยอยตางๆ ทผนกรวมกนอยในชดโปรแกรมเดยวกน ตงแตการบนทกขอความ การจดรปแบบ การแสดงผลบนจอ เปลยนฟอนตกนหนา ตดรปประกอบ สรางตาราง ฯลฯ ตลอดจนการพมพเอกสารออกทางเครองพมพ ซงมผลใหบอยครงผใชงานทวไป ไมมโอกาสไดทราบถงขนตอนพนฐานทซอนอยเบองหลง และอาจเขาใจผดวา การใชโปรแกรม ประเภทเวรดโปรเซสเซอร เปนเพยงวธการเดยวทใชในการสรางเอกสารอเลกทรอนกส ทงทสามารถกระทำไดโดยวธการอนๆ ทแมจะยงยากกวา แตกอาจมประสทธภาพมากกวา
TEX (อานวา "เทค" แบบ "tech") เปน "โปรแกรมเรยงพมพ" (typesetting) ทแตกตางจากโปรแกรมประเภท "เวรดโปรเซสเซอร" ทรจกกนทวไป เนองจาก TEX มงสนใจอยเพยงขนตอนท 2 ของกระบวนการผลตเอกสารอเลกทรอนกส ซงเกยวของกบการจดรปแบบขอความ ใหเปนไปตามทผใชตองการ โดยไมสนใจวาผใชจะบนทกขอความดวยวธการใด หรอโดยโปรแกรมใดผใชสามารถบนทกขอความโดย "โปรแกรมบนทกขอความ" หรอ "เทกซเอดเตอร" (text editor5)ใดๆ กได อาท โปรแกรม Notepad บนไมโครซอฟทวนโดวส (Microsoft Windows) หรอ GNUEmacs บนระบบยนกซ (UNIX) บนทกขอความทตองการโดยกำกบขอความสวนตางๆ ไวดวย"คำสงจดรปแบบ" (TEX commands) ตามขอกำหนดของ TEX จากนน บนทกเกบไว (save) เปน
2http://www.openoffice.org3KDE เปน GUI (graphics user interface) หรอ เดสกทอปเอนไวรอนเมนต (desktop environment) ตวหนง
สำหรบเอกซวนโดว (X Window) บนระบบปฏบตการยนกซ (UNIX)4http://www.abisource.com5ราชบณฑตยสถานบญญตศพทไววา "บรรณาธกรณขอความ" ซงไมเปนทนยมใชนก ในทนผเขยนจงขอใชคำทบ
ศพทวา "เทกซเอดเตอร"
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 3
ไฟลตนฉบบ (source file) ทมนามสกล ".tex" เมอนำไฟลตนฉบบนไปประมวลผล (compile)ดวยคำสงของ TEX กจะไดไฟลผลลพธในรปแบบทตองการ (ในเบองตน ผลลพธจากการประมวลผลไฟล .tex ดวย TEX จะไดไฟลชนด .dvi ซงยอมาจาก "device independent" หมายถงไมยดตดกบอปกรณ)
การดผลลพธการเรยงพมพดวย TEX (ไฟลจะมนามสกล .dvi) บนจอคอมพวเตอร และการพมพออกทางเครองพมพ หรอแปลงไฟลผลลพธใหกลายเปนรปแบบอนๆ อาท ไฟลตระกล"โพสสครปต" (Postscript) มนามสกล .ps และ PDF (Portable Document Format) มนามสกล.pdf ของบรษท Adobe Systems สามารถใชโปรแกรมอนๆ ทอาจไมไดเปนสวนหนงในชดแพคเกจของ TEX เปนตวทำงาน อาท ใชโปรแกรม YAP เปดดไฟล .dvi (ดงแสดงในรป 1.1) และแปลงไฟล .dvi ใหเปนไฟลชนด .pdf ดวยโปรแกรมชอ "dvi2ps" เปนตน รายละเอยดของวธการทำ จะกลาวถงในโอกาสตอไป
อนง ควรทราบวาโปรแกรม "เวรดโปรเซสเซอร" อยางเชนไมโครซอฟทเวรด หรอโปรแกรมอนๆ ในลกษณะเดยวกน จดอยในกลมโปรแกรมประยกตทมลกษณะแบบ WYSIWYG ซงยอมาจาก "What You See Is What You Get" หมายความวา "เหนบนจออยางไรกจะสามารถพมพออกมาไดอยางนน" แมจะดเหมอนวาขอความทผใชเหน และพมพผานแปนพมพ หรอคยบอรดเขาไป จะเปนสงเดยวกบทคอมพวเตอรไดบนทกเกบไว แตในความเปนจรง ไฟลขอมลในลกษณะน มไดเกบบนทกไวแตเพยงสงทผใชพมพเขาไป แตจะมการเกบขอมลหรออกขระอนๆ ทผใชไมทราบ (unseen characters) ไวในตวไฟลดวย อาท ขอมลการใชฟอนต การกนหนา การจดยอหนาขนาดกระดาษ ฯลฯ ไฟลลกษณะนมใชไฟลชนดขอความหรอ "เทกซไฟล" (text file) แมผใชจะพยายามพมพแตเพยงขอความทตองการกตาม หากผใชคดจะนำโปรแกรมประมวลผลคำ มาเปนเอดเตอรสำหรบสรางไฟลตนฉบบใหกบ TEX กอาจเกดปญหาได ควรระมดระวง
เมอไดศกษาการเขยนเอกสารวชาการดวย TEX ไปสกระยะหนง ผทเคยใชงาน HTML(Hyper Text Markup Language) สำหรบเขยนเวบ (web) อาจรสกวาการเขยนไฟลตนฉบบ (.tex)ใหกบ TEX มลกษณะคลายการเขยนไฟลตนฉบบ HTML กลาวคอ มการเขยนขอความทตองการกำกบควบคไปดวยคำสงจดรปแบบตางๆ ปะปนกนไป
4 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
รปท 1.1: โปรแกรม YAP สำหรบเปดไฟล .dvi
ในมมมองของนกพฒนาโปรแกรม อาจเหนวา TEX เปนอกภาษาหนงสำหรบการเขยนโปรแกรม (programming language) เนองจาก หากไดเรยนรเบองลกของ TEX แลวผใชงานกยงสามารถพฒนาสวนขยาย (extension) เพอเพมเตมความสามารถของ TEX ใหเปนไปตามทผใชงานตองการไดอกดวย
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 5
1.2 รจกกบ TEX และ LATEXTEX เปนโปรแกรม "เรยงพมพ" (typesetting) สำหรบการจดทำเอกสาร โดยเฉพาะเอกสารวชาการดานวทยาศาสตรและวศวกรรม ทมคณภาพสง พฒนาขนโดยศาสตราจารย โดนลด อ นธ (DonaldE. Knuth) แหงมหาวทยาลยสแตนฟอรด (Stanford University) 6
รปท 1.2: เวบไซตของ TEX User Group (TUG)
ชอเรยก TEX ไดมาจากอกษร "ภาษากรก" จำนวน 3 ตว ซงมกถกนำมาใชในการเขยนสมการคณตศาสตร 3 ตว คอ τϵχ เวลาอานแบบกรกจงออกเสยงวา "เทค" โดยไมมเสยง "ซ.โซ"
6http://www-cs-staff.standford.edu/˜knuth
6 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
อยทายพยางค ชอทถกสรางจากอกษรคณตศาสตรดงกลาวนยงมนยแอบแฝงวา TEX ถกพฒนาขน เพอใชสำหรบการเขยนเอกสารวชาการ ทเกยวของกบ "คณตศาสตร" โดยเฉพาะ มเครองมอตลอดจนวธการ สำหรบการเขยนสมการคณตศาสตรผนกเปนสวนหนงของตวโปรแกรม ซงแตกตางจากโปรแกรม "เวรดโปรเซสเซอร" อนๆ ทเพยงแตเพมเตมฟงกชน หรอสวนขยาย สำหรบการเขยนสมการคณตศาสตรเขาไป (add on) แตไมใชสวนประกอบการทำงานหลก นอกจากนผสราง TEX ยงไดพฒนาโปรแกรม METAFONT สำหรบใหผใชงานสรางฟอนตไวใชเพมเตมจากชดฟอนตมาตรฐานของ TEX ทมอย 75 ฟอนตอกดวย
นบตง TEX ไดถกเผยแพรออกมาในชวงป ค.ศ.1980 กลมผนยมใชงาน TEX กไดรวมตวกนจดตงสมาคมผใชงาน TEX โดยมชอเรยกเปนภาษาองกฤษวา "TEX User Group" 7 หรอ"TUG" (ดภาพประกอบ 1.2) ทำหนาทเผยแพรขอมล ขาวสาร เกยวกบเทคนคการใชงาน ตลอดจนรวบรวมซอฟทแวร ทเกยวของกบ TEX ทงหมด และยงมการออกวารสาร "TUGboat" ราย 4เดอน (3 ครงตอป) ผสนใจกสามารถสมครเปนสมาชก เพอบอกรบวารสารดงกลาวได
TEX สามารถสราง และแสดงสมการคณตศาสตรไดโดดเดน สวยงาม โดยไมมความซบซอนในการเขยนนก จงเปนทนยม ในหมนกวชาการ ทตองใชคณตศาสตร ในการอธบายตวแบบการศกษา อาท นกคณตศาสตร ฟสกส วศวกร ฯลฯ สงเกตรปแบบสมการ และรปตวอยาง 1.3ซงวาดดวยการเขยนคำสงของ TEX โดยไมไดใชโปรแกรมชวยวาดอนๆ ในตวอยางตอไปน
E(X) =
∞∫−∞
x · 1√2π
· e−x2/2dx
=
0∫−∞
x · 1√2π
· e−x2/2dx +
∞∫0
x · 1√2π
· e−x2/2dx
= −∞∫
0
x · 1√2π
· e−x2/2dx +
∞∫0
x · 1√2π
· e−x2/2dx = 0
7http://www.tug.org
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 7
-
6
����
����
����
���������
������������
���������������
``````````````
HHHHHHHHHHHH
@@@@@@@@@
AAAAAAAAAAAA
DDDDDDDDDDDDDDD
DDDDDDDDDDDDDDD
AAAAAAAAAAAA
@@@@@@@@@
HHHHHHHHHHHH
``````````````
���������������
������������
���������
������
����
��
o x
y
รปท 1.3: ตวอยางการวาดภาพประกอบดวย TEX
1.2.1 TEXTEX พนฐาน (basic TEX program) เปนโปรแกรมทถกออกแบบใหใชงาน "คำสงระดบลาง" (prim-itive commands) ซงทำหนาทในการเรยงพมพเอกสาร โดยเปดโอกาสใหผใชงาน สามารถสรางคำสงเฉพาะในระดบบนของตนเองไดโดยอสระ คำสงเฉพาะทสรางขนเหลาน จะทำหนาทเรยกใชงานคำสงระดบลางของ TEX อกทอดหนง มผลทำใหผใชงานสามารถสรางคำสงใหมไดหลากหลายทำใหสะดวกในการใชงานเฉพาะบคคลได
8 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
เมอผใชสงให TEX ทำการประมวลผล (compile) โปรแกรม TEX จะเรมตนการทำงานโดยอาน "ไฟลจดรปแบบ" (format file) เขามาในระบบ เพอเตรยมการประมวลไฟลตนฉบบ ไฟลจดรปแบบดงกลาวนจะเปนทรวมของนยาม (definitions) ตางๆ ของคำสงระดบสง (ซงเรยกใชคำสงระดบลาง ดงทกลาวแลว) รวมไปถงรปแบบการแบงคำดวยยตภงค (hyphenation patterns)สำหรบคำเฉพาะอนๆ ทผใชกำหนดขน หลงจากนน TEX จงจะอานไฟลเอกสารทผใชสรางขนเขามาทำการประมวลผล
การสราง "ไฟลจดรปแบบ" เปนงานทซบซอน มลกษณะคลายการเขยนโปรแกรม จงเหมาะสำหรบผใชทมความชำนาญในดานการพฒนาโปรแกรมสง ไฟลจดรปแบบทเตรยมขนจะถกประมวลดวยโปรแกรมพเศษในชดแพคเกจของ TEX ทมชอเรยกวา "initex" ซงจะไดผลลพธ เปนไฟลจดรปแบบสำหรบใหโปรแกรม TEX เรยกเขามาใชงานในขณะประมวลผลเอกสาร อยางไรกดโดยทวไปผใชงานระดบเบองตน คงไมมความจำเปนทจะตองสรางไฟลจดรปแบบขนเอง เนองจากสามารถตดตงไฟลจดรปแบบทมนกพฒนาอนๆ สรางไวใหใชแลว ซงมอยจำนวนมาก
สำหรบชดแพคเกจมาตรฐานของโปรแกรม TEX นนศาสตราจารยนธ ไดเตรยมไฟลจดรปแบบพนฐานไวใหดวย มชอเรยกวา "Plain TEX" ซงมกทำใหผใชบางคนเขาใจผดคดวา การจดรปแบบเอกสารทโปรแกรม TEX พนฐานทำไดนเปนสวนประกอบหลกของโปรแกรม TEX แตในความจรงเปนเพยงสวนของไฟลจดรปแบบทถกสรางขน เพอเสรมการทำงานของโปรแกรม TEXพนฐานเทานน ในลกษณะดงกลาวนจงอาจกลาวไดวา Plain TEX เปนสวนประกอบอกอยางหนงทไฟลจดรปแบบตวอนๆ ใชเปนฐานในการกำหนดรปแบบเพมเตมตอไป
นบตง TEX รนแรกๆ ถกเผยแพรออกมา การไลเรยงลำดบ "เวอรชน" หรอ "รน" ของTEX ทถกปรบปรงแกไข มความพเศษทควรกลาวถงสกเลกนอย ศาสตราจารยนธ ไดกำหนดใหใชความละเอยด ของทศนยม ของจำนวนอตรรกยะ "พาย" (pi) หรอ "π" เปนตวบอกรนของ TEXยงตวเลขทศนยมยาวขนๆ กจะแสดงวาเปน TEX รนทใหมกวา TEX รนปจจบนทใชกน คอ รน3.1415926
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 9
1.2.2 LATEX และ LATEX2εแมวา TEX จะมความสามารถในการเรยงพมพเอกสารทมคณภาพของผลงานสงมาก แตการใชงานกยงจดไดวายงยาก และเหมาะสำหรบผใชงานทมทกษะดานการเขยนสครปตสง เนองจากลกษณะของคำสง อยในระดบการเขยนโปรแกรมระดบตำ (low level command) ดวยเหตนราวป ค.ศ.1985 นกพฒนาชาวอเมรกนชอ "เลสล แลมพอรต" (Leslie Lamport) จงไดสรางไฟลจดรปแบบชอ LATEX ขนเพอชวยใหผใชงานทวไป ทอาจไมมทกษะการเขยนโปรแกรมสงนก สามารถเรยนรและผลตเอกสารวชาการดวย TEX ไดอยางงายดาย ภายในระยะเวลาอนสน
LATEX แตกตางไปจากโปรแกรม TEX ดงเดม คอมลกษณะเหมอน "ภาษาทำเครองหมาย"(markup language) ทผใชพมพคำสงตางๆ ของ LATEX แทรกไปตามสวนตางๆ ของตวขอความเนอหาสาระภายในเอกสาร คลายการเขยนแทกคำสงของภาษา HTML สำหรบการสรางเอกสารเพอเผยแพรบนเครอขายอนเทอรเนต ดตวอยางการเขยนรหสตนฉบบของ LATEX ในรป 1.4
LATEX ไดเพมความสามารถใหกบ TEX พนฐานอยางมากมาย โดยเฉพาะในดานการจดรปแบบเอกสารโดยอตโนมต อาท การแบงบท ตอน การสรางสารบญ การอางองตำแหนงตางๆการเรยงลำดบหวขอ การเรยงลำดบสมการคณตศาสตร การเรยงลำดบเอกสารอางอง การแทรกรปภาพประกอบ ฯลฯ โดยผใชงานไมจำเปนทจะตองเขาใจถงกลไกการทำงานของ TEX ทอยเบองหลง ดวยเหตนจงนบไดวา LATEX เปนกญแจสำคญทชวยใหมการใชงาน TEX ในการผลตเอกสารทางวชาการ แพรหลายมากขน
LATEX ถกพฒนาขนในชวงกลางทศวรรษท 1980 มพฒนาการทตอเนอง โดยโปรแกรมรนสดทายใชรหสรน 2.09 ทงนการแกไขปรบปรงในรนถดๆ มาจะกำกบดวยวนทๆ มการปรบปรงแตไมมการแกไขหมายเลขรนของโปรแกรมอกตอไป การปรบปรง LATEX ขนานใหญ เกดขนเมอวนท 1 ธนวาคม ค.ศ.1991 และมการปรบแกรายละเอยดปลกยอยอนๆ อกเรอยมา จนกระทงวนท 25 มนาคม ค.ศ.1992 กถอเปนจดสนสดของการพฒนา LATEX ตระกลแรก
ความแพรหลาย และเปนทนยมของ LATEX ในหมนกวชาการ ตลอดจนมการนำเอา LATEX
10 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
รปท 1.4: ตวอยางการเขยนรหสตนฉบบดวย LATEX
ไปประยกตใชในงานอนๆ ทอยนอกเหนอความตงใจ ของผพฒนาเมอแรกเรม ประกอบกบ การถอกำเนดของเทคโนโลยเครองพมพเลเซอร ทมคณภาพสง แตราคาตำลงๆ ทำให มการพฒนาแพคเกจ และผลตภณฑตางๆ ทอางวาทำงานรวมกนไดกบ LATEX มวกนไปหมด ในทสด ความคดทจะสะสางมาตรฐานของ LATEX ฉบบตนตำรบ (genuine) จงเกดขน ภายใตชอโครงการ LATEX3ในป ค.ศ. 1989 โดยม เลสล แลมพอรต (Leslie Lamport) แฟรงค มตเทลบค (Frank Mittel-bach) ครส โรวล (Chris Rowley) และ เรนเนอร เชปฟ (Rainer Schopf) เปนแกนนำ เปาหมายของพวกเขา อยทการรวบรวม และปรบปรงชดคำสงพนฐาน (basic commands) ของ LATEX ทได
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 11
รปท 1.5: เวบไซตของ LATEX
จากแพคเกจตางๆ ทมผประดษฐขนอยางกระจดกระจาย มการแกไข และปรบปรง ใหแพคเกจเหลานน ทำงานรวมกนได อยางมประสทธภาพมากยงขน
อยางไรกด ดวยความทโครงการน จดเปนโครงการระยะยาว ทอาจไมสามารถทำใหเสรจสนได ภายในระยะเวลาอนสน ชวงกลางป ค.ศ.1994 พวกเขาจงไดเผยแพร LATEX มาตรฐานใหมตวแรก พรอมกบคมอพนฐาน ฉบบปรบปรงครงท 2 ของ เลสล แลมพอรต ออกสสาธารณะ ดวยชอ LATEX2ε อนเปน LATEX รนทกำลงใชงานแพรหลาย อยในปจจบน อยางไรกด เปนธรรมชาตของโปรแกรมคอมพวเตอร ทตองมขอผดพลาดในการทำงาน ทเรานยมเรยกกนวา "บก" (bug) ท
12 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
ตรวจพบในภายหลง ชดปรบปรง (update) หรอแกบกของ LATEX2ε ถกเผยแพรออกมาประมาณปละ 2 ครง ในชวงเดอนมถนายน และเดอนธนวาคม แตเนองจาก ความท LATEX2ε คอนขางจะเสถยร นบตงแตป ค.ศ.2000 เปนตนมา ชดปรบปรงของ LATEX2ε จงถกเผยแพรเพยงปละ 1ครง LATEX2ε ตวลาสดทใชกนในปจจบนเผยแพรออกมาเมอวนท 1 ธนวาคม ค.ศ. 2005
1.3 การทำงานของ TEX และ LATEXเพอใหผอานทยงไมเคยมประสบการณตรงกบการใชงาน TEX หรอ LATEX มากอน โดยเฉพาะกบการใชงานภาษาไทย สามารถมองเหนขนตอนการทำงานของ TEX และ LATEX ซงเคยเปนเรองยงยากมานานหลายป จนทำใหหลายคนหมดความอดทน และหนไปใชงาน "เวรดโปรเซสเซอร"อน ในหวขอนจะแสดงใหเหนกระบวนการโดยรวม ของวธการใชงาน ตงแตการเตรยม "ไฟลรหสตนฉบบ" หรอ "ซอรส" (source) ตลอดไปจนถงการแปลงผลลพธใหเปนไฟลชนดตางๆ ซงแสดงในภาพ 1.6
PostScript
TEXAL
DVIPDF
TEX
latex
tex
dvipdfm
dvi2ps
pdf2ps
ps2pdf
pdftex
pdflatex
รปท 1.6: ขนตอนการใชงาน TEX หรอ LATEX
ขนตอนเรมตนทการเขยนไฟลรหสตนฉบบ ดวยเทกซเอดเตอรใดกได ตามไวยากรณของTEX หรอ LATEX บนทกเกบไฟลไวดวยนามสกล .tex จากนน ทำการประมวลผลไฟลรหสตนฉบบดวยโปรแกรม TEX หรอ LATEX ซงจะไดผลลพธเปนไฟลชนด .dvi ไฟลชนดนสามารถเปดดได
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 13
ดวยโปรแกรม "DVI viewer" ซงมใหเลอกหลายตว อาท โปรแกรม "Yap" ทมาพรอมกบ MiKTEXสำหรบวนโดวส หรอ "Xdvi" ทอยบนระบบปฏบตการยนกซ เปนตน หลงจากตรวจสอบผลลพธเบองตน (ในทน หมายถงไฟลชนด .dvi) จนเปนทพอใจแลว ผใชสามารถแปลงไฟลชนด .dvi ใหเปนไฟลชนดโพสสครปต ดวยโปรแกรม "dvi2ps" ซงจะไดไฟลผลลพธเปนชนด .ps ไฟลชนดนสามารถเปดดไดดวยโปรแกรม "PostScript viewer" ซงกมใหเลอกใชหลายตว อาท GSView บนวนโดวส ซงเปนโปรแกรมทสามารถดาวนโหลดมาใชงานไดฟร เปนตน ไฟลชนด .ps นสามารถถกแปลงเปนไฟลชนด PDF ซงเปนทนยมแพรหลายกวา ดวยโปรแกรม "ps2pdf"
นอกเหนอไปจากกระบวนการทกลาวน ยงมผพฒนาโปรแกรม "pdftex" และ "pdflatex"ทชวยยนระยะเวลาการทำงาน โดยสามารถประมวลผลไฟล .tex ใหกลายเปน .pdf ไดในขนตอนเดยว
สำหรบการใชงานภาษาไทย ซงอยในโครงการ ThaiLATEX จะมขนตอนเพมอกเลกนอยในชวงกอนทจะประมวลผลไฟล .tex ใหเปน .dvi กลาวคอ ผใชจะเรมตนเขยนไฟลรหสตนฉบบตามไวยากรณของ LATEX บนทกเกบไวเปนไฟลทมนามสกล .ttx จากนนจะทำการตดคำภาษาไทยดวยโปรแกรม "swath" หรอ "cttex" เกบไฟลผลลพธเปนไฟลทมนามสกล .tex จากนนจงนำไปประมวลผล ใหเปนไฟล .dvi หรอ .pdf ตามกระบวนการทกลาวมาแลว
1.4 สงโต CTAN (CTAN lion)มเกรดทควรทราบอกเลกนอยเกยวกบ LATEX คอ สตวทใชเปนสญลกษณ หรอ "มาสคอต" (mas-cot) ของ LATEX คอ "สงโต 8" ซงเปนภาพลายเสน วาดโดยนกวาดการตน "ดแอน บบบ" (DuaneBibby) 9 เพอใชเปนภาพประกอบ ในหนงสอ "TEXBook" ตนตำรบของศาสตราจารยนธ หนงสอLATEX Book ของเลสล แลมพอรต ตลอดจนหนงสออนๆ อกหลายเลม ทเกยวของกบ TEX และLATEX และทำให รปวาดสงโตตวน กลายเปนสตวสญลกษณประจำตวของ LATEX ในทสด
8ศกษาขอมลเพมเตมเกยวกบสงโตตวน ไดท http://www.ctan.org/lion.html9http://www.tug.org/interviews/interview-files/duane-bibby.html
14 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
รปท 1.7: CTAN lion
1.5 กำเนด X ETEXแมวา LATEX จะเปนโปรแกรมทมความสามารถโดดเดนมาก โดยเฉพาะ ในแวดวงนกเรยนระดบบณฑตศกษา อาจารย ตลอดจนนกวชาการทอยใน สาขาวทยาศาสตรและวศวกรรม โดยเฉพาะในตางประเทศ หลายสถาบนการศกษาใช LATEX เปนเครองมอหลกสำหรบการเขยนเอกสารทางวชาการ ไมวาจะเปน บทความสำหรบประชมวชาการ วารสาร วทยานพนธ รายงานวจย ตลอดจนตำราเรยนตางๆ
ขอดทเหนไดชด คอ เมอฝกใชงาน LATEX จนชำนาญแลว ผใชงานไมจำเปนตองพะวงเกยวกบรายละเอยดปลกยอยของการเตรยมรปแบบของเอกสาร เชน การทำหนาปก สารบญเลขหนา สารบญตาราง สารบญรปภาพ รายการอางอง ตลอดจนดชนทายเลม เนองจาก LATEX มกลไกทสามารถอำนวยความสะดวกในสงเหลานไดด แตกมขอจำกดทสรางความลำบากใหกบ ผทสนใจจะนำ LATEX ไปใชงานในภาษาทองถนของตน ซงหมายรวมถงภาษาไทยดวย กลาวคอ การพฒนาโปรแกรม TEX และ LATEX เรมตนจากการออกแบบใหเหมาะสมกบการใชงานเขยนเอกสารวชาการในภาษาองกฤษ ซงคำศพทตางๆ แยกออกจากกนดวยชองวางระหวางคำ ในขณะทภาษา
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 15
ตางประเทศ ทไมใชภาษาองกฤษ หลายภาษาไมไดมลกษณะเชนนน อยางเชน ภาษาไทย การจะนำ LATEX ไปใชงานในภาษาอนๆ ทไมใชภาษาองกฤษ จำเปนทจะตองพฒนาสวนตอขยายเพม โดยเฉพาะในเรองฟอนท การวางตำแหนงตวอกษร ผอานควรสงเกตวา ในภาษาองกฤษ ตวอกษรทกตวพมพบนบรรทด ในระดบเดยวกน ในขณะทภาษาไทย มการใชสระ และวรรณยกต ซอนกนถง 4 ระดบ (ตวสระใตบรรทด พยญชนะ สระเหนอพยญชนะ และวรรณยกต) นอกจากนยงตองพฒนากลไกการตดคำ เวนวรรค แบงชองวาง สำหรบขนบรรทดใหม ใหถกตองดวย
สำหรบภาษาไทย ไดมอาสาสมครพฒนาระบบภาษาไทยใหกบ LATEX โดยใชชอโครงการวา ThaiLATEX 10 อาสาสมครบางสวนเปนนกวจยของ NECTEC และบางสวน (ในชวงทถกพฒนา)กเปนนกศกษาไทยในตางประเทศ
ในชวงตนๆ ขณะท TEX และ LATEX ยงคงใชไฟล "รหสตนฉบบ" หรอ "ซอรสไฟล"ทเขารหสเปนแบบ "แอสก" (ASCII) หรอ ANSI ในการประมวลผล การพฒนาสวนตอขยายสำหรบภาษาตางชาต ทไมใชภาษาองกฤษ ตองกระทำผาน "แพคเกจจดการภาษา" ทมชอวา "ba-bel" และจะตองมการตระเตรยมฟอนทสำหรบใชกบ TEX และ LATEX เปนพเศษ เนองจาก TEXและ LATEX ไมสามารถเรยกใชงานฟอนททตดตงอยในระบบปฏบตการ (OS) โดยตรงได ในขณะทฟอนทภาษาไทยทมใชกนสวนใหญในตลาด เปนฟอนทชนด "ทรไทป" (TrueType) ทำใหตวเลอกฟอนทภาษาไทย ทสามารถใชงานกบ TEX และ LATEX ไดในขณะนนมอยจำกด
"เครดต" ของความอตสาหะของอาสาสมครชาวไทยในยคแรกๆ ททำใหเกด LATEX ภาษาไทย หรอ "ThaiLATEX" จงตองถกยกใหกบ ระบบภาษาไทยสำหรบ "babel" ในยคแรกๆ ซงถกพฒนาโดย "คณสรพนธ เมฆนาวน" และ ฟอนทภาษาไทยของ "คณวรช ศรเลศลำวาณช" และ"ยานนส ฮาราลมบส" (Yannis Haralambous) ในระยะแรกๆ น จำนวนแบบของฟอนท ทสามารถใชงานบน LATEX ภาษาไทยไดมจำกด และโดยทวไปหากผใชไมยอมออกแรง เซตระบบดวยตวเองเปนพเศษ ฟอนททวไปทตดตงอยบนระบบปฏบตการวนโดวส กไมสามารถใชงานรวมกบ LATEXภาษาไทยได
10http://linux.thai.net/projects/thailatex
16 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
ผอานควรทราบวา ลกษณะเฉพาะอยางหนงของภาษาไทย ซงกลายเปนอปสรรค ในการพฒนาสวนตอขยาย คอการทถอยคำตางๆ ถกเรยงรอยตดตอกนเปนประโยค โดยไมมชองวางตดแบงคำออกจากกน คงมเฉพาะชองวาง สำหรบแบงประโยคออกเปนวรรค และการขนยอหนาใหมซงแตกตางโดยสนเชง กบภาษาองกฤษทเปนตนกำเนดของ TEX และ LATEX ในภาษาองกฤษ คำศพทแตละคำ ถกแยกออกจากกนโดยชองวาง ทำใหการตดคำ ตลอดจนการใสเครองหมายยตภงค(hyphen) สำหรบแบงคำเพอขนบรรทดใหม สามารถทำไดสะดวกกวาภาษาไทย
การใชงาน LATEX ภาษาไทย ผใชงานจำเปนตอง "ตดคำ" ดวยตวเอง โดยอาศย "โปรแกรมตดคำ" ทอยนอกเหนอจากแพคเกจหลกของ LATEX
โปรแกรมตดคำทนยมใชกน คอ "swath 11" พฒนาโดย "คณไพศาล เจรญพรสวสด" และ"cttex" ของ "คณวฒชย อมพรอรามเวทย" ทงน ในชวงแรกๆ ชดโปรแกรมเหลานมกนยมใชกนอยบนระบบปฏบตการลนกซ (Linux) และเผยแพรรวมอยในชดตดตง ระบบปฏบตการลนกซทะเล (TLE, Thai Linux Extension) ของ NECTEC ผทตองการใชงาน LATEX ภาษาไทย จงเสมอนถกบงคบกลายๆ ใหตองฝกหดใชลนกซ ไปในตวดวย หากผใชตองการทจะใชงาน LATEXภาษาไทย บนระบบปฏบตการวนโดวส ของไมโครซอฟท กจะตองมความอดทนคอนขางมาก ในการศกษาวธการดาวนโหลด การตดตง และการใชงานโปรแกรมตางๆ ทถกพอรตไวสำหรบใชงานบนวนโดวส
เรยกไดวาชวงเวลาทผานมา เสนกราฟการเรยนร (learning curve) วธการใชงาน LATEXภาษาไทย มลกษณะกราฟสงชนมาก กลาวคอ ผใชตองอาศยความพยายามสง ตองฝกการใชคำสงผานคยบอรด ทงพมพคำสงของ LATEX ควบคไปกบเนอหาสาระทตองการ บนทกไฟลเกบไว เปนไฟลรหสตนฉบบ ใชนามสกล .ttx จากนนจงสงใหโปรแกรมตดคำ อยาง swath หรอ cttex นำไฟลรหสตนฉบบไปตดคำ บนทกเกบไวเปนไฟลนามสกล .tex แลวจงคอยนำไฟล .tex นไปประมวลผลดวย LATEX ใหเปนเอกสารผลลพธทตองการ ซงเปนอปสรรค ใหผใชงานจำนวนไมนอย ยตความพยายาม หนกลบไปใชงานโปรแกรมเวรดโปรเซสเซอร ทหาไดในทองตลาดตามเดม เพราะเหนวา หากตองการใชเพยงทำการบาน หรอรายงานสนๆ ไมกหนา กดเหมอนเวรดโปรเซสเซอร
11http://code.google.com/p/swath/
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 17
รปท 1.8: เวบไซตของ MiKTEX
จะใชงานงายกวา เรวกวา สะดวกกวา
จากประสบการณสวนตวของผเขยน ซงสอนหนงสออยในคณะวศวกรรมศาสตร ไดเคยพยายามใหนกเรยนสาขาวศวกรรม เขยนรายงานดวย LATEX พบวา นกเรยนจำนวนไมนอย แมจะสามารถทำตามขนตอนการประมวลผล LATEX ได แตสวนใหญ กจะไมสามารถอดทนใช LATEX ไดเปนเวลานานๆ เนองจากนกเรยนไมชอบ และไมถนด กบการทำงานแบบพมพคำสง หรอ "คอมมานด" (command) แตถนดทจะใชเมาสคลกปม คลกเมน จมๆ คลกๆ มากกวา
18 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
ทผานมาการใชงาน LATEX ภาษาไทยบนระบบปฏบตการวนโดวสนน ชดโปรแกรมทนยมกนคอ LATEX ของ MiKTEX สามารถดาวนโหลดมาใชงานไดฟร จากเวบไซตของ MiKTEX 12 (ดรป 1.8) และจะตองตดตงระบบภาษาไทยสำหรบ MiKTEX ซงมชอเรยกวา MiKTEX Thai Exten-sion 13 ปจจบน แมจะยงคงดาวนโหลดได แตเขาใจวาผพฒนาไดยตการพฒนาไปแลว เนองจากมการปรบเปลยนโครงสรางขนานใหญ ตงแต MiKTEX รน 2.5 เปนตนมา ทำใหตว MiKTEXThai Extension ทเคยใชกน ไมสามารถใชงานกบ MiKTEX เวอรชนใหมๆ ไดอกตอไป MiKTEXรนลาสด ณ วนทเขยนตนฉบบ คอ 2.7
อยางไรกด ผใชงานทตองการใชงาน LATEX ภาษาไทย บนระบบปฏบตการวนโดวส กคงไมโชครายจนเกนไปนก เมอมการถอกำเนดขนของ LATEX สายพนธใหม ในชวงปลายป ค.ศ.2003ทมตนกำเนดจากระบบปฏบตการ "แมคโอเอส" (Mac OS) และมตวจดการภาษาตางชาต ทไมใชภาษาองกฤษ ทรองรบรหสอกขระแบบ "ยนโคด" (Unicode) แทนทการใชงานแพคเกจ "babel"ตวเดมทมขอจำกดมากมาย LATEX สายพนธใหมทกลาวถงนคอ X ETEX (ดรป 1.9) ซงนอกจากจะรองรบรหสอกขระแบบยนโคดแลว ยงถกพฒนาใหรองรบระบบฟอนตแบบใหมๆ อยาง "Open-Type" หรอ "AAT" ของบรษทแอปเปล (Apple Advanced Typography) X ETEX ถกพฒนาขนโดย "โจนาธาน คว" (Jonathan Kew) และเผยแพรผานลขสทธแบบอสระของ X11 (X11 freesoftware license)
X ETEX ถกออกแบบใหรองรบรหสอกขระแบบ "ยนโคด" และสามารถใชงานฟอนท ทตดตงอยบนระบบปฏบตการวนโดวส โดยทไมตองกงวลกบตวฟอนททมอยจำกดแบบเดมๆ รวมทงไมจำเปนตองตดคำเองดวยโปรแกรม "swath" หรอ "cttex" อกตอไป
ปจจบนทาง MiKTEX นบตงแตเวอรชน 2.7 เปนตนมา (เรมเผยแพรในป ค.ศ.2007)ไดรวม X ETEX ไวในชดตดตงของ MiKTEX แลว เพยงดาวนโหลดโปรแกรมตดตง MiKTEX จากเวบไซต และศกษาวธกำหนดใชภาษาไทยสนๆ ผใชงานกสามารถเขยนและประมวลผลภาษาไทยบน MiKTEX ไดอยางงายดาย
12http://www.miktex.org13http://miktexthai.sourceforge.net
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 19
รปท 1.9: เวบไซตของ X ETEX
1.6 บทสรปเกยวกบ X ETEXX ETEX คอ โปรแกรมสำหรบการเรยงพมพ (typesetting) ซงมตนกำเนดจากโปรแกรม TEX ของศาสตราจารยโดนลด อ นธ (Donald E. Knuth) แหงมหาวทยาลยสแตนฟอรด ตวโปรแกรม X ETEXพฒนาขน จากการรวมความสามารถ ในการรองรบ "รหสอกขระ แบบยนโคด" (Unicode) 14 และเทคโนโลยฟอนท (font) แบบใหมๆ 15 เขากบโปรแกรม "e-TEX 16" ซงเปนโปรแกรม "กลจกร"หรอ "เอนจน" (engine) การทำงาน ของโปรแกรม LATEX
14รหสอกขระยนโคด จะถกใชเปนคาโดยปรยาย (by default)15รองรบฟอนทแบบใหมอยาง OpenType และฟอนททนยมอยเดม อยาง PostScript Type 1 และ TrueType16http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=etex
20 การเขยนเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวยโปรแกรม X ETEX
X ETEX ถกพฒนาขนโดย "โจนาธาน คว" (Jonathan Kew) ซงทำงานใหกบ "SIL" (Sum-mer Institute of Linguistics) 17 โดยออกแบบ ใหทำงานรวมกบสวนขยายของ "dvipdfmx 18"ซงเปน ไดรฟเวอรสำหรบสรางไฟลชนด PDF (PDF driver) ทำให X ETEX สามารถแสดงผลลพธหลงการประมวลผล (compile) เปนไฟลชนด .pdf ไดทนท ไมจำเปนตองประมวลผลใหเปน .dviกอน แลวจงคอยนำไปแปลงเปน .pdf ตามแบบ TEX หรอ LATEX สงผลใหผใชงานทคนเคยกบTEX หรอ LATEX มากอนจะพบวา X ETEX ใชงานไดสะดวกมากขนกวาเดม โดยเฉพาะ การทำงานรวมกบภาษาตางชาต ทไมใชภาษาองกฤษ สามารถทำงานไดงาย โดยเฉพาะ การใชงานภาษาไทยแมจะยงไมสามารถตดคำ ไดสมบรณแบบ 100 เปอรเซนต ผใชงานยงคงตอง "แอบชวย" อยบางแตกสามารถชวยลดภาระงาน "การตดคำ" ใหสะดวกกวาการใชงาน LATEX แบบเดม ซงตองอาศยโปรแกรม "swath" หรอ "cttex" ไดมาก
X ETEX ถกเผยแพรออกมาในเดอนเมษายน ป ค.ศ. 2004 โดยเปนรนสำหรบใชงานบน"Mac OS X" เทานน ขณะนน X ETEX รองรบเพยงรหสอกขระแบบยนโคด ฟอนททตดตงอยบนแมค รวมทงการกำหนดลกษณะพเศษใหกบฟอนท ซงเปนเทคโนโลยของบรษทแอปเปล (AAT,Apple Advanced Typography) ในปตอมา (กมภาพนธ ค.ศ. 2005) X ETEX กรองรบฟอนทแบบOpenType รวมทงสามารถทำงานรวมกบแพคเกจสำคญตางๆ ของ LATEX ไดมากขน
ในเดอนเมษายน ป ค.ศ. 2006 BachoTEX ซงเปน X ETEX สำหรบใชงานบนระบบปฏบตการลนกซ (Linux) กไดถกเผยแพรออกมา และในทสดเดอนมถนายน ของปเดยวกน "อะกระ คะคโตะ" (Akira Kakuto) กไดเผยแพร X ETEX รนสำหรบไมโครซอฟทวนโดวสออกมาเปนครงแรก
กาวสำคญ ททำให X ETEX ไดรบความนยมมากขน กเมอ X ETEX รน 0.996 ไดถกรวมไวเปนสวนหนงของชดโปรแกรม TEXLive ทเผยแพรในเดอนกมภาพนธ ป ค.ศ. 2007 และMiKTEX กไดรวม X ETEX ไวเปนสวนหนงของ MiKTEX นบตงแตรน 2.7 ซงเผยแพรในเดอนกนยายน ปเดยวกน
17http://www.sil.org18เรยกวา xdvipdfmx
ผชวยศาสตราจารย ดร.ประมวล สธจารวฒน : ฉบบแกไข June 24, 2009 21
1.7 แหลงขอมลเพมเตมผสนใจ ควรศกษาขอมลเพมเตม เกยวกบ X ETEX และโปรแกรมอนๆ ในสายพนธ โดยเฉพาะLATEX ซงมอาสาสมครทงไทยและตางประเทศจำนวนไมนอย ไดเผยแพรผานสงพมพ ไฟลเอกสารในรปแบบอเลกทรอนกส และเวบไซตตางๆ อาท "The not so Short Introduction to LATEX2ε"เขยนโดย "โทเบยส โอทเกอร" (Tobias Oetiker) ฉบบปรบปรงลาสด คอ 25 กนยายน ค.ศ.2008 19 รวมทง ฉบบแปลภาษาไทย (ซงแปลจากตนฉบบเกา ฉบบใหมยงไมเหนวามการเผยแพรออกมา) โดย คณจกรภาษณ วศวกล 20
นอกจากนอาจลองอานขอมลบางสวนจากสารานกรมเสร wikipedia ท URL ตอไปน
- http://en.wikipedia.org/wiki/TeX
- http://en.wikipedia.org/wiki/LaTeX
- http://en.wikipedia.org/wiki/XeTeX
19ftp://ftp.quantum.nus.edu.sg/tex-archive/info/lshort/english/lshort.pdf20http://linux.thai.net/plone/Members/poonlap/latex/lshort.pdf