我正在尝试在 MikTex 2.9 Windows 7 和/或 Kyle 2.1.2 下编译我的作品
当我尝试使用设置为葡萄牙语的语言进行编译时,附录抛出了不受支持的控制序列错误。
这是我的序言,其中加载了包裹。
\usepackage[brazil,american]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{indentfirst}
\usepackage{natbib}
\usepackage{url}
\usepackage{xcolor,graphicx,url}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{epstopdf,placeins}
\usepackage{glossaries}
\usepackage{caption}
\usepackage[toc,page]{appendix}
如果我将语言设置为英语,文档就可以编译成功。
错误信息指向.out文件:
\BOOKMARK [0][-]{section*.40}{Refer\352ncias}{}% 35
\BOOKMARK [0][-]{Ap�ndice.1.A} <-------------- this line is throwing the error
尝试在 Kyle (linux) 和 Windows (MikTex) 上编译它,两者都有相同的错误。唯一的区别是ê
Linux 中字符打印在 .out 文件中,而 Windows 中存在愚蠢的问号编码错误。
如果我在调用附录章节之前切换语言,一切都会正常运行。
另外,如果我覆盖\def\appendixname{Ap\^endice}%
不带重音的 PT babel 文件,它可以很好地编译。
我怎样才能用葡萄牙语编写附录(保持单词的正确拼写)而不出现该错误?
答案1
我遇到了同样的问题。解决方案是在主源文件的前言中插入以下代码。代码应该位于加载软件包的行之后hyperref
。appendix
\makeatletter
\renewcommand
{\appendixtocname}{Ap\^{e}ndices}
\renewcommand
{\appendixpagename}{Ap\^{e}ndices}
\renewcommand
{\appendixname}{Ap\^{e}ndice} \let\oriAlph\Alph
\let\orialph\alph
\renewcommand{\@resets@pp}
{\par\@ppsavesec
\stepcounter{@pps}%
\setcounter{section}{0}%
\if@chapter@pp
\setcounter{chapter}{0}%
\renewcommand\@chapapp{\appendixname}%
\renewcommand\thechapter{\@Alph\c@chapter}%
\else
\setcounter{subsection}{0}%
\renewcommand\thesection{\@Alph\c@section}%
\fi
\if@pphyper
\if@chapter@pp
\renewcommand
{\theHchapter}
{\theH@pps.\oriAlph{chapter}}%
\else
\renewcommand
{\theHsection}
{\theH@pps.\oriAlph{section}}%
\fi
\def\Hy@chapapp
{appendix}%
\fi
\restoreapp
}
\makeatother