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

ตามที่เคยแจ้งไปว่าขณะที่กำลังทำแม่แบบภาษาไทยสำหรับวิทยานิพนธ์ระดับปริญญาตรี โดยใช้ LaTeX (XeLaTeX) ความคืบหน้าขณะนี้คือ

  1. ฟอนต์ Angsana New ฟอนต์บังคับสำหรับวิทยานิพนธ์ (ฟอนต์ที่ดูดีฟอนต์แรก และชื่อจำง่าย ถ้าเป็น Thesis ภาษาอังกฤษจะใช้ฟอนต์ที่ทางการกว่า ซึ่งจะไปตรงกับ Browallia New มากกว่า น่าเสียดายจริง ๆ) นั้นมีปัญหากับ แพ็กเกจที่สำคัญสองตัว คือ polyglossia  และ xltxtra ซึ่งทำให้การแสดงผลสระอู สระอิ ผิดจากที่ควรเป็น ในขณะที่ฟอนต์อื่นไม่เป็น
  2. ข่าวดีเล็กน้อยคือแก้ปัญหานี้ได้แล้ว ด้วยการไม่ใช้แพ็กเกจทั้งสอง และกับไปใช้แพ็กเกจ fontspec แทน และการกำหนดฟอนต์หลักต้องใช้คำสั่ง
    \setmainfont{Angsana New:Script=Thai}
  3. น่าเศร้ามากที่การแก้ปัญหานี้ใช้เวลาถึงสองวัน ไฟล์ที่เกี่ยวข้องคือไฟล์ gloss-thai.ldf ซึ่งก็คือ thai.ldf เดิม ของ thailatex แพ็กเกจนั่นเอง ไว้จะทำให้เรียบร้อยต่อไปครับ

คลาสไฟล์ยังให้ดาว์นโหลดนะครับ เพราะยังเต็มไปด้วยบัก ขอเวลาซักพักนึงก่อน

Advertisements

วาด hyperbola ด้วย TikZ

คุณสุขุมถามมาใน forum พอดีไม่เคยใช้เหมือนกันเลยตอบไม่ได้ ใช้ MATLAB ทดสอบแล้วตอบ ซึ่งคิดว่าเหมือน ๆ กัน วันนี้นั่งดูเว็บ TUG เล่น ๆ ก็พบว่ามีแพ็กเกจ pgfplots ซึ่งสามารถใช้งานในการพล็อตกราฟได้ดี เลยลองเล่นดูสักพัก แล้วลองทำโจทย์ที่คุณสุขุมให้มาดู ปรากฏว่าง่ายมาก ๆ เลยลองเขียนวิธีการไว้เป็นบันทึกช่วยจำสักหน่อย

Continue reading

MiKTeX 2.8 with WinEdt

ผมใช้ MiKTeX 2.8 มาได้ซักพักหนึ่งแล้วครับ มีปัญหาแรก ๆ หลายเรื่องเหมือนกัน เช่นการใส่ตัวอักษรหายไปจากไฟล์ pdf กรณีใช้ pdflatex (เจอปัญหานี้เครียดมากเลย) หรือ การโหลดแพ็กเกจอัตโนมัติไม่ได้ ทางแก้สำหรับ WinEdt ก็ทำดังนี้

  1. Update ตัว MiKTeX 2.8 ให้บ่อยที่สุดในช่วงแรก ๆ ปัญหาแปลก ๆ ก็จะหายไป เพราะคงมีคนรายงานเข้าไปเยอะเหมือนกัน
  2. กรณีเอาไฟล์เก่ามาใช้บน MiKTeX 2.8 สำหรับ WinEdt ก็ใช้ TeXify ในตอนเริ่มต้น ถ้าใครสร้างชุดคำสั่ง  ifpdf ตามที่ MiKTeX เขียนไว้ก็ไม่มีปัญหาอะไร ตัว MiKTeX จะโหลดแพ็กเกจที่ขาดหายไปทั้งหมดให้

ที่เหลือก็ใช้งานได้ดีครับ ถ้าใครเริ่มต้นใหม่จะใช้ TeXWorks ซึ่งเป็นบรรณาธิกรณ์ตัวเก่งที่ติดมากับ MiKTeX 2.8 ก็น่าจะสะดวกมากขึ้น แต่สำหรับคนที่ยังใช้ WinEDT ก็ให้ดูคำตอบของ Alex ตามลิ้งค์นี้ด้วยครับ

is MikTex 2.8 stable enough to replace 2.7?

อนึ่งการใช้กับภาษาไทย ไม่มีปัญหาอะไรใช้ได้เหมือนเดิม

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

เขียนด้วยคนอิตาลีอุทิศให้กับคนคิดที่มหาวิทยาลัยไฟไหม้ ชื่อเลยแปลก ๆ จริง ๆ แล้วมันคือแพ็กเกจไว้สำหรับเขียนเฟสสำหรับพิกัดเชิงขั้วของวงจรไฟฟ้านั่นเองครับ ใช้งานง่ายมาก ๆ

$20\phase{30^\circ}$

