LaTeX错误求助:figure环境内lstlisting报无换行可结束
问题解决方法
错误原因
你把lstlisting环境的配置参数[firstnumber=125]放在了环境内部的新行,LaTeX无法识别这是环境参数,会将其当作代码内容处理,进而引发语法解析错误,导致出现“There's no line here to end.”的提示。
修正后的代码
\begin{figure} \caption{Paragraph 1 - Code} \begin{lstlisting}[firstnumber=125] def recextract(obj, arr, prefix): #Recursively search for values of key in JSON tree. if isinstance(obj, dict): for k, v in obj.items(): if isinstance(v, (dict, list)): recextract(v, arr, prefix+'_'+k) else: arr[prefix+'_'+k] = v elif isinstance(obj, list): for item in obj: recextract(item, arr, prefix) def parse_json(array_of_json): arr = dict() es_row = recextract(json.loads(array_of_json), arr, '') return arr prdd = rdd.map(lambda x: parse_json(x[1])) df = prdd.toDF(sampleRatio=0.01) df = df.cache() df = df.toDF(*(c.replace('.', '_') for c in df.columns)) print(df.count()) \end{lstlisting} \source{Zeppelin} \label{fig:abb1} \end{figure}
关键修正点
- 将
[firstnumber=125]直接附加在\begin{lstlisting}后面,作为环境的配置参数,而非放在环境内部单独成行。 - 移除了代码内容前的额外缩进,避免代码显示时出现不必要的前缀空白(若需要保留代码缩进,可根据需求调整,但参数位置必须正确)。
额外注意:确保你已在文档导言区加载listings包(添加\usepackage{listings}),否则lstlisting环境无法正常使用;如果\source是自定义命令,也要保证其定义正确,避免引发其他错误。
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

