这个例子说明了我的问题。我有很长的代码行,应该自动中断(见第 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}
输出