Category Archives: เทคนิคทั่วไป

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-590205d40c104604295583/]   รูปผลการรันอัพรูปไม่ได้ครับแต่โหลดตัวอย่างได้ที่

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

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

เรื่องวุ่น ๆ เกี่ยวกับตาราง ตอนที่ 3 multirow with color

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

เรื่องวุ่น ๆ เกี่ยวกับตาราง ตอนที่ 2 multirow

ใครยังไม่ได้อ่านตอนที่หนึ่งก็ไปอ่านได้ที่ เรื่องวุ่น ๆ เกี่ยวกับตาราง ตอนที่ 1 เรื่องทั่วไป ซึ่งเป็นความรู้เบื้องต้นเกี่ยวกับตาราง  ในวันนี้เป็นตอนที่สองของบทความที่คุณสุขุมส่งมา ซึ่งเป็นเรื่องเกียวกับการผสานแนวตั้ง (merge row) ซึ่งจะว่าเป็นเทคนิคเบื้องต้นก็ไม่ถูกนักเพราะว่าจำเป็นต้องใช้แพ็กเกจพิเศษช่วย นั่นคือแพ็กเกจ multirow นั่นเอง มาดูตัวอย่างกันก่อน จากตัวอย่างในรูปข้างบน จะเห็นว่า คำว่า Defenders, Midfielders, Strikers นั้นจะอยู่ตรงกึ่งกลางของ 4, 3 , 2 แถวตามลำดับ ใน LaTeX นั้นใช่ว่าจะทำกันได้ง่าย ๆ นักเลงรุ่นเก่าจริง ๆ (คนที่ไม่รู้จักแพ็กเกจ multirow) จะใช้คำสั่ง raisebox  ซึ่งยุ่งยากมาก

เรื่องวุ่น ๆ เกี่ยวกับตาราง ตอนที่ 1

ในการใช้งาน LaTeX นั้นมีอยู่สองเรื่องที่ค่อนข้างเป็นปัญหา  ทั้ง ๆ เป็นเรื่องที่ใช้กันค่อนข้างบ่อยบนโปรแกรม Word Processing  สองสิ่งนี้ก็คือ Tab กับตาราง ในโปรแกรม Word Processing นั้นจะมีส่วนติดต่อกับผู้ใช้จึงทำให้การทำงานร่วมกับตารางนั้นค่อนข้างง่าย แต่สำหรับ LaTeX แล้วต้องทำเองจึงยากและสับสนพอสมควร ในการสร้างตารางในเอกสารวิชาการที่ดีนั้น สามารถหาอ่านได้จากเอกสารของแพ็กเกจ booktabs สำหรับที่เป็นภาษาไทยก็เคยมีคนเขียนไว้ที่ การทำตารางให้สวย โดยคุณ ichris  แต่ช้าก่อนการใช้งานแพ็กเกจ booktabs นั้นดีง่าย แต่เข้ากันไม่ได้กับแพ็กเกจ caption ซึ่งมีประโยชน์มากกว่า ด้วยเหตุผลง่าย ๆ คือของง่าย ๆ แบบที่ booktabs ทำได้นั้น ทำเองได้ไม่ยาก แต่สิ่งที่ caption

Equation numbering with alphabet

ในบางครั้งในการเขียนสมการเราก็ต้องการจัดกลุ่มของสมการเช่น 1a 1b ... 1e แทนที่จะเรียงแบบ 1 2 ... 5 ซึ่งแบบแรกจะสามารถสื่อสารได้ดีกว่าว่าเป็นสมการเรื่องเดียวกัน ปกติก็ไม่เคยใช้หรือคิดจะใช้นะครับ พอดีเห็นคำค้นเรื่องนี้ก็เลยสนใจ พอค้น google ก็มีคนแนะนำว่าใน package amsmath นั้นมีชุดคำสั่งนี้ให้อยู่แล้ว แถมยังบอกหน้าให้เสร็จสรรพว่าหน้า 10 พอเข้าไปก็ลองทำตามที่คู่มือบอก ปรากฏว่าไม่ได้ ก็ไม่ยากครับไปค้น google อีกรอบได้วิธีทำที่ละเอียดกว่าที่ wikibooks ซึ่งมีวิธีการดังนี้นะครับ [crayon-590205d43d1f5445924711/] ไปลองดูรายละเอียดกันเองนะครับ ไม่ยากอะไร ถ้าต้องการ 1ก 2ข ... ก็ต้องลงแพ็กเกจภาษาไทยก่อนแล้วก็ทำตามนี้นะครับ [crayon-590205d43d203259962758/] โดยการแปลงตัวเลขให้เป็นภาษาไทย โดยใช้คำสั่ง thaialph{equation}

ปรับแต่ง item ด้วยแพ็กเกจ enumitem

