TeX 容量超出 - Babel 包

TeX 容量超出 - Babel 包

请考虑此文档:

\documentclass{report}
\usepackage[portuguese]{babel}
\DeclareTextAccent{\'}{EU1}{"00B4}
\begin{document}
\chapter{Introduction}
\end{document}

如果我尝试使用 XeLaTeX 编译它,则会收到以下错误消息:

! TeX capacity exceeded, sorry [input stack size=5000].
\'->\EU1-cmd \'
               \EU1\' 
l.5 \chapter{Introduction}

If you really absolutely need more capacity,
you can ask a wizard to enlarge me.

仅当我使用带有选项的 Babel 包时才会发生这种情况portuguese。我尝试了其他语言,一切顺利。

我该怎么做才能避免这个错误?

答案1

错误显示为葡萄牙语而不是英语或法语,因为 LaTeX 想要排版“chapter”的本地化版本,而葡萄牙语的“Capítulo”恰好包含\'i,而其他语言则不会发生这种情况。

你也可以得到相同的结果

\documentclass{report}
\usepackage[<language>]{babel}
\DeclareTextAccent{\'}{EU1}{"00B4}
\begin{document}
\'a
\end{document}

(任何语言选项)。

babel发生的情况是,当使用(也使用)时,EU1 不是最新版本的 LaTeX 的已知编码fontspec:默认编码是TU

你的\DeclareTextAccent定义\'扩展为

\EU1-cmd \'\EU1\'

\EU1-cmd只是\relax(因为编码未知)这让 TeX 继续尝试扩展\'

\'->\EU1-cmd \'
               \EU1\' 
\'->\EU1-cmd \'
               \EU1\' 

解决方案:

\documentclass{report}
\usepackage[portuguese]{babel}
\DeclareTextAccent{\'}{\encodingdefault}{"00B4}
\begin{document}
\chapter{Introduction}
\end{document}

在此处输入图片描述

相关内容