列表下方有一个额外的框

列表下方有一个额外的框

当我尝试导入主程序在 latex 文件中,我总是得到一个额外的块位于列表下方。有人知道如何解决这个问题吗?

\documentclass[12pt]{article}
\usepackage{listings}
\usepackage{color}
%Defint the color
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{1,1,1}

\begin{document}

\lstdefinestyle{cppStyle}{ %
    language=C++,
    backgroundcolor=\color{backcolour},   
    commentstyle=\color{codegreen},
    keywordstyle=\color{magenta},
    morekeywords={string,Node, Node*},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\tiny,                
    basicstyle=\ttfamily ,       
    numbers=left,                   
    numberstyle=\ttfamily ,    
    stepnumber=5,                   
    numbersep=5pt,                  
    showspaces=false,               
    showstringspaces=false,        
    showtabs=false,               
    frame=single,         
    tabsize=2,     
    captionpos=b,  
    breaklines=false, 
    breakatwhitespace=false,
    escapeinside={\%*}{*)}
}

\lstset{style=cppStyle}
\begin{minipage}{\linewidth}
    \lstinputlisting[nolol=true]{main.cpp}
    \begin{lstlisting}[caption={C++ Hello World}, label={lst:cpp_hello_world}]
    \end{lstlisting}
\end{minipage}
\end{document}

latex 文件的结果

答案1

您有两个列表,其中一个是空的。标题和标签应传递给命令\lstinputlisting

我借此机会提出一些改进建议。

  1. minipage是无用的(并且会产生危害,因为它会增加段落缩进)
  2. 可以style作为选项传递
  3. 应该style在序言中定义

这是一个完整的例子,filecontents*环境只是为了让它自包含(而不是破坏我的文件)。

\begin{filecontents*}{\jobname.cpp}
#include <iostream>
using namespace std;

int main()
{
  cout<<"Hello World in C++"<<endl;

  return 0;

}
\end{filecontents*}

\documentclass[12pt]{article}
\usepackage{listings}
\usepackage{color}
%Defint the color
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{1,1,1}

\lstdefinestyle{cppStyle}{
    language=C++,
    backgroundcolor=\color{backcolour},
    commentstyle=\color{codegreen},
    keywordstyle=\color{magenta},
    morekeywords={string,Node, Node*},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\tiny,
    basicstyle=\ttfamily,
    numbers=left,
    numberstyle=\ttfamily,
    stepnumber=5,
    numbersep=5pt,
    showspaces=false,
    showstringspaces=false,
    showtabs=false,
    frame=single,
    tabsize=2,
    captionpos=b,
    breaklines=false,
    breakatwhitespace=false,
    escapeinside={\%*}{*)},
}

\begin{document}

\lstinputlisting[
  style=cppStyle,
  nolol=true,
  caption={C++ Hello World},
  label={lst:cpp_hello_world}
]{\jobname.cpp}

\end{document}

在此处输入图片描述

相关内容