Die Hintergrundfarbe der Zeilennummern in einer Listenliste ändern?

Die Hintergrundfarbe der Zeilennummern in einer Listenliste ändern?

Betrachten Sie den folgenden Code, der sich mit einem befasst lstlisting.

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{xcolor}
\lstset{basicstyle=\small\ttfamily,keywordstyle=\color{blue},language=C++,showstringspaces=false,tabsize=2,numbers=left}
\begin{document}

\begin{lstlisting}
#include <stdio.h>
int main(void) {
  printf("Hello World!");
  return 0;
}
\end{lstlisting}

\end{document}

Gibt es eine Möglichkeit, den Hintergrund der Zeilennummern einzufärben (z. B. in Grau), aber nicht den Hintergrund des Codes?

Antwort1

listingshat keine vordefinierte Option dafür, aber wenn Sie bereit sind, dietcolorboxPaket, das eine gute Interaktion mit dem listingsPaket hat. So können Sie es tun:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[many]{tcolorbox}
\tcbuselibrary{listings}

\newtcblisting{mycpp}{
  colback=white,
  boxrule=0pt,
  arc=0pt,
  outer arc=0pt,
  top=0pt,
  bottom=0pt,
  colframe=white,
  listing only,
  left=15.5pt,
  enhanced,
  listing options={
    basicstyle=\small\ttfamily,
    keywordstyle=\color{blue},
    language=C++,
    showstringspaces=false,
    tabsize=2,
    numbers=left
  },
  overlay={
    \fill[gray!30] 
      ([xshift=-3pt]frame.south west)
      rectangle 
      ([xshift=11.5pt]frame.north west);
  }
}

\begin{document}

\begin{mycpp}
#include <stdio.h>
int main(void) {
  printf("Hello World!");
  return 0;
}
int main(void) {
  printf("Hello World!");
  return 0;
}
int main(void) {
  printf("Hello World!");
  return 0;
}
\end{mycpp}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Eine andere Möglichkeit wäre, mit Rahmen und ihren Rändern zu arbeiten, sodass Sie den normalen lstlisting-Befehl verwenden können.

\lstset {
...
frame=l,
framesep=4.5mm,
framexleftmargin=2.5mm,
fillcolor=\color{numberbg},
rulecolor=\color{ballblue},
numberstyle=\normalfont\tiny\color{numbercolor}
}

Dieses Snippet ergibt folgenden Stil:

Bildbeschreibung hier eingeben

verwandte Informationen