序文付きのリストをタイプセットする(リストパッケージの使用が推奨)

序文付きのリストをタイプセットする(リストパッケージの使用が推奨)

現時点では、listingsパッケージを使用してリストをタイプセットしています。リストはフロートであり、行番号を使用し、周囲のテキストと区別するために上下のルールがあります。

私が本当に欲しいのは、各リストの短い前文で、(より軽い)ルールで区切られ、アサーション、副作用、要件などのリストへの注釈が含まれていることです。したがって、必要なのは、より重いトップルール、軽いミッドルール、およびより重いボトムルールです。booktabs。さらに、前文は実際にはリストの一部ではないため、前文の行数はカウントされません。

これを LaTeX で最も簡単に実現するにはどうすればよいでしょうか? できればパッケージを使用したいと思いますlistings

答え1

次の例では、tcolorboxリストに番号を付けずにパッケージを使用してフローティングリストを構築します。環境は、preamblelisting必須パラメータとしてプリアンブルを受け取ります。オプションパラメータは任意のtcolorboxオプションです。タイプセットの基礎となるパッケージはlistings

注: コンパイルするにはパッケージを更新する必要がある場合がありますtcolorbox

\documentclass{report}
\usepackage[skins,listings]{tcolorbox}
\usepackage{lipsum}

\newtcblisting{preamblelisting}[2][]{%
  float=htb,empty,
  boxsep=0pt,left=0pt,right=0pt,boxrule=2pt,leftrule=0pt,rightrule=0pt,
  borderline horizontal={2pt}{0pt}{black},
  segmentation engine=path,
  segmentation style={solid,line width=1pt},
  comment and listing,
  fontupper=\itshape,
  listing options={% put any listing options here
    language={[LaTeX]TeX},
    aboveskip=0pt, belowskip=0pt,numbers=left,numberstyle=\tiny,
    basicstyle=\ttfamily,columns=fullflexible},
  comment={#2},#1
}

\begin{document}

\lipsum[1]

\begin{preamblelisting}{This is the preamble. Lorem ipsum dolor sit amet,
  consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
  adipiscing vitae, felis. Curabitur dictum gravida
  mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.}
\begin{test}{Example}
This is an example
\end{test}
\end{preamblelisting}

\begin{preamblelisting}[float=b]{This is the preamble. Lorem ipsum dolor sit amet,
  consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
  adipiscing vitae, felis. Curabitur dictum gravida
  mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.}
\begin{test}{Example}
This is an example
This is an example
This is an example
\end{test}
\end{preamblelisting}

\lipsum

\end{document}

ここに画像の説明を入力してください

アップデート:

このアップデートでは、OP のコメントを考慮し、タイトルを下に設定した番号付けを追加します。また、これはリスト パッケージの通常のリストに統合されるため、両方を並行して使用できます。最後に、cleverefが使用されます。

\documentclass{report}
\usepackage{cleveref,varwidth}
\usepackage[skins,listings]{tcolorbox}
\usepackage{lipsum}

\Crefname{lstlisting}{Listing}{Listings}

\AtBeginDocument{%
\newtcblisting[blend into=listings]{preamblelisting}[3][]{%
  float=htb,empty,
  boxsep=0pt,left=0pt,right=0pt,boxrule=2pt,leftrule=0pt,rightrule=0pt,
  borderline horizontal={2pt}{0pt}{black},
  segmentation engine=path,
  segmentation style={solid,line width=1pt},
  comment and listing,
  fontupper=\itshape,
  listing options={% put any listing options here
    language={[LaTeX]TeX},
    aboveskip=0pt, belowskip=0pt,numbers=left,numberstyle=\tiny,
    basicstyle=\ttfamily,columns=fullflexible},
  attach boxed title to bottom center,
  varwidth boxed title,
  coltitle=black,
  boxed title style={blanker,top=2mm},
  title={#2},comment={#3},#1
}}


\begin{document}

\lstlistoflistings

\chapter{Example}

\begin{lstlisting}[language={[LaTeX]TeX},
    numbers=left,numberstyle=\tiny,
    basicstyle=\ttfamily,columns=fullflexible,
    caption={My normal listing},
    captionpos=b,
    label=mynormal]
This is a normal listing
\end{lstlisting}

\lipsum[2]

\textcolor{red}{\Cref{mynormal} is a normal listing and \Cref{mypreamble} is a listing
with a preamble.}

\begin{preamblelisting}[label=mypreamble]{My preamble listing}%
{This is the preamble. Lorem ipsum dolor sit amet,
  consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
  adipiscing vitae, felis. Curabitur dictum gravida
  mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.}
\begin{test}{Example}
This is an example
\end{test}
\end{preamblelisting}

\begin{preamblelisting}[float=b,label=floatingpreamble]{My floating preamble listing}%
{This is the preamble. Lorem ipsum dolor sit amet,
  consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
  adipiscing vitae, felis. Curabitur dictum gravida
  mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.}
\begin{test}{Example}
This is an example
This is an example
This is an example
\end{test}
\end{preamblelisting}

\lipsum

\end{document}

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

関連情報