nag 和 babel 之间的冲突 西班牙语

nag 和 babel 之间的冲突 西班牙语

以下代码给出了大量Font csname csname T1/cmtt/m/sc/10endcsname not found错误。

\RequirePackage[l2tabu,orthodox]{nag}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\begin{document}
Testing bla bla bla . . .
\end{document}

nag该包(特别是与l2tabu and/ororthodox选项)和spanish该包的选项之间似乎存在冲突babel

我尝试过es-noquotinges-noshorthand选项,但没有成功。

还有人有这个问题吗?我使用的是 MacTeX 2012,但在 Ubuntu 中使用 TexLive 2011 时也遇到了同样的错误。

答案1

包裹nag上写着

\renewcommand\thenag@c{\roman{nag@c}}

但不幸的是,西班牙语模块以不可扩展的方式babel重新定义\roman,以便以小写字母而不是小写字母打印罗马数字。

解决方案是避免使用\roman

\RequirePackage[l2tabu,orthodox]{nag}
\makeatletter
\renewcommand\thenag@c{\romannumeral\c@nag@c}
\makeatother

或者完全放弃nag。我只是更喜欢自己避免犯错。:)

答案2

实际上,错误在于nag,因为它\thenag@n在内部使用了\csname,而后者又调用了\roman旨在视觉的(即印刷的)罗马数字表示。还请注意,“内部”计数器(\@roman在本例中)不需要完全可扩展,事实上\alph在西班牙语中也不是(包括ñ之后n),就像\fnsymbol在 LaTeX 本身中一样。如果您想要低级别的罗马数字,\romannumeral\the则应使用,这是 LaTeX 在列表中所做的。另一方面,更改\romanLaTeX 中的每个实例(不仅仅是页码\frontmatter)会很麻烦。无论如何,西班牙语提供了一个非常简单的解决方法。

相关内容