PDF Forward/Inverse Search with Sumatra PDF with WinEDT 6

ตั้งใจจะซื้อ WinEDT 6 มาใช้นานแล้ว ยังไม่ได้ซื้อซักที วันนี้ WinEDT 6 ได้ออกเวอร์ชันแก้บักมา ถึงแม้ยังไม่สนับสนุน Unicode เต็มตัวแต่ก็คิดว่าถึงเวลาที่ต้องเปลี่ยนมาใช้แล้ว สิ่งแรกที่ต้องกระทำคือการใช้งาน Forward/Inverse Search กับเอกสาร PDF (จริง ๆ แล้ว ฟังก์ชันนี้ TeXWorks มีและก็เยี่ยมยอดมาก รวมทั้งใช้กับภาษาไทยได้ด้วย) โดยใช้  Sumatra PDF ซึ่งสำหรับการใช้งานร่วมกับ WinEDT 5.6 นั้นทำงานได้ดีอยู่แล้ว พอย้ายมาบน WinEDT 6 ก็มีเรื่องให้ศึกษากันอีก เริ่มแรกทีเดียวคือเรื่องเว็บที่โหลด Sumatra PDF นั้นมีหลายเว็บเหลือเกิน ดังนั้นขอแนะนำให้ไปโหลดที่ Sumatra PDF Binaries ที่จะมีตัวเลือกให้โหลดมากมายรวมทั้งมีคำอธิบายด้วย แน่นอนผมใช้เวอร์ชันล่าสุด (ไม่กลัวบัก) หรือที่  SumatraPDF for TeX users ซึ่งเป็นเวอร์ชันที่มีตัวเลือกให้มากกว่า (ดีกว่า)

การตั้งการใช้งาน Sumatra PDF  นั้นง่ายมากเพราะตั้งค่ามาให้เรียบร้อยแล้ว โดยไปที่ Options->Execution Mode->PDF Viewer

ฃึ่งอนุญาตให้เราสามารถตั้งค่าได้ถึง 4 โปรแกรม ก็เลือกตามชอบใจ เพียงแต่ว่ามี Sumatra PDF ตัวเดียวที่สนับสนุน Inverse Search โดยการดับเบิ้ลคลิ๊กในจุดที่ต้องการ การตั้งค่าก็อย่าลืมเลือกตัวเลือก Use –synctex switch when –sch is enabled ด้วย

ในการเรียกดูไฟล์ PDF จะใช้ไอคอน หรือกด Shift+F8 ก็ได้ แล้วแต่ถนัด Sumatra PDF จะไปที่ส่วนของเอกสารนั้น ๆ ให้พร้อมทั้งไฮไลต์ส่วนของเอกสารที่สอดคล้องกับย่อหน้าของรหัสใน tex  ไฟล์ให้ด้วย (เฉพาะเวอร์ชัน 1.2 ขึ้นไป)

อีกเรื่องที่สำคัญไม่แพ้กันคือในการควบรวมเอกสารในไฟล์หลักของ LaTeX  นั้น ให้ใช้คำสั่ง include{filename} โดยที่ใส่ชื่อไฟล์โดยไม่ต้องใส่นามสกุล tex และห้ามใช้แพ็กเกจ  pdfsync ก็เป็นอันเสร็จพิธี ใครทำได้บ้างไม่ได้บ้างก็มาเล่าสู่กันฟังนะครับ

หมายเหตุ ในกรณีที่ทำแล้วไม่ได้นะครับ ให้ทำดังนี้

  1. ตรวจสอบดูว่ามีไฟล์นามสกุลเหล่านี้อยู่หรือเปล่า .pdfsync , .synctex ถ้ามีลบออกให้หมด
  2. ปิด Sumatra PDF จากนั้นลองคอมไพล์ LaTeX ใหม่
  3. ควรจะได้แล้ว
Advertisements

Inkscape 0.48 with new LaTeX export feature

ท่านผู้่อ่านที่รัก (ไม่รู้มีกี่คนกัน) ในที่นี้มีใครไม่รู้จัก XFig บ้างครับ หลายคนคงไม่รู้จัก ซึ่งไม่เป็นไร อธิบายกันเล็กน้อย XFig นั้นเป็นโปรแกรมวาดรูปแบบเว็กเตอร์ที่เขียนโดยคนไทยปัจจุบันเข้าใจว่าเป็นอาจารย์อยู่นิด้า ตัวโปรแกรมนั้นเป็นที่นิยมในหมู่ผู้ใช้ unix มาก ๆ สำหรับบน linux แล้วก็ยังมีคนใช้อยู่เช่นผม เป็นต้น แต่ผมใช้ผ่าน Colinux ส่วนโปรแกรมวาดรูปเวกเตอร์บน Windows นั้นก็มีหลายตัว และหนึ่งในนั้นก็คงเป็นที่รู้จักกันดีคือ Inkscape นั่นเอง สำหรับโปรแกรมตัวนี้นั้นมีออกมาให้ใช้นานแล้ว แต่ผู้ใช้ LaTeX คงจะใช้กันน้อยมาก เพราะไม่ว่าโปรแกรมวาดรู้จะดีอย่างไร ถ้าใส่สมการไม่ได้ก็กลับไปหา XFig อย่างเดิม (สำหรับการวาดบล็อคไดอะแกรม หรือวงจรไฟฟ้า ผมใช้ circuit macro ปัจจุบันเรื่องวิเคราะห์วงจรไฟฟ้าส่งคืน text book ไปหมดแล้วไม่ต้องมาถาม ไม่ได้คำตอบแน่นอน) วันนี้พึ่งได้ทราบว่า inkscape 0.48 ออกตัวจริงแล้วตั้งแต่วันที่ 23 สิงหาคม ที่ผ่านมา และทุกครั้งที่โปรแกรมตัวนี้ออกเวอร์ชันใหม่ สิ่งที่ผมจะต้องหาทุกครั้งก็คือการใส่สมการในรูปแบบของ LaTeX ว่าทำได้หรือยัง ซึ่งจริง ๆ ควรจะทำได้ตั้งนานแล้ว เพราะมีคนทำโปรแกรมเสริมประเภทนี้ออกมานานพอสมควร และข่าวดีก็มีจริงแล้วครับ เพราะในเวอร์ชันนี้มีการสนับสนุนการแปลงไฟล์ให้อยู่ในรูปแบบ pdf/ps/eps ซึ่งแยกจากไฟล์ข้อความเหมือนใน XFig เราลองมาดูกันดีกว่า ว่ามันทำงานได้ดีแค่ไหน

