Category Archives: เทคนิค

เรื่องวุ่น ๆ เกี่ยวกับตาราง ตอนที่ 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-5c41f30e1bfa9057743897/] ไปลองดูรายละเอียดกันเองนะครับ ไม่ยากอะไร ถ้าต้องการ 1ก 2ข ... ก็ต้องลงแพ็กเกจภาษาไทยก่อนแล้วก็ทำตามนี้นะครับ [crayon-5c41f30e1bfbb068143507/] โดยการแปลงตัวเลขให้เป็นภาษาไทย โดยใช้คำสั่ง thaialph{equation}

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

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

Export Simulink Diagram to use in LaTeX Document

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

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

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

คู่มือการเขียนสมการคณิตศาสตร์ด้วย 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

การแสดงภาพซ้อนภาพ pictures over picture

เรื่องนี้จะเป็นเรื่องแรกที่เขียนสองที่นะครับ ทั้งบน thai-tug และ thailatex โดยในระยะแรกจะเขียนทั้งสองที่ เมื่อเว็บ thai-tug เริ่มอยู่ตัวก็จะเขียนเพียงที่เดียว จะได้ไม่แยกลูกค้ากัน เรื่องนี้ได้รับคำถามจากเพื่อนโดยที่ผมไม่ได้ตอบ และเพื่อนก็จัดการทำเองและได้แนะนำแพ็กเกจ overpic เขียนโดย Rolf Niepraschk ชาวเยอรมันตั้งแต่ปี 1997 และมีการปรับปรุงแก้ไขในสองปีถัดมา ซึ่งแกมีผลงานเกี่ยวกับ LaTeX หลายชิ้นด้วยกัน ที่น่าเศร้าคือไม่มีคู่มือ ถ้าอยากได้คู่มือต้องคอมไพล์เอง ซึ่งคู่มือก็ไม่อธิบายอะไรว่ากันเนื้อ ๆ (จริง ๆ มันคือตัวอย่าง) เริ่มต้นที่การใช้งานแบบสัมพันธ์ง่าย ๆ กันเลยครับ โดยการเริ่มใช้แพ็กเกจ [crayon-5c41f30e2e6c3806750313/] จากนั้นก็ลองใส่รูปดู ในที่นี้ผมมีรูป tina.pdf อยู่ (แพ็กเกจนี้ใช้ได้ทั้ง LaTeX

ปรับแต่ง item ง่าย ๆ ด้วย enumitem

บ่อยครั้งที่เรามีความจำเป็นต้องการปรับแต่งหัวข้อย่อยที่มีชื่อเรียกเฉพาะว่า item ให้มีความเฉพาะเจาะจงเช่น นำหน้าหัวข้อย่อยด้วยตัวเลขโรมัน ฯลฯ ซึ่งในกรณีนี้ทำได้ง่าย ๆ คือ [crayon-5c41f30e2f090453326805/] การทำเช่นนี้ก็สะดวกดีแต่มันไม่อัตโนมัติ วันนี้มีแพ็กเกจดี ๆ มาแนะนำครับ นั่นคือ enumitem ซึ่งสามารถใช้ในการปรับแต่ง item ให้เราได้ตามต้องการและง่ายมาก ๆ ในที่นี้ผมจะแนะนำแค่ตัวอย่างเดียวคือการเปลี่ยน item ให้เป็นเลขโรมันตัวเล็ก ส่วนตัวอย่างอื่น ๆ หาอ่านเองได้ในคู่มือตามลิ้งค์ที่ให้ไว้ [crayon-5c41f30e2f09e847609674/] ซึ่งผลที่ได้ก็คือการเปลี่ยนหัวข้อ item เป็นเลขโรมันตัวเล็ก นั่นเอง

newenvironment สร้างความงามให้กับหนังสือ

เคยเห็นในหนังสือเรียนประเภทตำราที่พิมพ์ขายกันไหมครับว่าเขาจะมีการจัดรูปแบบของ ตัวอย่าง ทฤษฏีบท ฯลฯ ให้มีความแตกต่างจากเนื้อหาปกติ เพื่อทำให้ส่วนนั้น ๆ ดูเด่นขึ้นมา ใน LaTeX ก็มี environment ที่ทำหน้าที่นี้โดยตรง โดยค่าตั้งต้นจะมีแค่เน้นคำว่า ตัวอย่าง ให้เป็นตัวหนา และตัวเนื้อความเป็นตัวเอียง ซึ่งสำหรับเอกสารทั่วไปก็ใช้ได้ แต่ในหนังสือเรียนที่ต้องมีการแยกตัวเนื้อหากับตัวอย่างโจทย์ออกจากกันนั้น ในการเรียงพิมพ์เอกสารคงต้องมีลูกเล่นมากกว่านั้น สำหรับโรงพิมพ์คงจะจัดเรียงพิมพ์ได้ไม่ยากอะไร แต่สำหรับบุคคลทั่วไปแล้วหล่ะ ถ้าต้องการทำเองจะทำอย่างไร เข้าใจว่าในโปรแกรมจำพวก word เราสามารถตกแต่งเอกสารได้ตรง ๆ ผมไม่รู้ว่ามีการทำเป็นรูปแบบเฉพาะแล้วมาเรียกใช้ภายหลังเพื่อให้รูปแบบคงเส้นคงวาหรือไม่ แต่สำหรับ LaTeX แล้ว เราสามารถสร้าง environment ให้เป็นในแบบที่เราต้องการได้ ยกตัวอย่างถ้าเราต้องการให้รูปแบบหนังสือเรามีรูปแบบของตัวอย่างอย่างที่เห็นในรูปข้างล่าง เราจะทำอย่างไรครับ แน่นอนคุณต้องเพิ่มเส้น ปรับขนาดของ environment ให้มีขนาด

steinmetz เขียนเฟสด้วย LaTeX

เขียนด้วยคนอิตาลีอุทิศให้กับคนคิดที่มหาวิทยาลัยไฟไหม้ ชื่อเลยแปลก ๆ จริง ๆ แล้วมันคือแพ็กเกจไว้สำหรับเขียนเฟสสำหรับพิกัดเชิงขั้วของวงจรไฟฟ้านั่นเองครับ ใช้งานง่ายมาก ๆ [crayon-5c41f30e34fb7493817491/] ก็จะได้ ง่ายดี ใครใช้ MikTeX ก็ไม่ต้องติดตั้งพิมพ์ usepackage{steinmetz} มันก็จะิติดตั้งให้เอง ดูคู่มือที่ steinmetz.pdf

เรื่องของ Caption

เคยเจอปัญหานี้ไหมครับ เอ่อ ไม่ใช่กราฟมันเล็ก ๆ มองไม่เห็นนะครับ แต่ปัญหาที่ว่า คือ บางทีรูปมันมีความแคบแต่คำอธิบายมันยาวมาก ๆ ทำให้ไม่สวยงาม เป็นต้น การ จัดการกับปัญหานี้ทำได้ง่าย ๆ โดยการกำหนดระยะให้ Caption ทำอย่างไรหล่ะ วิธีการก็ใช้ package caption นะครับ เปิดคู่มือแล้วก็อ่านตาม อ้าวไม่ใช่ ทำดังนี้ครับ กรณีต้องการแก้ไขเฉพาะรูปนั้น ๆ ก่อนคำสั่ง caption{xxx} ก็ให้ใส่คำสั่ง captionsetup{width=xcm} โดยแทน x ด้วยตัวเลข สิ่งที่คุณจะได้ก็ตามรูปข้างล่าง ซึ่งคุณจะเห็นว่าเหมาะสมขึ้นในบางกรณี หวังว่าจะเป็นประโยชน์นะครับ หมายเหตุ ในกรณีใช้กับภาษาไทยที่ใช่ร่วมกับแพ็กเกจ babel นั้นจะมีปัญหาเรื่องฟอนต์