A waiting for package “tcolorbox”

เวลาทำงานเอกสาร สิ่งที่อยากทำมาก ๆ คือการสร้างกรอบให้กับส่วนที่เราต้องการแบบนี้

การทำเช่นนี้ใน LaTeX นั้นยากพอสมควร คือต้องไปสร้างชุดคำสั่งของ TikZ (หรืออื่น ๆ)  ซึ่งมันก็ยากอยู่ดี  ปกติแล้วผมจะใช้แพ็กเกจ listings ในการจัดการเรื่องพวกนี้ ซึ่งมันก็ไม่ได้ดูดีแบบรูปที่เห็น

อยู่ดี ๆ ฟ้าก็ส่งท่าน  Prof. Dr.rer.nat. Dr.-Ing. Thomas F. Sturm (ไม่ต้องตกใจนะครับ คนชาติตะวันตกการเรียน Dr. หลาย ๆ ใบนั้น ไม่ใช่เรื่องแปลก แต่คนเยอรมันนั้น จบอะไรก็ต้องใส่สาขาด้วย แสดงให้เห็นกันไปเลยว่าเชี่ยวชาญด้านไหน ไม่ใช่ว่ามีดีกรีด็อกเตอร์แล้วจะเก่งไปซะทุกเรื่อง และจริง ๆ มีดีอะไรก็บอกให้โลกรู้ไปซะ ไม่ต้องมาปกปิดทำลับ ๆ ล่อ ๆ ) ท่านโปรเฟสเซอร์ได้สละเวลาที่ไม่ค่อยจะมีนั้น สร้างแพ็กเกจ tcolorbox ไว้ให้ผมได้เอาไว้ใช้ (ฮา)  น่าเสียดายที่คู่มือเป็นภาษาเยอรมัน แต่ถ้าชำนาญคำสั่งต่าง ๆ ของ LaTeX พอสมควรก็ไม่าน่าจะยากครับ

สำหรับการสร้างผลลัพธ์ให้ได้อย่างรูปที่เห็นนั้น สามารถทำได้ดังรหัสต้นต่อไปนี้ครับ

\documentclass[xcolor=dvipsnames,xcolor=svgnames]{report}
\usepackage[svgnames,dvipsname]{xcolor}
\usepackage[listings,theorems]{tcolorbox}
\usepackage{listings}
\tcbuselibrary{listings}

% กำหนดค่าตัวเลือกให้ listings 
\lstset{%
    language=MATLAB,
    basicstyle=\ttfamily,
    keywordstyle=\color{Black},
    identifierstyle=,
    commentstyle=\color{Green},
    stringstyle=\ttfamily\color{DarkViolet},
    showstringspaces=false,
    numbers=left,
    xleftmargin=.3in,
    xrightmargin=.3in,
    framexleftmargin=0.2cm,
    framexrightmargin=0.2cm,
    float=h,
    aboveskip=1cm,
    belowskip=1cm
}%

\begin{document}

% การเรียกใช้คำสั่งของ tcolorbox เพื่อพิมพ์ listings
\begin{tcblisting}{colback=yellow!5,colframe=yellow!50!black,listing only,
    title= This is a MATLAB example}
    clc; clear all;
    s = tf('s');
    sys = 1/(s+5);
    bode(sys); 
\end{tcblisting}

\end{document}

โดยส่วนต่าง ๆ ที่จำเป็นคือ ไฟล์ tcolorbox.sty, tcblistings.code.tex  ไฟล์เหล่านี้ยังไม่ได้อยู่บน MikTeX (ตอนนี้) ดังนั้นจะต้องโหลดเอามาไว้ในโฟลเดอร์ที่ต้องการเอง  การเรียกใช้เบื้องต้นก็ต้องปรับแต่งตัว listing ให้ได้ตามชอบใจก่อน แล้วก็เรียกพิมพ์ listing โดยใช้สิ่งแวดล้อม tcblisting  จุดสำคัญที่ต้องคำนึงถึงคือตัวเลือก listing only ตัวนี้ถ้าไม่ใส่ รหัสต่าง ๆ ที่เราพิมพ์ลงไปนั้นก็จะไปปรากฏบนเอกสารด้วย (เยี่ยมมาก)

