有人能回答为什么会出现错误“未找到编码文件‘utf8enc.def’”吗?
111.tex 输入文件:
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[utf8]{fontenc}
\usepackage[russian,english]{babel}
\begin{document}
АБВ ABC
\end{document}
终端输出:
dy636363@computerdy636363 ~ $ latex 111.tex
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian)
restricted \write18 enabled.
entering extended mode
(./111.tex
LaTeX2e <2011/06/27>
Babel <3.9g> and hyphenation patterns for 2 languages loaded.
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo))
(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
(/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def
(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu)
(/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu)
(/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu)))
(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
! Package fontenc Error: Encoding file `utf8enc.def' not found.
(fontenc) You might have misspelt the name of the encoding.
该目录的 ls 程序输出是,它包含 utf***:
dy636363@computerdy636363 ~ $ ls /usr/share/texlive/texmf-dist/tex/latex/base/
...
exscale.sty leqno.sty ot1cmfib.fd t1cmdh.fd utf8.def
fix-cm.sty letter.cls ot1cmfr.fd t1cmfib.fd utf8enc.dfu
fixltx2e.sty letter.sty ot1cmr.fd t1cmfr.fd utf8-test.tex
flafter.sty lppl.tex ot1cmss.fd t1cmr.fd utf8test.tex
答案1
这句\usepackage[utf8]{fontenc}
是错误的:好的是
\usepackage[T2A,T1]{fontenc}
支持拉丁字母和西里尔字母。但是,您必须标记要使用西里尔字母的位置:
\documentclass[a4paper,12pt]{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\begin{document}
\foreignlanguage{russian}{АБВ} ABC
\textcyrillic{АБВ} ABC
\end{document}
选择哪一个\foreignlanguage{russian}
取决于\textcyrillic
个人品味。
答案2
字体和输入编码是不同的(见fontenc 与 inputenc)。因此,utf8
作为inputenc
包的一个选项是有意义的(它是一种输入编码),但对于fontenc
(它是不是字体编码)。你大概想要类似
\usepackage[T1]{fontenc}
(或者可能T2A,T1
,因为您的线路上似乎有一些俄语文本babel
)。
答案3
这似乎是新版本基础编译器的一个错误。
我在使用 pdflatex 时遇到了同样的错误,并通过替换解决了该问题
\usepackage[utf8]{inputenc}
经过
\usepackage[utf8]{input}
然后编译器会说它没有找到 input.sty 并要求输入一个文件。只需输入“inputenc.sty”。它应该能够完成。
我正在寻找更好的解决方案,等待下一个版本。
编辑:抱歉,我的问题似乎已经解决了。这与 fontenc 包附加文件名的方式有关。