Category Archives: TeX & LaTeX

Plot2SVG MATLAB and Inkscape

หลายคงคงรู้ว่าเวลาเอารูปจาก MATLAB ไปใส่ในเอกสาร LaTeX นั้น ฟอนต์ที่อยู่ในกราฟนั้นจะไม่เหมือนกับเอกสาร ปัญหานี้จะว่าใหญ่ก็ไม่เชิง จะว่าเล็กก็ไม่เชิง ขึ้นอยู่กับมุมมองของแต่ละคน แน่นอนสำหรับผมนั้นแค่เอารูปแบบ pdf หรือ eps ไปใช้ในเอกสารแล้วภาพไม่แตก พิมพ์ออกมาสวยงามกว่าชาวบ้านเขาก็พอแล้ว แต่ปรากฏว่าปัญหานี้ใหญ่พอสมควรสำหรับคนเยอรมันที่ผมทำงานด้วย จริง ๆ มีวิธีแก้ไขหลายวิธีปัญหานี้ได้พูดกันอย่างกว้างขวางที่ What is the best way to include Matlab graphics รวมถึงวิธีแก้ไขด้วยครับ  วิธีที่ดีที่สุดให้ดูคำตอบของคุณ Shuhao Cao ที่มีรูปเยอะ ๆ ซึ่งคุณ Shuhao Cao ได้แสดงปัญหาของการใช้ matlab2tikz ซึ่งมีผู้นิยมใช้กันมาก

การสร้างกรอบรอบกระดาษ ด้วย XeLaTeX

ช่วงนี้เริ่มจะเปิดภาคการศึกษา ปกติจะทำเอกสารการบ้านสำหรับนักศึกษา ซึ่งทุกครั้งจะใช้โปรแกรมสำนักงานสำหรับจัดทำเอกสารสร้างงานการบ้าน แต่ตอนนี้เห็นว่ามาลองใช้งาน XeLaTeX เลยอยากจะลองสร้างด้วย XeLaTeX แต่จริง ๆ แล้วก็เคยอยากทำมานานแล้วแต่ไม่สำเร็จ เพิ่งสำเร็จเลยนำมาลองให้เพื่อน ๆ ลองทดสอบกันครับ การตบแต่งกรอบกระดาษก็จะใช้คำสั่ง \AddToShipoutPicture{} เพื่อกำหนดส่วนที่จะแสดงทุกหน้า และภายในใช้คำสั่ง \framebox สร้างกรอบสี่เหลี่ยมใหญ่ แล้ววางชิ้นส่วนอื่น ๆ ด้วยคำสั่ง \put ไม่ว่าจะเป็นเส้นที่ใช้คำสั่ง \line หรือ \rule ก็ได้ การกำหนดขอบกระดาษ กำหนดให้สอดคล้องกับโครงกรอบที่เราวาดด้วยแพ็กเก็จ geometry ใช้แพ็กเก็จ lastpage เพื่อให้แสดงค่าเลขหน้าสุดท้าย ใช้คำสั่ง \fontsize{14pt}{16pt}\selectfont ในการกำหนดขนาดของฟอนต์ครับ [crayon-5c41fee03ffbd330204971/]   รูปผลการรันอัพรูปไม่ได้ครับแต่โหลดตัวอย่างได้ที่

ทักทายเดือนเมษายน -- เปลี่ยนทำไม

กลับมาอีกครั้งตามคำเรียกร้องของมิตรรักแฟน LaTeX หายไปหลายเดือน (ฮา) จะว่ากันตามจริง การเขียนบทความนั้นมันต้องมีแรงบันดาลใจ มีความหงุดหงิด และ อื่น ๆ ฯลฯ ในฐานะคนแก่ที่ค่อนข้างจะอนุรักษ์นิยม ซึ่งเป็นคนไม่ชอบเดินทาง ไม่ชอบเปลี่ยนแปลง ไม่ชอบพิธีการ ก็จะขอย้ำกับมิตรรัก LaTeX ว่าอย่าพยายามไปเปลี่ยนให้คนมาใช้ LaTeX ด้วยการบังคับ ควรจะให้พวกเขาเห็นคุณค่าของมัน ผมเห็นมาหลายกรณีมากครับที่ อาจารย์จบจากเมืองนอกใช้ LaTeX ในการเขียน Thesis เล่มโต พอกลับมาเมืองไทยก็เลิกใช้ LaTeX ในทุก ๆ กรณี ซึ่งเรื่องนี้ผมถือว่าเสียพลังงานอย่างมาก และไม่ได้ประโยชน์ มาเรื่องทั่วไปบ้าง ช่วงนี้มีการรณรงค์ประหยัดไฟ โดยการปิดไฟฟ้าตามช่วงเวลาต่าง ๆ ซึ่งดูดีมีประโยชน์ แต่จริง

