วันจันทร์ที่ 7 เมษายน พ.ศ. 2551

การใช้ tex ในการเขียนภาษาไทยบน windows

หลายคนที่ใช้ Microsoft Office Word ก็คงรู้สึกว่าอยากมีโปรแกรมเขียนหนังสือหรือบทความที่มันสามารถจะอัปเดตและจัดการส่วนของสารบัญและบรรณานุกรมให้เราโดยอัตโนมัติ เพราะไม่งั้นทุกครั้งที่เนื้อหาเปลี่ยนเราก็ต้องมาจัดเรียงสารบัญและสิ่งที่ เราอ้างอิงใหม่ซึ่งเสียเวลาเป็นอย่างยิ่ง

วิธีการก็ไม่ได้ยากอย่าง ที่เราคิด ซึ่งต้องขอบคุณ [1] ที่ช่วยเผยแพร่วิธีการนี้ซึ่งข้าพเจ้าก็นำมาประยุกต์ใช้และทำเพิ่มเติมเพื่อ ให้ง่ายขึ้น และขอยกตัวอย่างการเขียนบทความภาษาไทยที่มีการอ้างอิงถึงแหล่งความรู้อื่น

  1. ติดตั้ง MiKTeX 2.7 แบบ "Basic MiKTeX 2.7"
  2. ติตตั้ง Notepad++ 4.8.2

3. เขียน batch ไฟล์เพื่อจะนำไปอ้างอิงถึงต่อไปใน Notepad++ เพื่อให้เราไม่ต้องรันคำสั่งเดิมๆ หลายครั้งโดยสมมุติว่าชื่อไฟล์นี้ว่า blatex.bat และให้บันทึกไฟล์นี้ในไดเรกทอรี "C:\Program Files\MiKTeX 2.7\miktex\bin"

=== ไฟล์ blatex.batch ===
xelatex %1.tex

bibtex %1.tex

xelatex %1.tex

xelatex %1.tex

"C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe" %1.pdf
=== สิ้นสุดของไฟล์ ===

4. า กนั้นเปิด NotePad++ จากเมนู "Start >> All Programs >> Notepad++ >> Notepad++" แล้วคัดลอกเนื้อหาต่อไปนี้ในไฟล์ opensource-xmldb.tex ใน Notepad++

โดยที่ก่อนอื่นไปที่ เมนู Format และเลือก Encode in UTF-8 ดังแสดงในรูปที่ 1 เพื่อให้ Notepad++ เข้าใจและบันทึกข้อมูลที่เป็นภาษาไทยอย่างถูกต้อง








รูปที่ 1 การตั้งค่า Encode ใน UTF-8 ใน Notepad++

=== ไฟล์ opensource-xmldb.tex ===

