thai latex manual
DESCRIPTION
How to use LaTex in thaiTRANSCRIPT
การใชภาษาไทยกบ LATEX
พลลาภ วระธนาบตร <poonlap at linux.thai.net>
ฉบบปรบปรง: วนท ๒๘ กมภาพนธ พ.ศ.๒๕๔๖แกไขเพมเตม: วนท ๑๗ มกราคม พ.ศ.๒๕๔๗ฉบบลาสด: วนท ๑๘ กนยายน พ.ศ.๒๕๔๗
คำนำ
ผมเรมตนเขยนเอกสารฉบบนเมอปพ.ศ. 2541 [1] สมยทยงเปนนกศกษามหาวทยาลยอย. ตอนนนเขยนอยในรปแบบของ sgml แลวแปลงเปนรปแบบตางๆเชน html, latex ฯลฯ. หลงจากนนไดทงไปสกระยะจนกระทงเมอปพ.ศ. 2546 นำเอกสารฉบบนนมาเขยนปรบปรงใหมเนองจากเนอหาเกาเกนไปและมการพฒนา LATEX ภาษาไทยโดยกลม Thai LinuxWorking Group. ในฉบบปรบปรงนไดเขยนเอกสารในรปแบบ LATEX โดยตรงเพอเผยแพรการใชงานและเปนตวอยางสำหรบผตองการใช. หากผอานพบขอผดพลาดในเอกสารหรอมขอแนะนำสามารถตดตอผมไดดวยอเมลครบ.
ผอานมอสระในการ 1) แจกจาย, ทำสำเนาเอกสารฉบบน 2) เขยนเนอหาตอจากเอกสารฉบบน 3) ใชเอกสารฉบบนในเชงพาณชย. โดยมขอแมวาใหเครดตกบผเขยนเอกสารฉบบน.
รหสตนฉบบของเอกสาร:http://linux.thai.net/cgi-bin/viewcvs.cgi/docs/thailatex doc/เอกสารสารในรปแบบ PDF:http://linux.thai.net/plone/TLWG/thailatex/
สารบญ
1 TEX 4
2 LATEX 42.1 มาใช LATEX กนเถด . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 หลกการทำงานของ LATEX 53.1 หลกการทำงานโดยทวไป . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.2 ไฟลตางๆท LATEX ใช . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.3 คลาสไฟล - Class file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.4 แพกเกจ - package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.5 ไฟลตนฉบบสำหรบ LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4 ฟอนตทใชใน LATEX 74.1 TFM (TEX Font Metric) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1
สารบญรป สารบญรป
4.2 METAFONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74.3 GF (Glyph Font) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74.4 PK (Packed Font) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74.5 AFM (Adobe Metric Font) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74.6 Type1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 LATEX ภาษาไทย 75.1 tTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85.2 cttex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85.3 ThaiLATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6 การตดตง ThaiLATEX 9
7 การใช LATEX ภาษาไทยเบองตน 97.1 การเตรยมไฟลตนฉบบ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97.2 การตดคำ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107.3 การใชโปรแกรม latex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117.4 DVI ไดรเวอร . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117.5 การแปลงไฟล PostScript เปน PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8 วธการเขยนไฟลตนฉบบเบองตน 138.1 อารมภบท . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138.2 เนอหา . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148.3 ทดสอบการจดระดบ, ตำแหนงของสระและวรรณยกต . . . . . . . . . . . . . . . . . . . . . . . 168.4 การสรางดรรชนภาษาไทย . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9 เอกสารการใช LATEX ภาษาไทย 17
10 บทสรป 17
ก การเขยนไฟลตนฉบบ LATEX ภาษาไทยโดยไมใชไฟล .ttx 18ก.1 สรปการเตรยมไฟลตนฉบบโดยไมใชไฟล .ttx . . . . . . . . . . . . . . . . . . . . . . . . . 19
ข การสรางรปประกอบเอกสาร 19
ค การสรางกราฟประกอบเอกสารดวย 20
บรรณานกรม 21
ดรรชน 21
สารบญรป
1 หลกการทำงานโดยทวไปของ LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 ตวอยางการสรางไฟลตนฉบบดวย emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2
สารบญตาราง สารบญตาราง
3 ตวอยางรปประกอบเอกสารทสรางดวย dia . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 ตวอยางรปประกอบเอกสารทสรางดวย gnuplot . . . . . . . . . . . . . . . . . . . . . . . . 20
สารบญตาราง
1 คำอธบายไฟลตางๆทใชใน LATEX และสวนขยายชอไฟล . . . . . . . . . . . . . . . . . . . . . 62 คลาสและตวเลอกในเอกสาร LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ตวอยางการใชฟอนตภาษาไทยตางๆ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 ตวอยางขนาดของตวอกษรและคำสงทตงไวในเอกสาร . . . . . . . . . . . . . . . . . . . . . . 15
3
2 LATEX
1 TEX
TEX[2] เปนโปรแกรมเรยงพมพ (typesetter) ซงศาตราจารย Donald Knuth แหงมหาวทยาลย Stanford เรมเขยนในราวป ค.ศ.1977. เขาเขยนในหนงสอ The TEX book ซงถอวาเปนไบเบลของ TEX ไววา “TEX is a new typesetting systemintended for the creation of beautiful books - and especially for books that contain a lot of mathematics. Bypreparing a manuscript in TEX format, you will be telling a computer exactly how the manuscript is to betransformed into pages whose typographic quality is comparable to that of the world’s finest printer.” สงทนาสงเกตคอ TEX เปนโปรแกรมเรยงพมพ ไมใชเวรดโปรเซสเซอร (word processor) ทเปนแบบ WYSIWYG - What You SeeIs What You Get. ดวยเหตนเองทำให TEX และ LATEX แตกตางจากเวรดโปรเซสเซอรอนๆ.
การเรยงพมพในสมยกอนใชแบบตวอกษรทเปนโลหะมาเรยงเปนประโยค, เปนหนาและพมพลงกระดาษ. TEX กมหลกการเชนเดยวกนโดยการเขยนคำสงเรยงพมพลงในไฟลลวงหนา, แลวใชโปรแกรม tex เปนตวเรยงประโยค, เรยงหนาและผลตไฟล dvi (device independent). สวนการพมพไมใชหนาทของ TEX. การพมพเปนหนาทของโปรแกรมอนทจะแปลงไฟล dvi ใหเหมาะกบเครองพมพหรอสอในการแสดงผลอนๆ. กลาวคอไฟล dvi เปนไฟลทไมขนกบอปกรณการแสดงผลตามความหมายในภาษาองกฤษนนเอง. ตวอยางเชน, ถาตองการดเอกสารทางหนาจอ X Window กใชโปรแกรม xdvi, ถาตองการไฟลแบบ PostScript กใชโปรแกรม dvips เพอแปลงเปน PostScript หรอพมพออกทางเครองพมพ.
2 LATEX
LATEX เปนการรวมชดคำสง, นยามคำสงของ TEX ใหมและรวมเปนแพกเกจโดยนาย Leslie Lamport[3] ทำใหมรปแบบและใชงายขนกวา TEX. ซงจรงๆแลวการใช LATEX กคอการใช TEX ทางออมนนเอง. ในขณะทศาสตราจารย Knuthกลาวไมมการพฒนาโปรแกรม TEX อกตอไปแลว, แตการพฒนา LATEX ยงมอยเรอยๆ. การพฒนาของ LATEX เรมตงแตปค.ศ.1985 มการพฒนาตอกนมาหลายรน. ในปจจบน LATEX ทใชกนอยทวไปเรยกวา LATEX 2ε ซงเปนรนเบตาของLATEX3. มการใช LATEX กนอยางกวางขวางทกแวดวงเชนการใช LATEX เขยนหนงสอหรอบทความทางวชาการสาขาตางๆ,การใช LATEX เขยนโนตดนตร ฯลฯ[4].
2.1 มาใช LATEX กนเถด
หลงจากทแนะนำ TEX กบ LATEX พอสมควรแลว ตอไปนเปนการกลาวถงเหตผลทผอานนาจะลองใช LATEX.
• LATEX เปนซอฟตแวรเสร, ผใชสามารถดาวนโหลดตวโปรแกรมและรหสตนฉบบไดโดยไมเสยคาใชจายใดๆ. ผอานสามารถหาขอมลเพมเตมเกยวกบ TEX และ LATEX ไดท http://www.tug.org
• สามารถใชไดกบคอมพวเตอรทกแพลตฟอรม (platform) ไมวาจะเปน Windows, Mac, UNIX ฯลฯ.
• ไฟลตนฉบบ LATEX เปนไฟลทอานได (human readable) ซงตางจากเวรดโปรเซสเซอรทถาไมมโปรแกรมเวรดโปรเซสเซอรนนกหมายความวาไมสามารถดเนอหาไดเลย.
• แสดงผลไดสวยงาม, ไมขนกบอปกรณในการแสดงผล (device independent).
• การเขยนสตรคณตศาสตรใน TEX เปนมาตรฐานสากลและสวยงามตวอยางเชน, limn→∞
∑n
k=1
1
k2 =π
2
6
• การสงบทความทางวชาการมกใช TEX หรอ LATEX.
• มการ Kerning ของตวอกษรโดยอตโนมต.1
• ม algorithm ในการใส hyphen ภาษาองกฤษไดดเยยม.2
• แปลงไฟลผลลพธใหเปนรปแบบทนยมไดงายเชน PostScript หรอ PDF (Portable Document Format).1ถาใชฟอนตภาษาไทยขนอยกบแบบอกษรทใชวารองรบการ Kerning หรอไม2ยงไมมการใส hyphen สำหรบภาษาไทย
4
3 หลกการทำงานของ LATEX
3 หลกการทำงานของ LATEX
ไฟลตนฉบบ (.tex)
LaTeXFormat file (.fmt)Class and package file (.cls, .sty)Font metrics (.tfm)Font definition (.fd)
ไฟลใชงาน
.aux
.idx
.toc
.lof
.lot
ไฟลผลลพธ (.dvi)Transcript file (.lis, .log)
ไฟล Poscript จอแสดงผล เครองพมพ ไฟลอนๆ
PS
รปท 1: หลกการทำงานโดยทวไปของ LATEX
3.1 หลกการทำงานโดยทวไป
LATEX ใชไฟลหลายชนดจากหลายทในการประมวลผลเพอสรางไฟล dvi. รปท 1 แสดงการประมวลผลของ LATEX และความสมพนธกบไฟลตางๆ.
ผใชจะเปนผเตรยมไฟลตนฉบบซงมสวนขยายชอไฟลเปน .tex.3 ไฟลนสามารถสรางโดยใชบรรณาธกรณ (text editor)อะไรกไดเชน emacs หรอ vi. เมอสรางไฟลตนฉบบเรยบรอยแลว, จะใชคำสง latex ประมวลผล. โปรแกรมจะใชไฟลตางๆจากไดเรกทอรทมชอวา texmf เชน ไฟลทบอกขนาดของตวอกษร, แบบเอกสารมาใช. ไฟลผลลพธของ latex มหลายไฟลเชนไฟล .aux, .idx, .toc ฯลฯ. แตไฟลทสำคญทสดคอไฟล .dvi ซงเราสามารถแปลงไฟลนเปนรปแบบอนๆไดตอไป.
3.2 ไฟลตางๆท LATEX ใช
ตารางท 1 แสดงคำอธบายของไฟลตางๆทใชใน LATEX และสวนขยายชอไฟล. ไฟลเหลานโดยปรกตจะอยใตไดเรกทอร/usr/share/texmf หรอไดเรกทอรทระบในตวแปรสภาพแวดลอม $TEXMF. ในทนจะอธบายถงไฟลทสำคญและเกยวของกบผใชเทานน.
3.3 คลาสไฟล - Class file
คลาสไฟล (.cls) เปนไฟลทกำหนดลกษณะทวๆไปของเอกสาร. ลกษณะเอกสารหลกๆไดแก หนงสอ (book.cls),รายงาน (report.cls), บทความ (article.cls) หรอจดหมาย (letter.cls). การเลอกลกษณะเอกสารทำไดดวย
3สำหรบไฟลตนฉบบภาษาไทยนยมใชสวนขยายชอไฟลเปน .ttx กอนแลวใชโปรแกรมตวคำแปลงเปนไฟล .tex ภายหลง.
5
3 หลกการทำงานของ LATEX 3.4 แพกเกจ - package
คำอธบาย สวนขยายชอไฟลLATEX input file .tex, .ltxLATEX input file (ภาษาไทย) สำหรบแปลงเปน .tex อกท .ttxTEX formatted output file .dviTEX transcript file .log, .texlog, .lis, .listMETAFONT sources file .mfFont definition file .fdFont image file .pkFont metrics file .tfmString pool file .pool, .poo, .polFormat file .fmtLATEX layout, structure file .clo, .cls, .dtx, .styLATEX auxiliary file .auxTable of contents file .tocList of figures file .lofList of tables file .lotBibTEX related files .bbl, .bib, .blg, .bstIndex and MakeIndex related files .idx, .ilg, .ind, .ist
ตารางท 1: คำอธบายไฟลตางๆทใชใน LATEX และสวนขยายชอไฟล
คำสง \documentclass เชน:
\documentclass{article}
เปนการกำหนดเอกสารทใชเปนแบบบทความ.
3.4 แพกเกจ - package
แพกเกจ (.sty) หรอบางทเรยกวาสไตลไฟล (style file) เปนไฟลทกำหนดรายละเอยดปลกยอยนอกเหนอจากการกำหนดลกษณะเอกสารซงกำหนดโดยคลาสไฟล. ผอานสามารถระบแพกเกจทตองการใชดวยคำสง \usepackage เชน:
\usepackage[thai]{babel}
\usepackage{a4}
จากตวอยางเปนการกำหนดรายละเอยดใหเอกสารใชแพกเกจ babel โดยมตวเลอกเปนภาษาไทย. บรรทดตอมาเปนการระบใหเอกสารใชกระดาษขนาด A4.
3.5 ไฟลตนฉบบสำหรบ LATEX
ไฟลตนฉบบเปนไฟลทผใชตองสรางโดยเขยนคำสงและเนอหาเอกสารลงในไฟลน. โดยปรกตไฟลนจะมตวขยายชอไฟลเปน .tex. สำหรบภาษาไทยแลวไฟลตนฉบบทเขยนไมสามารถนำไปใชไดทนทตองผานการใชโปรแกรมตดคำภาษาไทยตดคำกอน. ในขณะนยงไมมมาตรฐานทแนชด, แตนยมใหไฟลตนฉบบภาษาไทยมสวนขยายชอไฟลเปน .ttx แลวใชโปรแกรมตดคำแปลงเปนไฟล .tex ภายหลง.
6
5 LATEX ภาษาไทย
4 ฟอนตทใชใน LATEX
ฟอนตท LATEX ใชมหลายชนดไดแก TFM, VF, METAFONTฯลฯ.
4.1 TFM (TEX Font Metric)
มสวนขยายชอไฟลเปน .tfm, เปนฟอนตทไมมรปราง. กลาวคอมขอมลของขนาด, ความกวาง, ความสง, ตำแหนงของตวอกษรเทานน. ไฟลนจะใชโดยโปรแกรม tex และ dvi driver (xdvi, dvips, ฯลฯ). ฟอนตนสามารถผลตไดจากMETAFONT ดวยโปรแกรม pltotf. TFM ของภาษาไทยนนทำโดยการแปลงมาจาก AFM (Adobe Font Metric) ดวยโปรแกรม afm2tfm. ฟอนตทใชแสดงผลภาษาไทยในขณะนไดแกฟอนตตระกล Norasi, Garuda และ DBThaiText.
4.2 METAFONT
METAFONT เปนฟอนตท TEX ใชในยคตนๆ. เขยนโดยศาสตราจารย Knuth เองและมหนงสอเกยวกบ META-FONTเปนชด (series) ประกอบกบ The TEX Book อกดวย. เราสามารถสรางฟอนต TFM และ GF (Glyph Font) ไดจากMF.
4.3 GF (Glyph Font)
GF เปนฟอนตบทแมป (bitmap) ใชในการแสดงผล. มสวนขยายชอไฟลเปน .gf หรอ .gf แลวตามดวยคาความละเอยด (resolution).
4.4 PK (Packed Font)
ฟอนต PK สรางจาก GF โดยการอด (compress) ใหเลกลงดวยโปรแกรม gstopk. มตวขยายชอไฟลลกษณะเดยวกบGF.
4.5 AFM (Adobe Metric Font)
AFM เปนฟอนตแบบ metric ท PostScript ใช. สามารถแปลงเปน TFM ไดดวยโปรแกรม afm2tfm.สวนตวฟอนตAFM เองสามารถสรางไดจากฟอนต Type1 กไดดวยโปรแกรม pf2afm.
4.6 Type1
เปนฟอนตท PostScript ใชเชนกน. มตวขยายชอไฟลเปน .pfa หรอ .pfb. .pfa เปนไฟลทอานไดสวน .pfb
เปนไบนารไฟล (a = ascii, b = binary)
5 LATEX ภาษาไทย
การใชภาษาไทยกบ LATEX ยงไมคอยมใครสนใจมากเทาทควรเนองจากผใช (end-user) สวนใหญมกใชเวรดโปรเซสเซอรซงเมอเทยบกบ LATEX แลว, LATEX จะใชยากกวา, แตถาผอานใช LATEX มาระยะหนงแลวจะรสกวา LATEX ไมไดยากอยางทคดเลย และไฟลตนฉบบเปนไฟลทอานแลวเขาใจได. สามารถทำความเขาใจไดวาคอมพวเตอรจะจดการกบเอกสารทเราเขยนอยางไร.
เรองราวเกยวกบ LATEX ภาษาไทยทจะกลาวตอไปนชวงตนเปนขอมลจากบทความ “รจกกบ Typesetter ภาษาไทยThaiTeX” โดย มานพ วงศสายสวรรณ อาจารยภาควศวกรรมไฟฟาจฬาลงกรณมหาวทยาลย, นตยสาร “ศกยภาพ” กนยายน2538. นตยสารศกยภาพเปนนตยสารของสมาคมนกวชาชพไทยในญปนซงเคยใช LATEX ในการทำนตยสาร. นบเปนความพยายามครงแรกทจะรณรงคการใช LATEX ในหมคนไทย. ปจจบนไมไดใช LATEX ในการทำนตยสารแลวเนองจากขาดบคคลทชำนาญในการใช.
7
5 LATEX ภาษาไทย 5.1 tTEX
ความพยายามทจะใชภาษาไทยกบ TEX มมานานแลวทงกลมคนไทยและชาวตางชาตคอกลม USL และ RMIT ตามลำดบ.กลม USL ไดเขยนฟอนตภาษาไทยโดยใชภาษา METAFONT ซงเมอนำมาคอมไพลดวยจะได .tfm และ .pk ซงนำมาใชกบ TEX ไดโดยตรง แตฟอนตของกลม USL มเพยงแบบเดยวและขาดความสวยงามอยบาง ในขณะท METAFONT ของกลม RMIT ซงทำโดยชาวตางชาตมหลายแบบหลายขนาดและยงม macro ซงทำใหเรยงพมพภาษาไทยไดทนท. แตขาดตรงทไมไดใชแปนพมพภาษาไทยในการเรยงพมพและเหมาะสมกบการเรยงพมพทมภาษาไทยปะปนอยบางเลกนอยเทานน.
5.1 tTEX
ในราวปค.ศ. 1993 อาจารยมานพ วงศสายสวรรณ [6] มความคดทจะใชภาษาไทยกบ LATEX ขณะทกำลงศกษาตอระดบปรญญาโทท Tokyo Institute of Technology (TIT) ประเทศญปน. มการแปลงฟอนต AFM ภาษาไทยทมขายตามทองตลาดใหเปน TFM และเขยน perl script ชอ ttex ใหทำหนาทแปลงรหสภาษาไทยจาก 8 บทใหเปน 7 บท (LATEX ขณะนนยงไมสามารถรบอกษร 8 บทได) และจดรหสของอกขระแถวบนใหสวยงาม. สวนการตดคำระหวางบรรทดนนยกใหเปนหนาทของผเขยนไฟลขอมลเขา. หลงจากทผาน filter นแลวกนำไฟลทไดสงตอให LATEX จดการประมวลผลตอไป. จากนนกจะไดผลลพธเปนไฟล dvi. ใชโปรแกรม dvips แปลงไฟล dvi ใหเปนไฟลแบบ PostScript พมพออกทางเครองพมพได.แต ttex ยงมปญหาอยบางคอเรองการตดคำระหวางบรรทด, ไมสามารถดงานผาน X window ได, มการแปลงเปนรหส 7บททำใหขอมลใหญเกนความจำเปน และยงไมมแมคโคร (macro) สำหรบ TEX ภาษาไทย.
5.2 cttex
ตอมาภายหลง, คณวฒชย อมพรอรามเวทย [5] พฒนา ttex ตอโดยเขยน filter ใหมดวยภาษา C ชอ cttex. ซงทำใหการทำงานเรวขนกวา ttex. เพมการตดคำระหวางบรรทดโดยอาศยพจนานกรมในการตดคำ. นอกจากนนคณวฒชยยงสรางบทแมทฟอนตแบบ .pk ขนจาก PostScript ฟอนตโดยอาศยซอฟตแวร gsf2pk . สามารถด (preview) บน Xwindow ได. มการพฒนา macro ชอ thai.sty เพอใชตวหนาตวเอยงไดงายขน. ในระยะหลง LATEX สามารถรบรหส 8บทได จงไมมความเปนทจะแปลงเปนรหสเปน 7 บทอกตอไป. การพฒนา ThaiLATEX ในชวงนนนบไดวาเปนกาวสำคญทเดยวสำหรบการใชภาษาไทยกบ LATEX.
เมอตนป 1998 คณวฒชยไดนำไฟลตางๆทจำเปนในการใชภาษาไทยกบ LATEX มารวบรวมอกครง. จากการท LATEX
พฒนาไปเรอยๆ ทำใหการใชภาษาไทยกบ LATEX มความคลองตวขนทกท. ปจจบน LATEX สามารถใช PostScript(Type1)ฟอนตไดมากขน เชนถาไมมฟอนต .pk ในระบบ xdvi สามารถเรยกโปรแกรม gsf2pk แปลง Type1 ใหเปน .pk ไดโดยไมจำเปนตองเตรยม .pk ไวลวงหนา.
5.3 ThaiLATEX
ในปค.ศ.1999 คณสรพนธ เมฆนาวนซงขณะนนทำงานอยทศนยเทคโนโลยอเลกทรอนกสแหงชาตไดทำ ThaiLATEX
แพกเกจใหมโดยอาศยแพกเกจ Babel เปนฐาน. ในขณะเดยวกนมโครงการฟอนตแหงชาตเกดขนจงทำใหมฟอนตใหมนอกจาก DBThaiText คอฟอนต Norasi ใชกบ LATEX ดวย. การพฒนาในชวงนเปลยนไปมากจาก cttex กลาวคอมการใชฟอนตตามมาตรฐาน New Font Selection System (NFSS), ใชแพกเกจ Bebel เปนตน. อกประการหนงคอวธการปรบระดบของสระและวรรณยกตเปลยนไปจากเดม. ในชวงแรก cttex เปนตวจดการปรบระดบของสระและวรรณยกต, แตในThaiLATEX ใชเทคนค Ligature ของ LATEX ในการจดการ. สวนการตดคำนนยงคงตองอาศยโปรแกรมภายนอกเพมแมคโครทระบตำแหนงท LATEX สามารถตดคำไดแทรกลงไปในไฟลตนฉบบเหมอนเดม. นอกจาก cttex แลว, ทางเนคเทคไดสรางโปรแกรมตดคำใหมชอ swath สำหรบตดคำดวย.
ในปจจบน ThaiLATEX ดแลโดยกลม Thai Linux Working Group โดยมคณเทพพทกษเปนแกนนำ. มปรบปรงการแกขอบกพรองโดยสมาชกเชนคณขอม, คณชนพ, คณจกรภาษณและตวผเขยนเอง. ผอานสามารถดาวนโหลด ThaiLATEX
รนลาสดไดจาก http://linux.thai.net/cvs
8
7 การใช LATEX ภาษาไทยเบองตน
6 การตดตง ThaiLATEX
ผอานสามารถดาวนโหลดโปรแกรมสำเรจ (package) รนลาสดของ ThaiLATEX ผานทางอนเทอรเนตไดจาก CVS เซฟเวอรดวยชดคำสงตอไปน4
$ export CVSROOT=:pserver:[email protected]:/home/cvs
$ cvs login
Logging in to :pserver:[email protected]:2401/home/cvs
CVS password: *** ไมตองใสรหสผาน***$ cvs co software/thailatex
$ cvs co software/cttex
$ cvs co software/swath
การตดตง ThaiLATEX, swath และ cttex สามารถทำไดโดย root แลวสงคำสงตอไปน
# cd software/thailatex
# ./autogen.sh
# ./configure
# make; make install
# cd ../swath
# ./autogen.sh
# ./configure
# make; make install
# cd ../cttex
# make
# cp cttex /usr/bin
# gzip cttex.1 > /usr/share/man/man1/cttex.1.gz
หากผอานมปญหาเกยวกบการตดตง, สามารถถามคำถามไดผานทางเวบบอรดของ Thai Linux Working Group (TL-WG), http://linux.thai.net.
7 การใช LATEX ภาษาไทยเบองตน
7.1 การเตรยมไฟลตนฉบบ
การเตรยมแฟมตนฉบบ LATEX สำหรบภาษาไทยนยมใหสวนขยายชอไฟลเปน .ttx เพอแยกไฟลใหชดเจนวาเปนไฟลตนฉบบภาษาไทยทยงไมไดผานการตดคำ. ผใชสามารถใชบรรณาธกรณ (editor) ธรรมดาในการเขยนไฟลตนฉบบ เชน vi,emacs, gedit ฯลฯ. ไฟลตนฉบบทเขยนนตองเขารหส (encode) เปน TIS-620. หากบรรณาธกรณทใชเขารหสเปนUTF-8 ใหใชโปรแกรม iconv แปลงการเขารหสได.
$ iconv -f UTF-8 -t TIS-620 < FILE_UTF-8.ttx > FILE_TIS-620.ttx
บรรณาธกรณทผเขยนคดวาเหมาะกบการใชภาษาไทยมากทสดในขณะนคอ emacs (รปท 2). ผใชสามารถเรยกใชlatex-mode เพอชวยเขยนไฟลตนฉบบไดงายขน. ในกรณนจะมเชคไวยกรณและใชสแยกระหวางคำสง LATEX กบเนอหาทเขยนดวย.
4ในทนชอใชเครองหม
9
7 การใช LATEX ภาษาไทยเบองตน 7.2 การตดคำ
ไฟลตนฉบบ .ttx ทสรางขนมาไมสามารถดำเนนการตอดวย latex ไดทนทเพราะยงไมมขอมลทเกยวกบการตดคำภาษาไทย. การตดคำภาษาไทยใน LATEX มหลกการคอใชโปรแกรมเฉพาะเชน swath หรอ cttex ชวยในการเพมแมคโครบอกตำแหนงท LATEX สามารถตดคำได.
รปท 2: ตวอยางการสรางไฟลตนฉบบดวย emacs
ตอจากนเปนตนไปจะสมมตวาไฟลตนฉบบทผใชเตรยมขนมามชอเปน thailatexfile.ttx และจะใชชอไฟลนเปนตวอยางประกอบเพอสรางไฟล thailatexfile.tex, thailatexfile.dvi ฯลฯ ตอไป.
7.2 การตดคำ
ตวอยางตอไปนเปนแสดงตวอยางการใชโปรแกรม swath ในการ
$ swath -f latex < thailatexfile.ttx > thailatexfile.tex
โปรแกรม cttex5 เปนอกโปรแกรมหนงทสามารถใชตดคำได. cttex จะประมวลผลไดเรวกวา swath. ตดอยางการใช cttex เปนดงน.
$ cttex -W < thailatexfile.ttx > thailatexfile.tex
5cttex รน 1.22 เปนตนไปจงจะใชตวเลอก -W ได.
10
7 การใช LATEX ภาษาไทยเบองตน 7.3 การใชโปรแกรม latex
โปรแกรม swath หรอ cttex มหลกการทำงานเหมอนกนคอจะเตมแมคโคร {\wbr} ในตำแหนงทตดคำได. เชนคำวา “สวสดครบ” จะเปน “สวสด{\wbr}ครบ{\wbr}”. การแทรกแมคโคร \wbr ระหวางเทยบไดกบการแทรกชองวาง(space) ทมขนาดเปนศนยระหวางคำภาษาไทย. เนองจาก LATEX จะขนบรรทดใหมโดยดจากชองวาง, การแทรกแมคโคร\wbr จงทำให LATEX ขนบรรทดทเปนภาษาไทยใหมไดถกตอง.
ไมวาจะใชโปรแกรม swath หรอ cttex, ผอานจะไดไฟลอกไฟลหนง (ตวอยางใชชอเปน thailatexfile.tex)นอกเหนอจากไฟลตนฉบบ (ตวอยางใชชอเปน thailatexfile.ttx). ไฟล .tex ทไดมาเปนไฟลทมแมคโครสำหรบตดคำภาษาไทยอยขางใน. เวลาผใชตองการจะแกไขไฟลตนฉบบในภายหลง, ควรแกไฟลตนฉบบเพราะอานงายกวาและไมมแมคโครแทรก.
7.3 การใชโปรแกรม latex
เมอไดไฟล thailatexfile.tex ซงเปนไฟลตนฉบบทผานการตดคำแลว. เราสามารถสงคำสง latex รวมกบตวเลอก --translate-file=cp8bit.tcx โดยมชอไฟลทตองการประมวลผลเปนอารกวเมนต. ชอไฟลทสงใหกบโปรแกรม latex จะมสวนขยายไฟล .tex หรอไมมกได.
$ latex --translate-file=cp8bit.tcx thailatexfile
This is TeX, Version 3.14159 (Web2C 7.3.1)
(thailatexfile.tex
LaTeX2e <2000/06/01>
Babel <v3.7h> and hyphenation patterns for american, french, german, ngerman, i
talian, nohyphenation, loaded.
(/usr/share/texmf/tex/latex/base/article.cls
Document Class: article 2000/05/19 v1.4b Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/size10.clo))
......
[8] [9] (thailatexfile.aux)
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
)
(see the transcript file for additional information)
Output written on thailatexfile.dvi (9 pages, 39252 bytes).
Transcript written on thailatexfile.log.
ถาไมมขอผดพลาดเกดขนกจะไดไฟลชอ thailatexfile.dvi อยในไดเรกทอรทใชงานอย. ถามการอางองเลขหนาหรอรปภายในเอกสาร, บางครงตองประมวลผลอกครง.
ตวเลอก --translate-file=cp8bit.tcx จะบอก latex ใหรวาอกขระทอยในไฟลตนฉบบเปนอกขระแบบ 8bit. ถาไมใชตวเลอกนจะทำใหไมสามารถสรางดรรชนภาษาไทยได. ผใชอาจจะสราง alias ยนยอการสงยาวๆไดเชน
$ alias latex=’latex --translate-file=cp8bit.tcx’
$ latex thailatexfile
7.4 DVI ไดรเวอร
DVI ไดรเวอรคอโปรแกรมททำหนาทแสดงไฟล dvi ทางจอแสดงผล, พมพออกทางเครองพมพ หรอแปลงไฟล dvi เปนไฟลแบบอนๆ.
11
7 การใช LATEX ภาษาไทยเบองตน 7.5 การแปลงไฟล PostScript เปน PDF
xdvi
xdvi เปนโปรแกรมแสดงไฟล dvi ผานทาง X Window.
$ xdvi thailatexfile.dvi &
ถา xdvi หาฟอนต pk ไมพบ, กจะเรยกโปรแกรม MakeTeXPK ใหสรางฟอนต pk ใหตรงตามความคมชด (resolution)ทกำหนด.
dvips
ผอานสามารถแปลงไฟล dvi ใหเปนไฟล PostScript โดยใชโปรแกรม dvips ดงน
$ dvips -t a4 -Ppdf -o thailatexfile.ps thailatexfile.dvi
โปรแกรม dvips จะฝงฟอนต PostScript ลงไปในไฟลดวยทำใหสามารถดเอกสารทผลตขนไดโดยไมตองมฟอนตภาษาไทยตดตงไวลวงหนา. จากตวอยางมการใชตวเลอก -t a4 เพอบอกใหโปรแกรมรวาใชกระดาษแบบ A4. ตวเลอก -Ppdf
มไวในกรณทตองการฝงฟอนตภาษาองกฤษใหเปนแบบ Type1. ตวเลอกนไมมผลกบ LATEX ภาษาไทย. ถาผอานเขยนเอกสารเปนภาษาองกฤษอยางเดยวแลวตองการสรางไฟล PDF ควรจะใชตวเลอกนทกครง.
ผอานสามารถดไฟล PostScript ดวยโปรแกรม gv, ggv, kghostview เปนตน.
การพมพเอกสารออกทางเครองพมพ
เมอไดไฟล PostScript แลวผใชสามารถพมพเอกสารออกทางปรนเตอรระบบ PostScript ไดทนท. ถาไมมปรนเตอรแบบPostScript, ผใชสามารถพมพโดยใช ghostscript ซงเปนโปรแกรมแปลภาษา PostScript เปนฟอรแมตอนๆ เชน PDF หรอภาษาทเครองพมพใชโดยเฉพาะ.
$ lpr thailatexfile.ps
หรอ
$ lp thailatexfile.ps
7.5 การแปลงไฟล PostScript เปน PDF
การสรางเอกสาร PDF ทำไดงายจากไฟล PostScript โดยใชโปรแกรม ps2pdf. หลงจากสงคำสง ps2pdf แลวกจะไดไฟล PDF อยในไดเรกทอรนน.
$ ps2pdf thailatexfile.ps
โปรแกรมทใชแสดงแฟม PDF บน X Window ไดแก xpdf, gv, ggv เปนตน. โปรแกรม Acrobat Reader จากAdobe สามารถแสดงเอกสาร PDF เตมหนาจอได. ผใชสามารถประยกตสรางไฟล PDF ดวย LATEX เพมการนำเสนอ(presentation) ได.
12
8 วธการเขยนไฟลตนฉบบเบองตน
8 วธการเขยนไฟลตนฉบบเบองตน
ตวอยางตอไปนเปนการแสดงไฟลตนฉบบทจำเปนสำหรบการใชภาษาไทย. ผอานสามารถอานการเขยนไฟลตนฉบบLATEX โดยละเอยดไดจากเอกสาร “บทแนะนำ LATEX 2ε แบบไมคอยยอ”[7] ซงแปลโดยคณจกรภาษณ วศวกล.
% นคอหมายเหต (comment)\documentclass{article}
\usepackage[thai]{babel}
\usepackage{a4}
\begin{document}
ตวอยางเอกสารภาษาไทย.\end{document}
LATEX จะแบงไฟลตนฉบบเปนสองสวนไดแกอารมภบท (preamble) และเนอหา. สวนทเปนอารมภบทไดแกการประกาศประเภทเอกสาร, แพกเกจทใชหรอแมคโครเปนตน. สวนเนอหานนจะเรมดวยคำสง \begin{document} แลวจบดวย\end{document}.
8.1 อารมภบท
คำสงของ TEX จะมรปแบบคอขนตนดวย “\” แลวตามดวยชอคำสง. อารมภบทคอสวนคำสงทกำหนดลกษณะของเอกสารเชน คำสง \documentclass{article} เปนตน. ไฟลตนฉบบทกฉบบตองมคำสงนซงมไวยกรณ:
\documentclass[OPTION1,OPTION2,...]{CLASS}
สำหรบการใชภาษาไทยแลวอยางนอยตองมอารมภบทตอไปนทกครง.
\usepackage[thai]{babel}
ถาตองการใชเลขหนาภาษาไทยใหเตมตวเลอก thainumber ตอจากตวเลอก thai. แตในขณะนยงไมสามารถใชตวเลขหนาไทยกบการสรางดรรชนได.
\usepackage[thai,thainumber]{babel}
ไวยกรณทวไปของคำสง \usepackage คอ
\usepackage[OPTION1,OPTION2,...]{PACKAGE}
LATEX มแพกเกจอำนวยความสะดวกในการเขยนเอกสารมากมายเชนแพกเกจ graphics ใชใสรป EPS ในเอกสารเปนตน. แพกเกจตางๆสำหรบ LATEX สามารถหาไดจาก http://www.tug.org.
เครองหมาย “%” บงบอกสวนทเปนหมายเหต (comment). หมายเหตคอขอความทอยถดจาก “%” จนสดบรรทด. ในชวงอารมภบทน, นอกจากจะกำหนดลกษณะของเอกสารแลวยงสามารถทำชอเรองไดโดย:
\title{TITLE}
\author{AUTHOR_NAME}
\date{DATE or \today{}}
เมอสรางชอเรองและชอผแตงแลว, ขอความเหลาจะปรากฎเมอสงคำสง \maketitle ในชวงเนอหาเทานน.
13
8 วธการเขยนไฟลตนฉบบเบองตน 8.2 เนอหา
Class ตวเลอก(option) คำอธบายbook 10pt ตวอกษรขนาด 10 pointreport 11pt ตวอกษรขนาด 11 pointarticle 12pt ตวอกษรขนาด 12 point
a4paper ขนาดกระดาษ A4 (คาปรยายจะเปน letter)a5paper ขนาดกระดาษ A5b5paper ขนาดกระดาษ B5b4paper ขนาดกระดาษ B4landscape เอกสารตามแนวนอนtwoside เอกสารแบบ 2 หนาoneside เอกสารแบบหนาเดยวonecolumn เอกสารคอลมภเดยว(คาปรยาย)twocolumn เอกสาร 2 คอลมภtitlepage ใชกระดาษหนงหนาในการพมพหนาชอเรอง(คาปรยายของ book, report)notitlepage ใชกระดาษหนาเดยวในการพมพชอเรอง(คาปรยายของ article)draft เอกสารแบบรางfinal เอกสารขนสดทาย(คาปรยาย)leqno แสดงเลขกำกบสตรคณตศาสตรทางซายมอ(คาปรยายจะเปนทางขวามอ)fleqn ใหแสดงสตรคณตศาสตรชดทางซายมอของกระดาษ(คาปรยายจะเปนตรง
กลาง)
ตารางท 2: คลาสและตวเลอกในเอกสาร LATEX
8.2 เนอหา
เนอหาเปนสวนทอยระหวางคำสง \begin{document} กบ \end{document}.
\begin{document}
....
content
....
\end{document}
การยอหนาสามารถทำไดโดยทำบรรทดวางหนงบรรทด.
ฟอนตภาษาไทย
ฟอนตภาษาไทยทสามารถใชไดมอย 6 ตระกลไดแก กนร (Kinnari), นรสห (Norasi), ครฑ (Garuda), DBThaiText,PseudoMono และ พรสา (Purisa) ตามทแสดงไวในตารางท 3. ฟอนต PseudoMono เปนฟอนตแบบ monospace คอความกวางของทกตวอกษรจะเทากนหมด. สวนฟอนตพรสาเปนฟอนตลายมอ.
การเปลยนขนาดอกษร
โดยปรกต LATEX จะกำหนดขนาดของตวอกษรทใชในคลาสโดยมขนาดตวอกษรเรยงลำดบจากใหญดวยคำสง \Huge,\huge, \LARGE, \Large, \large, \normalsize, \small, \footnotesize, \scriptsize และ \tiny.
ผใชสามารถเปลยนขนาดอกษรดวยคำสง:
14
8 วธการเขยนไฟลตนฉบบเบองตน 8.2 เนอหา
ชอฟอนต(postscript) คำสง ตวอยางKinnari \usefont{LTH}{kinnari}{m}{n} ภาษาไทย, ทอย, กตญญKinnariBold \usefont{LTH}{kinnari}{b}{n} ภาษาไทย, ทอย, กตญญKinnariItalic \usefont{LTH}{kinnari}{m}{it} ภาษาไทย, ทอย, กตญญKinnariBoldItalic \usefont{LTH}{kinnari}{b}{it} ภาษาไทย, ทอย, กตญญNorasi \usefont{LTH}{norasi}{m}{n} ภาษาไทย, ทอย, กตญญNorasi-Bold \usefont{LTH}{norasi}{b}{n} ภาษาไทย, ทอย, กตญญNorasi-Italic \usefont{LTH}{norasi}{m}{it} ภาษาไทย, ทอย, กตญญNorasi-BoldItalic \usefont{LTH}{norasi}{b}{it} ภาษาไทย, ทอย, กตญญDBThaiText \usefont{LTH}{dbtt}{m}{n} ภาษาไทย, ทอย, กตญญDBThaiTextBold \usefont{LTH}{dbtt}{b}{n} ภาษาไทย, ทอย, กตญญDBThaiTextItalic \usefont{LTH}{dbtt}{m}{it} ภาษาไทย, ทอย, กตญญDBThaiTextBoldItalic \usefont{LTH}{dbtt}{b}{it} ภาษาไทย, ทอย, กตญญGaruda \usefont{LTH}{garuda}{m}{n} ภาษาไทย, ทอย, กตญญGarudaBold \usefont{LTH}{garuda}{b}{n} ภาษาไทย, ทอย, กตญญGarudaItalic \usefont{LTH}{garuda}{m}{it} ภาษาไทย, ทอย, กตญญGarudaBoldItalic \usefont{LTH}{garuda}{b}{it} ภาษาไทย, ทอย, กตญญPseudoMono \usefont{LTH}{pmono}{m}{n} ภาษาไทย, ทอย, กตญญ
PseudoMonoBold \usefont{LTH}{pmono}{b}{n} ภาษาไทย, ทอย, กตญญ
PseudoMonoItalic \usefont{LTH}{pmono}{m}{it} ภาษาไทย, ทอย, กตญญ
PseudoMonoBold \usefont{LTH}{pmono}{b}{it} ภาษาไทย, ทอย, กตญญ
Purisa \usefont{LTH}{purisa}{m}{n} ภาษาไทย, ทอย, กตญญ
ตารางท 3: ตวอยางการใชฟอนตภาษาไทยตางๆ
คำสง การแสดงผล
{\Huge \LaTeX{} ภาษาไทย} LATEX ภาษาไทย{\huge \LaTeX{} ภาษาไทย} LATEX ภาษาไทย{\LARGE \LaTeX{} ภาษาไทย} LATEX ภาษาไทย{\Large \LaTeX{} ภาษาไทย} LATEX ภาษาไทย{\large \LaTeX{} ภาษาไทย} LATEX ภาษาไทย{\normalsize \LaTeX{} ภาษาไทย} LATEX ภาษาไทย{\small \LaTeX{} ภาษาไทย} LATEX ภาษาไทย{\footnotesize \LaTeX{} ภาษาไทย} LATEX ภาษาไทย{\scriptsize \LaTeX{} ภาษาไทย} LATEX ภาษาไทย
{\tiny \LaTeX{} ภาษาไทย} LATEX ภาษาไทย
ตารางท 4: ตวอยางขนาดของตวอกษรและคำสงทตงไวในเอกสาร
15
8 วธการเขยนไฟลตนฉบบเบองตน 8.3 ทดสอบการจดระดบ, ตำแหนงของสระและวรรณยกต
8.3 ทดสอบการจดระดบ, ตำแหนงของสระและวรรณยกต
LATEX ไมเพยงแคแสดงภาษาไทยไดอยางเดยวแตยงสามารถแสดงภาษาไทยไดอยางสวยงามดวย. ฟอนตภาษาไทยทใชกบ LATEX มสระ, วรรณยกตและอกขระอนๆหลายระดบเพอการแสดงผลทสวยงาม. ตวอยางตอไปนเปนการแสดงการจดระดบและตำแหนงของสระและวรรณยกต6.
• การจดระดบวรรณยกตสงตำท ทา ทง ทา กง กง ต ตา
• การจดตำแหนงวรรณยกตหลบหางบน ปน, บน ปน, บน ปน, บน ปน
• การจดตำแหนงสระออหลบหางบน ปน, บน ปน
• การจดตำแหนงของสระและวรรณยกตบน ปน
• การจดระดบของไมหนอากาศและไมไตคบน ปน บน ก ป
• การจดสระออและพนท ญ และ ฐญ ญ ญ ญ ฐ ฐ ฐ ฐ
• การจดสระออและพนท ฎ และ ฏก ฎ ฎ ฎ ฏ ฏ ฏ
• การจดสระอำบำ บำ ปา ปา
8.4 การสรางดรรชนภาษาไทย
การสรางดรรชนใน LATEX จะใชโปรแกรม makeindex หลงจากทสงคำสง latex และหนงจากนนตองสงคำสงlatex อกครงเพอนำดรรชนไฟลทสรางโดย makeindex เขาไปประมวลผลอกครง (ดรปท 1 ประกอบ). ใหใชตวเลอก-T สำหรบการสรางดรรชนภาษาไทย7. ความตองการพนฐานสำหรบการสรางดรรชนคอตองใชคำสง latex กบตวเลอก--translate-file=cp8bit.tcx ทกลาวไปแลวในตอนตน. และในระบบตองมโลเคล (locale) ภาษาไทยแบบth TH.TIS-620.
% LANG=th_TH.TIS-620 makeindex -T thailatexfile
This is makeindex, version 2.14 [02-Oct-2002] (kpathsea + Thai support).
Scanning input file thailatexfile.idx....done (24 entries accepted,
0 rejected).
Sorting entries....done (111 comparisons).
Generating output file thailatexfile.ind....done (60 lines written,
0 warnings).
Output written in thailatexfile.ind.
Transcript written in thailatexfile.ilg.
6คำทใชเปนตวอยางในทนอาจจะไมมความหมาย7โปรแกรม makeindex ทสนบสนนภาษาไทยแกไขโดยคณเทพพทกษ การณบญญานนท.
16
10 บทสรป
ถาในเชลลของผใชมสภาพแวดลอม LANG=th TH.TIS-620 อยแลว, ไมตองเขยน LANG=th TH.TIS-620 หนาคำสง makeindex กได.
9 เอกสารการใช LATEX ภาษาไทย
นอกจากเอกสารฉบบนแลวผอานสามารถหาขอมลการใช LATEX ทเขยนเปนภาษาไทยสามารถอานไดจาก
• บทแนะนำ LATEX 2ε แบบไมคอยยอ’ แปล8โดยคณ จกรภาษณ วศวกล ทhttp://linux.thai.net/plone/Members/poonlap/latex/lshort.pdf
• การสรางเอกสารดวย LATEX โดยคณ เทพพทกษ การณบญญานนทhttp://linux.thai.net/thep/doc
• การใชฟอนต Angsana กบ ThaiLATEX
http://linux.thai.net/plone/Members/poonlap/latex/angsana.html
• การสราง hyphenation ภาษาไทยดวย patgen/opatgenhttp://linux.thai.net/plone/Members/poonlap/latex/hyphenation
• LATEX for Thai โดยคณ Ichris.http://ichris.ws/latex
• การผลตเอกสารวชาการดานวทยาศาสตรและวศวกรรมดวย LATEX 2ε โดยคณประมวล สธจารวฒน.http://www.ie.eng.chula.ac.th/2004/staff/pramual/books/latex/
• LYX/LATEX-Thai-microHOWTO โดยคณชนพ ศลปอนนตhttp://thai.rsise.anu.edu.au/linux/document/th LyX-Thai-microHOWTO/
• MiKTeX Thai Extension โดยคณ Donzakh.http://miktexthai.sourceforge.net/
10 บทสรป
ในปจจบนมการพฒนาโปรแกรมเวรดโปรเซสเซอรทดๆใหใชภาษาไทยไดเชน Abiword, Koffice, OpenOffice, Pladaoเปนตน. จดเดนของโปรแกรมเหลานคอชวยผใชดานการแสดงออกของเอกสาร (layout). เมอเปรยบเทยบกบ LATEX แลว,การใช LATEX จะชวยผใชเขยนเอกสารอยางมประสทธภาพโดยเนนเรองโครงสรางเนอหามากกวาการแสดงออก. เพราะฉะนนถาแยกประเภทการใชตามการเขยนอาจจะพดไดวาถาตองการเขยนเอกสารเนนเนอหาและโครงสรางควรใช LATEX. ถาตองการเขยนเอกสารสนๆเนนเรองการแสดงออก, ใชเวรดโปรเซสเซอรจะสะดวกกวา.
ปญหาการใชภาษาไทยยงคงมอย เชน LATEX ไมสามารถตดคำภาษาไทยไดทำใหไมสะดวกในการใช เพราะตองใชโปรแกรมอนในการตดคำ.
8เอกสารฉบบภาษาองกฤษอานไดจาก http://www.ctan.org/tex-archive/info/lshort/english/lshort.pdf
17
ก การเขยนไฟลตนฉบบ LATEX ภาษาไทยโดยไมใชไฟล .TTX
ภาคผนวก
ก การเขยนไฟลตนฉบบ LATEX ภาษาไทยโดยไมใชไฟล .ttx
การเขยนไฟลตนฉบบภาษาไทยโดยใชไฟล .ttx แลวแปลงเปน .tex มความไมสะดวกบางอยางเชน
1. ไมสามารถใช \include{another file}9 ซงเปนคำสงอานไฟล another file.tex เขาไฟลหลกเพราะโปรแกรมตดคำจะแทรกแมคโครตดคำใหกบไฟลหลกเทานน. กลาวคอผใชตองรวามไฟลอะไรบางทถก include แลวตดคำเองแตละไฟล.
2. ไฟล .tex เปนไฟลตนฉบบจรงท latex จะประมวลผลแตไมสะดวกในการแกไขเพราะมแมคโครตดคำแทรกจำนวนมาก.
3. ไมสามารถเลอกสวนทตองการตดคำไดเพราะโปรแกรมตดคำจะแทรกแมคโครตดคำทงไฟล.
ดวยเหตนเองผเขยนจงอาศยหลการของการทำดรรชนมาประยกตโดยทผใชไมตองเขยนไฟล .ttx กสามารถเขยนไฟล.tex ไดโดยตรง. ผใชตองเพมชดแมคโคร10ตอไปนในชวงอารมภบท.
\usepackage{sverb}
\newcounter{filenum}
\makeatletter
\newenvironment{thwbr}%
{\verbwrite{\jobname.\thefilenum.th}}
{\endverbwrite
\@input@{\jobname.\thefilenum.wbr}
\stepcounter{filenum}}
\makeatother
วธนเวลาผใชตองการเขยนภาษาไทยตองครอมดวย environment ชอ thwbr. เมอประมวลผลดวย latex, environmentนจะขอความทอยใน environment ลงในไฟลทมสวนขยายเปน .th.
\begin{thwbr}
..... Thai paragraph, English or mixed .....
\end{thwbr}
การตดคำจะทำหลงจากทสงคำสง latex ไปแลวโดยใชคำสงตอไปน (ในตวอยางใช cttex).
$ for th in *.th; do wbr=‘echo $th | sed s/\.th/\.wbr/‘;\
cttex -W < $th > $wbr; done
หลงจากทตดคำแลวจะไดไฟลทมแมคโครตดคำอยในไฟล .wbr ซงตองสงคำสง latex อกครงเพอนำเนอหาทตดคำแลวกลบเขาไปในไฟลตนฉบบอกครง.
9จะใชเมอแยกไฟลตนฉบบหลายๆไฟลแลวใชไฟลหลกรวมไฟลยอยๆเขาดวยกน.10ไดรบการปรบปรงและความคดเหนจากคณเทพพทกษขณะเสนอความคดนใน tlwg-development newsgroup
18
ข การสรางรปประกอบเอกสาร ก.1 สรปการเตรยมไฟลตนฉบบโดยไมใชไฟล .ttx
ก.1 สรปการเตรยมไฟลตนฉบบโดยไมใชไฟล .ttx
1. เขยนชดแมคโครทไดแสดงไปแลวในชวงอารมภบท
2. สวนทเปนขอความภาษาไทยและตองการตดคำใหเขยนใน environment, \begin{thwbr} ... \end{thwbr}.environment นใชไดหลายครงและสามารถใชแมคโครอนๆใน environment ไดดวย.
3. การประมวลผลตองสงคำสง latex สองครงและใชโปรแกรม swath หรอ cttex ตดคำปรกต. ตวอยางเชน
$ latex thailatexfile.tex
$ for th in *.th; do wbr=‘echo $th | sed s/\.th/\.wbr/‘;\
cttex -W < $th > $wbr; done
$ latex thailatexfile.tex
ผใชสามารถสราง alias หรอเชลลสครปตเพอทำใหชวงทตดคำใชงายขนกได.
ข การสรางรปประกอบเอกสาร
LATEX มคำสงสำหรบสรางรปประกอบเอกสารแตยงยากเพราะตองสงเปนคำสงทงหมด. ผใชสามารถใสรปประกอบเอกสารประเภท EPS (Encapsulated PostScript) ซงเปนรปกราฟฟกทมคณภาพสง, ยอขยายไดโดยไมเสยความชดเจน.โปรแกรมทใชวาดรปประเภทนไดแก xfig, tgif, dia เปนตน. โปรแกรมทสามารถพมพและแสดงผลเปนภาษาไทยไดในขณะนคอโปรแกรม xfig และ dia ทไดรบการแกไขเกยวกบภาษาไทย (PostScript) ไวแลว. ผอานสามารถดรายละเอยดไดจาก http://linux.thai.net/Members/poonlap
เปนมนษยสดประเสรฐเลศคณคากวาบรรดาฝงสตวเดรจฉาน
จงฝาฟนพฒนาวชาการอยาลางผลาญฤๅเขนฆาปฑาใคร
ไมถอโทษโกรธแชงฮดฮดดาหดอภยเหมอนกฬาอชฌาสยปฏบตประพฤตกฎกำหนดใจพดจาใหจะๆจาๆนาฟงเอยฯ
0 5 10 15
รปท 3: ตวอยางรปประกอบเอกสารทสรางดวย dia
19
ค การสรางกราฟประกอบเอกสารดวย
ปจจบนโปรแกรม dia มการพฒนาเปลยนไปจากเดมมาก. ขอมลดงกลาวใชไดกบโปรแกรม dia รน 0.90 เทานน.โปรแกรมทใชวาดรปและเขยนภาษาไทยไดดอกตวคอ inkscape.
ค การสรางกราฟประกอบเอกสารดวย
gnuplot เปนโปรแกรมสำหรบเขยนกราฟแบบบรรทดคำสง (command-line interface). สามารถใชเขยนกราฟฟงชนคณตศาสตรหรอขอมลไดทง 2 มตและ 3 มต และสามารถบนทกกราฟทเขยนไดหลายฟอรแมต. โปรแกรมนมประโยชนอยางยงสำหรบนกวทยาศาตร, วศวกรม, นกศกษา หรอบคคลทวไปทสนใจในโปรแกรมเขยนกราฟ.
การใชโปรแกรม gnuplot เพอสรางไฟล EPS สามารถทำได. กรณาดรายละเอยดจากhttp://linux.thai.net/Members/poonlap
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-10 -5 0 5 10
แกน
y
แกน x
ทดสอบการวาดกราฟภาษาไทย
sin(x)0.6 * sin(2 *x)
รปท 4: ตวอยางรปประกอบเอกสารทสรางดวย gnuplot
20
หนงสออางอง หนงสออางอง
หนงสออางอง
[1] พลลาภ วระธนาบตร. การใชภาษาไทยกบ LATEX, อยท ftp://ftp.nectec.or.th/pub/mirror/thailinux/docs/ZzzThai/thailatex html
[2] Donald E. Knuth. The TEXbook, Volume A of Computers and Typesetting, Addison-Wesley, Reading,Massachusetts, second edition, 1984, ISBN 0-201-13448-9.
[3] Leslie Lamport. LATEX: A Document Preparation System. Addison-Wesley, Reading, Massachusetts,second edition, 1994, ISBN 0-201-52983-1.
[4] Michel Goossens, Frank Mittelbach and Alexander Samarin. The LATEX Companion. Addison-Wesley,Reading, Massachusetts, 1994, ISBN 0-201-54199-8.
[5] วฒชย อมพรอรามเวทย, ‘TEX ภาษาไทย’ เปนเวบทรวมโปรแกรมตางๆทจำเปนกบการใชงานภาษาไทยดวย LATEX
อยท http://thaigate.rd.nacsis.ac.jp/files/ttex.html
[6] มานพ วงศสายสวรรณ, ‘รจกกบ Typesetter ภาษาไทย ThaiTEX’ ความเปนมาเกยวกบการใชงานภาษาไทยกบ TEXอยท http://thaigate.rd.nacsis.ac.jp/files/ttex.html
[7] จกรภาษณ วศวกล, ‘บทแนะนำ LATEX 2ε แบบไมคอยยอ’อยท http://www.ctan.org/tex-archive/info/lshort/thai
21
ดรรชนbabel, 6, 8
ตวเลอก, 13
cttex, 8ตวอยางการใช, 10
device independent, 4dvi, 11
dvips, 12xdvi, 12
LATEX, 4
PDF, 12PostScript, 12
swath, 8ตวอยางการใช, 10
TEX, 4
คลาสไฟล, 5
แพกเกจ, 6
ฟอนต, 7AFM, 7METAFONT, 7PK, 7TFM, 7Type1, 7ภาษาไทย, 14, 15
ไฟลตนฉบบ, 6การเขยน, 13การเตรยม, 9
รปประกอบเอกสาร, 19dia, 19gnuplot, 20
สไตลไฟล, ด แพกเกจ
อารมภบท, 13
22