考虑以下 MWE:
\documentclass{scrreprt}
\usepackage{textcase}
\RequirePackage{listings}
\usepackage[american]{babel}
\begin{document}
\MakeTextLowercase{A~B}
\end{document}
LaTeX 失败并出现错误
! Undefined control sequence.
<to be read again> az
b
l.9 \MakeTextLowercase{A~B}
?
错误似乎出在MakeTextLowercase
、listings
包和波浪号的组合上。每当我删除这三个组件中的任何一个时,一切都会正常工作。有人知道问题出在哪里吗?
答案1
这是一个错误listings
:它是全局设置的
\lccode`\~=`\z
这是不合理的。TeX 随后将小写化,~
并且z
找不到活动的定义z
(很奇怪)。我建议简单地用
\lccode`\~=0\relax
之后立马
\usepackage{listings}
该错误本身是由内部宏引起的,它将和\lst@CCPut
的设置\lccode
为各种值以设置内部数据。遗憾的是,这不是在组中完成的,也没有“重置”代码来将事情恢复正常,所以我们得到了这两个代码点的“垃圾”小写映射。~
/