เอาไปลองใช้ดูนะครับ ได้ผลดีอย่างไรก็บอกกล่าวมาด้วยแล้วกัน

Advertisements

แต่งเติมสีสันให้กับ environment

วันนี้เอาแพ็กเกจดี ๆ มาฝากเช่นเคยครับ (?) เรื่องมีอยู่ว่าเวลาเราเขียนหนังสือเรามักจะชอบทำให้ส่วนต่าง ๆ ของหนังสือให้มีความแตกต่างกัน ตัวอย่างเช่น เวลาที่เราต้องการให้มีเส้นกรอบปิดหัวท้ายของส่วนที่เป็นตัวอย่างดังในรูป

ในการสร้างตัวสิ่งแวดล้อม (environment) ตัวอย่าง ดังในรูปนั้น โดยทั่วไปแล้วเราก็จะใช้รูปแบบมาตรฐานที่มีให้กับ LaTeX  และ amsmath ดังนี้

\newtheorem{theorem}{ตัวอย่างที่}[chapter]

ซึ่งแน่นอนครับ การใช้คำสั่งมาตรฐานย่อมได้สิ่งที่เป็นมาตรฐาน (แน่นอนสวยงามในแบบมาตรฐาน) ซึ่งย่อมไม่ถูกใจคนนอกกรอบแน่นอน

ถ้าเราไปเปิดหนังสือมีการออกแบบรูปแบบของหนังสือเป็นอย่างดีนั้น ในส่วนของทฤษฎีบท, ตัวอย่าง ฯลฯ ย่อมจะต้องมีรูปแบบที่ตายตัว มีการตกแต่งที่สวยงาม เปิดไปเจอก็จะรู้ว่าตรงนี้เป็นส่วนของตัวอย่าง  ตอนที่ผมเขียนวิทยานิพนธ์ก็ได้พยายามทำเช่นเดียวกัน โดยใช้แบบจากหนังสือของ Stephen Boyd หนึ่งในบุคคลแม่แบบของใครหลาย ๆ คน (ลอกกันทุกอณู (ถ้าทำได้)) แน่นอนผมไม่ได้ลอก Boyd เพราะผมต้องทำเองให้เหมือนหรือดีกว่า (ฮา) ตอนที่ผมทำนั้นผมใช้วิธีดังนี้ครับ

\newcounter{Examplecount}[chapter]
\setcounter{Examplecount}{0}
\renewcommand\theExamplecount{\arabic{chapter}.\arabic{Examplecount}}
\makeatletter%
\newenvironment{examplex}
{% This is the begin code
    \vspace{-.5em}
    \@tempdima0.0cm
    \def\endbit{}
    \advance\rightskip\@tempdima
    \hangindent\@tempdima
    \ignorespaces
    {\vspace{0.5cm} \begin{flushright}\rule{1\textwidth}{0.5pt}\end{flushright}}
     \vspace{-0.0cm}
         \refstepcounter{Examplecount}
         {  \noindent  \small\textbf{ตัวอย่างที่}
        \thechapter.\arabic{Examplecount}}
        \small
}
{% This is the end code
    \nolinebreak\hspace*{\stretch2}
    \parfillskip-\@tempdima
    \makebox[\@tempdima][r]{\endbit}\par
    \raggedleft$\Box$ \\[-0.5em]
    \hfill\hspace{0.03\textwidth}\rule{1\textwidth}{0.5pt}
}

ขออนุญาตไม่อธิบายนะครับ เพราะนอกจากจะยุ่งยากแล้วเรายังจะไม่ใช้มันอีกด้วย (ผู้สนใจสามารถดูรายละเอียดได้จากคำสั่ง \newenvironment{}{}{}) สำหรับรหัสต้นข้างต้นนั้น มีปัญหาในหลายส่วนครับ เช่นในกรณีของตัวอย่างที่คร่อมสองหน้า บางครั้งเส้นขอบบนและเส้นขอบล่างจะไม่อยู่ในที่ ๆ มันควรจะอยู่ หรือบางครั้งเส้นขอบบนอยู่หน้าหนึ่ง ตัวเนื้อหาอยู่อีกหน้าหนึ่ง

