Åtgärda det fatala fontspec-felet i LaTeX.
Felet Fatal Package fontspec Error: The fontspec package requires either XeTeX or LuaTeX uppstår när du kompilerar ett dokument som laddar fontspec med pdfLaTeX eller standard-LaTeX. Paketet förlitar sig på primitiver för fonthantering som endast XeTeX och LuaTeX tillhandahåller.
Det korta svaret: byt motor från pdfLaTeX till XeLaTeX eller LuaLaTeX i dina redigeringsinställningar. Om din utgivare tvingar dig att använda pdfLaTeX, ta bort \usepackage{fontspec} och använd traditionella fontpaket som lmodern med fontenc istället.
Varför felet uppstår
Traditionell pdfLaTeX hanterar fonter genom TeX-fontmetrikfiler (.tfm) och Type 1 PostScript-konturer. Paketet fontspec fungerar helt annorlunda: det laddar OpenType (.otf) och TrueType (.ttf)-fonter som är installerade på ditt operativsystem eller lagrade i din projektmapp.
Eftersom pdfLaTeX saknar det interna maskineriet för att läsa OpenType-fonttabeller, stoppas fontspec omedelbart vid laddning. Det kastar antingen Fatal fontspec error: "cannot-use-pdftex" eller The fontspec package requires either XeTeX or LuaTeX för att förhindra korrupt PDF-generering.
Du kan se detta fel även om du aldrig skrev \usepackage{fontspec} i din egen preamble. Många moderna CV-mallar (som Awesome-CV), flerspråkiga paket som polyglossia och unicode-matematikpaket laddar fontspec i bakgrunden.
Fix 1: Byt kompilator till XeLaTeX eller LuaLaTeX
Att byta projektets motor är standardlösningen när du vill använda anpassade OpenType-fonter eller unicode-text.
I Texeno
Öppna projektinställningar från vänster sidofält eller toppfältet. Under Compiler Engine, välj XeLaTeX eller LuaLaTeX. Båda motorerna körs på TeX Live 2026 med fullt stöd för fontspec.
I Overleaf
Klicka på menyikonen i det övre vänstra hörnet ovanför filträdet. I rullistan för kompilator, ändra pdfLaTeX till XeLaTeX eller LuaLaTeX och kompilera sedan om.
I VS Code (LaTeX Workshop)
Lägg till en magisk kommentar högst upp i din rotfil
.tex, eller ställ in standardreceptet isettings.jsontilllatexmk (xelatex).% !TEX program = xelatex \documentclass{article} \usepackage{fontspec}I TeXstudio
Lägg till programdirektivet högst upp i ditt dokument, eller gå till Options -> Configure TeXstudio -> Build och ställ in Default Compiler till XeLaTeX.
%!TEX TS-program = xelatex
På kommandoraden eller terminalen
Kör
xelatexeller direkt, eller instruera att anropa den moderna motorn.
Fix 2: Behåll pdfLaTeX och ersätt fontspec
Rensa upp preamble-konflikter efter byte
Vad du ska kontrollera om kompileringen misslyckas efter byte
Om byte av motor rensar det fatala felet men kompileringen stannar vid ett nytt meddelande, kontrollera dessa två vanliga orsaker.
Package fontspec Error: The font cannot be found
Detta händer när din kod begär en operativsystemfont (som Times New Roman, Calibri eller SimSun) som inte är installerad på Linux-servern som kör din kompilator. Tillhandahåll fontfilen (.otf eller .ttf) i din projektkatalog och referera till den med filnamn.
\setmainfont{CustomFont}[ Path = ./fonts/ , Extension = .otf , UprightFont = *-Regular , BoldFont = *-Bold ]Konflikter med Package unicode-math
Om du laddar både
amssymbochunicode-mathkommer symboldefinitioner att krocka. Ta bortamssymboch ladda endastunicode-mathnär du kompilerar med XeLaTeX eller LuaLaTeX.
Frågor
Kan jag använda fontspec med pdfLaTeX?
Nej. Paketet fontspec beror på primitiva operationer som endast finns i XeTeX och LuaTeX. Om du måste använda pdfLaTeX, ersätt fontspec med standardfontpaket som lmodern eller mathptmx.
Vilken motor ska jag välja: XeLaTeX eller LuaLaTeX?
LuaLaTeX är den moderna standarden för TeX Live och hanterar komplex fontformning, stora microtype-justeringar och dynamisk minnesallokering smidigt. XeLaTeX förblir ett stabilt val för äldre mallar eller östasiatiska skript som använder xeCJK.
Prova din egen artikel i Texeno.
Börja gratis, ladda upp ett projekt som .zip och tryck på Kompilera om. Uppgradera när du behöver längre kompileringar.
Börja skriva