![cleveref 遇到特殊字符时崩溃](https://linux22.com/image/340402/cleveref%20%E9%81%87%E5%88%B0%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6%E6%97%B6%E5%B4%A9%E6%BA%83.png)
我读了cleveref
手册的第 10 章,以为下面的代码可以运行,但它崩溃了。cleveref 无法处理特殊字符。
我犯了错误吗?或者有解决方案吗?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amsthm}
\usepackage[ngerman]{cleveref}
\newtheorem{thm}{ü}
\begin{document}
\begin{thm} \label{dummy}
test
\end{thm}
See \Cref{dummy}.
\end{document}
答案1
ü
不是单个字符,实际上是一个脆弱的命令,但使用\newtheorem{thm}{{ü}}
会起作用,即将命令分组。
从截图中你会看到cleveref
确实是聪明的Ü
:如果\Cref
应用,它会使用正确的大写字符,尽管它直接指定!
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amsthm}
\usepackage[ngerman]{cleveref}
\newtheorem{thm}{{ü}}
\begin{document}
\begin{thm} \label{dummy}
test
\end{thm}
See \Cref{dummy} or \cref{dummy}.
\end{document}