是否可以配置 lstlisting 使其不在某些字符处换行?在此示例中,在左括号后插入换行符:
public void someMethod(
String parameter)
相反,我希望左括号出现在第二行:
public void someMethod
(String parameter)
编辑(MWE 添加):
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[breaklines=true, linewidth=5cm, frame=single]
public void someMethod(String parameter)
\end{lstlisting}
\end{document}
答案1
接下来的内容更像是一种丑陋的破解,而不是正确的解决方案,但它可能会对您有所帮助。
简而言之,该方法包括(
在列表中出现任何字符后立即在本地设置非常高的换行惩罚;这样,在之后就不会出现(
所需的换行。
\documentclass{article}
\usepackage{listings}
\lstset{
breaklines=true,
frame=single,
literate=({{(\penalty10000\hspace{-.7em}}}2, % <--- ugly hack right there
}
\begin{document}
\begin{lstlisting}[linewidth=5cm]
public void someMethod(String parameter)
\end{lstlisting}
\begin{lstlisting}
public void someMethod(String parameter)
\end{lstlisting}
\end{document}