여백 메모 및 Verbatim 환경(fancyvrb)

여백 메모 및 Verbatim 환경(fancyvrb)

Verbatim 환경 옆에 여백 메모를 추가하고 싶은데 "Outer Par 모드가 아닙니다."라는 오류가 발생합니다. 이것은 lstlisting 환경에서 잘 작동하지만. 어떤 해결책이 있습니까?

\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}

답변1

Verbatim상자의 각 줄을 조판하므로 \marginpar의문의 여지가 없습니다.

당신은 그것을 할 수 있습니다 marginnote; \normalfont필요하지 않으면 타자기 유형을 얻게 됩니다.

\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}

여기에 이미지 설명을 입력하세요

더 복잡한 텍스트의 경우 표준 범주 코드를 사용하여 인수를 다시 검색해야 합니다.

\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}

여기에 이미지 설명을 입력하세요

관련 정보