เวลาผ่านไปนาน หลังจากที่ผมทนใช้รหัสต้นของผมอยู่ปีกว่า  ผมก็ได้เริ่มเขียนหนังสือเล่มใหม่ ปัญหาเดิม ๆ กลับมาหลอกหลอนผมอีกครั้งและแก้ยาก ผมเลยใช้วิธีค้นหา แน่นอนผมใช้ทั้ง bing, google และ Stack Exchange ผมก็ได้ผมกับแพ็กเกจ mdframed ซึ่งทำให้งานเหล่านี้ง่ายขึ้นมากทีเดียว สำหรับการทำให้สิ่งแวดล้อมตัวอย่าง มีลักษณะดังรูปข้างต้นนั้นทำดังนี้ครับ

\newtheorem{mdtheorem}{\textbf{ตัวอย่างที่}}[chapter]
\newenvironment{examplex}{%
    \begin{mdframed}%
	[linewidth=1pt, leftline=false, rightline=false,%
	outerlinewidth=2,leftmargin=50,rightmargin=0,%
	innertopmargin=-0.6cm, innerleftmargin=0, innerrightmargin=0%
	 backgroundcolor=white, outerlinecolor=black,%
	 splittopskip=\topskip, skipbelow=\baselineskip,%
	 skipabove=\baselineskip, ntheorem]%
	 \begin{mdtheorem} \small\normalfont}
     {\end{mdtheorem}\end{mdframed}}

ซึ่งการใช้งานก็ง่ายมากครับ อ่านคู่มือเอาเองได้เลย เวลาน้อยไม่ขออธิบายแล้วกัน  เจอกันใหม่คราวหน้าครับ

ปัญหาของ XeLaTeX กับ MiKTeX

ในช่วงที่ผ่านมา ไม่ได้ยุ่งเกี่ยวอะไรกับ pdfLaTeX มานานมากแล้ว งานส่วนใหญ่หันไปใช้ XeLaTeX หมดแล้ว เพราะความสามารถที่มากกว่า ใช้ฟอนต์ของ OS นั้น ๆ ได้ ใช้งานกับภาษาไทยได้ดี  ช่วงนี้ถ้าใคร Update MiKTeX แล้วหล่ะก็ ก็จะมีปัญหากับแพ็กเกจสองตัวคือ expl3 กับ xpackages  ซึ่งถูกแทนที่ด้วย l3kernel กับ l3packages แต่ตอนนี้ MiKTeX ยังไม่ได้แก้ไข ผู้ใช้จะต้องลงเองนะครับ โดยใช้ตัวจัดการแพ็กเกจของ MiKTeX ครับ ปัญหาก็จะหมดไป

 

วาดแผนภาพ (diagram) ง่าย(ที่ไหน) ด้วย TikZ ตอนที่ 1

ถ้าใครเคยใช้ beamer, TikZ มาบ้าง แล้วเริ่มต้นด้วยการอ่านคู่มือโดยมีเป้าหมายเพื่อที่จำทำงานง่าย ๆ บางอย่างให้เสร็จในเวลาอันรวดเร็ว นั่นหมายความว่าคุณชอบทรมานตัวเอง คู่มือของ beamer และ TikZ นั้นหนา รายละเอียดเยอะ แล้วก็ “ต้องอ่านตั้งแต่ต้น” ใครไม่เคยใช้ beamer และ TikZ และไม่อยากแตะ แต่เคยสัมผัสคู่มือของอุปกรณ์จากเยอรมันเช่น Siemens, dSpace (อาจจะรวม SAP เข้าไปด้วย) ก็น่าจะรู้ดีว่า คู่มือเหล่านี้จะมี Quick Start ที่อ่านจบแล้วไปต่อไปไม่ได้ ตัวอย่างถัดไปไม่สามารถขยายต่อจากตัวอย่างใน Quick Start ได้ บางครั้งทำตามตัวอย่างในบทถัด ๆ ไปทุกอย่าง แต่ได้ error มั่วไปหมด วิธีก็คือตั้งอ่านคู่มือย้อนกลับไปเรื่อย ๆ จนกว่าจะหาสาเหตุเจอ (ซึ่งไม่ง่ายเหมือนคู่มือจากประเทศอื่น)

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

บทความชุดนี้ สร้างขึ้นมาเพื่อให้เราสามารถสร้างผลงานด้วย TikZ ได้เหมือนกับกินบะหมี่สำเร็จรูป (แน่นอนคู่มือลักษณะนี้จะหนาพันหน้า ในขณะที่คู่มือต้นฉบับหนาแค่สองร้อยหน้า)

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

