stackengine 和 babel 与 spanish 选项之间的冲突

stackengine 和 babel 与 spanish 选项之间的冲突

当使用下面的 MWE 进行 pdfLaTeX 时,我收到一条Missing \endcsname inserted错误消息。只要babel包未使用该spanish选项加载,编译就会继续进行,不会出现任何错误(好吧,说实话,我只尝试使用该english选项,它运行正常)。任何关于如何解决此问题或可能的解决方法的提示都将受到欢迎。

遵循 MWE:

\documentclass{memoir}

\usepackage{stackengine}
\usepackage[spanish]{babel}

\begin{document}
\Shortstack[c]{A N E}
\end{document} 

编辑:我刚刚尝试使用es-noquoting选项和耦合命令\deactivatequoting- \activatequoting,正如一些关于 问题的帖子中所建议的那样spanish babel,但无济于事。问题仍然相同。

答案1

stackengine 在 csname 中使用命令\roman(这根本不是一个好主意:\roman用于打印而不是用于生成命令名称),这会因为 spanish 重新定义而中断\@roman。作为一种解决方法,您可以禁用重新定义,但恕我直言 stackengine 应该得到纠正。

\documentclass{memoir}
\usepackage{stackengine}
\makeatletter
\let\ori@roman\@roman
\usepackage[spanish,]{babel}
\let\@roman\ori@roman


\begin{document}
\Shortstack[c]{A N E}
\end{document} 

相关内容