斜体块内的逐字文本

斜体块内的逐字文本

我正在尝试以下操作:

\begin{frame}[fragile]{OCP en Exceptions}
``If you throw a checked exception from a method in your code and the
\verb!catch! is three levels above, \textit{you must declare that
  exception in the signature of each method between you and
  the \verb!catch!}''
\end{frame}

不知为何我无法使用斜体块内的逐字文本。我该如何正确解决这个问题?

答案1

你不能在另一个宏参数中使用逐字材料。已经提到的cprotect包可以解决这个问题,但我认为在这里使用它有点过头了。只需使用字体宣言在组内而不是字体宏,即{\itshape text \verb+$%^+ text}而不是\textit{text \verb+$%^+ text}

应用于您的代码示例:

\begin{frame}[fragile]{OCP en Exceptions}
``If you throw a checked exception from a method in your code and the
\verb!catch! is three levels above, {\itshape you must declare that
  exception in the signature of each method between you and
  the \verb!catch!}''
\end{frame}

此外,仅使用逐字来获得字体效果是一种误用。只需直接使用字体即可tt!对于经常使用的真实逐字材料,我建议使用\verbdefverbdef包。(还有\Verbdef我的newverbs包(如果您需要可扩展形式,但通常情况并非如此。)

答案2

使用cprotect包。更多详细信息,请参阅手册。

\documentclass{article}
\usepackage{cprotect}
\begin{document}
\cprotect\textit{\verb|\LaTeX| is one of my primary weapons}
\end{document}

相关内容