我有以下乳胶代码:
\documentclass{beamer}
\usetheme{Frankfurt}
\usepackage{listings}
\lstset{
basicstyle = \linespread{1}\ttfamily,
breaklines=true,
postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}},
}
\begin{document}
\begin{frame}[fragile]{Title}
\begin{lstlisting}
Really really really really really really long line
next line
\end{lstlisting}
\end{frame}
\end{document}
仅当我注释掉 postbreak 时,此方法才有效,但如果我保留它,则会收到 162(!) 个错误。其中一些是“缺少数字,视为零”、“非法计量单位 (pt 插入)”和“缺少 \ifnum 的 = 插入”。
如果我从第一行删除“长行”,它会立即起作用,尽管会有很多错误。
我很困惑,不知道发生了什么。我能得到一些帮助吗?谢谢!
答案1
错误的数量无关紧要,通常只有第一个错误,其余的都是后续错误。
将箭头存放在盒子里:
\documentclass{beamer}
\usetheme{Frankfurt}
\usepackage{listings}
\newsavebox\mypostbreak
\savebox\mypostbreak{\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}}}
\lstset{
basicstyle = \linespread{1}\ttfamily,
breaklines=true,
postbreak=\usebox\mypostbreak,
}
\begin{document}
\begin{frame}[fragile]{Title}
\begin{lstlisting}
aaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
\end{lstlisting}
\end{frame}
\end{document}