จะเห็นได้ว่าโหนดแต่ละอันนั้นเป็นรูปสี่เหลี่ยมผืนผ้าขอบโค้ง  ถ้าต้องการวาดแผนภาพแบบนี้ จะต้องมีการเรียกแฟ้มคำสั่ง (library) ก่อน ในกรณีนี้ที่จำเป็นมีสามตัวคือ

Continue reading

ความคืบหน้า 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 แพ็กเกจนั่นเอง ไว้จะทำให้เรียบร้อยต่อไปครับ

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

Texmaker 2.3 และ SumatraPDF 1.4

ไม่รู้เป็นเหตุบังเอิญหรือเปล่าที่โปรแกรมเล็ก ๆ ดี ๆ สองตัวออกเวอร์ชันใหม่พร้อม ๆ กัน โปรแกรมตัวแรกคือ Texmaker 2.3

และ SumatraPDF 1.4 สำหรับตัวแรกผมเริ่มใช้เป็นบรรณาธิกรณ์หลักในการสร้างเอกสารขนาดเล็ก ๆ แล้ว ด้วยความที่มันเป็น Unicode และมีตัวแสดงผล pdf แบบฝังตัว ทำให้การใช้งานค่อนข้างสะดวกรวดเร็ว ความสามารถใหม่ ๆ ที่เพิ่มเข้ามาในเวอร์ชันนี้คือ (เอาเฉพาะที่สำคัญนะครับ)

  1. สามารถซ่อนกลุ่มคำสั่ง (folding) ที่อยู่ภายใต้คำสั่ง\part, \chapter, \section,.., \begin{foo} \end{foo} ซึ่งทำได้สวยงามทีเดียว โดยเฉพาะการเลือกใช้สี
  2. ข้อมูลของเอกสารอ้างอิงใน bibtex ไฟล์ตอนนี้จะแสดงให้เห็นเมื่อมีการเรียกใช้คำสั่ง \cite
  3. สามารถย้ายแท็บได้

ส่วน SumatraPDF 1.4 นั้นก็มีการปรับปรุงให้เร็วเหมือน 1.2 แล้ว ที่เหลือก็ไม่มีอะไร

XeTeX กับภาษาไทย

บทความนี้เป็นของคุณจักรีเช่นเดิมครับ น่าสนใจทีเดียว  ดังนี้เลยครับ

ในการใช้ MikTeX 2.9(XeLaTeX) + ฟอนต์ TH SarabunPSK บนเครื่องที่ admin ไม่อนุญาตให้ติดตั้งฟอนต์เพิ่มในระบบ

เลยหาวิธีใหม่
1. ดาวน์โหลดฟอนต์ TH SarabunPSK(หรือฟอนต์อื่น ๆ) ที่ต้องการใช้งานแล้วสำเนาไฟล์ ttf ไปไว้ที่โฟลด์เดอร์ที่ต้องการ
2. ใช้คำสั่ง

\setmainfont[Path=E:/myFonts/THsarabun/]{THSarabun.ttf}

โดยที่ “E:/myFonts/THsarabun/” เป็นโฟลด์เดอร์ที่จัดเก็บฟอนต์

หรือถ้าเก็บฟอนต์ไว้ที่เดียวกับไฟล์ต้นฉบับ

\setmainfont{THSarabun.ttf}

ด้วยเทคนิคนี้ทำให้ เราสามารถจะฝากฟอนต์ไว้ที่ flash drive หรือที่ dropbox (ตามลิงค์จะเป็น Referral ของผม) แล้วนำไปใช้ที่เครื่องไหน ๆ ก็ได้ครับ

ทดสอบ MikTeX 2.9 + ฟอนต์ TH SarabunPSK

เป็นเรื่องฝากจากคุณ จักรี ครับ คุณจักรีแนะนำการใช้งาน MikTeX 2.9+XeTeX กับฟอนต์มาตรฐาน ซึ่งฟอนต์เหล่านี้นอกจากสวยแล้ว ยังสามารถใช้ได้ฟรีโดยไม่มีข้อผูกมัด โดยสามารถดาว์นโหลดได้จาก ฟอนต์.คอม และผมเข้าใจว่าในอนาคตฟอนต์เหล่านี้จะกลายเป็นมาตรฐานแทนฟอนต์ Angsana New ที่มีให้ใช้เฉพาะ Windows เท่านั้นครับ (ในทางกฏหมาย)