ก้าวแรกสู่สังเวียน BibLaTeX ตอนที่ 1 Jabref

ตามที่ได้กล่าวไปแล้วว่าจะมีการพูดถึงการใช้ BibLaTeX ทั้งนี้เพื่อให้เราสามารถปรับปรุงรูปแบบการอ้างอิงเอกสารได้โดยไม่ต้องพึ่งพาไฟล์ bst (ที่อาจจะปรับปรุงแก้ไขได้ยาก) ซึ่งไม่คล่องตัวนัก ซึ่งการใช้ BibLaTeX จะทำให้มีความคล่องตัวมากกว่า และผู้ใช้สามารถเปลี่ยนแปลงแก้ไขได้อย่างสะดวกและบ่อยครั้ง ตัวอย่างเช่นรูปแบบการแสดงเอกสารอ้างอิงในวิทยานิพนธ์ของมหาวิทยาลัยไทยแห่งหนึ่งกำหนดดังในรูปข้างล่าง  ซึ่งถ้าใครใช้รูปแบบของ IEEE อยู่ก็จะรู้ว่ามันไม่เหมือนกัน  เนื้อหาในตอนนี้จะเป็นการเตรียมความพร้อมของผู้ใช้ให้พร้อมใช้ BibLaTeX ก่อน ในตอนที่ 1 นี้จะเป็นการปรับแต่ง Jabref ให้รอบรับภาษาไทยครับ เนื่องจากการใช้ Jabref เพื่อเก็บรายละเอียดของเอกสารอ้างอิงของเรานั้นเป็นเรื่องที่สะดวกที่สุดในสายตาผม วิธีการทำให้ Jabref รู้จักภาษาไทยก็สามารถทำได้ง่าย คือติดตั้งฟอนต์ภาษาไทยที่ต้องการจะใช้เข้าไปยังโฟลเดอร์ที่ติดตั้ง Java เอาไว้  สำหรับกรณีของผมก็คือที่ C:\Program Files\Java\jre6\lib\fonts  ซึ่งฟอนต์ที่ดีที่แนะนำก็คือฟอนต์ Garuda ครับ  เมื่อคัดลอกไฟล์ฟอนต์ไปวางไว้ในโฟลเดอร์ดังกล่าว ก็เป็นอันเสร็จพิธี  Jabref ของเราสามารถใช้ภาษาไทยได้อย่างราบรื่นครับ

ปัญหาของ XeLaTeX กับ MiKTeX

ในช่วงที่ผ่านมา ไม่ได้ยุ่งเกี่ยวอะไรกับ pdfLaTeX มานานมากแล้ว งานส่วนใหญ่หันไปใช้ XeLaTeX หมดแล้ว เพราะความสามารถที่มากกว่า ใช้ฟอนต์ของ OS นั้น ๆ ได้ ใช้งานกับภาษาไทยได้ดี  ช่วงนี้ถ้าใคร Update MiKTeX แล้วหล่ะก็ ก็จะมีปัญหากับแพ็กเกจสองตัวคือ expl3 กับ xpackages  ซึ่งถูกแทนที่ด้วย l3kernel กับ l3packages แต่ตอนนี้ MiKTeX ยังไม่ได้แก้ไข ผู้ใช้จะต้องลงเองนะครับ โดยใช้ตัวจัดการแพ็กเกจของ MiKTeX ครับ ปัญหาก็จะหมดไป  

การใช้ pdfpages ร่วมกับ fancy header สร้างส่วน header+footer ให้กับเอกสาร pdf

