← กลับไปยังบทความทั้งหมด

ระบบการจัดพิมพ์ TeX นวัตกรรมดิจิทัลไทโพกราฟีโดยโดนัลด์ คนูธ

สรุปใจความสำคัญ

  • ออกแบบโดยโดนัลด์ คนูธ ศาสตราจารย์จากมหาวิทยาลัยสแตนฟอร์ด
  • เน้นความแม่นยำสูงในการจัดพิมพ์สูตรคณิตศาสตร์และเอกสารทางวิชาการ
  • ใช้ระบบการคำนวณแบบ Fixed-point เพื่อให้ผลลัพธ์การจัดพิมพ์เหมือนกันในทุกเครื่องคอมพิวเตอร์
  • เลขเวอร์ชันของ TeX จะเพิ่มขึ้นเรื่อย ๆ เพื่อเข้าใกล้ค่าพาย (\pi)

TeX (อ่านว่า /tɛx/) เป็นโปรแกรมการจัดพิมพ์ (Typesetting program) แบบโอเพนซอร์สและใช้งานได้ฟรี ซึ่งออกแบบและเขียนโดย โดนัลด์ คนูธ (Donald Knuth) ศาสตราจารย์จากมหาวิทยาลัยสแตนฟอร์ด โดยมีการปล่อยตัวครั้งแรกในปี ค.ศ. 1978 ในปัจจุบัน คำว่า TeX ไม่ได้หมายถึงเพียงแค่ตัวโปรแกรมดั้งเดิม แต่ยังครอบคลุมถึงระบบส่วนขยาย ซึ่งประกอบด้วยโปรแกรมประมวลผล (TeX engines), ชุดคำสั่งแมโคร (TeX macros) และแพ็กเกจต่าง ๆ ที่ช่วยเพิ่มประสิทธิภาพในการจัดพิมพ์

ความสำคัญและการใช้งาน

TeX ได้รับการยอมรับว่าเป็นหนึ่งในระบบไทโพกราฟีดิจิทัลที่ซับซ้อนและมีประสิทธิภาพสูงสุด โดยเฉพาะในการจัดพิมพ์สูตรทางคณิตศาสตร์ที่ซับซ้อน ด้วยเหตุนี้ TeX จึงเป็นที่นิยมอย่างแพร่หลายในแวดวงวิชาการ โดยเฉพาะในสาขาคณิตศาสตร์, วิทยาการคอมพิวเตอร์, เศรษฐศาสตร์, รัฐศาสตร์, วิศวกรรมศาสตร์, ภาษาศาสตร์, ฟิสิกส์, สถิติ และจิตวิทยาเชิงปริมาณ

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

ประวัติและการพัฒนา

จุดเริ่มต้นจากความผิดหวัง

แรงจูงใจในการสร้าง TeX เกิดขึ้นเมื่อโดนัลด์ คนูธ พบว่าการจัดพิมพ์หนังสือ The Art of Computer Programming ฉบับพิมพ์ครั้งที่สองในปี ค.ศ. 1976 มีคุณภาพต่ำกว่ามาตรฐานที่เขาต้องการ เนื่องจากเทคโนโลยีการจัดพิมพ์ในสมัยนั้นเปลี่ยนจากระบบ Monotype (Hot metal typesetting) ไปเป็นระบบ Phototypesetting ทำให้แบบอักษรดั้งเดิมหายไปและผลลัพธ์ที่ได้ไม่เป็นที่น่าพอใจ

ด้วยเหตุนี้ คนูธจึงเริ่มออกแบบระบบการจัดพิมพ์ของตนเอง โดยเขาได้เขียนบันทึกรายละเอียดคุณสมบัติพื้นฐานของ TeX เมื่อวันที่ 13 พฤษภาคม ค.ศ. 1977 และพัฒนาเวอร์ชันแรก (TeX78) ขึ้นในปี ค.ศ. 1978 โดยใช้ภาษาโปรแกรม SAIL บนระบบปฏิบัติการ WAITS ของมหาวิทยาลัยสแตนฟอร์ด

การพัฒนาสู่ความเสถียร