นอกจากฟอนต์จะฟรีแล้ว ฟอนต์เหล่านี้ยังเข้ากับมาตรฐานใหม่ ๆ แล้ว การใช้งานกัน XeTeX เท่าที่เห็นคือ

  1. การเว้นบรรทัดถูกต้องทันที
  2. การตัดคำดีขึ้นอย่างเห็นได้ชัด
  3. ตัวหนา ตัวเอียง สามารถใช้ร่วมกับคำสั่งของ LaTeX ได้ทันที

วิธีการใช้งานตามที่คุณจักรีแนะนำมา ก็สามารถใช้ร่วมกับบรรณาธิกรณ์อย่าง TeXMaker ได้ทันทีครับ ดังนี้

% ------ Test MikTeX 2.9 + ฟอนต์  TH SarabunPSK
\documentclass[11pt,a4paper]{article}
\usepackage{xltxtra} 

\XeTeXlinebreaklocale "th"
\XeTeXlinebreakskip = 0pt plus 1pt   %

\setmainfont{TH SarabunPSK}
\title{ครม.สั่งหน่วยงานราชการ ใช้ 13 ฟอนต์ไทย  }
\author{ใครก็ไม่รู้}

\begin{document}
\maketitle
\section{ครม.เห็นชอบให้ทุกส่วนราชการโละฟอนต์ต่างชาติ บังคับใช้ 13 ฟอนต์ไทยในงานราชการ
 ระบุป้องกันละเมิดลิขสิทธิ์}
นายวัชระ กรรณิการ์ รองโฆษกประจำสำนักนายกรัฐมนตรี เปิดเผยว่า ที่ประชุม ครม.เห็นชอบให้หน่วย
งานภาครัฐทุกหน่วยดำเนินการติดตั้งฟอนต์สารบรรณและฟอนต์ อื่น ๆ ทั้งหมด จำนวน 13 ฟอนต์ ของ
สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (สอซช.) หรือ SIPA และกรมทรัพย์สินทางปัญญา
เพิ่มเข้าไปในระบบปฏิบัติการ Thai OS (Thai Operating System) และใช้ฟอนต์ดังกล่าวแทน
ฟอนต์เดิม ตามที่กระทรวงเทคโนโลยีสารสนเทศและการสื่อสารเสนอ โดยให้ติดตั้งและใช้งานให้แล้วเสร็จ
ก่อนวันที่ 5 ธันวาคม 2553

ทั้งนี้ สืบเนื่องจาก ปัจจุบันส่วนราชการจำนวนมากมีการใช้ฟอนต์ที่หลากหลาย ไม่มีมาตรฐานในเอกสาร
ทางราชการ อีกทั้งยังมีหน่วยงานราชการหลายแห่งใช้มาตรฐานฟอนต์ของบริษัทเอกชนที่ผูกขาด ลิขสิทธิ์
เช่น Angsana อาจมีปัญหาเรื่องการฟ้องร้องละเมิดลิขสิทธิ์ได้ด้วยเหตุดังกล่าว จึงได้มีการพัฒนาและมี
การประกวดแข่งขันฟอนต์ ซึ่งเป็นการส่งเสริมให้เกิดการใช้ Open Source Software ที่เป็นซอฟต์แวร์
เสรีให้ส่วนราชการไทยประกาศมาตรฐานเอกสารดิจิตัลและรูปแบบ ของฟอนต์ที่ไม่ขึ้นกับระบบปฏิบัติการ
และลิขสิทธิ์ของบริษัทใด ๆ เพื่อความภาคภูมิใจในความเป็นชาติและเอกลักษณ์ของความเป็นชาติไทย
ซึ่งในขณะนี้มีฟอนต์ที่ส่วนราชการไทยสามารถเป็นเจ้าของและพร้อม
แจกจ่ายให้ กับผู้ประสงค์จะใช้งานรวม 13 ฟอนต์ ดังนี้
\end{document}

