如何在文章中使用 lstsample 环境(lstdoc 包)?

如何在文章中使用 lstsample 环境(lstdoc 包)?

我想尝试一下随软件包分发的lstsample环境lstdoclistings包裹

为此我写了以下文件:

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

\begin{document}

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

\end{document}

但编译失败并出现以下消息:

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

我错过了什么?

答案1

lstdoc包主要用于使用该类ltxdoc的文档。该类doc在内部加载该类,其中包含两个与此处特别相关的宏定义:

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

由于lstsample环境需要这两个宏,但您使用的类article未定义它们,因此当您尝试编译代码时,LaTeX 会将这些宏报告为未定义。在序言中添加上面显示的两个定义将解决该问题。

此外,lstsample环境的一个怪癖是,为了让一切正常工作,其中的所有行必须以 开头,%后面至少跟 4 个空格。遵守这个规则你就会快乐。

在此处输入图片描述

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

相关内容