Nota al margen y entorno Verbatim (fancyvrb)

Nota al margen y entorno Verbatim (fancyvrb)

Me gustaría agregar una nota al margen junto al entorno de Verbatim, pero aparece el error "No en modo par externo". Aunque esto funciona bien con el entorno de lista de listas. Alguna solución ?

\documentclass{article}

\usepackage{listings}
\lstset{
    frame=single,
    escapechar=!,
}
\usepackage{fancyvrb}

\begin{document}

\begin{lstlisting}
text inside listings... !\marginpar{Working well}!
\end{lstlisting}

\begin{Verbatim}[frame=single, commandchars=\\\{\}]
text inside Verbatim... \marginpar{Not working}
\end{Verbatim}

\end{document}

Respuesta1

Verbatimescribe cada línea en un cuadro, por lo que \marginparestá fuera de discusión.

Puedes hacerlo con marginnote; \normalfontes necesario, o obtendrías el tipo de máquina de escribir.

\documentclass{article}
\usepackage{fancyvrb}
\usepackage{marginnote}

\newcommand{\vmnote}[1]{\marginnote{\normalfont#1}}

\begin{document}

\begin{Verbatim}[frame=single, commandchars=\\\{\}]
text inside Verbatim... \vmnote{Working}
\end{Verbatim}

\end{document}

ingrese la descripción de la imagen aquí

Para texto más complejo, es necesario volver a escanear el argumento con códigos de categoría estándar:

\documentclass{article}
\usepackage{fancyvrb}
\usepackage{marginnote}

\ExplSyntaxOn
\NewDocumentCommand{\vmnote}{m}
 {
  \marginnote
   {
    \normalfont % override verbatim font
    % rescan the argument with normal category codes
    \tl_rescan:nn { \cctab_select:N \c_document_cctab} { #1 }
   }
 }
\ExplSyntaxOff

\begin{document}

\begin{Verbatim}[frame=single, commandchars=\\\{\}]
text inside Verbatim... \vmnote{Working $\alpha^2$}
\end{Verbatim}

\end{document}

ingrese la descripción de la imagen aquí

información relacionada