서문이 포함된 목록 조판(목록 패키지 사용 권장)

서문이 포함된 목록 조판(목록 패키지 사용 권장)

현재 나는 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}

여기에 이미지 설명을 입력하세요 여기에 이미지 설명을 입력하세요 여기에 이미지 설명을 입력하세요

관련 정보