การสร้างเอกสารด้วย LaTeX
Part II
ผศ.ดร.ชัยพร ใจแก้ว
ภาควิชาวิศวกรรมคอมพิวเตอร์
คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์
2
เนื้อหา
• การปรับตั้งค่าขนาดกระดาษและขอบเอกสาร
• การสร้างค าสั่งใหม่
• การใส่ภาพและตารางในเอกสาร
• การเตรียมภาพบิทแมบ็และเวคเตอร์ส าหรับเอกสาร
• การใช้งานภาษาไทยใน LaTeX
• คลาสเอกสารอื่น ๆ ที่น่าสนใจ
3
การตั้งค่ากระดาษและคอลัมน์
• ใช้ตัวเลือกในคลาส article
เลือกกระดาษขนาด A4 คอลัมน์เดยีว
\documentclass[a4paper]{article}
เลือกกระดาษขนาด Letter สองคอลัมน์
\documentclass[letterpaper,twocolumn]
{article}
เลือกกระดาษขนาด A4 คอลัมน์เดียว ใช้ฟอนต์ 12pt เป็นมาตรฐาน
\documentclass[12pt,a4paper]{article}
4
การตั้งค่าขอบกระดาษ (margin)
• ท าได้โดยการตั้งค่าตัวแปรที่เกี่ยวข้อง \setlength{\textwidth}{8in}
• LaTeX ใชต้ าแหน่ง (1in,1in)
เป็นจุดอ้างอิง
• แพ็กเกจ geometry ให้ความ
สะดวกมากกว่าในการตั้งค่า
5
แพ็กเกจ geometry
• เพิ่มความสะดวกในปรับตั้งค่าเลย์เอาท์ของเอกสาร
• ตัวอย่าง
ขนาดเนื้อความ = 7in x 10in จัดต าแหนง่กลางหน้ากระดาษ
\usepackage[text={7in,10in},centering]{geometry}
ขอบเอกสารทุกด้าน = 1.5in
\usepackage[margin=1.5in]{geometry}
ขอบบน,ขอบขวา,ขอบล่าง = 1in ขอบซ้าย = 1.5in
\usepackage[top=1in,bottom=1in,right=1in,left=1.5in]
{geometry}
6
การสรา้งค าสั่งใหม่
• \newcommand สร้างค าสั่งใหม่
• \renewcommand สร้างค าสั่งทับค าสั่งเดิม
7
ตัวอย่างการใช้ \newcommand
• ค าสั่งด้านล่างสร้างค าสั่ง \xvec เพื่อพิมพ์ข้อความ x1,…,x
n
ในต าแหน่งที่เรียกใช้ (ต้องอยู่ในโหมด math)
\newcommand{\xvec}{x_1,\ldots,x_n}
• ค าสั่งด้านล่างรับพารามิเตอร์ 2 ตัว\newcommand{\avec}[2]{#1_1,\ldots,#1_#2}
อ้างอิงในค าสั่งโดยใช้ #1 และ #2 ตามล าดับ
\avec{a}{k} ให้ผลลัพธ์เป็น a1,…,ak
8
ตัวอย่างการใช้ \renewcommand
• ปรับให้ใช้เลขโรมันใหญ่เป็นหมายเลข section
\renewcommand{\thesection}{\Roman{section}}
9
ตาราง
• สร้างตารางโดยใช้ tabular environment
\begin{tabular}{cols} … \end{tabular}
\begin{tabular}{rlc}
Head1 & Head2 & Head3 \\
\hline
A & B & C \\
D & & E
\end{tabular}
\begin{tabular}{r|lc}
Head1 & Head2 & Head3 \\
\hline
A & B & C \\
D & & E
\end{tabular}
10
รูปภาพ
• ใช้ค าสั่ง \includegraphics ในแพ็กเกจ graphicx
• pdfLaTeX รองรับไฟล์ฟอร์แมตดังนี้
PDF (ส าหรับ vector graphics)
PNG (ส าหรับ lossless bitmap graphics)
JPG (ส าหรับ lossy bitmap graphics)
11
ตัวอย่างการใช้ \includegraphics
• ดึงภาพจากไฟล์ pic1.pdf ใส่ไว้ในเอกสาร
\includegraphics{pic1.pdf}
• ก าหนดให้ภาพมีขนาดลดลงครึ่งหนึ่ง
\includegraphics[scale=.5]{pic1.pdf}
• ก าหนดให้ภาพมีความกว้าง 2 นิ้ว
\includegraphics[width=2in]{pic1.pdf}
• ก าหนดให้ภาพมีความกว้าง 50% ของความกว้างเนื้อความ
\includegraphics[width=.5\textwidth]{pic1.pdf}
• หมุนภาพ 45 องศา ทวนเข็มนาฬิกา
\includegraphics[angle=45]{pic1.pdf}
12
Floating Table และ Figure
• โดยปกติตารางหรือรปูภาพจะถูกแทรกในเนื้อความ ณ
ต าแหน่งเดียวกันกับซอร์ส
ตารางหรือภาพที่ใหญ่มากจะถูกตัดขึ้นหน้าใหม่ ท าให้
เหลือพื้นที่ว่างในหน้าเดิมมากเกินไป
แก้ไขได้โดยท าให้ตารางและภาพ "ลอยได้"
• \begin{table}…\end{table} สร้าง floating table
• \begin{figure}…\end{figure} สร้าง floating figure
• \begin{table*}…\end{table*} หรือ \begin{figure*}…\end{figure*} เป็นการระบุให้ภาพหรือตารางถูกวางคร่อมสองคอลัมน์
13
ตัวอย่างการใช้ Floating Table/Figure
• ชุดค าสั่งข้างต้นมีผลดังนี้
สร้าง float ที่บรรจุภาพ pic1.jpg
ภาพถูกจัดไว้กึ่งกลางหน้ากระดาษตามแนวนอน
ค าบรรยายใต้ภาพคือ "A picture"
\begin{figure}
\begin{center}
\includegraphics{pic1.jpg}
\end{center}
\caption{A picture}
\end{figure}
14
การระบุต าแหน่งการวาง Float
• t (top) - พยายามวาง float ไว้ด้านบนของหน้ากระดาษ
• b (bottom) - พยายามวาง float ไว้ด้านล่างของหน้ากระดาษ
• p (page) - พยายามวาง float ไว้ในหน้าพเิศษที่มีแต่ float
• ตัวอย่างเช่น \begin{figure}[btp]… เป็นการระบุให้ LaTeX
พยายามวาง float ไว้ด้านล่างของหน้ากระดาษก่อน
หากไม่ส าเร็จให้พยายามวางไว้ด้านบน
หากไม่ส าเร็จอีกให้จัดรวมไว้ในหน้าพิเศษแยกต่างหาก
• ค่าดีฟอลท์ของการวางคือ tbp
15
การเตรียมภาพแบบเวคเตอร์
• pdfLaTeX รองรับไฟล์ฟอร์แมต PDF
• ใช้โปรแกรมใดก็ได้ที่บันทึกภาพเป็น PDF ได้
Inkscape, XFig, ฯลฯ
• PDF ที่สร้างจาก MS Word หรือ Powerpoint มักมี
ขนาดเต็มหน้ากระดาษ
โหลดและบันทึกผ่าน Inkscape เพื่อปรับขอบภาพใหม่
16
การแก้ไขไฟล์ PDF ด้วย Inkscape
• เปิดเอกสาร PDF ด้วย Inkscape
• เลือกวัตถุภาพ สั่ง Ungroup จนกระทั่งพื้นหลังแยกกลุ่มออกมา
• ลบวัตถุที่เป็นพื้นหลังทิ้ง
• เลือกวัตถุที่เหลือทั้งหมด
• เลือกเมนู File -> Document Properties แล้วกด Fit page to selection
• บันทึกไฟล์
17
การแบ่งซอร์สโค้ดเป็นหลายไฟล์
• ใช้ค าสั่ง \input เพื่อโหลดซอร์สจากไฟล์อื่น
\documentclass{article}
\begin{document}
\section{Introduction}
\input{intro.tex}
\section{Related Work}
\input{related.tex}
\section{Results}
\input{results.tex}
\end{document}
18
ภาษาไทยใน LaTeX
• การรองรับภาษาไทยของ LaTeX/pdfLaTeX ค่อนข้าง
ยุ่งยาก
ต้องติดตั้งฟอนต์ภาษาไทยแยกต่างหาก
ต้องแปลงไฟล์ให้อยูใ่นรหัส สมอ. (TIS620)
ปัจจุบันมแีพ็กเกจ inputenc ที่รองรับรหัสยูนิโค้ด
ต้องใช้โปรแกรมตัดค าแยกต่างหาก
• รวมไว้ในชดุโปรแกรม ThaiLaTeX
19
ตัวอย่างการใช้ ThaiLaTeX
• ตัดค าด้วยโปรแกรม swath
• คอมไพล์ผลลัพธ์ด้วย pdflatex
\documentclass{article}
\usepackage[thai]{babel}
\usepackage[utf8x]{inputenc}
\begin{document}
เอกสารภาษาไทย
\end{document}
ระบุว่าเอกสารเป็นภาษาไทย (ชื่อหัวข้อ รูป ตาราง
วันที่ ฯลฯ จะเป็นภาษาไทยทั้งหมด)
ระบุว่าอินพุทเข้ารหัสเป็นแบบ UTF-8
$ pdflatex testthai.ttx
testthai.tex
$ swath -f latex -u u,u < testthai.tex > testthai.ttx
20
XeTeX/XeLaTeX
• ท างานคล้ายคลึงกับ pdfLaTeX
• ใช้งานฟอนต์ที่ติดตั้งไว้กับระบบปฏิบัติการได้ทันที
• ใช้ระบบตัดค าของระบบปฏิบัติการ
• รองรับซอร์สไฟล์รหัส UTF-8
• รวมไว้ในชุดโปรแกรม MiKTeX ตั้งแต่เวอร์ชัน 2.7
เป็นต้นมา
21
การตั้งค่าให้ XeTeX
• เพิ่มค าสั่งต่อไปนี้ลงใน preamble ของเอกสาร
\usepackage{xltxtra}
\usepackage{xunicode}
\usepackage{fontspec}
\defaultfontfeatures{Scale=MatchLowercase}
\XeTeXlinebreaklocale "th_TH"
\setmainfont[Script=Thai]{Loma}
\setmonofont[Script=Thai]{TlwgTypewriter}
ปรับให้อักขระภาษาไทยมีความสูง
ประมาณอักขระภาษาอังกฤษตัวเล็ก
ใช้ระบบตัดค าภาษาไทย
ใช้ฟอนต์ Loma เป็นฟอนต์หลัก
ใช้ฟอนต์ TlwgTypewriter เป็น
ฟอนต์แบบ Monospace (เช่นที่ใช้
กับค าสั่ง \texttt)
22
แหล่งข้อมูลส าหรับภาษาไทยบน LaTeX
• Thai LaTeX User Group
http://thaitug.daytag.org/wordpress/
• Swath (โปรแกรมตัดค า) ส าหรบัวินโดวส์
http://code.google.com/p/swath/
• เอกสารแนะน าการใช้งาน XeTeX/XeLaTeX ของ
ผศ.ดร.ประมวล สุธีจารุวัฒน์
http://www.ie.eng.chula.ac.th/~pramual/books/XeTeX
23
ตัวอย่างคลาสอื่น ๆ ที่น่าสนใจ
• คลาส IEEEtran - ส าหรับสร้างเอกสารวิชาการใน
รูปแบบของ IEEE (รองรับทั้ง conference และ journal)
ข้อมูลเพิ่มเติม
http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
• คลาส res - ส าหรับใช้สร้าง Resume
ดูตัวอย่างได้จาก
http://rpi.edu/dept/arc/training/latex/resumes/
24
ตัวอย่างคลาสอื่น ๆ ที่น่าสนใจ (ต่อ)
• คลาส beamer - สร้างสไลด์ส าหรับน าเสนอ
ดูข้อมูลเพิม่เติมจาก
http://tug.ctan.org/tex-archive/macros/latex/contrib/beamer
25
แหล่งข้อมูลเพิ่มเติม
• ดาวน์โหลดแพ็กเกจและคลาส รวมถึงคู่มอืการใช้งาน
http://www.ctan.org/