ข้ามไปยังเนื้อหา

fontenc, inputenc, fontspec และแพ็กเกจฟอนต์

ไม่จำเป็นต้องใช้ inputenc และ fontenc ทั้งสองถูกยอมรับแต่ไม่มีผล เพราะซอร์สถูกอ่านเป็น UTF-8 เสมอ ในเอกสารทั่วไป ฟอนต์ถูกกำหนดตายตัวเป็น Latin Modern และ New Computer Modern Math \setmainfont ของ fontspec และแพ็กเกจอย่าง times หรือ libertine ถูกละเว้น มีเพียงการสลับเป็นฟอนต์ไม่มีเชิงด้วย \familydefault (จะใช้ร่วมกับ helvet ก็ได้) ที่ใช้ได้

แพ็กเกจเหล่านี้ทำอะไร

  • inputenc บอก pdfLaTeX ว่าไฟล์ซอร์สเข้ารหัสแบบใด \usepackage[utf8]{inputenc} เคยจำเป็นสำหรับเครื่องหมายเสริมสัทอักษรที่พิมพ์โดยตรงก่อนปี 2018 ปัจจุบัน LaTeX อ่าน UTF-8 เป็นค่าเริ่มต้น
  • fontenc เลือกการเข้ารหัสฟอนต์ \usepackage[T1]{fontenc} ให้ pdfLaTeX ใช้ฟอนต์ที่มีตัวอักษรพร้อมเครื่องหมายเสริมในตัว ซึ่งช่วยให้ตัดคำได้ดีขึ้นและคัดลอกข้อความจาก PDF ได้ดีขึ้น
  • fontspec (XeLaTeX และ LuaLaTeX) โหลดฟอนต์ OpenType ใดก็ได้ที่ติดตั้งไว้: \setmainfont{...}, \setsansfont{...}, \setmonofont{...}, \newfontfamily
  • แพ็กเกจฟอนต์อย่าง lmodern, times, mathptmx, helvet, libertine หรือ newtxtext เปลี่ยนเอกสาร pdfLaTeX ไปใช้แบบอักษรอื่น

สิ่งที่ใช้ได้ที่นี่

ฟีเจอร์ใน Scissor LaTeXหมายเหตุ
ซอร์ส UTF-8 ที่มี ä, é, ł อักษรกรีก ซีริลลิก CJK ...ใช้ได้ใช้ได้เสมอ ไม่ว่าจะมี inputenc หรือไม่
\usepackage[utf8]{inputenc}, \usepackage[T1]{fontenc}, lmodernถูกละไว้ถูกยอมรับ ไม่ต้องทำอะไร
\renewcommand{\familydefault}{\sfdefault}ใช้ได้เนื้อความเป็น Latin Modern Sans
helvet หรือ tgheros ร่วมกับบรรทัดด้านบนใช้ได้ฟอนต์ไม่มีเชิงเป็น TeX Gyre Heros ซึ่งคล้าย Helvetica
sfmathใช้ได้สูตรเป็นฟอนต์ไม่มีเชิง
\texttt{...}, \ttfamilyใช้ได้Latin Modern Mono
\textbf, \textit, \emphใช้ได้
\textsc{...}ใช้ได้บางส่วนในฟอนต์ Latin Modern ที่เป็นค่าเริ่มต้นจะเป็นตัวอักษรธรรมดา เมื่อใช้ helvet และในเลย์เอาต์งานประชุมวิชาการ (ยกเว้น LNCS ซึ่งใช้ Latin Modern) จะเป็นตัวพิมพ์ใหญ่ขนาดเล็กจริง
\textsf{...}, \sffamily ภายในข้อความถูกละไว้ข้อความยังเป็นฟอนต์มีเชิง
fontspec: \setmainfont, \setsansfont, \setmonofontถูกละไว้ถูกยอมรับในส่วนนำ ไม่มีผล
\newfontfamily\name{Font}ไม่รองรับถูกข้ามพร้อมข้อความแจ้ง และชื่อฟอนต์ถูกพิมพ์ออกมา
times, mathptmx, palatino, libertine, newtxtext, charter ...ถูกละไว้ข้อความยังเป็น Latin Modern
\fontsize{14}{16}\selectfontใช้ได้ใช้ขนาดมาตรฐานที่ใกล้ที่สุดระหว่าง 5 ถึง 144 pt ระยะบรรทัดปรับตามขนาด
\fontfamily{...}\selectfontถูกละไว้ไม่มีข้อความแจ้ง ข้อความคงฟอนต์เดิม
\small, \large, \Huge ...ใช้ได้ยกเว้นในเลย์เอาต์ของงานประชุมวิชาการและวารสาร ซึ่งใช้ขนาดของตัวเอง
unicode-math: \setmathfontถูกละไว้ฟอนต์คณิตศาสตร์ยังเป็น New Computer Modern Math
unicode-math: \symbf, \symit ในสูตรไม่รองรับสูตรแสดงเป็นสีแดง ให้ใช้ \mathbf, \boldsymbol หรือ bm

