跳到主要內容

fontenc、inputenc、fontspec 和字型套件

inputenc 和 fontenc 並不需要,會被接受但沒有效果,因為原始碼一律以 UTF-8 讀取。在一般文件中,字型固定為 Latin Modern 和 New Computer Modern Math:fontspec 的 \setmainfont 以及 times 或 libertine 等套件會被忽略,只有用 \familydefault(可搭配 helvet)切換成無襯線字型有效。

套件的用途

  • inputenc 告訴 pdfLaTeX 原始碼檔案的編碼方式。在 2018 年以前,輸入帶重音的字母需要 \usepackage[utf8]{inputenc};現在的 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 原始碼可用一律可用,不論有沒有 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 以及在研討會版面中(使用 Latin Modern 的 LNCS 除外),則是真正的小型大寫字母。
文字中的 \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} 時會得到類似 Helvetica 的 TeX Gyre Heros。研討會範本會帶有自己的字型:大多數使用 TeX Gyre Termes(類似 Times 的字型),ACM 則使用 Libertinus。

fontspec 在 Scissor LaTeX 中能用嗎?

它載入時不會出錯,所以 XeLaTeX 文件可以開啟並排版,但 \setmainfont 和其他字型設定會被忽略。

本頁的每個範例都在建置網站時由 Scissor LaTeX 排版。 最後更新:2026-11-07