\documentclass[12pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\defaultfontfeatures{Scale=1.23}
\XeTeXlinebreaklocale "th_TH" %
\newcommand{\thi}{\fontspec[Scale=1.23]{Angsana New}}

% 1.23 เท่าคือจาก 12 pt บน LaTeX ให้เท่ากับ 16pt บน Word

\begin{document}
\title{{\thi การประเมินประสิทธิภาพของระบบการจัดการฐานข้อมูล} XML {\thi แบบโอเพนซอร์ส}}
\author{{\thi ณัฐกานต์ อัมรินทรารักษ์ กานดา สายแก้ว ศิษเฎศ ทองสิมา และ นุวีย์ วิวัฒนวัฒนา}}
\maketitle
\bibliographystyle{amsalpha}

\section{Introduction}
{\thi จากคุณสมบัติของภาษา} XML\cite{w3c:xml} {\thi ที่มีความยืดหยุ่น สามารถออกแบบรูปแบบข้อมูลที่เป็นชื่ออิลิเมนต์และแอตทริบิวต์ตลอดจนโครงสร้า ง
ของข้อมูลได้ และการที่ไม่ขึ้นอยู่กับแพลตฟอร์มใดแพลตฟอร์มหนึ่งทำให้} XML {\thi ถูกนำมาใช้งานอย่างแพร่หลาย
แต่ว่าการจัดการกับข้อมูลที่อยู่ในรูปแบบ} XML {\thi นั้นยังมีความยุ่งยาก จึงมีผู้พัฒนา} Native XML DBMS {\thi
ที่ช่วยทำหน้าที่ในการจัดเก็บและจัดการข้อมูลประเภท} XML {\thi เพื่อเพิ่มประสิทธิภาพในการจัดการข้อมูล}
XML {\thi ซึ่งมีโครงสร้างข้อมูลในรูปแบบต้นไม้ เพราะหากใช้} Relational DBMS
{\thi จะต้องเสียเวลาการแปลงรูปแบบข้อมูลให้เป็นตารางอีกทั้งใช้เวลามากในการหาความสัมพันธ์ระหว่างโหนดต่าง ๆ
ดังนั้นการเลือกใช้ฐานข้อมูลที่เหมาะสมกับรูปแบบข้อมูลและการใช้งานจึง
มีความสำคัญอย่างยิ่งต่อประสิทธิภาพของการทำงาน}
\bibliography{ref}
\end{document}

=== สิ้นสุดของไฟล์ ===

TeX จะเก็บแหล่งข้อมูลอ้างอิงในไฟล์นามสกุล *.bib ในที่นี้เราจะบันทึกไฟล์เป็น ref.bib ซึ่งทำให้เมื่อเราอ้างอิงถึงโดยใช้ \bibliography เราก็จะอ้างอิงถึงชื่อนี้เช่นเดียวกัน ในตัวอย่างนี้เนื้อหาของไฟล์ ref.bib จะมีดังนี้

=== ไฟล์ ref.bib ===

@misc{w3c:xml,
author = "W3C",
title = "Extensible Markup Language (XML)",
howpublished = "http://www.w3.org/XML/",
year = "2008"
}

=== สิ้นสุดของไฟล์ ===

5. จากนั้นคลิกที่เมนู "Run >> Run ..." แล้วพิมพ์ "C:\Program Files\MiKTeX 2.7\miktex\bin\blatex.bat" "$(NAME_PART)" เข้าไปในช่องดังแสดงในรูปที่ 2 โดยที่ $(NAME_PART) เป็น environment variable ของ Notepad++ [2]








รูปที่ 2 การเรียกใช้โปรแกรมภายนอกจาก Notepad++


จากนั้นก็ใส่ Shortcut ที่เราต้องการในการรันคำสั่งดังกล่าวดังแสดงในรูปที่ 3









รูปที่ 3 การระบุชื่อและุ Shortcut สำหรับคำสั่งที่เราสร้างขึ้นมา


ถ้าหากทำทุกอย่างสำเร็จเรียบร้อยดี ก็จะได้รูปที่ 4









รูปที่ 4 ไฟล์ PDF ที่ได้จากการทำขั้นตอนต่างๆ


อ้างอิง

[1] MiKTeX 2.7 (XeTeX) with Thai

http://thailatex.wordpress.com/miktex-27-xetex-with-thai/

[2] Run external tools

http://notepad-plus.sourceforge.net/uk/run-HOWTO.php

2 ความคิดเห็น:

Chakkree T. กล่าวว่า...

ลองปรับคำสั่งดูครับให้ใช้งาน XeTeX ได้สะดวกขึ้นครับ

% ====== Test_XeTeXwithBib.tex======
% ไฟล์แรกเริ่มจาก http://www.thaiittips.blogspot.com/2008/04/tex-windows.html
% ปรับใช้ฟอนต์ AngsanaNew:scrit=thai ยกเลิกคำสั่ง \thi
% ใช้ polyglossia สำหรับวันที่ไทย และอื่น ๆ (แทน babel)
% by chakkree tiyawongsuwan

\documentclass[12pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage[thai]{polyglossia}
\newfontfamily{\thaifont}[Script=Thai]{AngsanaUPC:script=thai}

\defaultfontfeatures{Scale=1.23}
\XeTeXlinebreaklocale "th" %

\begin{document}
\fontspec[
ItalicFont={Angsana New Italic:script=thai},
BoldFont={Angsana New Bold:script=thai},
BoldItalicFont={Angsana New Bold Italic:script=thai},
]{Angsana New:script=thai}

\title{ การประเมินประสิทธิภาพของระบบการจัดการฐานข้อมูล XML แบบโอเพนซอร์ส}
\author{ ณัฐกานต์ อัมรินทรารักษ์ กานดา สายแก้ว ศิษเฎศ ทองสิมา และ นุวีย์ วิวัฒนวัฒนา}
\maketitle
\bibliographystyle{amsalpha}

\section{บทนำ}
จากคุณสมบัติของภาษา XML\cite{w3c:xml} ที่มีความยืดหยุ่น สามารถออกแบบรูปแบบข้อมูลที่เป็นชื่ออิลิเมนต์และแอตทริบิวต์ตลอดจนโครงสร้าง
ของข้อมูลได้ และการที่ไม่ขึ้นอยู่กับแพลตฟอร์มใดแพลตฟอร์มหนึ่งทำให้ XML ถูกนำมาใช้งานอย่างแพร่หลาย
แต่ว่าการจัดการกับข้อมูลที่อยู่ในรูปแบบ XML นั้นยังมีความยุ่งยาก จึงมีผู้พัฒนา Native XML DBMS
ที่ช่วยทำหน้าที่ในการจัดเก็บและจัดการข้อมูลประเภท XML เพื่อเพิ่มประสิทธิภาพในการจัดการข้อมูล
XML ซึ่งมีโครงสร้างข้อมูลในรูปแบบต้นไม้ เพราะหากใช้ Relational DBMS
จะต้องเสียเวลาการแปลงรูปแบบข้อมูลให้เป็นตารางอีกทั้งใช้เวลามากในการหาความสัมพันธ์ระหว่างโหนดต่าง ๆ
ดังนั้นการเลือกใช้ฐานข้อมูลที่เหมาะสมกับรูปแบบข้อมูลและการใช้งานจึง
มีความสำคัญอย่างยิ่งต่อประสิทธิภาพของการทำงาน

\bibliography{ref}
\end{document}

ไม่ระบุชื่อ กล่าวว่า...

How do you make money with a bookie?
Online bookmakers have a lot of tools and are constantly trying new things at the door. But what หาเงินออนไลน์ to do about it, how you make money