You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Beamer文档frame环境使用minted插入代码触发FancyVerb报错

报错原因

beamer的frame环境默认会先把整帧内容读入宏参数做内部展开处理,而minted是基于fancyvrb实现的代码高亮环境,这类逐字抄录类环境要求LaTeX直接读取原始、未被提前展开的文本,不能嵌套在会提前吞入参数做展开的逻辑中。
默认模式下beamer的预读取操作会直接破坏代码原始格式:示例代码中Windows批处理变量%CD%里的%会被提前识别为LaTeX注释符,吞掉后续的路径内容,换行、反斜杠等特殊字符也会被错误解析,最终触发日志里的FancyVerb Error。

解决方法

给包含minted代码的帧添加fragile选项即可。该选项是beamer专门为包含逐字内容(代码块、verbatim环境等)的帧设计的,开启后beamer会放弃预读取整帧展开的逻辑,改为逐行正常解析内容,minted就能正常编译。
修改后的可用代码示例:

% 必须添加[fragile]参数
\begin{frame}[fragile]
\frametitle{Docker启动Jupyter命令}
\begin{minted}{bash}
docker run --rm -p 8888:8888 \
 -v %CD%/eleve:/home/jovyan/work \
 -e JUPYTER_ENABLE_LAB=yes \
 jupyter/scipy-notebook 
\end{minted} 
\end{frame}

使用注意点:

  • 带fragile选项的帧,不要在\begin{frame}[fragile]到\end{frame}之间随意放置LaTeX注释,避免触发解析异常
  • 如果代码块较长,也可以把bash代码单独存为外部文件,用\inputminted{bash}{代码文件路径}命令插入,该方式同样要求frame添加fragile选项。

内容的提问来源于stack exchange,提问作者Poor Standard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 14:31:15