ในปี ค.ศ. 1982 คนูธได้เขียน TeX ขึ้นมาใหม่ทั้งหมดเป็นเวอร์ชัน TeX82 โดยเปลี่ยนมาใช้การคำนวณแบบ Fixed-point arithmetic แทน Floating-point เพื่อให้มั่นใจว่าผลลัพธ์การจัดพิมพ์จะเหมือนกันทุกประการไม่ว่าจะรันบนคอมพิวเตอร์เครื่องใดหรือเวลาใดก็ตาม ซึ่งเป็นหนึ่งในเป้าหมายหลักของระบบ

ต่อมาในวันที่ 15 มีนาคม ค.ศ. 1990 ได้มีการปล่อย TeX 3.0 ซึ่งรองรับการนำเข้าข้อมูลแบบ 8 บิต (8-bit inputs) ทำให้สามารถรองรับตัวอักษรได้ถึง 256 ตัว ซึ่งจำเป็นสำหรับการรองรับภาษาต่างประเทศ

ระบบการระบุเวอร์ชันที่เป็นเอกลักษณ์

ตั้งแต่เวอร์ชัน 3 เป็นต้นมา TeX ใช้ระบบการระบุเลขเวอร์ชันที่แปลกประหลาด โดยการเพิ่มตัวเลขต่อท้ายทศนิยมไปเรื่อย ๆ เพื่อให้ค่าของเวอร์ชันเข้าใกล้ค่าพาย ($\pi$) ซึ่งปัจจุบันอยู่ที่เวอร์ชัน 3.141592653 (อัปเดตล่าสุดในปี ค.ศ. 2021)

การออกแบบของ TeX ถูกแช่แข็ง (Frozen) ไว้ตั้งแต่เวอร์ชัน 3.0 โดยไม่มีการเพิ่มคุณสมบัติใหม่หรือการเปลี่ยนแปลงโครงสร้างพื้นฐาน เพื่อให้ระบบมีความเสถียรสูงสุดและให้ผลลัพธ์ที่คงเดิมตลอดกาล โดยคนูธระบุว่าการเปลี่ยนแปลงครั้งสุดท้ายจะเกิดขึ้นหลังการเสียชีวิตของเขา โดยจะเปลี่ยนเลขเวอร์ชันเป็น $\pi$ อย่างสมบูรณ์ และเมื่อนั้น "บั๊ก" ทั้งหมดที่เหลืออยู่จะถูกถือว่าเป็น "คุณสมบัติ" (Features) ของระบบ

ที่มาของชื่อและการออกเสียง

ชื่อ TeX มาจากคำว่า τέχνη (ΤΕΧΝΗ technē) ในภาษากรีก ซึ่งแปลว่า "ศิลปะ" หรือ "งานฝีมือ" และเป็นรากศัพท์ของคำว่า technical การออกเสียงที่ถูกต้องตามความตั้งใจของผู้พัฒนาคือ /tɛx/ (เสียง x เหมือนในคำว่า loch) อย่างไรก็ตาม ผู้พูดภาษาอังกฤษมักออกเสียงว่า /tɛk/

ในการพิมพ์ชื่อ TeX คนูธแนะนำให้พิมพ์ตัว "E" ให้อยู่ต่ำกว่าเส้นฐาน (Baseline) และลดระยะห่างระหว่างตัวอักษร เพื่อให้แตกต่างจากระบบอื่น ๆ เช่น TEX (Text Executive processor) ของ Honeywell Information Systems

คำถามที่พบบ่อย

TeX แตกต่างจาก LaTeX อย่างไร?

TeX เป็นภาษาการจัดพิมพ์ระดับต่ำ (Low-level language) ที่มีความยืดหยุ่นสูงแต่ใช้งานยากกว่า ในขณะที่ LaTeX เป็นชุดของแมโคร (Macro package) ที่สร้างขึ้นบนพื้นฐานของ TeX เพื่อให้ผู้ใช้สามารถจัดรูปแบบเอกสารได้ง่ายขึ้นโดยใช้คำสั่งระดับสูง

ทำไม TeX ถึงใช้เลขเวอร์ชันที่เข้าใกล้ค่าพาย?

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

ทำไมต้องใช้ TeX ในการเขียนงานวิจัยทางวิทยาศาสตร์?

เพราะ TeX มีความสามารถในการจัดการกับสัญลักษณ์ทางคณิตศาสตร์ที่ซับซ้อนและการจัดวางตำแหน่งตัวอักษรที่แม่นยำ ซึ่งโปรแกรมประมวลผลคำทั่วไปไม่สามารถทำได้ในระดับเดียวกัน