ลองใช้ดูกันนะครับ ได้ไม่ได้อย่างไรแจ้งมาด้วย

LaTeX in Your Emails

คงจะมีปัญหากันบ้าง เวลาต้องส่งอีเมลถามปัญหาทางคณิตศาสตร์ (ปกติในเว็บบอร์ดรุ่นหลัง ๆ สามารถใส่สมการคณิตศาสตร์เข้าไปได้ ไม่มีปัญหาแล้ว) ทางแก้อันหนึ่งที่ง่าย ๆ คือแนบไฟล์ pdf ไปตรง ๆ เลย หรือแทรกสมการคณิตศาสตร์โดยใช้รหัสของ LaTeX ไปเลย กรณีแรกเสียเวลาเสียสมาธิในการสร้างคำถามค่อนข้างมาก กรณีที่สองมีข้อจำกัดค่อนข้างมาก บ่อยครั้งที่อ่านแล้วไม่รู้เรื่อง

สำหรับผู้ใช้ Thunderbird เป็นตัวอ่านอีเมล มีข่าวดีมาก ๆ คือ โปรแกรมตัวนี้มี Add-on ที่ชื่อ LaTeX It! ซึ่งสามารถทำงานได้เป็นอย่างดี ดังตัวอย่างในรูปข้างล่าง

จะเห็นว่าอีเมลที่ได้รับจากบน Yahoo จะมีสมการคณิตศาสตร์ (ในรูปไวยกรณ์คณิตศาสตร์ไม่ถูกต้อง) ที่สวยงานตามแบบฉบับของ LaTeX สำหรับวิธีการติดตั้งนั้นจำเป็นจะต้องมีโปรแกรมที่ต้องลงเพิ่มนอกจาก LaTeX Engine อย่าง MiKTeX หรือ TeXLive คือ

  • GhostScript
  • ImageMagick ซึ่งต้องเป็นเวอร์ชัน 32 บิต เท่านั้น (เราสามารถลงเวอร์ชัน 32 บิต แยกกันกับเวอร์ชัน 64 บิต ในกรณีที่ใช้ Windows 7 64 bit ได้ โดยที่ตัว 64 บิต ให้เป็นตัวเรียกใช้โดยปริยาย ส่วนโฟลเดอร์ที่ลง 32 บิต ก็ให้ตัว LaTeX It! ชี้ไปหา)

ในการติดตั้ง LaTeX It! นั้นให้เข้าไปที่เมนู Tools-> Add-ons ของ Thunderbird แล้วใช้คำค้นว่า LaTeX  แล้วก็เลือกติดตั้ง LaTeX It! จากนั้นก็ restart ตัวนกสายฟ้าใหม่เป็นอันได้ LaTeX It! มาใช้ ถ้ากด Write ก็จะมีไอคอนของ LaTeX It! ขึ้นมาให้เห็นแล้ว แต่ยังใช้งานไม่ได้ต้องตั้งค่าก่อน โดยการเข้าไปที่  Tools->Add-ons เหมือนเดิม แล้วเรียกแก้ Options ของ LaTeX It! ดังในรูป

สำหรับโฟลเดอร์ของ LaTeX และ dvips ก็อยู่ในโฟลเดอร์ที่ติดตั้ง MiKTeX ต่อด้วย \miktex\bin\latex.exe และ \miktex\bin\dvips.exe  ตามลำดับนะครับ ส่วน convert ก็จะอยู่ในโฟลเดอร์ที่ติดตั้ง Imagemagick นั่นแหละครับ หาได้ไม่ยาก  แค่นี้ก็สามารถใช้งานคำสั่งส่วนใหญ่ของ LaTeX ได้แล้ว ส่วนใครต้องการใช้ amsmath ก็ไปเพิ่มแพ็กเกจนี้เอาเองใน LaTeX template to use

เมื่อผ่านขั้นตอนนี้ไป เวลาต้องการเขียนสมการคณิตศาสตร์ก็ใส่คำสั่งของ LaTeX ไปได้เลย เสร็จแล้วก็กดไอคอนของ LaTeX It! มันก็จะแนบไฟล์รูปของสมการ (เป็น png) ให้อัตโนมัติ  พร้อมส่งครับ ข่าวร้ายคือต้องเฉพาะเมล์ที่อ่านผ่าน Thunderbird ได้เท่านั้นนะครับ Yahoo ต้องเสียเงินเพิ่ม, Gmail ได้, Hotmail ก็ได้ครับ

