18 พฤศจิกายน 2557

Published พฤศจิกายน 18, 2557 by with 0 comment

สร้างไฟล์ LaTeX ใน Python

  LaTeX เป็นระบบหนึ่งสำหรับใช้จัดเรียงพิมพ์เอกสารทางคณิตศาสตร์และวิทยาศาสตร์ มีคุณภาพการเรียงพิมพ์ที่สวย เอกสารออกมาสวยงาม อำนวยความสะดวกในหารสมการทางคณิตศาสตร์และวิทยาศาสตร์
บทความนี้จะพาทุกท่านไปสร้างไฟล์ LaTeX ใน Python กันครับ
ใน Python ได้มีนักพัฒนาได้สร้างโมดูลสำหรับสร้างไฟล์ LaTeX ออกมา ชื่อว่า "PyLaTeX"  โดยมีความต้องการดังนี้
  • รองรับทั้ง Python 3.x และ Python 2.7
  • pdflatex (เฉพาะเมื่อคุณต้องการคอมไพล์ไฟล์ tex)
  • NumPy (เฉพาะเมื่อคุณต้องการแปลงของ matrixes)
  • ordered-set
มีคุณสมบัติต่อไปนี้
  • สร้างเอกสารและคอมไพล์
  • ส่วน ตาราง คณิตศาสตร์ และ package classes
  • คลาสเมตริกซ์ที่สามารถรวบรวม NumPy ndarrays และ matrices ไปยัง LaTeX
  • ฟังก์ชันการหลบหนี
  • ตัวหนา และตัวเอียง
  • ทุก class มีวิธีการถ่ายโอนข้อมูล การเขียนผลลัพธ์เป็น filepointer
  • MIT license

การติดตั้ง PyLaTeX

ใช้ pip ในการติดตั้งโดยใช้คำสั่ง
pip install pylatex

โค้ดตัวอย่างการใช้งาน PyLaTeX ในการสร้างไฟล์ LaTeX ใน Python

import numpy as np

from pylatex import Document, Section, Subsection, Table, Math, TikZ, Axis, \
    Plot
from pylatex.numpy import Matrix
from pylatex.utils import italic

doc = Document()
section = Section('Yaay the first section, it can even be ' + italic('italic'))

section.append('Some regular text')

math = Subsection('Math that is incorrect', data=[Math(data=['2*3', '=', 9])])

section.append(math)
table = Table('rc|cl')
table.add_hline()
table.add_row((1, 2, 3, 4))
table.add_hline(1, 2)
table.add_empty_row()
table.add_row((4, 5, 6, 7))

table = Subsection('Table of something', data=[table])

section.append(table)

a = np.array([[100, 10, 20]]).T
M = np.matrix([[2, 3, 4],
               [0, 0, 1],
               [0, 0, 2]])

math = Math(data=[Matrix(M), Matrix(a), '=', Matrix(M*a)])
equation = Subsection('Matrix equation', data=[math])

section.append(equation)

tikz = TikZ()

axis = Axis(options='height=6cm, width=6cm, grid=major')

plot1 = Plot(name='model', func='-x^5 - 242')
coordinates = [
    (-4.77778, 2027.60977),
    (-3.55556, 347.84069),
    (-2.33333, 22.58953),
    (-1.11111, -493.50066),
    (0.11111, 46.66082),
    (1.33333, -205.56286),
    (2.55556, -341.40638),
    (3.77778, -1169.24780),
    (5.00000, -3269.56775),
]

plot2 = Plot(name='estimate', coordinates=coordinates)

axis.append(plot1)
axis.append(plot2)

tikz.append(axis)

plot_section = Subsection('Random graph', data=[tikz])

section.append(plot_section)

doc.append(section)

doc.generate_pdf()

ผลลัพธ์
PyLaTeX จะสร้างไฟล์ LaTeX ออกมาดังนี้

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)