在附录中使用葡萄牙语会引发不受支持的控制序列

在附录中使用葡萄牙语会引发不受支持的控制序列

我正在尝试在 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

我遇到了同样的问题。解决方案是在主源文件的前言中插入以下代码。代码应该位于加载软件包的行之后hyperrefappendix

\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

相关内容