Continue reading

ps2epsi เรื่องขำ ๆ ของ GsView

ผมใช้คำสั่ง ps2epsi เพื่อใส่ BoundingBox ให้กับรูปที่สร้างเป็น eps มานานมากแล้ว

epstool

จริง ๆ ก็เห็นปัญหาอยู่นะว่ามีการกำหนด box ให้ผิดตามรูปข้างบนด้านขวามือ ซึ่งจะเห็นได้ว่า
ตัวเลขสองมันถูกขลิปส่วนบนออกไป แต่ผมก็ไม่ได้คิดจะแก้ไขอะไร คงเป็นเพราะผมทำงาน
ในลักษณะนี้น้อยมาก วันนี้ลองใช้ Xfig ที่เราสามารถใส่รูปที่เป็น pdf, eps ลงไปในรูปเพื่อ
ตกแต่งใน Xfig (เวอร์ชัน 3.2.5 ขึ้นไป) พอได้ก็ลองใชู้ และลองสร้างไฟล์ pdf ตามที่ได้เคย
เสนอไปใน Xfig reuse ก็เกิดปัญหาตามที่ได้กล่าวข้างบน ดูรูปแล้วจะเห็นชัด ปัญหาก็คือถ้า
เราใส่ BoundingBox ให้รูป eps ผิด เวลาเราแปลงรูปเป็น pdf ก็จะได้ลักษณะอย่างที่เห็น
ทางขวามือ ปัญหานี้มีมานานมากแล้วสำหรับคำสั่งนี้ของ GhostScript เห็นว่าได้รับการแก้ไข
ไปบางส่วนแล้ว

ครั้งนี้แปลกออกไปที่ผมยอมลงทุนเสียเวลาหาวิธีแก้ไข คิดว่ามีทางแก้ไขโดยการเพิ่มตัวเลือก
ให้คำสั่ง ps2epsi เสียเวลาเป็นชั่วโมงในการหาตัวเลือก ด้วยความเชื่อที่ว่า GsView ไปเรียก
คำสั่ง GhostScript มาใช้ ดังนั้นมันต้องใช้คำสั่งเดียวกัน แต่เปล่าเลย สิ่งที่เชื่อกับสิ่งที่เป็น
จริงมันต่างกัน
กล่าวคือเมื่อผมสิ้นหวังผมก็ต้องไปหาเครื่องมือตัวอื่นมาใช้งาน แล้วก็ไปเจอ
epstool พออ่านถึงบรรทัดที่ว่า

GSview (same code as epstool)

ก็ร้อง… ออกมาทีหนึ่ง เพราะว่า GsView ใช้ epstool ในการแปลงรูปจาก PS ไปเป็น eps
ไม่ได้ใช้คำสั่ง ps2epsi ตามที่เข้าใจ เพื่อแก้ปัญหานี้ผมต้องไปโหลด epstool จาก CTAN
มา แล้วก็เพิ่มคำสั่งในการคำนวณ BoundingBox ที่ถูกต้องเข้าไปอีกทีหนึ่ง ดังนี้

epstool --copy --bbox golfer.eps golfer2.eps 

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

Adobe Reader 8.x กับ WinEDT

Get Adobe Readerตั้งแต่ออก Adobe Reader 8.x มา สิ่งที่น่ารำคาญที่สุดก็
คือ WinEDT ไม่สามารถจำหน้าเดิมของไฟล์ pdf ได้
พึ่งรู้เหมือนกันว่า Dr. Alex คนเขียน WinEDT นั้นได้มาตอบคำถามนี้ไว้ตั้งนานแล้ว
และวิธีแก้ก็ง่าย ๆ ดังนี้

  1. ไปที่เมนู Edit->Preferences->Documents ให้ยกเลิกตัวเลือก Show each document in its own window (requires restart) ออก
  2. แค่นั้นแหละ มันเป็นปัญหาของ Adobe Reader ไม่ใช่ WinEDT
  3. อย่าใช้ Adobe Writer นะครับถ้าไม่ได้ซื้อ ใหญ่ ไม่มีประโยชน์สำหรับเรา และ
    ผิดกฎหมาย