How do I make an item in a description list verbatim? \verb in \item[] seems to be not allowed:
\begin{description}
\item[\verb+list comprehension [f a | a <- M a]+] bla bla bla
\end{description}
How do I make an item in a description list verbatim? \verb in \item[] seems to be not allowed:
\begin{description}
\item[\verb+list comprehension [f a | a <- M a]+] bla bla bla
\end{description}
The package examplep provides several commands and environments for typesetting verbatim text. For instance, the robust commands \PVerb[options]{text}and \Q{text} can be used in macro arguments and in section titles as well.
Code example for your description list:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[Q=yes]{examplep}
\begin{document}
\begin{description}
\item[\Q{list comprehension [f a | a <- M a]}] bla bla bla
\item[\PVerb{testing: \verb||{} #_$ }] item text
\end{description}
\end{document}
Output:

See Verbatim phrases and listings in LaTeX by Péter Szabó (or texdoc examplep) for further information. Escaping special characters (for instance with \Q) may be necessary as described in section 3.1 of the documentation.
Note, T1 font encoding has to be use to get a proper < symbol because it's unavailable in standard OT1 encoding.
The \verb command is not allowed inside arguments of other commands. One workaround is to use \SaveVerb from fancyvrb.
The following definition of \vitem is taken from the Companion. It has an optional argument taking styling parameters from the fancyvrb package.
\usepackage{fancyvrb}
\newcommand\vitem[1][]{\SaveVerb[%
aftersave={\item[\textnormal{\UseVerb[#1]{vsave}}]}]{vsave}}
\begin{description}
\vitem+list comprehension [f a | a <- M a]+ bla bla bla
\end{description}
For completion, a solution using \cprotect, and a solution that avoids \verb entirely.
Also (most of the time) answers the question: How can I put verbatim inside an optional argument?
\usepackage{cprotect}
...
\begin{description}
\cprotect[o]\item[\verb+list comprehension [f a | a <- M a]+] bla bla bla
\item[\textnormal{\texttt{list comprehension [f a | a <- M a]}}] bla bla bla
\end{description}
Without the \textnormal, the text produced by \texttt will be bold, which may or may not be what you want.
\Qworks well for me, although I am not sure what the difference between that and\PVerb? Thanks – information_interchange Oct 08 '18 at 02:46! Package examplep Error: \PVerb inner delimiter must be brace, (examplep) not backslash or control sequence or active char.– ollydbg23 Dec 25 '21 at 07:57