ความลับสวรรค์ 3

ในการทำหนังสือด้วย LaTeX นั้น ปัญหาหนึ่งก็คือเรื่องการตั้งค่าขนาดของฟอนต์ ซึ่งจำกัดมีไม่กี่ขนาด ทั้งนี้เนื่องจาก class book กำหนดไว้แค่นั้น (โดยคนทำ LaTeX ไม่ใช่คนทำ TeX) ได้แลกเปลี่ยนกับเพื่อน และเพื่อนแนะนำให้ใช้ class extbook ใช้อย่างไร ทำอย่างไร หาเอกสารอ่านเอาเองนะครับ

ความลับที่ 2 ซึ่งไม่ลับอะไรแต่เข้าใจยากหน่อย เกี่ยวกับแพ็กเกจ subfig ซึ่งถ้าใช้งานปกติแบบคนทั่วไปก็ไม่มีปัญหาอะไรครับ แต่ถ้าใช้งานยาก ๆ สลับซับซ้อน ก็มักจะมีปัญหา กรณีนี้คือ caption ที่เป็นตัวอักษรไม่เป็นไปตามหวัง คือหวังให้เป็นภาษาไทย และไม่อยู่ตรงกลาง คือหวังให้อยู่ตรงกลางรูป วิธีแก้ ก็ดูการ \renewcommand{\thesubfigure}{\thalph{subfigure}} สำหรับปัญหาที่ 1 ส่วนปัญหาที่สองก็ทำได้โดยการ \captionsetup[subfigure]{oneside, margin={0.5cm, 0cm}} รายละเอียดลึก ๆ ดูคู่มือเอาเองนะครับ รับประกันได้ว่าหากันเมื่อยและไม่ค่อยรู้เรื่องเท่าไหร่ ง่ายสุดคือทำตามและปรับค่าเอา ได้ก็คือได้ (ฮา)  

[…]

Read More →
Plot2SVG MATLAB and Inkscape

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

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

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

  รูปผลการรันอัพรูปไม่ได้ครับแต่โหลดตัวอย่างได้ที่ ตัวอย่าง ให้ทดสอบดูแล้วจะเห็นกระดาษที่มีกรอบทุกหน้าครับ อ้างอิง http://newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2007-12/msg00104.html

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

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

ถ้า กลุ่มคนไทยผู้ใช้ มีปัญหาคล้าย ๆ กันจะได้มีแนวทางในการจัดทำเอกสารด้วย LaTeX ผมได้แนวทางแก้ปัญหาจากเว็บไซต์ต่างประเทศหลายที่ในตอนทำ แต่ไม่ได้บันทึกไว้ ต้องขออภัยไว้ด้วยครับ

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

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

เมื่อเลือกแล้วเราก็จะสามารถใส่สีลงในตารางได้อย่างง่ายดาย   ส่วนตัวเลือก svgnames นั้นเป็นการใช้ชื่อสีที่ทำไว้แล้ว ซึ่งรายชื่อสีก็ดูได้จากคู่มือของ xcolor ในบทที่ว่าด้วย color by names […]

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

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

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

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

การใช้สิ่งแวดล้อม […]

Read More →
Equation numbering with alphabet

ในบางครั้งในการเขียนสมการเราก็ต้องการจัดกลุ่มของสมการเช่น 1a 1b ... 1e แทนที่จะเรียงแบบ 1 2 ... 5 ซึ่งแบบแรกจะสามารถสื่อสารได้ดีกว่าว่าเป็นสมการเรื่องเดียวกัน ปกติก็ไม่เคยใช้หรือคิดจะใช้นะครับ พอดีเห็นคำค้นเรื่องนี้ก็เลยสนใจ พอค้น google ก็มีคนแนะนำว่าใน package amsmath นั้นมีชุดคำสั่งนี้ให้อยู่แล้ว แถมยังบอกหน้าให้เสร็จสรรพว่าหน้า 10 พอเข้าไปก็ลองทำตามที่คู่มือบอก ปรากฏว่าไม่ได้ ก็ไม่ยากครับไปค้น google อีกรอบได้วิธีทำที่ละเอียดกว่าที่ wikibooks ซึ่งมีวิธีการดังนี้นะครับ

ไปลองดูรายละเอียดกันเองนะครับ ไม่ยากอะไร ถ้าต้องการ 1ก 2ข ... ก็ต้องลงแพ็กเกจภาษาไทยก่อนแล้วก็ทำตามนี้นะครับ

โดยการแปลงตัวเลขให้เป็นภาษาไทย โดยใช้คำสั่ง thaialph{equation} ก็จะได้หน้าตาดังรูป ข้างล่างนี้ ก็คิดว่าน่าจะมีประโยชน์ในการเขียนเอกสารภาษาไทยบ้างนะครับ

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

เคยได้เขียนเรื่องการปรับแต่ง item ไว้ที่ การปรับแต่ง item ง่าย ๆ ด้วย enumitem วันนี้ลองมาเขียนขยายความดูใหม่ ในการสร้าง item บางครั้งเราก็ต้องการรูปแบบของหัวข้อที่แตกต่างกันออกไป รวมไปถึงระยะกั้นหน้ากั้นหลังด้วย ในบทความเก่านั้นได้แสดงให้เห็นถึงวิธีปรกติที่ใช้โดยไม่ต้องผ่านแพ็กเกจใด ๆ ซึ่งยุ่งยากพอสมควร แพ็กเกจ enumitem นั้นสามารถช่วยลดความยุ่งยากเหล่านี้ได้ ในที่นี้จะแสดงวิธีใช้ให้ดูประกอบเพียงสองตัวอย่าง ตัวอย่างที่หนึ่งคือการทำให้หัวข้อ item แบบตัวเลข แสดงเป็นเลขโรมันตัวเล็กและอยู่ใน mathmode ซึ่งนิยมใช้กันในหนังสือคณิตศาสตร์ทั่วไป  ตามรูปที่แสดงข้างล่าง ซึ่งสามารถทำได้ง่าย ๆ โดยใช้แพ็กเพจ enumitem ดังนี้

ซึ่งจะเห็นว่าเราสามารถกำหนดรูปแบบของ item ได้ตามต้องการโดยใช้ตัวเลือก [label=$roman{*}$.] ตัวอย่างที่สองเป็นเรื่องการใช้ภาษาไทย ซึ่งมีข่าวร้ายเพราะแพ็กเกจนี้ใช้กับ babel ไม่ได้ ทำให้ใช้กับภาษาไทยไม่ได้ ผมพยายามลองแกะโค้ดของตัวแพ็กเกจดู แต่ว่าไม่สำเร็จ ดังนั้นในกรณีของผู้ที่ต้องการให้ item เป็นภาษาไทยก็สามารถทำได้ดังนี้

แน่นอน คงมีผู้ประท้วงว่า การใช้วิธีปรกติก็ไม่เห็นยากกว่าการใช้แพ็กเกจ enumitem เลย ก็ต้องขอตอบว่าการใช้ […]

Read More →
Export Simulink Diagram to use in LaTeX Document

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

ตัวเลือก -sthaitug คือ Simulink ไฟล์ที่เราต้องการในที่นี้คือ thaitug.mdl ส่วน -depsc2 เราต้องการพิมพ์ออกเป็น postscript level 2 ไฟล์แบบมีสีด้วย ส่วน thaitug.ps คือไฟล์ที่ต้องการจัดเก็บ ทั้งหมดทำบน workspace ของ Matlab ซึ่งไฟล์รูปภาพแบบ postscript […]

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

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

Read More →