在下面的例子中,当文本为彩色时,列表行会在第一个空格处中断,而当文本为黑色时则不会中断:
\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}
如何强制两个文本具有相同的行为?我尝试使用breaklines
并breakatwhitespace
列出参数,但没有成功。问题可能与调整框有关。
编辑
使用的目的\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}