Μετάβαση στο περιεχόμενο

fontenc, inputenc, fontspec και πακέτα γραμματοσειρών

Τα inputenc και fontenc δεν χρειάζονται και γίνονται δεκτά χωρίς αποτέλεσμα, αφού ο πηγαίος κώδικας διαβάζεται πάντα ως UTF-8. Στα συνηθισμένα έγγραφα, οι γραμματοσειρές είναι σταθερές, Latin Modern και New Computer Modern Math: το \setmainfont του fontspec και πακέτα όπως τα times ή libertine αγνοούνται, και λειτουργεί μόνο η αλλαγή σε sans serif με \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 με την παραπάνω γραμμήΛειτουργείSans serif σε TeX Gyre Heros, μια γραμματοσειρά που μοιάζει με την Helvetica.
sfmathΛειτουργείΤύποι σε sans serif.
\texttt{...}, \ttfamilyΛειτουργείLatin Modern Mono.
\textbf, \textit, \emphΛειτουργεί
\textsc{...}Εν μέρειΣτην προεπιλεγμένη γραμματοσειρά Latin Modern, κανονικά γράμματα. Με το helvet και στις διατάξεις συνεδρίων (εκτός από το LNCS, που χρησιμοποιεί Latin Modern), πραγματικά μικρά κεφαλαία.
\textsf{...}, \sffamily μέσα στο κείμενοΠαραλείπεταιΤο κείμενο μένει serif.
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 δεν έχει αποτέλεσμα

Η μία αλλαγή γραμματοσειράς που λειτουργεί: ολόκληρο το έγγραφο σε sans serif.

Sans serif με \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· η μόνη αλλαγή είναι σε sans serif με \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.