LaTeX 输入调用不会从主文件继承编码

LaTeX 输入调用不会从主文件继承编码

我包括 TeX 文件

\input{file}

但是当我使用 pdflatex 编译主文件时,我得到:

\textyen unavailable in encoding T1

如果我将其全部保存在一个 tex 文件中,则不会发生这种情况,该文件顶部包含:

\usepackage[swedish]{babel}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}

是否有任何简单的方法可以让包含的 tex 文件继承主文件中定义的包的使用?

答案1

我认为问题中有一个拼写错误(修订 3)。\textgen实际上是\textyen

以下文档采用 UTF-8 编码,

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}

\begin{document}
å
\end{document}

产生错误:

! LaTeX Error: Command \textyen unavailable in encoding T1.

这意味着,问题的输入文件很可能以 UTF-8 编码。包inputenc还支持使用不同编码的文档。可以通过设置编码\inputencoding{...}。示例:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8,latin9]{inputenc}

\begin{document}
  % text is encoded in latin9
  % ...
  \inputencoding{utf8}
  \input{utf8encodedfile}
  \inputencoding{latin9}
  % back to latin9
  % ...
\end{document}

编码utf8有些特殊,需要先在前导码中加载,然后才能在文档正文中使用。这就是包的选项inputenc

另一种解决方案:

  • 所有输入文件都使用相同的编码。这简化了包的调用inputenc,也可能简化了编辑。

  • selinput当文件重新编码或编码未知时,包可以帮助选择编码。

相关内容