ใช้ Python ใน LaTeX


จริง ๆ แล้ว TeX นั้นเป็นภาษาโปรแกรมมิ่งที่สามารถทำอะไรก็ได้เหมือนภาษาโปรแกรมมิ่งทั่วไป
มีคนเขียนเป็นโปรแกรมแก้ปัญหา Sudoku ด้วย แต่ด้วยความซับซ้อนของตัวภาษาก็เลยทำให้
น้อยคนที่จะใช้ภาษานี้ในการเขียนโปรแกรมอย่างจริง ๆ

สำหรับคนที่ต้องการจะใช้ Python ช่วยในการเขียนโปรแกรมเพื่อเพิ่มประสิทธิภาพให้ LaTeX
นั้นสามารถทำได้ง่าย ๆ โดยใช้ python.sty จาก TeXample.net แต่สำหรับผู้ใช้บน windows
จำเป็นต้องดัดแปลงรหัสต้นนิดหน่อย ดูในความเห็นที่ 3-4 นะครับ อันที่สามเป็นผมเอง

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

อย่างไรก็ตาม รู้ไว้ก็ไม่เสียหลายครับ ใครที่ต้องการจะใส่รหัส Python ลงรหัสของ LaTeX
เน้นบนวินโดวส์นะครับ (ผมจะเน้นใช้เฉพาะวินโดวส์) ก็ทำดังนี้นะครับ

  1. คุณอาจจะแก้รหัสบางส่วนของ python.sty ก็ได้ดูในความเห็นที่สามในลิงค์ข้างต้น
  2. คุณจำเป็นต้องลงโปรแกรมที่เรียกว่า Unxutils ซึ่งวิธีลงก็ง่ายแสนง่าย คือแตกไฟล์
    ใส่ไว้ในโฟลเดอร์ที่ต้องการเช่น c:\unxutils จากนั้นก็ไปเพิ่ม path ให้กับวินโดวส์
    ทำไม่เป็นใช่ไหม ก็ง่าย ๆ ครับ
    Control Panel -> System -> Advance -> Environment Variables
    แล้วก็ไปที่ System Variables เลือกแก้ไขตัวแปร path โดยเพิ่ม
    ;c:\unxutils\bin\;c:\unxutils\usr\local\wbin\
  3. แค่นี้ก็เสร็จครับ

ขั้นต่อมาคุณต้องลง Python ก็เลือกเอาเวอร์ชัน 2.6 นั่นแหละ คราวนี้ติดตั้งแบบ Yes ไป
จนจบได้ จากนั้นคุณก็เพิ่ม path ให้ระบบโดยเพิ่ม ;c\python26\ เข้าไป

ยัง ยังไม่จบ ต้องลง PyX ด้วย ก็ง่าย ๆ ครับ ไปโหลด PyX-0.10.tar.gz มา ให้แตกไฟล์
ด้วย 7-zip โดยแตกไฟล์ไว้ที่ C:\Python26\Lib\pyx\ ก็เป็นอันเสร็จพิธีลองใช้ได้เลย

%& -shell-escape
\documentclass{article}
\usepackage{graphicx}
\usepackage{python}
\begin{document}

\begin{figure}
\centering
\begin{python}
#
from pyx import *

g = graph.graphxy(width=8)
g.plot(graph.data.function("y(x)=sin(x)/x", min=-15, max=15))
g.writePDFfile("function")
print r'\includegraphics{function}'
\end{python}
\caption{$y(x)=\frac{\sin(x)}{x}$}
\end{figure}

\end{document}

ก็จะได้เอกสาร pdf ดังนี้

Hello world!

รูปจาก texample.net

หวังว่าคงได้ประโยชน์บ้างนะครับ

Advertisements

2 comments on “ใช้ Python ใน LaTeX

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s