![stackengine 和 babel 与 spanish 选项之间的冲突](https://linux22.com/image/281934/stackengine%20%E5%92%8C%20babel%20%E4%B8%8E%20spanish%20%E9%80%89%E9%A1%B9%E4%B9%8B%E9%97%B4%E7%9A%84%E5%86%B2%E7%AA%81.png)
当使用下面的 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}