ก็จะได้ phase

ง่ายดี ใครใช้ MikTeX ก็ไม่ต้องติดตั้งพิมพ์ \usepackage{steinmetz} มันก็จะิติดตั้งให้เอง

ดูคู่มือที่ steinmetz.pdf

Beamer Rules

ได้ร่วมประชุมวิชาการ CDC 2008 ทำให้ได้รู้ว่าผู้คนในสาขานี้ใช้ Beamer
กัน น่าจะถึง 80% LaTeX สายพันธ์อื่นก็ได้เห็นประมาณ 5% ส่วน powerpoint
นั้นประมาณ 10% ที่เหลือเป็น Macซึ่งส่วนใหญ่จะเป็นโปรฯ ทางอเมริกา

Beamer ที่ใช้ส่วนใหญ่ก็จะใช้ธีมมาตรฐาน มีไม่มากที่ทำธีมเองแบบผม อีกอัน
หนึ่งที่น่าแปลกใจคือเรื่องบล็อกไดอะแกรม แุทบจะหาคนวาดห่วย ๆ ไม่ได้เลย

อีกเรื่องที่น่าพูดถึงก็คือเปเปอร์งวดนี้ล้วนแต่มีคุณภาพในเรื่องรูปลักษณ์ หาแบบ
ที่เป็น Word ห่วย ๆ แทบไม่ได้เลย

expanding Root สำหรับ Colinux

พอดีวันนี้เกิดยากอัพเกรด Colinux จาก Ubuntu 8.04 ไปเป็น Ubuntu 8.10 ซะหน่อย
แต่ที่ดันไม่พอก็เลยต้องทำการขยายขนาดของฮาร์ดดิสก์ที่ตอนแรกมีอยู่ 3.2 Gb ไม่รู้ลง
อะไรไปมั่งใช้จนเต็ม ลบออกก็ไม่เป็น (ผมเป็นผู้ใช้วินโดวส์) ซึ่งขั้นตอนต่าง ๆ อยู่ใน
Colinux Wiki ซึ่งมีหลายวิธีการมาก ผมเลือกใช้อันนี้

  1. จัดการคัดลองไฟล์ระบบสมมติว่าชื่อ cur_img.2gb ด้วยคำสั่งคัดลอกธรรมดาบน
    command ของวินโดวส์นั่นแหละ ไปเป็นชื่อ old_img.2gb
  2. สร้างไฟล์ระบบใหม่ให้มีพื้นที่เยอะ ๆ ในที่นี้ผมสร้างให้มี 8 Gb ด้วยคำสั่ง
    fsutil file createnew new_img.8gb 8589934592
    ซึ่งจะได้คำตอบเป็น-ถ้าสร้างไฟล์ที่ C:\colinux
    The file C:\coLinux\new_img.8gb has been created
  3. แก้ไขไฟล์ config โดยเพิ่มดิกส์ต่าง ๆ เข้าไปcobd0=”c:\coLinux\cur_img.2gb”
    cobd3=”c:\coLinux\old_img.2gb”
    cobd4=”c:\coLinux\new_img.8gb”
  4. รัน Colinux
  5. ตรวจไฟล์ระบบ
    # e2fsck /dev/cobd3
    e2fsck 1.40-WIP (14-Nov-2006)
    /dev/cobd3: clean, 70328/262144 files, 519377/524288 blocks
  6. คัดลอกไฟล์ระบบเก่าไปยังไฟล์ระบบใหม่
    # dd if=/dev/cobd3 of=/dev/cobd4
    4194304+0 records in
    4194304+0 records out
    2147483648 bytes (2.1 GB) copied, 484.017 seconds, 4.4 MB/s
  7. ตรวจสอบไฟล์ระบบใหม่
    # e2fsck -f /dev/cobd4
    e2fsck 1.40-WIP (14-Nov-2006)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/cobd4: 70328/262144 files (3.9% non-contiguous), 519377/524288 blocks
  8. ปรับขนาดไฟล์ระบบใหม่ให้ใช้พื้นที่ทั้งหมด
    # resize2fs -p /dev/cobd4
    resize2fs 1.40-WIP (14-Nov-2006)
    Resizing the filesystem on /dev/cobd4 to 1048576 (4k) blocks.
    Begin pass 1 (max = 16)
    Extending the inode table     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    The filesystem on /dev/cobd4 is now 1048576 blocks long.
  9. ตรวจสอบไฟล์ระบบใหม่อีกครั้ง
    # e2fsck /dev/cobd4
    e2fsck 1.40-WIP (14-Nov-2006)
    /dev/cobd4: clean, 70328/524288 files, 527605/1048576 blocks
  10. คราวนี้ก็ shutdown ระบบแล้วแก้ไฟล์ config ให้เรียกใช้ไฟล์ระบบใหม่
    cobd0="c:\Program Files\coLinux\new_img.8gb"
  11. รับ colinux อีกรอบแล้วลองตรวจพื้นที่ดิกส์
    # df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/cobd0             4128448   2044612   1958008  52% /

