Paket xcolor-Fehler: Undefinierte Farbe „gray45“. Fehler bei der Verwendung von lstlistings in LaTeX

Paket xcolor-Fehler: Undefinierte Farbe „gray45“. Fehler bei der Verwendung von lstlistings in LaTeX

Ich arbeite mit LaTeX in Overleaf und habe folgendes Problem:

Wenn ich dieses Codefragment einfüge:

\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage[usenames, dvipsnames]{color}
\usepackage{colortbl}
\usepackage{xcolor}
\usepackage{color}

\lstset{ %
backgroundcolor=\color{white},   % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}
basicstyle=\footnotesize\ttfamily,        % the size of the fonts that are used for the code
breakatwhitespace=false,         % sets if automatic breaks should only happen at whitespace
breaklines=true,                 % sets automatic line breaking
commentstyle=\color[rgb]{0.4,0.4,0.4},    % comment style
extendedchars=true,              % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
frame=single,                      % adds a frame around the code
keepspaces=true,                 % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
keywordstyle=\color[rgb]{0.18,0.28,0.75},       % keyword style
language=Python,                 % the language of the code
numberstyle=\color[rgb]{0.7,0.1,0.4}, % the style that is used for the line-numbers
rulecolor=\color{black},         % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
stringstyle=\color[rgb]{1,0.6,0.2},     % string literal style
showspaces=false,                % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
showstringspaces=false,          % underline spaces within strings only
showtabs=false,                  % show tabs within strings adding particular underscores
stepnumber=2,                    % the step between two line-numbers. If it's 1, each line will be numbered
tabsize=2,                     % sets default tabsize to 2 spaces
}


\begin{lstlisting}[language=bash,caption={Establecer hostname}]

#hostname


\end{lstlisting}

Ich erhalte eine Fehlermeldung:

Package xcolor Error: Undefined color `gray45'.

Dieser Fehler wird in der folgenden Zeile angezeigt:

#hostname

Ich verstehe nicht wirklich, was passiert. Kann mir das bitte jemand erklären?

Antwort1

Ich weiß nicht, wo Dein Problem eigentlich liegt.

Sie sollten das color-Paket nicht dreimal laden (zweimal als color, einmal als xcolor). Ich habe zwei davon entfernt. Außerdem fehlt in Ihrem MWE ein \documentclassund \begin{document}... \end{document}. Ich habe sie hinzugefügt und für mich ist alles in Ordnung.

\documentclass{article}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage[usenames, dvipsnames]{color}

\lstset{ %
backgroundcolor=\color{white},   % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}
basicstyle=\footnotesize\ttfamily,        % the size of the fonts that are used for the code
breakatwhitespace=false,         % sets if automatic breaks should only happen at whitespace
breaklines=true,                 % sets automatic line breaking
commentstyle=\color[rgb]{0.4,0.4,0.4},    % comment style
extendedchars=true,              % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
frame=single,                      % adds a frame around the code
keepspaces=true,                 % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
keywordstyle=\color[rgb]{0.18,0.28,0.75},       % keyword style
language=Python,                 % the language of the code
numberstyle=\color[rgb]{0.7,0.1,0.4}, % the style that is used for the line-numbers
rulecolor=\color{black},         % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
stringstyle=\color[rgb]{1,0.6,0.2},     % string literal style
showspaces=false,                % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
showstringspaces=false,          % underline spaces within strings only
showtabs=false,                  % show tabs within strings adding particular underscores
stepnumber=2,                    % the step between two line-numbers. If it's 1, each line will be numbered
tabsize=2,                     % sets default tabsize to 2 spaces
}

\begin{document}

\begin{lstlisting}[language=bash,caption={Establecer hostname}]

#hostname

\end{lstlisting}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Der Fehler wurde behoben, indem eine Farbe mit dem Namen „gray45“ wie folgt definiert wurde:

\definecolor{gray45}{rgb}{0.2, 0.5, 0.478}

Es scheint, dass beim Eingeben eines Zeichens # in ein Listenfeld versucht wird, es als Farbe zu kompilieren, obwohl dies nicht der Fall ist. Aber wie gesagt, durch die Definition der Farbe wurde der Fehler behoben.

verwandte Informationen