을(를) 사용하여 특정 댓글 유형을 강조표시하려고 하는데 lstsliting
이 옵션으로 인해 breaklines
상황이 엉망이 되었습니다.
보라색(키워드로 생성됨 name
)이 목록의 나머지 부분을 대신하여 색상을 지정합니다.
색상과 관련하여 제가 필요한 것(모자는 일반적으로 생산해야 합니다)은 다음과 같습니다.
MWE는 다음과 같습니다.
\documentclass{article}
\usepackage[]{geometry}
\usepackage[dvipsnames,svgnames,usenames,table]{xcolor} % Smart color names
\usepackage{listings}
\lstdefinestyle{system}{%
% breaklines=true, % <-- This makes the color scheme go nuts
breakatwhitespace=true, % <-- Even with this
keywordstyle=\color{Blue},
basicstyle=\normalfont\ttfamily,
morecomment=[s][\color{Blue}]{[*}{]},
morecomment=[s][\color{Green}]{[+}{]},
morecomment=[s][\color{Red}]{[-}{]},
morecomment=[n][\color{Purple}]{(name:}{)},
morecomment=[n][\color{Gray}]{(domain:}{)},
}
\begin{document}
\begin{lstlisting}[style=system]
test X:445 Test [+] Success1 (name:system) (domain:web)
test X:445 Test [-] Failure 10.0 (name:system) (domain:web)
test X:445 Test [*] Don't know 10.0 (name:system) (domain:web)
\end{lstlisting}
\end{document}
breaklines
옵션이 컬러 필터를 엉망으로 만드는 이유를 아는 사람이 있습니까 ? 목록의 내용에서 모든 공백을 제거할 수는 없으므로 줄 바꿈을 피하기 위해 공백을 제거하는 것은 선택 사항이 아닙니다.
컬러 필터와 줄 바꿈을 갖고 싶습니다.
답변1
이것이 최선의 해결책인지는 모르겠지만 닫는 구분 기호의 모호성을 제거하면 작동합니다.
\documentclass{article}
\usepackage{geometry}
\usepackage[dvipsnames,svgnames,usenames,table]{xcolor}
\usepackage{listings}
\lstdefinestyle{system}{%
breaklines=true,
keywordstyle=\color{Blue},
basicstyle=\normalfont\ttfamily,
morecomment=[s][\color{Blue}]{[*}{]},
morecomment=[s][\color{Green}]{[+}{]},
morecomment=[s][\color{Red}]{[-}{]},
morecomment=[n][\color{Purple}]{(name:}{m)},
morecomment=[n][\color{Gray}]{(domain:}{b)},
}
\begin{document}
\begin{lstlisting}[style=system]
test X:445 Test [+] Success1 (name:system) (domain:web)
test X:445 Test [-] Failure 10.0 (name:system) (domain:web)
test X:445 Test [*] Don't know 10.0 (name:system) (domain:web)
\end{lstlisting}
\end{document}
답변2
다음에서 영감을 얻었습니다.이 답변, 해결책은 명령을 패치하는 것입니다 \lsthk@SelectCharTable
.
따라서 수정된 MWE는 다음과 같습니다.
\documentclass{article}
\usepackage[]{geometry}
\usepackage[dvipsnames,svgnames,usenames,table]{xcolor} % Smart color names
\usepackage{listings}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\lsthk@SelectCharTable}{)}{`}{}{}
\makeatother
\lstdefinestyle{system}{%
breaklines=true,
breakatwhitespace=true,
keywordstyle=\color{Blue},
basicstyle=\normalfont\ttfamily,
morecomment=[s][\color{Blue}]{[*}{]},
morecomment=[s][\color{Green}]{[+}{]},
morecomment=[s][\color{Red}]{[-}{]},
morecomment=[n][\color{Purple}]{(name:}{)},
morecomment=[n][\color{Gray}]{(domain:}{)},
}
\begin{document}
\begin{lstlisting}[style=system]
test X:445 Test [+] Success1 (name:system) (domain:web)
test X:445 Test [-] Failure 10.0 (name:system) (domain:web)
test X:445 Test [*] Don't know 10.0 (name:system) (domain:web)
\end{lstlisting}
\end{document}
그리고 출력의 색상이 적절하게 지정되었습니다.