%20und%20Auflistung%20vergr%C3%B6%C3%9Fern%3F.png)
Mit dem untenstehenden MWE (adaptiert vonHier), wie vergrößere ich den inneren Rand in der Auflistung, sodass er nicht so aussieht:
Es sieht so aus (beachten Sie, dass der graue Hintergrund etwas „gestreckt“ wurde):
Ich habe versucht, mit framextopmargin
, belowcaptionskip
etc. herumzuspielen, aber es scheint nicht zu funktionieren mit deminternMarge.
\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}
Antwort1
Es sieht so aus, als ob oben eine Rahmenlinie vorhanden sein muss, um framextopmargin
eine Wirkung zu erzielen. Mit Ausnahme einer dünnen schwarzen Linie zwischen der Überschrift und dem Rahmen selbst ist dies genau das, wonach Sie gefragt haben:
\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}
Bearbeiten:
Mögliche Lösungen für das „schwarze Linie“-Problem:
Um die beiden schwarzen Linien zu entfernen, sodass sie „unsichtbar“ sind, können Sie einfach ein
rulecolor
Schlüsselwort zur Einrichtung des Listing-Stils hinzufügen:rulecolor=\color[RGB]{200,200,200},
Um die obere Zeile tatsächlich zu entfernen, sodass sie nicht gedruckt wird, aber die untere Zeile beizubehalten, die Sie behalten möchten
frame=bt
(da diese für den Abstand benötigt wird), fügen Sie der Präambel nach den Stileinstellungen jedoch Folgendes hinzu, um die Regelbreite nur für „obere“ Rahmen auf 0 zu setzen:\usepackage{etoolbox} \makeatletter \patchcmd{\lst@frameh}{\color@begingroup}{\color@begingroup\if#2T\let\lst@framerulewidth\z@ \fi}{}{} \makeatother
Von diesen beiden Lösungen würde ich persönlich die erste bevorzugen, da ich die einzelne schwarze Linie am unteren Rand optisch nicht so ansprechend finde.