%20%D0%B2%20%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B5%3F.png)
Я хотел бы попробовать lstsample
среду из lstdoc
пакета, распространяемого вместе сlistings
упаковка.
Для этого я написал следующий документ:
\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
среды заключается в том, что для того, чтобы все работало правильно,все строки внутри него должны начинаться с буквы «a», %
за которой должно следовать не менее 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}