260 likes | 967 Views
การสร้างเอกสารด้วย LaTeX Part II. ผศ.ดร.ชัยพร ใจแก้ว ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์. เนื้อหา. การปรับตั้งค่าขนาดกระดาษและขอบเอกสาร การสร้างคำสั่งใหม่ การใส่ภาพและตารางในเอกสาร การเตรียมภาพบิทแม็บและเวคเตอร์สำหรับเอกสาร การใช้งานภาษาไทยใน LaTeX
E N D
การสร้างเอกสารด้วย LaTeXPart II ผศ.ดร.ชัยพร ใจแก้ว ภาควิชาวิศวกรรมคอมพิวเตอร์คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์
เนื้อหา • การปรับตั้งค่าขนาดกระดาษและขอบเอกสาร • การสร้างคำสั่งใหม่ • การใส่ภาพและตารางในเอกสาร • การเตรียมภาพบิทแม็บและเวคเตอร์สำหรับเอกสาร • การใช้งานภาษาไทยใน LaTeX • คลาสเอกสารอื่น ๆ ที่น่าสนใจ
การตั้งค่ากระดาษและคอลัมน์การตั้งค่ากระดาษและคอลัมน์ • ใช้ตัวเลือกในคลาส article • เลือกกระดาษขนาด A4 คอลัมน์เดียว \documentclass[a4paper]{article} • เลือกกระดาษขนาด Letter สองคอลัมน์ \documentclass[letterpaper,twocolumn]{article} • เลือกกระดาษขนาด A4 คอลัมน์เดียวใช้ฟอนต์ 12pt เป็นมาตรฐาน \documentclass[12pt,a4paper]{article}
การตั้งค่าขอบกระดาษ (margin) • ทำได้โดยการตั้งค่าตัวแปรที่เกี่ยวข้อง • \setlength{\textwidth}{8in} • LaTeX ใช้ตำแหน่ง (1in,1in) เป็นจุดอ้างอิง • แพ็กเกจ geometry ให้ความสะดวกมากกว่าในการตั้งค่า
แพ็กเกจ 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}
การสร้างคำสั่งใหม่ • \newcommand สร้างคำสั่งใหม่ • \renewcommand สร้างคำสั่งทับคำสั่งเดิม
ตัวอย่างการใช้ \newcommand • คำสั่งด้านล่างสร้างคำสั่ง \xvec เพื่อพิมพ์ข้อความ x1,…,xnในตำแหน่งที่เรียกใช้ (ต้องอยู่ในโหมด math) \newcommand{\xvec}{x_1,\ldots,x_n} • คำสั่งด้านล่างรับพารามิเตอร์ 2 ตัว \newcommand{\avec}[2]{#1_1,\ldots,#1_#2} • อ้างอิงในคำสั่งโดยใช้ #1 และ #2 ตามลำดับ • \avec{a}{k} ให้ผลลัพธ์เป็น a1,…,ak
ตัวอย่างการใช้ \renewcommand • ปรับให้ใช้เลขโรมันใหญ่เป็นหมายเลข section \renewcommand{\thesection}{\Roman{section}}
ตาราง • สร้างตารางโดยใช้ 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}
รูปภาพ • ใช้คำสั่ง \includegraphics ในแพ็กเกจ graphicx • pdfLaTeX รองรับไฟล์ฟอร์แมตดังนี้ • PDF (สำหรับ vector graphics) • PNG (สำหรับ lossless bitmap graphics) • JPG (สำหรับ lossy bitmap graphics)
ตัวอย่างการใช้ \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}
Floating Table และ Figure • โดยปกติตารางหรือรูปภาพจะถูกแทรกในเนื้อความ ณ ตำแหน่งเดียวกันกับซอร์ส • ตารางหรือภาพที่ใหญ่มากจะถูกตัดขึ้นหน้าใหม่ ทำให้เหลือพื้นที่ว่างในหน้าเดิมมากเกินไป • แก้ไขได้โดยทำให้ตารางและภาพ "ลอยได้" • \begin{table}…\end{table} สร้าง floating table • \begin{figure}…\end{figure} สร้าง floating figure • \begin{table*}…\end{table*} หรือ \begin{figure*}…\end{figure*} เป็นการระบุให้ภาพหรือตารางถูกวางคร่อมสองคอลัมน์
ตัวอย่างการใช้ Floating Table/Figure • ชุดคำสั่งข้างต้นมีผลดังนี้ • สร้าง float ที่บรรจุภาพ pic1.jpg • ภาพถูกจัดไว้กึ่งกลางหน้ากระดาษตามแนวนอน • คำบรรยายใต้ภาพคือ "A picture" \begin{figure} \begin{center} \includegraphics{pic1.jpg} \end{center} \caption{A picture} \end{figure}
การระบุตำแหน่งการวาง Float • t (top) - พยายามวาง float ไว้ด้านบนของหน้ากระดาษ • b (bottom) - พยายามวาง float ไว้ด้านล่างของหน้ากระดาษ • p (page) - พยายามวาง float ไว้ในหน้าพิเศษที่มีแต่ float • ตัวอย่างเช่น \begin{figure}[btp]…เป็นการระบุให้ LaTeX • พยายามวาง float ไว้ด้านล่างของหน้ากระดาษก่อน • หากไม่สำเร็จให้พยายามวางไว้ด้านบน • หากไม่สำเร็จอีกให้จัดรวมไว้ในหน้าพิเศษแยกต่างหาก • ค่าดีฟอลท์ของการวางคือ tbp
การเตรียมภาพแบบเวคเตอร์การเตรียมภาพแบบเวคเตอร์ • pdfLaTeX รองรับไฟล์ฟอร์แมต PDF • ใช้โปรแกรมใดก็ได้ที่บันทึกภาพเป็น PDF ได้ • Inkscape, XFig, ฯลฯ • PDF ที่สร้างจาก MS Word หรือ Powerpoint มักมีขนาดเต็มหน้ากระดาษ • โหลดและบันทึกผ่าน Inkscape เพื่อปรับขอบภาพใหม่
การแก้ไขไฟล์ PDF ด้วย Inkscape • เปิดเอกสาร PDF ด้วย Inkscape • เลือกวัตถุภาพ สั่ง Ungroup จนกระทั่งพื้นหลังแยกกลุ่มออกมา • ลบวัตถุที่เป็นพื้นหลังทิ้ง • เลือกวัตถุที่เหลือทั้งหมด • เลือกเมนู File -> Document Properties แล้วกด Fit page to selection • บันทึกไฟล์
การแบ่งซอร์สโค้ดเป็นหลายไฟล์การแบ่งซอร์สโค้ดเป็นหลายไฟล์ • ใช้คำสั่ง \input เพื่อโหลดซอร์สจากไฟล์อื่น \documentclass{article} \begin{document} \section{Introduction} \input{intro.tex} \section{Related Work} \input{related.tex} \section{Results} \input{results.tex} \end{document}
ภาษาไทยใน LaTeX • การรองรับภาษาไทยของ LaTeX/pdfLaTeX ค่อนข้างยุ่งยาก • ต้องติดตั้งฟอนต์ภาษาไทยแยกต่างหาก • ต้องแปลงไฟล์ให้อยู่ในรหัส สมอ. (TIS620) • ปัจจุบันมีแพ็กเกจ inputencที่รองรับรหัสยูนิโค้ด • ต้องใช้โปรแกรมตัดคำแยกต่างหาก • รวมไว้ในชุดโปรแกรม ThaiLaTeX
ตัวอย่างการใช้ ThaiLaTeX ระบุว่าเอกสารเป็นภาษาไทย (ชื่อหัวข้อ รูป ตาราง วันที่ ฯลฯ จะเป็นภาษาไทยทั้งหมด) • ตัดคำด้วยโปรแกรม swath • คอมไพล์ผลลัพธ์ด้วย pdflatex \documentclass{article} \usepackage[thai]{babel} \usepackage[utf8x]{inputenc} \begin{document} เอกสารภาษาไทย \end{document} ระบุว่าอินพุทเข้ารหัสเป็นแบบ UTF-8 testthai.tex $ swath -f latex -u u,u < testthai.tex > testthai.ttx $ pdflatex testthai.ttx
XeTeX/XeLaTeX • ทำงานคล้ายคลึงกับ pdfLaTeX • ใช้งานฟอนต์ที่ติดตั้งไว้กับระบบปฏิบัติการได้ทันที • ใช้ระบบตัดคำของระบบปฏิบัติการ • รองรับซอร์สไฟล์รหัส UTF-8 • รวมไว้ในชุดโปรแกรม MiKTeX ตั้งแต่เวอร์ชัน 2.7 เป็นต้นมา
การตั้งค่าให้ 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)
แหล่งข้อมูลสำหรับภาษาไทยบน 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
ตัวอย่างคลาสอื่น ๆ ที่น่าสนใจ • คลาส IEEEtran - สำหรับสร้างเอกสารวิชาการในรูปแบบของ IEEE (รองรับทั้ง conference และ journal) • ข้อมูลเพิ่มเติม http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/ • คลาส res- สำหรับใช้สร้าง Resume • ดูตัวอย่างได้จาก http://rpi.edu/dept/arc/training/latex/resumes/
ตัวอย่างคลาสอื่น ๆ ที่น่าสนใจ (ต่อ) • คลาส beamer - สร้างสไลด์สำหรับนำเสนอ • ดูข้อมูลเพิ่มเติมจาก http://tug.ctan.org/tex-archive/macros/latex/contrib/beamer
แหล่งข้อมูลเพิ่มเติม • ดาวน์โหลดแพ็กเกจและคลาส รวมถึงคู่มือการใช้งาน http://www.ctan.org/