목록: 캡션(상단)과 목록 사이의 내부 여백을 늘리시겠습니까?

목록: 캡션(상단)과 목록 사이의 내부 여백을 늘리시겠습니까?

아래 MWE를 사용하면(여기), 다음과 같이 표시되는 대신 목록의 내부 여백을 늘리려면 어떻게 해야 합니까?

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

다음과 같습니다(회색 배경이 약간 "늘어났습니다").

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

나는 만지작거리려고 노력했다 framextopmargin.belowcaptionskip 으나 작동하지 않는 것 같습니다.내부여유.

\documentclass{article}
\usepackage[svgnames]{xcolor} 
\usepackage{caption}
\usepackage{listings}
\usepackage{calc} 
\lstdefinestyle{outline}{
         basicstyle=\scriptsize\ttfamily,
         numberstyle=\tiny,
         numbersep=5pt,
         tabsize=2,
         extendedchars=true,
         breaklines=true,
         keywordstyle=\color{blue},
         frame=b,
         stringstyle=\color{green!40!black}\ttfamily,
         showspaces=false,
         showtabs=false,
         numbers=left,
         xleftmargin=17pt,
         framexleftmargin=17pt,
         showstringspaces=false,
         backgroundcolor=\color[RGB]{200,200,200},
         belowcaptionskip=-1pt
}

\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[RGB]{60,100,180}{\parbox{\textwidth - 2 \fboxsep}{\hspace{14pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}

\begin{document}
\begin{lstlisting}[style=outline,caption=Test]
First line.
Second line.
\end{lstlisting}
\end{document}

답변1

framextopmargin임팩트를 주기 위해서는 상단에 프레임 라인이 있어야 할 것 같습니다 . 캡션과 프레임 자체 사이에 가는 검은색 선을 제외하고는 정확히 귀하가 요청한 내용은 다음과 같습니다.

\documentclass{article}
\usepackage[svgnames]{xcolor} 
\usepackage{caption}
\usepackage{listings}
\usepackage{calc} 
\lstdefinestyle{outline}{
         basicstyle=\scriptsize\ttfamily,
         numberstyle=\tiny,
         numbersep=5pt,
         tabsize=2,
         extendedchars=true,
         breaklines=true,
         keywordstyle=\color{blue},
         frame=bt,  % <<<<<<<<<<<<<<<<<<<<<<<<<<
         stringstyle=\color{green!40!black}\ttfamily,
         showspaces=false,
         showtabs=false,
         numbers=left,
         xleftmargin=17pt,
         framexleftmargin=17pt,
         framextopmargin=1pt, % <<<<<<<<<<<<<<<<<<<<<<
         showstringspaces=false,
         backgroundcolor=\color[RGB]{200,200,200},
         belowcaptionskip=0pt
}

\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[RGB]{60,100,180}{\parbox{\textwidth - 2 \fboxsep}{\hspace{14pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}

\begin{document}
\begin{lstlisting}[style=outline,caption=Test]
First line.
Second line.
\end{lstlisting}
\end{document}

액자

편집하다:

"검은 선" 문제에 대한 가능한 해결책:

  1. 검은색 선을 모두 제거하여 "보이지 않게" 하려면 rulecolor목록 스타일 설정에 키워드를 추가하면 됩니다.

    rulecolor=\color[RGB]{200,200,200},
    
  2. 인쇄되지 않도록 위쪽 줄을 실제로 제거하고 아래쪽 줄을 유지하려면 frame=bt(간격에 필요하므로) 유지하고 싶지만 스타일 설정 후 프리앰블에 다음을 추가하여 규칙 너비를 다음과 같이 설정합니다. "상위" 프레임의 경우 0:

    \usepackage{etoolbox}
    \makeatletter
    \patchcmd{\lst@frameh}{\color@begingroup}{\color@begingroup\if#2T\let\lst@framerulewidth\z@ \fi}{}{}
    \makeatother
    

이 두 가지 솔루션 중 저는 개인적으로 첫 번째 솔루션을 선호합니다. 하단에 있는 단일 검정색 선이 시각적으로 그렇게 매력적이라고 ​​생각하지 않기 때문입니다.

관련 정보