Como posso usar o ambiente lstsample (pacote lstdoc) no artigo?

Como posso usar o ambiente lstsample (pacote lstdoc) no artigo?

Gostaria de experimentar o lstsampleambiente do lstdocpacote, distribuído com olistingspacote.

Para isso escrevi o seguinte documento:

\documentclass{article}
\usepackage{lstdoc}
\usepackage{lipsum}

\begin{document}

\begin{lstsample}{}{}
  \color{blue}
  \lipsum[68]
\end{lstsample}

\end{document}

Mas falha na compilação com a mensagem:

! Undefined control sequence.
\lst@sampleInput ->\MakePercentComment 
                                       \catcode `\^^M=10\relax \small \lst@s...
l.10     \end{lstsample}

o que estou perdendo?

Responder1

O lstdocpacote destina-se principalmente a ser usado em documentos que usam a ltxdocclasse. Essa classe carrega a docclasse internamente, que contém duas definições de macro que são particularmente relevantes aqui:

\def\MakePercentIgnore{\catcode`\%9\relax}
\def\MakePercentComment{\catcode`\%14\relax}

Como o lstsampleambiente precisa dessas duas macros, mas a classe que você está usando, article, não as define, o LaTeX reporta corretamente essas macros como indefinidas quando você tenta compilar seu código. Adicionar as duas definições mostradas acima em seu preâmbulo resolverá esse problema.

Além disso, uma peculiaridade do lstsampleambiente é que, para que tudo funcione corretamente,todas as linhas dentro dele devem começar com um %seguido de pelo menos 4 espaços. Siga essa regra e você será feliz.

insira a descrição da imagem aqui

\documentclass{article}

\usepackage{lstdoc}
\usepackage{xcolor}
\usepackage{lipsum}

% The following definitions are taken from doc.dtx.
% see http://mirrors.ctan.org/macros/latex/base/doc.dtx
\def\MakePercentIgnore{\catcode`\%9\relax}
\def\MakePercentComment{\catcode`\%14\relax}

\begin{document}

\begin{lstsample}{}{}
%    \color{blue}
%    \lipsum[68]  
\end{lstsample}

\end{document}

informação relacionada