เคยได้เขียนเรื่องการปรับแต่ง item ไว้ที่ การปรับแต่ง item ง่าย ๆ ด้วย enumitem วันนี้ลองมาเขียนขยายความดูใหม่ ในการสร้าง item บางครั้งเราก็ต้องการรูปแบบของหัวข้อที่แตกต่างกันออกไป รวมไปถึงระยะกั้นหน้ากั้นหลังด้วย ในบทความเก่านั้นได้แสดงให้เห็นถึงวิธีปรกติที่ใช้โดยไม่ต้องผ่านแพ็กเกจใด ๆ ซึ่งยุ่งยากพอสมควร แพ็กเกจ enumitem นั้นสามารถช่วยลดความยุ่งยากเหล่านี้ได้ ในที่นี้จะแสดงวิธีใช้ให้ดูประกอบเพียงสองตัวอย่าง ตัวอย่างที่หนึ่งคือการทำให้หัวข้อ item แบบตัวเลข แสดงเป็นเลขโรมันตัวเล็กและอยู่ใน mathmode ซึ่งนิยมใช้กันในหนังสือคณิตศาสตร์ทั่วไป  ตามรูปที่แสดงข้างล่าง ซึ่งสามารถทำได้ง่าย ๆ โดยใช้แพ็กเพจ enumitem ดังนี้ [crayon-590205d43d7b2106031884/] ซึ่งจะเห็นว่าเราสามารถกำหนดรูปแบบของ item ได้ตามต้องการโดยใช้ตัวเลือก [label=$roman{*}$.] ตัวอย่างที่สองเป็นเรื่องการใช้ภาษาไทย ซึ่งมีข่าวร้ายเพราะแพ็กเกจนี้ใช้กับ

Export Simulink Diagram to use in LaTeX Document

ภาพจาก Simulink ของ Matlab เป็นหนึ่งในภาพที่การจับภาพจากหน้าจอไปลงเอกสารได้รับความนิยมมาก ๆ ส่วนใหญ่ก็จะได้กรอบของหน้าต่างติดมาด้วย พอมาใช้ในเอกสารจริง การย่อขยายรูปภาพก็จะทำให้ได้รูปที่ดูไม่ดีนัก จริง ๆ แล้วถ้าดูเอกสารของ Simulink บริษัท Mathworks นั้นจะไม่พบว่ามีการจับภาพจากหน้าจอมาใส่แต่อย่างใด ในบทความนี้จะนำเสนอวิธีการดึงรูปจาก Simulink ในรูปแบบเวกเตอร์มาใส่เอกสารบน LaTeX ให้ได้รูปที่ดี และสามารถใช้ได้ทั้ง LaTeX และ pdfLaTeX หลังจากสร้าง Simulink ไฟล์เรียบร้อยแล้ว ก็ใส่จัดเก็บในชื่อที่ต้องการ ในที่นี้จะใช้ thaitug คำสั่งที่ต้องใช้งานคือ [crayon-590205d440526583769267/] ตัวเลือก -sthaitug คือ Simulink ไฟล์ที่เราต้องการในที่นี้คือ thaitug.mdl ส่วน

Chapter หรือ Section ที่มี สัญลักษณ์คณิตศาสตร์

Chapter หรือ Section ที่มี สัญลักษณ์คณิตศาสตร์ ในกรณีที่ใช้ Hyperref จะมีคำเตือนจาก LaTeX นะครับ มีคำเตือนมาก ๆ ก็ไม่ดี วิธีแก้ก็คือให้ครอบสมการด้วย texorpdfstring{$สัญญลักษณ์คณิตศาสตร์$}{} คำเตือนก็จะหายไปครับ ยกตัวอย่างเช่น [crayon-590205d440c1b733858573/]

คู่มือการเขียนสมการคณิตศาสตร์ด้วย LaTeX ที่ดีที่สุด

เอกสารที่สร้างด้วย LaTeX นั้น เวลาเขียนจะต้องบอกด้วยว่าเขียนในโหมดไหน ซึ่งใน LaTeX ก็มีโหมดบังคับอยู่สองโหมดคือ Text mode Math mode ค่าตั้งต้นก็เป็น Text mode แต่เวลาต้องการใส่สมการคณิตศาสตร์ เราจะต้องเปลี่ยนเป็น Math mode ก่อน ซึ่งเอกสารที่ดีที่สุดเท่าที่เคยเห็นมาก็เห็นจะเป็นเอกสารของนาย Herbert Voß ซึ่งตามหาได้ที่ Math mode - v.2.43 ซึ่งเอกสารตัวนี้จะอธิบายถึงการใช้เบื้องต้นจนถึงการใช้งานขั้นสูง แต่เนื่องจากตัวเอกสารนั้นมีขนาดหนาถึง 136 หน้า จึงไม่เหมาะอย่างยิ่งสำหรับผู้ที่ยังไม่เคยลอง LaTeX เลย สำหรับผู้เริ่มต้นอาจจะเริ่มจาก The not so short introduction