เป็นอันเสร็จพิธี ส่วนการ upgrade Ubuntu นั้นไปดูที่เว็บ Ubuntu เอาเองง่าย ๆ

การคูณ block matrix

จริง ๆ เป็นเรื่องง่ายแค่ใช้ symbolic toolbox ช่วยก็จบ

เรื่องที่จะเขียนนี้เป็นการคูณ block matrix ด้วยมือ โดยสมมติว่าขนาดของเมตริกซ์แต่ละบล็อกนั้น
สอดคล้องกันอยู่แล้ว

ถ้าคูณด้วยมือคงยากพิลึก แต่ก็มีหลักง่าย ๆ โดยการใช้ column operation โดยให้พิจารณา
เมตริกซ์ตัวกลางซึ่งจะเรียกว่า K  โดยแยกทีละคอลัมน์และคูณกับเมตริกซ์ตัวแรกดังนี้

  1. คอลัมน์แรกของ K แถวที่หนึ่งคือ D_k ให้ไปคูณกับคอลัมน์ที่หนึ่งของเมตริกซ์
    ตัวแรก และ B_k ไปคูณกับคอลัมน์ที่สองของเมตริกซ์ตัวแรก ทำอย่างเดียว
    กันกับคอมลัมน์แรก แล้วนำผลลัพธ์ที่ได้มาบวกกัน
  2. เราจะได้ผลคูณของเมตริกซ์ตัวแรกกับเมตริกซ์ K ดังนี้
  3. คูณผลลัพธ์ที่ได้กับเมตริกซ์ซ้ายมือสุดด้วยวิธีเดียวกันกับข้อหนึ่งก็จะได้ผลลัพธ์ดังนี้

ก็ง่ายดี

The Not So Short Introduction to LaTeX2e

หลาย ๆ คนอาจจะรู้ว่าผมได้ทำงานแปลหนังสือ The Not So Short Introduction to LaTeX2e
เพิ่มเติมจากผู้แปลคนเดิม ตอนแรกก็ว่าจะแปลเพิ่มเติม เอาไปเอามาก็เป็นการแปลใหม่ทั้งหมด โดย
ยึดรูปแบบคำแปลบางส่วน  ทำไมต้องแปลใหม่ทั้งหมด ก็เพราะผมไม่เคยอ่านหนังสือเล่มที่ว่าหรอก
และก็จริงอย่างที่คิดไว้ คือหนังสือมันไม่ได้ดีไม่เหมาะแม้กระทั้งผู้เริ่มต้นด้วยซ้ำ สิ่งที่ผมทำก็คืออ่าน
ไปแปลไป (ได้ความรู้ใหม่พอสมควร) โดยใช้เวลาแค่ช่วงเช้าของวันหยุด การทำเช่นนี้เป็นการยาก
ที่ผมจะแปลโดยใช้คำหรือรูปแบบเดิมของคุณจักรภาษณ์ อีกอย่างเนื้อหาได้ถูกเพิ่มเติมขึ้นมามาก
กว่าสองเท่า ทั้งในบทเดิมและบทใหม่  ถึงตอนนี้ก็ยังไม่รู้ว่าหนังสือฉบับแปลจะจบเมื่อไหร่

เท่าที่แปลได้สองบท พบว่าคงไม่มีผู้ใช้คนไทยคนไหนอ่านเฉพาะหนังสือเล่มนี้แล้วจะใช้งาน LaTeX
ได้ ไม่ว่าจะเป็นสำนวนของผู้เขียน เรื่องที่ผู้เขียนเน้นการใช้งานบนระบบ Unix และใช้
command  line เป็นหลัก หรือเรื่องที่ผู้เขียนพยายามเก็บรายละเอียดทุกอย่างทั้งปัจจุบันและใน
อดีต เรื่องนี้ทำให้ผมกำลังคิดอยู่ว่าจะปรับปรุงเนื้อหาอย่างไรดี เอาเป็นว่าคงจะแปลให้จบก่อนแล้ว
ค่อยว่ากัน ซึ่งด้วยความเร็วขนาดนี้คิดว่าอีกสามเดือนถึงจะจบเล่ม และใช้เวลาอีกเป็นเดือนกว่าจะส่ง
ให้ CTAN ได้

สำหรับผู้ที่รอ SWATH เวอร์ชันใหม่บนวินโดวส์นั้น ก็รอต่อไป…

Posters with LaTeX

วันหน้าอาจจะต้องใช้ จดไว้ links ไว้ก่อน

  1. Making big posters in straight LaTeX
  2. LaTeX DIN A0 Poster Style
  3. Latex Poster Template
  4. LaTeX Template for Conference Posters

ทั้งสี่อันไม่รู้ความสามารถเป็นอย่างไรบ้าง แต่ดูแนวโน้มแล้วเหมาะกับแนวคิดของที่ภาควิชาฯ
อนึ่งการประชุมวิชาการเริ่มมีการใช้การแสดงผลงานแบบ interactive โดยใช้ Poster ซึ่งไม่ได้
เป็นการแบ่งระดับของประชุมวิชาการแต่อย่างใด