minted
我已经从终端提示符阅读了软件包文档texdoc minted
。它指出我可以将\cppinline||
命令定义为:
所以我有下一个代码:
\documentclass[11pt]{report}
\usepackage[cachedir=minted_cache, newfloat=true]{minted}
\newmintinline{cpp}{}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\begin{center}
figure
\end{center}
\caption{Some code stuff --- \mintinline{cpp}|int foo(double bar)|}
\end{figure}
\end{document}
其结果为:
如果我使用新\cppinline||
命令:
\documentclass[11pt]{report}
\usepackage[cachedir=minted_cache, newfloat=true]{minted}
\newmintinline{cpp}{}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\begin{center}
figure
\end{center}
\caption{Some code stuff --- \cppinline|int foo(double bar)|}
\end{figure}
\end{document}
我收到错误:
pr.tex|20 error| Argument of \FVExtraUnexpandedReadStarOArgBVArg has an extra }.
pr.tex|| Runaway argument?
pr.tex|20 error| Paragraph ended before \FVExtraUnexpandedReadStarOArgBVArg was complete.
minted
文档说 minted 的设计方式不会与\caption
命令冲突:
实际上,minted
文档包含以下内容的源代码\newmintinline
:
我可以看到\FVExtraReadOArgBeforeVArg
错误消息中出现的 。但我什么都不明白。有没有解决方法可以\cppinline
在标题中使用 ?令人烦恼的是该\mintinline
命令在标题内有效。
答案1
使用 创建的命令\newmintinline
(例如\cppinline
)遵循与 相同的规则\mintinline
。它们通常可以在其他命令中使用(例如),但在可移动参数中使用时(例如 在 内)\caption
必须使用花括号作为代码分隔符。尝试用替换。{}
\caption
\cppinline|int foo(double bar)|
\cppinline{int foo(double bar)}
在这个特定情况下,代码分隔\mintinline
符似乎起作用|...|
。然而,这实际上是由于错误fvextra
。当不使用分隔符时,.aux
文件包含不正确的信息,因此不正确。{}
\listoffigures