列表和换行符中的颜色问题

列表和换行符中的颜色问题

在下面的例子中,当文本为彩色时,列表行会在第一个空格处中断,而当文本为黑色时则不会中断:

\documentclass[dvipsnames]{report}
\usepackage[utf8]{inputenc}
\usepackage{xspace}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{adjustbox}
\usepackage{float}

\lstdefinestyle{s}{escapechar={|}, breaklines=false, breakatwhitespace=false}

\lstset{basicstyle = \ttfamily}
\usepackage{underscore}

\begin{document}

\begin{figure}[H]%
\centering
\begin{adjustbox}{max width=0.95\textwidth}
\begin{lstlisting}[style=s]

|\color{magenta}magentaaa aaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa|
blackkkkkkkkkkkkkkkkkkkkkkkkkk kkk kkk kkkkkk kkk kkk kkkkkk kkk kkk

\end{lstlisting}
\end{adjustbox}
\caption{}
\label{label}
\end{figure}

\end{document}

在此处输入图片描述

如何强制两个文本具有相同的行为?我尝试使用breaklinesbreakatwhitespace列出参数,但没有成功。问题可能与调整框有关。

编辑

使用的目的\adjustbox是使列表适合文本宽度。

答案1

您可以将文本放入洋红色\mbox...它不会被破坏。

\documentclass[dvipsnames]{report}
\usepackage{xspace}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{adjustbox}
\usepackage{float}
\usepackage{lipsum}

\lstdefinestyle{s}{escapechar={|}, breaklines=false, breakatwhitespace=false}

\lstset{basicstyle = \ttfamily}
\usepackage{underscore}

\begin{document}

\lipsum[1]

\begin{figure}[H]%
\centering
\begin{adjustbox}{max width=0.95\textwidth}
\begin{lstlisting}[style=s]

|\color{magenta}\mbox{magentaaa aaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa}|
blackkkkkkkkkkkkkkkkkkkkkkkkkk kkk kkk kkkkkk kkk kkk kkkkkk kkk kkk

\end{lstlisting}
\end{adjustbox}
\caption{}
\label{label}
\end{figure}

\end{document}

上述代码的输出

相关内容