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. ควรจะได้แล้ว

Forward search for SumatraPDF – WinEDT

ดูรายละเอียดที่เว็บนี้เอาเองนะครับ Configuring editors with SumatraPDF ผมลองแล้วใช้ได้ผลดีสำหรับ Forwad search ส่วน Backward search นั้น ถ้าใช้ SumatraPDF 0.9.4 อยู่ไม่มีปัญหาครับ ทำได้ดีอยู่แล้ว

Pdfsync

ข้อเสียหลัก ๆ ของ LaTeX นั้นก็คือการแก้ไขเอกสาร เป็นการยากทีเดียวที่อ่านเจอที่ผิดในเอกสาร
ขั้นสุดท้ายแล้วจะทำการแก้ไข ยิ่งไปเจอคนที่เขียนเอกสารแบบโครงสร้างไม่ดีด้วยแล้วยิ่งยาก วิธี
หนึ่งที่ใช้แก้ไขเรื่องนี้มานานมากแล้วคือการ ดูเอกสารด้วย DVI viewer ซึ่งจะมีการสอบย้อนจาก
เอกสาร DVI กลับไปยังไฟล์ข้อความของ LaTeX ได้ นี่เป็นวิธีการบนวินโดวส์ที่ใช้กันมานานมาก

วิธีการนี้มีข้อเสีย เพราะ DVI viewer มีข้อจำกัดในการแสดงผลมากมาย นอกจากนั้นไฟล์ที่ใช้วิธี
การ DVI->DVIPS->PSPDF นั้นมีข้อจำกัดเรื่องรูปแบบของไฟล์กราฟฟิค ผลลัพธ์ไฟล์ PDF ที่ได้แย่

ในระบบของ Mac นั้นใช้ PDF เป็นหลักมานานแล้ว ดังนั้นจึงใช้ PDF viewer ที่มีความสามารถใน
การเชื่อมต่อกับไฟล์เอกสาร  ทำให้ผู้ใช้ LaTeX บน Mac ใช้งาน pdfTeX แทนที่จะทำแบบสาม
ขั้นตอนข้างต้น จะพูดว่านานแล้วก็ได้

MiKTeX นั้นไม่ได้นิ่งนอนใจได้พยายามเพิ่มความสามารถให้กับ YAP ตัว DVI viewer ของตนให้
มีความสามารถมากขี้น ผลที่ได้กลับทำให้ YAP ทำงานช้าลงอย่างมาก ผู้ใช้งานวินโดวส์ยังมีชะตา
กรรมมากขึ้นหลังจากที่ Adobe Reader ตั้งแต่เวอร์ชัน 8.0 เป็นต้นมา จะทำการล็อกไฟล์ทำให้
เวลาสร้างไฟล์ PDF จำเป็นที่จะต้องปิดและเปิดไฟล์ใหม่ทุกครั้ง นอกจากนั้นยังไม่จำหน้าเดิม ทำ
ให้ความหวังที่จะแก้ไขเอกสารโดยดูจากไฟล์ PDF ยิ่งเลือนลางเข้าไปอีก

ดีที่ผู้ใช้วินโดวส์มีจำนวนมากและทรงพลัง มีการแก้ไขปัญหาเหล่านี้ด้วยการ

  1. Sumatra PDF เป็น PDF viewer ที่มีความสามารถเพียงพอที่ใช้ในการพัฒนาเอกสาร
    ไม่ล็อกไฟล์ มีความสามารถในการจำหน้าสุดท้ายของเอกสารที่เปิดได้ และมีความเร็วสูง
  2. pdfsync เป็นชุดคำสั่งเสริมของ LaTeX ที่สามารถใช้งานร่วมกับ Sumatra PDF ได้เป็น
    อย่างดี ทำให้คุณสามารถเปิดเอกสารแล้วดับเบิลคลิ๊กเมาท์เพื่อเรียกไฟล์ข้อความมาแก้ไข
    ที่จุดนั้น ๆ ได้ ถึงแม้ว่าจะมีบางส่วนที่จะทำให้เกิดความเพี้ยนเอกสารได้ แต่ก็มีคำสั่ง
    \pdfsyncstart \pdfsyncstop เพื่อตัวชุดคำสั่งเสริมมองข้ามส่วนของไฟล์ LaTeX นั้น ๆ 
    ได้

ด้วยเครื่องมือสองตัวนี้ ถึงเวลาที่ผู้ใช้ LaTeX ควรจะเลิกใช้ YAP ฯลฯ แล้วหันมาใช้ pdfTeX ได้
แล้วครับ

อนึ่ง Sumatra PDF นั้นเหมาะแค่ใช้ในการพัฒนาเอกสารเท่านั้น เมื่อคุณได้เวอร์ชันสุดท้ายของ
เอกสาร คุณสามารถใช้ Adobe Reader 9.0 เพื่อใช้เรียกดูหรือพิมพ์เอกสารสุดท้าย หรือใช้ใน
การทำ Screen Presentation ได้  

เครื่องเดียว 3 PDF Viewer

เครื่องผมมี PDF Viewer อยู่สามตัว ใช้งานแตกต่างกันตามแต่ความสามารถ ดังนี้

  1. Sumatra PDF ตัวเล็ก เร็ว แต่ทำอะไรไม่ได้เลย ไว้รอ WinEDT เวอร์ชันใหม่ออกก็จะ
    เลิกใช้แล้ว  ตัวนี้ใช้ในการพัฒนาเอกสาร PDF เนื่องจากมันไม่ล็อกไฟล์เหมือน Adobe
    Reader 9.0  ซึ่งข้อด้อยของ Sumatra ยังมีเรื่องแสดงผลไม่สวยด้วย
  2. Adobe Reader 9.0  ตัวนี้ใหญ่และช้า ทำอะไรได้น้อย แต่แสดงผลสวยงาม ซึ่งตัวนี้
    ใช้งานเป็นตัวหลัก เพราะฟังก์ชันการพิมพ์ และสามารถใช้ในการทำ Screen Presentation
    ได้ดี  แต่เนื่องจากมันล็อกไฟล์ทำให้ไม่เหมาะในการพัฒนาเอกสาร PDF
  3. PDF-XChange Viewer ทำได้ทุกอย่างยกเว้น Screen Presentation เท่านั้น ข้อดี
    คือเร็วกว่า Adobe Reader และสามารถแก้ไขไฟล์ PDF ได้ แถมยังฟรี นอกจากนั้นยังไม่
    ล็อกไฟล์เพียงแต่ว่าสำหรับ WinEDT นั้นต้องมีการแก้ไขบางโปรแกรมบางส่วน ก็เลยยัง
    ไม่ใช้งานแทน Sumatra PDF

ข้อดีของทุกตัวก็คือฟรีหมด