ปัญหา มีเหตุจากผมใช้งานโปรแกรม Office แล้วมีปัญหาบางประการในการจัดเลขหน้าและส่วนหัวและส่วนท้าย และจากขนาดของไฟล์ที่ใหญ่มาก ทำให้การทำงานของโปรแกรมไม่เสถียร โปรแกรมจะค้างบ่อย ๆ เมือแก้ไขเอกสารจะค่อยข้างเสียเวลาและเสียอารมณ์เป็นอย่างยิ่ง แนวทางแก้ ทำการสร้างเอกสารใหม่ด้วยโปรแกรม Office ที่ไม่มีส่วนหัวและท้ายกระดาษ และตั้งค่าขอบกระดาษเป็น 25 มม ทั้งหมด แล้วทำการส่งออกเป็นเอกสาร pdf ที่ไม่มีเลขหน้า ใช้งาน pdfLaTeX โดนการเรียกแพกเกจ pdfpages ร่วมกับ fancy header สร้างส่วน header และ footer ให้กับเอกสาร pdf หลังจากนั้นถึงใช้งาน LaTeX ในการแทรกส่วนหัวและท้ายกระดาษ พอจะแก้ปัญหาชั่วคราวไปก่อน ได้รหัสคำสั่งดังแสดงครับ แพกเกจ babel

แพ็กเกจ pgfpages with XeTeX

วันก่อนอาจารย์ท่านหนึ่งได้ส่งคำถามเรื่องการสร้างเอกสารจาก beamer 4 หน้าลงใน 1 หน้า A4 โดยใช้แพ็กเกจ pgfpages บน XeTeX ซึ่งต้องบอกก่อนว่าแพ็กเกจ นี้สามารถใช้งานกับ LaTeX และ pdfLaTeX ได้เป็นอย่างดี  ส่วนตัวไม่เคยลองกับ XeTeX เลย  พึ่งได้มาลองก็ตอนที่ได้ไฟล์มาจากอาจารย์ท่านที่ส่งคำถามมาเนี่ยแหละครับ (XeTeX เป็นความหวังของชุมชนที่จะสามารถใช้ฟอนต์ภาษาไทยกับ LaTeX ได้อย่างอิสระ) เมื่อได้ลองแล้วก็หาทางแก้ไข ไม่ว่าจะทางเว็บ stack exchange และที่อื่น ๆ ก็ไม่สามารถแก้ปัญหาได้ แต่ได้รู้ปัญหาคือแพ็กเกจ pgf  ที่แพ็กเกจ pgfpages ใช้นั้น ไม่สนับสนุน XeTeX  วิธีแก้ไขมีทางเดียวครับคือเข้าไปแก้ไข

วาดแผนภาพ (diagram) ง่าย(ที่ไหน) ด้วย TikZ ตอนที่ 1

ถ้าใครเคยใช้ beamer, TikZ มาบ้าง แล้วเริ่มต้นด้วยการอ่านคู่มือโดยมีเป้าหมายเพื่อที่จำทำงานง่าย ๆ บางอย่างให้เสร็จในเวลาอันรวดเร็ว นั่นหมายความว่าคุณชอบทรมานตัวเอง คู่มือของ beamer และ TikZ นั้นหนา รายละเอียดเยอะ แล้วก็ "ต้องอ่านตั้งแต่ต้น" ใครไม่เคยใช้ beamer และ TikZ และไม่อยากแตะ แต่เคยสัมผัสคู่มือของอุปกรณ์จากเยอรมันเช่น Siemens, dSpace (อาจจะรวม SAP เข้าไปด้วย) ก็น่าจะรู้ดีว่า คู่มือเหล่านี้จะมี Quick Start ที่อ่านจบแล้วไปต่อไปไม่ได้ ตัวอย่างถัดไปไม่สามารถขยายต่อจากตัวอย่างใน Quick Start ได้ บางครั้งทำตามตัวอย่างในบทถัด ๆ ไปทุกอย่าง แต่ได้

Presentation Beamer and Video