เปรียบมวย unicode edtiors for LaTeX

ในปัจจุบันบนวินโดวส์มีบรรณาธิกรณ์ (editor) อยู่สองตัวที่รองรับ unicode และสามารถทำ forward/inverse search ได้ ตัวหนึ่งคือ TeXWorks ส่วนอีกตัวคือ TeXMakerX ในบทความนี้จะเปรียบเทียบเฉพาะความสามารถในด้านที่กล่าวถึงเท่านั้น รูปร่างหน้าตาและความสามารถอื่น ๆ นั้น TeXWorks ยังคงเปรียบเทียบกับ TeXMakerX ไม่ได้  นั่นเป็นเพราะ TeXMakerX นั้นมีฐานมาจาก TeXMaker ซึ่งเป็นข้อได้เปรียบ

คราวนี้ TeXMakerX ได้ออกเวอร์ชัน 2.0  ซึ่งบรรจุความสามารถ forward/inverse search ทำให้ไม่จำเป็นต้องไปหา pdf viewer แบบ Sumatra PDF และเนื่องจากตัวมันรองรับ unicode ทำให้สามารถใช้งานกับภาษาไทยได้ดี โดยเฉพาะอย่างยิ่งกับ XeLaTeX ทำให้การแก้ไขงานที่เป็นภาษาไทยไม่ยุ่งยากอีกต่อไป  หน้าตาของ pdf viewer ที่ติดมากับ TeXMakerX นั้นเป็นแบบรูปข้างล่าง ก็มีฟังก์ชันในการดูไฟล์เอกสารครบถ้วน เพียงพอที่จะใช้ตรวจสอบเอกสาร

หลังจากที่เราได้เอกสาร pdf แล้ว เราสามารถจะเรียกดูเอกสารต้นฉบับได้โดยการเอาเมาส์ไปจิ้มตำแหน่งที่เราต้องการ แล้วคลิ๊กขวาเพื่อเลือกตัวเลือก Jump to Source ตัวบรรณาธิกรณ์ก็จะขึ้นมาตรงบรรทัดนั้นให้และแถมด้วยการเน้นข้อความในส่วนนั้นด้วยสีเหลือง  ส่วนการจะเรียกดูสิ่งที่ปรากฏใน pdf ไฟล์ จากบรรณาธิกรณ์ ก็ไปที่ตำแหน่งนั้น จะกด F7 หรือคลิ๊กที่ไอคอน Adobe ก็ได้

ตอนจะลองนะครับ สำหรับ TeXMakerX จำเป็นจะต้องตั้งค่าคำสั่งให้ถูกต้องด้วย สำหรับการใช้ XeLaTeX ก็ต้องไปแก้ อย่างในกรณีนี้ผมไม่ใช้ LaTeX แล้วผมก็แก้ให้เป็น XeLaTeX ดังนี้ครับ

xelatex  -synctex=1 -interaction=nonstopmode %.tex

ซึ่งหลังจากแก้ไขแล้ว ตัวโปรแกรมก็จะเรียกใช้ XeLaTeX แทน

สำหรับ TeXworks นั้นมีตัวเลือกสำหรับ XeLaTeX ให้อยู่แล้ว เรียกใช้ได้เลย ทุกอย่างแทบจะเหมือนกันกับ TeXMakerX ทั้งหมด เพียงแต่ในการทำ Forward/Inverse search นั้นจะต้องใช้เมาส์ซึ่งไม่สะดวกนัก อีกข้อเสียหนึ่งก็คือตัวโปรแกรมจะเลือกเปิดตัว pdf viewer เฉพาะในที่ ๆ กำหนดไว้เท่านั้น ผู้ใช้ต้องเลื่อนเอาเอง บางครั้งมันไม่สะดวกนัก

สรุป TeXworks นั้นยังตาม TeXMakerX อยู่มากโข ในแง่ของคุณลักษณะการใช้งาน ถ้าไม่เกี่ยงเรื่องรก TeXMakerX เป็นบรรณาธิกรณ์สำหรับ XeLaTeX ภาษาไทยที่ดีตัวหนึ่งครับ