我正在处理一个多文件文档,并且已经在主文档中导入了 [latin]{inputenc} 包,但它在子文件中不起作用。
主文本
\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
%\usepackage{titlesec} %Only for book
%\titleformat{\chapter}{\normalfont\huge}{\thechapter.}{20pt}{\huge\it} %Only for book
\usepackage{subfiles}
\author{Yamil Saade}
\title{Caracterización de Laminados}
\begin{document}
%\frontmatter
\maketitle
%\mainmatter
\section{Introducción}
\subfile{Sections/Introduction}
\end{document}
子文件.tex
\documentclass[../main.tex]{subfiles}
\begin{document}
Hoy en día natación
\end{document}
上述代码的结果...
答案1
您的问题与包裹无关subfiles
,latin1
但指定的编码与实际使用的编码不匹配utf8
。请考虑以下文件:
% test.tex
\documentclass{article}
\usepackage[latin1]{inputenc} % Sets the expected encoding to Latin1
\begin{document}
Hoy en día natación % Actually uses UTF8
\end{document}
其中重音字母以 UTF-8 编码存储。在 Linux 下,可以使用以下file
命令检查实际使用的编码:
$ file test.tex
test.tex: LaTeX 2e document, UTF-8 Unicode text
对于 Windows,请参阅这篇文章关于如何使用检查和更改编码notepad
。
运行 LaTeXtest.tex
会导致三个错误:
! Missing $ inserted.
<inserted text>
$
l.4 Hoy en día natació
n
?
! Extra }, or forgotten $.
\maththreesuperior ->{^3}
l.4 Hoy en día natació
n
?
! Missing $ inserted.
<inserted text>
$
l.5 \end{document}
如果您(或您的 TeX 系统)跳过这些错误,您将得到以下输出:
解决方案
确保所有 TeX 文件都使用相同的字符编码。如今 UTF-8 是标准,但 Latin1 也可以。只需确保在任何地方都使用相同的编码即可。根据您的选择,使用
\usepackage[latin1]{inputenc}
或者
\usepackage[utf8]{inputenc}
在文件上运行 LaTeX
% test.tex
\documentclass{article}
\usepackage[utf8]{inputenc} % Sets expected encoding to UTF8
\begin{document}
Hoy en día natación % Actually uses UTF8
\end{document}
没有给出错误并输出结果