เมื่อวานนั่นฉลาดน้อยอยู่ครึ่งคืนครับ เพราะว่าต้องการตัดต่อวิดีโอเพื่อเอาไปแสดงบน Beamer ผ่านแพ็กเกจ movie15 ซึ่งบอกว่าสนับสนุนไฟล์แบบ mwv  ของไมโครซอฟท์ด้วย ผมถ่ายวิดีโอด้วยกล้องที่บ้านเป็นไฟล์ avi ซึ่งสามารถนำมาตัดต่อแต่งเติมบน windows live movie maker ที่ติดมากับ windows 7 ได้ ซึ่งตัวโปรแกรมนั้นใช้ง่ายมาก ใช้เวลาไม่ทันชาเย็นก็สามารถทำงานตามที่ต้องการได้ (แบบง่าย ๆ) แต่จะด้วยเหตุและผลอะไรก็แล้วแต่ท่านไมโครซอฟท์นั้นให้บันทึกไฟล์ที่ตกแต่งแล้วได้รูปแบบเดียวคือ mwv พอเอาไปลองใช้งานกับ movie15 จริง ๆ แล้วใช้ไม่ได้ ทีนี้พอเอาไฟล์ avi กลับใช้งานได้ ค่อนคืนก็ไม่ได้ทำอะไร นั่งหาโปรแกรมฟรีแวร์ที่ใช้ในการแปลง mwv ไปเป็น avi  ก็ได้โปรแกรมหนึ่งไปใช้นะครับ ส่วนที่ให้ใช้ฟรีใช้งานได้ดีระดับหนึ่งทีเดียว แต่ว่าไฟล์

Beamer Theme: Boonto1

ใน PracTeX Journal ฉบับ 2010-2 ได้ลงบทความเกี่ยวกับการทำ Presentation สำหรับงานวิทยาศาสตร์ โดยใช้วิธีสร้าง preamble และจัดการส่วนต่าง ๆ ให้เหมือนกับ Beamer โดยส่วนตัว เห็นว่ายุ่งยากไปหน่อยถ้า และถ้าเราต้องการใช้ความสามารถของ Beamer เราก็ไม่สามารถใช้ได้ ผมเลยลองดัดแปลงแม่แบบดังกล่าวให้เป็นธีมสำหรับ Beamer   รูปข้างต้นเป็นผลลัพธ์ที่ได้ ถ้าอยากดูไฟล์ pdf ก็คลิ๊กที่รูปได้โดยตรงครับ  รูปโลโก้น่าเกลียด ๆ นั้นไม่ใช่ของผม แต่เป็นโลโก้ของ Beamer เขา สำหรับผู้ที่อยากจะนำไปใช้งานสามารถดาว์นโหลดไฟลสองไฟล์ดังนี้ครับ test.tex เป็นแม่แบบสำหรับนำไปใช้งาน  มีคำสั่ง \mybox{}{} ให้ใช้ beamerthemeBOONTO1.sty เป็นไฟล์ธีมหลัก

ความคืบหน้า Xe(La)TeX Thai Thesis Template

ตามที่เคยแจ้งไปว่าขณะที่กำลังทำแม่แบบภาษาไทยสำหรับวิทยานิพนธ์ระดับปริญญาตรี โดยใช้ LaTeX (XeLaTeX) ความคืบหน้าขณะนี้คือ ฟอนต์ Angsana New ฟอนต์บังคับสำหรับวิทยานิพนธ์ (ฟอนต์ที่ดูดีฟอนต์แรก และชื่อจำง่าย ถ้าเป็น Thesis ภาษาอังกฤษจะใช้ฟอนต์ที่ทางการกว่า ซึ่งจะไปตรงกับ Browallia New มากกว่า น่าเสียดายจริง ๆ) นั้นมีปัญหากับ แพ็กเกจที่สำคัญสองตัว คือ polyglossia  และ xltxtra ซึ่งทำให้การแสดงผลสระอู สระอิ ผิดจากที่ควรเป็น ในขณะที่ฟอนต์อื่นไม่เป็น ข่าวดีเล็กน้อยคือแก้ปัญหานี้ได้แล้ว ด้วยการไม่ใช้แพ็กเกจทั้งสอง และกับไปใช้แพ็กเกจ fontspec แทน และการกำหนดฟอนต์หลักต้องใช้คำสั่ง [crayon-5c41fee0efd14567318365/] น่าเศร้ามากที่การแก้ปัญหานี้ใช้เวลาถึงสองวัน ไฟล์ที่เกี่ยวข้องคือไฟล์ gloss-thai.ldf