22
¡ˆª“Ø•´¡” L A T E X ¯¯ ˙ˆ—‚„”ˆ <poonlap at linux.thai.net> '””»ˆ”»ˆ§: ˙„• l ¡`„‚ .¨.ı Æ¡Ø¢``: ˙„• æ `¡ˆ/` .¨.ı '””¯L˚·: ˙„• æl ¡„´´„ .¨.ı /„ …`ˆ`Ø„¢´„˝¡˚ˆ'””„`˝».¨. 2541 [1] ˚`´•´§»„„¡¨¡`¸˙•´¯´˝´L. ˝„„„¢´„˝´Lª„ˆ»Æ”” ¢˝§ sgml ƯØ˙Æ»¯§»„ˆ»Æ””L§“L„ html, latex ˇ¯ˇ. ¸¯§¤¡„„·Ø•§»˚¡ˆ—´—¤„¡ˆ—•§`˝».¨. 2546 „ ˝¡˚ˆ'””„„`¢´„»ˆ”»ˆ§ª¸`L„˝§¤¡„˝¸¡L¡„»Æ¯—`¡ˆ²„ L A T E X •´·´¡¯L` Thai Linux Working Group. ª„'””»ˆ”»ˆ§„·Ø¢´„˝¡˚ˆª„ˆ»Æ”” L A T E X ·´ˆ§˝…´ÆˆL¡ˆª“ا„Ư—»„˙˝´L§ ˚¸ˆ”…ØØ˝§¡ˆª“Ø. ¸¡…Ø˝L„”¢Ø˝…·¯·ª„˝¡˚ˆ¸ˆ˝`¢Ø˝Æ„—„˚`ˆ¶·L˝…`·Ø·Ø˙´˝`¯/ˆ”. Ø˝L„`˝˚ˆ—ª„¡ˆ 1) Ƥ¡¤L´, •˚„˝¡˚ˆ'””„ 2) ¢´„„˝¸L˝¤¡˝¡˚ˆ'””„ 3) ª“Ø˝¡˚ˆ'””„ª„ “§‡“´. ·´`¢Ø˝Æ`Ø˙Lª¸Ø/ˆ·¡”…Ø¢´„˝¡˚ˆ'””„. ˆ¸˚Ø„'””¢˝§˝¡˚ˆ: http://linux.thai.net/cgi-bin/viewcvs.cgi/docs/thailatex doc/ ˝¡˚ˆ˚ˆª„ˆ»Æ”” PDF: http://linux.thai.net/plone/TLWG/thailatex/ ˚ˆ”› 1 T E X 4 2 L A T E X 4 2.1 `ª“Ø L A T E X ¡„¶· ..................................... 4 3 ¸¯¡¡ˆ•§„¢˝§ L A T E X 5 3.1 ¸¯¡¡ˆ•§„·´•˙» .................................... 5 3.2 ¿¯L§• L A T E X ª“Ø ..................................... 5 3.3 /¯˚¿¯ - Class file ..................................... 5 3.4 Æ¡¡¤ - package ...................................... 6 3.5 ¿¯Ø„'””˚¸ˆ” L A T E X .................................. 6 4 ¿˝„•ª“ت„ L A T E X 7 4.1 TFM (T E X Font Metric) ................................... 7 1

Thai LaTex Manual

Embed Size (px)

DESCRIPTION

How to use LaTex in thai

Citation preview

Page 1: Thai LaTex Manual

การใชภาษาไทยกบ 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

Page 2: Thai LaTex Manual

สารบญรป สารบญรป

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

Page 3: Thai LaTex Manual

สารบญตาราง สารบญตาราง

3 ตวอยางรปประกอบเอกสารทสรางดวย dia . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 ตวอยางรปประกอบเอกสารทสรางดวย gnuplot . . . . . . . . . . . . . . . . . . . . . . . . 20

สารบญตาราง

1 คำอธบายไฟลตางๆทใชใน LATEX และสวนขยายชอไฟล . . . . . . . . . . . . . . . . . . . . . 62 คลาสและตวเลอกในเอกสาร LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ตวอยางการใชฟอนตภาษาไทยตางๆ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 ตวอยางขนาดของตวอกษรและคำสงทตงไวในเอกสาร . . . . . . . . . . . . . . . . . . . . . . 15

3

Page 4: Thai LaTex Manual

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

Page 5: Thai LaTex Manual

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

Page 6: Thai LaTex Manual

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

Page 7: Thai LaTex Manual

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

Page 8: Thai LaTex Manual

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

Page 9: Thai LaTex Manual

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

Page 10: Thai LaTex Manual

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

Page 11: Thai LaTex Manual

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

Page 12: Thai LaTex Manual

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

Page 13: Thai LaTex Manual

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

Page 14: Thai LaTex Manual

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

Page 15: Thai LaTex Manual

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

Page 16: Thai LaTex Manual

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

Page 17: Thai LaTex Manual

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

Page 18: Thai LaTex Manual

ก การเขยนไฟลตนฉบบ 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

Page 19: Thai LaTex Manual

ข การสรางรปประกอบเอกสาร ก.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

Page 20: Thai LaTex Manual

ค การสรางกราฟประกอบเอกสารดวย

ปจจบนโปรแกรม 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

Page 21: Thai LaTex Manual

หนงสออางอง หนงสออางอง

หนงสออางอง

[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

Page 22: Thai LaTex Manual

ดรรชน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