%EA%B3%BC%20%EB%AA%A9%EB%A1%9D%20%EC%82%AC%EC%9D%B4%EC%9D%98%20%EB%82%B4%EB%B6%80%20%EC%97%AC%EB%B0%B1%EC%9D%84%20%EB%8A%98%EB%A6%AC%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
아래 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}
편집하다:
"검은 선" 문제에 대한 가능한 해결책:
검은색 선을 모두 제거하여 "보이지 않게" 하려면
rulecolor
목록 스타일 설정에 키워드를 추가하면 됩니다.rulecolor=\color[RGB]{200,200,200},
인쇄되지 않도록 위쪽 줄을 실제로 제거하고 아래쪽 줄을 유지하려면
frame=bt
(간격에 필요하므로) 유지하고 싶지만 스타일 설정 후 프리앰블에 다음을 추가하여 규칙 너비를 다음과 같이 설정합니다. "상위" 프레임의 경우 0:\usepackage{etoolbox} \makeatletter \patchcmd{\lst@frameh}{\color@begingroup}{\color@begingroup\if#2T\let\lst@framerulewidth\z@ \fi}{}{} \makeatother
이 두 가지 솔루션 중 저는 개인적으로 첫 번째 솔루션을 선호합니다. 하단에 있는 단일 검정색 선이 시각적으로 그렇게 매력적이라고 생각하지 않기 때문입니다.