此问题已修复投影机 v3.37,如果你仍然遇到此问题,请尝试更新到最新版本的 beamer
突然,我无法再使用\end{frame}
该选项缩进幻灯片fragile
,例如
\documentclass{beamer}
\begin{document}
\begin{frame}[fragile]
test
\end{frame}
\end{document}
不起作用,但给出错误File ended while scanning use of \next.
将日志文件与之前的演示文稿进行比较,可以看到beamer
软件包的不同版本,并查看最近所做的更改,我想我能够确定负责提交的2e946022在哪里
\beamer@makeinnocent\^^I % Allow tab chars
已添加到包中。
据我所知,这允许在中使用制表符listings
。虽然这可能对实际使用制表符的人有帮助,但它listings
破坏了与我的许多演示文稿的向后兼容性,说实话,我喜欢缩进代码的功能,因为它让我更容易阅读。
问题:
长话短说:我能以某种方式在本地恢复吗?最好不要破解我本地的 LaTeX 发行版,以便修复可以在后续更新中继续存在?
答案1
看起来您已经准确指出了导致变化的原因,这很有效(使用制表符缩进)
\documentclass{beamer}
\makeatletter
\def\beamer@verbatimreadframe{%
\begingroup%
\let\do\beamer@makeinnocent\dospecials%
\count@=127%
\@whilenum\count@<255 \do{%
\advance\count@ by 1%
\catcode\count@=11%
}%
\beamer@makeinnocent\^^L% and whatever other special cases
% \beamer@makeinnocent\^^I % Allow tab chars
\endlinechar`\^^M \catcode`\^^M=12%
\@ifnextchar\bgroup{\afterassignment\beamer@specialprocessframefirstline\let\beamer@temp=}{\beamer@processframefirstline}}%
\begin{document}
\begin{frame}[fragile]
test
\end{frame}
\end{document}
您可能不想将其放入旧的演示文稿中,但如果您将其副本放入beamerbaseverbatim.sty
与演示文稿相同的目录中并注释掉您突出显示的行,则使用制表符缩进将起作用(尽管这可能不是一个好主意)