ขนาดฟอนต์ของเนื้อความมาจากตัวเลือกของคลาส (10pt, 11pt หรือ 12pt) ดู เลย์เอาต์หน้า

ตัวอย่าง

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

inputenc, fontenc และ lmodern ถูกยอมรับ

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
Hans Mustermann bestellt Crème brûlée, Smørrebrød und Pierogi z
kapustą. \texttt{Monospaced}, \textbf{bold} and \textit{italic}
work as usual.
\end{document}
จัดหน้าโดย Scissor LaTeX: inputenc, fontenc และ lmodern ถูกยอมรับ

fontspec โหลดได้โดยไม่มีข้อผิดพลาด แต่ข้อความยังเป็น Latin Modern:

\setmainfont ไม่มีผล

\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\begin{document}
This paragraph would be set in Pagella by XeLaTeX or LuaLaTeX.
Here it stays in Latin Modern, the default font.
\end{document}
จัดหน้าโดย Scissor LaTeX: \setmainfont ไม่มีผล

การสลับฟอนต์เพียงแบบเดียวที่ใช้ได้: ทั้งเอกสารเป็นฟอนต์ไม่มีเชิง

ฟอนต์ไม่มีเชิงด้วย \familydefault และ sfmath

\documentclass{article}
\usepackage{helvet}
\usepackage{sfmath}
\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\section{Results}
John Doe measured $v = 44\,\mathrm{m/s}$, which matches the
estimate $v \approx \sqrt{2 g h}$.
\end{document}

ความเข้ากันได้

  • จากการติดตั้ง TeX มาที่นี่: ข้อความและสูตรยังคงอยู่ในฟอนต์ Latin Modern ฟอนต์ที่ตั้งด้วย fontspec หรือแพ็กเกจฟอนต์ไม่ถูกใช้ และเอกสารที่เขียนสำหรับ XeLaTeX จัดเรียงพิมพ์ได้โดยไม่ต้องแก้ไข
  • จากที่นี่ไปยังการติดตั้ง TeX: เอกสารคอมไพล์ได้ด้วย pdfLaTeX, XeLaTeX หรือ LuaLaTeX ตามที่แพ็กเกจของเอกสารต้องการ และฟอนต์ที่เลือกไว้จะมีผล

คู่มือฉบับเต็มอยู่บน CTAN: fontspec fontenc inputenc และ unicode-math ดูเพิ่มเติม ภาษาและฟอนต์อื่น ๆ

คำถามและคำตอบ

ต้องใช้ \usepackage[utf8]{inputenc} หรือไม่

ที่นี่ไม่ต้อง ซอร์สถูกอ่านเป็น UTF-8 เสมอ การคงบรรทัดนี้ไว้ไม่มีผลเสีย และการติดตั้ง TeX รุ่นเก่ายังต้องใช้

จะใช้ Times New Roman หรือ Arial ได้อย่างไร

ในเอกสารทั่วไปใช้ไม่ได้ ฟอนต์ของข้อความเป็น Latin Modern และสลับได้เพียงเป็นฟอนต์ไม่มีเชิงด้วย \renewcommand{\familydefault}{\sfdefault} ซึ่งเมื่อใช้ร่วมกับ \usepackage{helvet} จะได้ TeX Gyre Heros ที่คล้าย Helvetica เทมเพลตงานประชุมวิชาการ มีฟอนต์ของตัวเอง: TeX Gyre Termes (คล้าย Times) สำหรับส่วนใหญ่ และ Libertinus สำหรับ ACM

fontspec ใช้ได้ใน Scissor LaTeX หรือไม่

โหลดได้โดยไม่มีข้อผิดพลาด เอกสาร XeLaTeX จึงเปิดและจัดเรียงพิมพ์ได้ แต่ \setmainfont และการตั้งค่าฟอนต์อื่น ๆ ถูกละเว้น

ทุกตัวอย่างในหน้านี้จัดหน้าโดย Scissor LaTeX ขณะสร้างเว็บไซต์ อัปเดตล่าสุด 2026-11-07