%20no%20artigo%3F.png)
Gostaria de experimentar o lstsample
ambiente do lstdoc
pacote, distribuído com olistings
pacote.
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 lstdoc
pacote destina-se principalmente a ser usado em documentos que usam a ltxdoc
classe. Essa classe carrega a doc
classe 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 lstsample
ambiente 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 lstsample
ambiente é 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.
\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}