列表或列表中的手动换行在图形环境中不起作用

列表或列表中的手动换行在图形环境中不起作用

这个例子说明了我的问题。我有很长的代码行,应该自动中断(见第 1 行),但有些行我想手动中断(第 2/3 行)。我该怎么做?

我进行了一些尝试,示例 1 可能是一个解决方案,但它在图形环境中不起作用(示例 2)。

\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{listings}

\lstset{
   breakatwhitespace=false,
   breaklines=true,
   escapeinside={(*@}{@*)},
   frame=lines,
   numbers=left,
   postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\rightarrow\space}},
   showlines=true
}

\begin{document}

Example 1:
\begin{lstlisting}[numbers=left]
a = b + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c
a = b (*@\\\ensuremath{\rightarrow\space}@*)  + c
\end{lstlisting}
\vspace{2cm}
Example 2:
\begin{figure}[h]
\centering
\begin{lstlisting}[numbers=left]
a = b + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c
a = b (*@\\\ensuremath{\rightarrow\space}@*)  + c
\end{lstlisting}
\end{figure}

\end{document}

在此处输入图片描述

答案1

罪魁祸首是\centering您在 内部发出的figure,而不是figure本身。

删除它后问题就解决了。

平均能量损失

\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{listings}

\lstset{
   breakatwhitespace=false,
   breaklines=true,
   escapeinside={(*@}{@*)},
   frame=lines,
   numbers=left,
   postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\rightarrow\space}},
   showlines=true
}

\begin{document}

Example 1:
\begin{lstlisting}[numbers=left]
a = b + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c
a = b (*@\\\ensuremath{\rightarrow\space}@*)  + c
\end{lstlisting}
\vspace{2cm}
Example 2:
\begin{figure}[h]
\begin{lstlisting}[numbers=left]
a = b + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c
a = b (*@\\\ensuremath{\rightarrow\space}@*)  + c
\end{lstlisting}
\end{figure}

\end{document} 

输出

在此处输入图片描述

相关内容