Ich möchte neben der Verbatim-Umgebung eine Randnotiz hinzufügen, erhalte jedoch die Fehlermeldung „Nicht im Outer-Par-Modus.“ Dies funktioniert jedoch gut mit der Lstlisting-Umgebung. Irgendeine Lösung?
\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}
Antwort1
Verbatim
setzt jede Zeile in ein Kästchen, \marginpar
kommt also nicht in Frage.
Sie können es mit tun marginnote
; \normalfont
ist erforderlich, sonst erhalten Sie Schreibmaschinenschrift.
\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}
Bei komplexeren Texten müssen Sie das Argument mit Standardkategoriecodes erneut scannen:
\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}