如何使用 \内联| | 在标题命令内(铸造)

如何使用 \内联| | 在标题命令内(铸造)

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

相关内容