Я работаю с LaTeX в Overleaf и у меня возникла следующая проблема:
Когда я вставляю этот фрагмент кода:
\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}
Я получаю сообщение об ошибке:
Package xcolor Error: Undefined color `gray45'.
Эта ошибка отображается в строке:
#hostname
Я не совсем понимаю, что происходит. Может кто-нибудь мне объяснить, пожалуйста?
решение1
Я не знаю, где на самом деле возникла ваша проблема.
Вам не следует загружать color
-пакет три раза (два раза как color
, один раз как xcolor
). Я удалил два из них. Также, в вашем MWE отсутствуют a \documentclass
и \begin{document}
... \end{document}
. Я добавил их, и у меня все в порядке.
\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}
решение2
Ошибка была устранена путем определения цвета с именем «gray45», например так:
\definecolor{gray45}{rgb}{0.2, 0.5, 0.478}
Кажется, что при вводе символа # в поле списков, он связывается с компиляцией его как цвета, когда это не так. Но, как я уже сказал, определение цвета решило ошибку.