%%
%% The LaTeX Companion, 3ed
%%
%% Example 4-2-57 on page I-330 in "listings --- Pretty-printing program code".
%%
%% Copyright (C) 2022 Frank Mittelbach
%%
%% It may be distributed and/or modified under the conditions
%% of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%%
%% See
https://www.latex-project.org/lppl.txt for details.
%%
\documentclass{tlc3exa}
\pagestyle{empty}
\setcounter{page}{6}
\setlength\textwidth{183.0pt}
% for the book examples we shorten the vertical spaces
\makeatletter
\renewcommand\section{\@startsection{section}{1}{\z@}%
{-1.25ex \@plus-1ex \@minus-.2ex}%
{.5ex}%
{\normalfont\large\bfseries}}
\makeatother
\begin{filecontents*}{pascal.src}
for i:=1 to maxint do
begin
WrItE('This is stupid');
end.
\end{filecontents*}
\addtolength\textwidth{-20pt}
%StartShownPreambleCommands
\usepackage{listings} % pascal.src as before
%StopShownPreambleCommands
\begin{document}
\lstset{frame=single,frameround=tftt,
language=Pascal,captionpos=b}
\lstlistoflistings
% Normally the above is in the
\bigskip % front matter section, but here ...
\noindent % ... so we need to help a bit.
The Pascal code in listing~\ref{foo} shows\ldots
\lstinputlisting
[caption={[Pascal listing]Pascal},label=foo]
{pascal.src}
\end{document}