为什么除非之前使用过,否则图形标题内的 \nobreakdash 会中断?

为什么除非之前使用过,否则图形标题内的 \nobreakdash 会中断?

简而言之,下面的代码无法编译:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\begin{figure}
    \caption{
        poly\nobreakdash-Si
    }
\end{figure}

poly\nobreakdash-Si % move this to before figure caption and it works

\end{document}

但是,正如代码注释中指出的那样,如果该命令在图形标题中使用该命令之前已经在文档正文中使用过,那么它就会进行编译(并在更复杂的示例中产生所需的结果)。

为什么会发生这种情况?

错误消息是! Argument of \@tempb has an extra }.我已在 TeX Live 2017 和 2020 中使用 pdflatex 和 lualatex 测试过这一点。

答案1

amsmathlatex 包含命令的更好版本\nobreakdash。它与和一起\nobreakdashes使用,重要的是,它很强大,因此可以在节标题中使用。-----

\documentclass{article}
%\usepackage{amsmath}
\begin{document}

\begin{figure}
    \caption{
        poly\nobreakdashes-Si
    }
\end{figure}

poly\nobreakdashes-Si % move this to before figure caption and it works

\end{document}

相关内容