ความลับสวรรค์ 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 →
ความลับสวรรค์ 2

เอาด่วน ๆ เร็ว ๆ จดไว้กันลืม โดยปกติ caption ของรูปจะอยู่ข้างล่าง และของตารางจะอยู่ข้างบน แต่จะด้วยเหตุผลอะไรไม่ทราบเวลาแพ็กเกจ caption แล้ว ค่าตั้งต้นมันจะให้ caption อยู่ข้างล่าง วิธีแก้ทำดังนี้ครับ

ก็เป็นอันว่าจบ

Read More →
ความลับสวรรค์

เนื่องจากไม่ค่อยมีเวลาเขียน โพสนี้เป็นการรวบรวมข้อมูลเล็ก ๆ น้อย ๆ สำหรับจดไว้กันลืมครับ lmodern ต้องลงเอง มันไม่ลงให้อัตโนมัติ สำหรับ MiKTeX นั้น XeLaTeX ต้องใช้ -enable-write18 แทนที่จะเป็น --shell-escape สำหรับหนังสือภาษาไทย ที่มีตัวภาษาอังกฤษ และสมการคณิตศาสตร์ปน ให้ใช้ตัวเลือก no-math \usepackage[no-math]{fontspec}เข้าไปเจอความลับสวรรค์จาก page Thai Students Love LaTeXเพื่อสั่งให้ LaTeX ไม่ใช้ฟอนต์ไทยกับสมการคณิตศาสตร์ ใน beamer ในสมการคณิตศาสตร์ ที่มี $\hat{f}$ เวลาแสดงผลจะเพี้ยน ป้อนกันได้ด้วย \usefonttheme{professionalfonts} แค่นี้ก่อนนะครับ

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 →
การเพิ่ม List of Figures กับ List of Tables ลงในสารบัญ

เป็นเรื่องใหม่ที่พึ่งรู้ว่ามันเป็นปัญหา สืบเนื่องจากการใช้คำสั่ง addcontentsline{toc}{chapter}{bibname} เพื่อเพิ่มรายชื่อบทลงในสารบัญนั้น ซึ่งโดยปกติจะใช้สั่งให้มีรายชื่อของสารบัญตาราง สารบัญรูป และอื่น ๆ ลงในสารบัญ และสิ่งที่ผมพึ่งรู้ก็คือคำสั่งนี้จะแสดงเลขหน้าผิดเสมอ แก้อย่างไรก็ไม่สำเร็จ ค้นไปค้นมาเลยได้ความรู้จาก Patrick Jöckel's ดังนี้ ในการเพิ่มรายชื่อบทที่สร้างขึ้นเองลงในหน้าสารบัญ จำพวกกิจกรรมประกาศ บทคัดย่อ ฯลฯ การใช้คำสั่ง

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

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

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

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

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

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

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

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

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

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

Read More →
คู่มือการเขียนสมการคณิตศาสตร์ด้วย 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 to LaTeX2e ในบทที่สาม ที่ว่าด้วยสมการคณิตศาสตร์ก่อน  จากนั้นเมื่อเข้าใจและคุ้นเคยกับ keywords ต่าง ๆ แล้ว เราสามารถใช้เป็นคำค้นในเอกสารของนาย Voß ได้

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

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

จากนั้นก็ลองใส่รูปดู ในที่นี้ผมมีรูป tina.pdf อยู่ (แพ็กเกจนี้ใช้ได้ทั้ง LaTeX และ pdfLaTeX) โดยเรียกดูรูปดังนี้

โดยบอกให้รูปแสดงเส้นกริดและมีตัวเลขกำกับทุก ๆ 10% ผลที่ได้จะเป็นดังรูปข้างล่าง จากรูปเราจะเห็นเส้นกริดพร้อมตำแหน่งกำกับเป็นตัวเลข ก็เป็นหน้าที่ของเราแล้วที่จะวางรูป ซึ่งสามารถทำได้ง่าย ๆ ดังนี้

ซึ่งผลลัพธ์ที่ได้ก็แสดงดังรูปข้างล่าง […]

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

บ่อยครั้งที่เรามีความจำเป็นต้องการปรับแต่งหัวข้อย่อยที่มีชื่อเรียกเฉพาะว่า item ให้มีความเฉพาะเจาะจงเช่น นำหน้าหัวข้อย่อยด้วยตัวเลขโรมัน ฯลฯ ซึ่งในกรณีนี้ทำได้ง่าย ๆ คือ

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

ซึ่งผลที่ได้ก็คือการเปลี่ยนหัวข้อ item เป็นเลขโรมันตัวเล็ก นั่นเอง

Read More →