如何减少列表代码中的行距?

如何减少列表代码中的行距?

我想减少以下 latex 中 java 代码的行距。我已经使用了 \setstretch{0.4},但似乎此代码不适用于列出内容。我该怎么做?

\begin{filecontents*}{FristProgram.java}
import java.io.*;
class ShowFile
{
}
 \end{filecontents*}

 \documentclass[svgnames]{report}
  \usepackage{tikz}
  \usepackage{verbatim}
  \usepackage{kpfonts}
  \usepackage[explicit]{titlesec}
  \usetikzlibrary{calc}
  \usetikzlibrary{shadows}
   \usetikzlibrary{shadows.blur}
  \usetikzlibrary{matrix}
   \usetikzlibrary{shapes,snakes}
   \usetikzlibrary{shapes.geometric, arrows}
  \usepackage{listings}
   \usepackage{showframe}

   \definecolor{codegreen}{rgb}{0,0,0}
   \definecolor{codegray}{rgb}{0,0,0}
   \definecolor{codepurple}{rgb}{0,0,0}
   %\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
   \definecolor{backcolour}{rgb}{1,1,1}
   \lstdefinestyle{mystyle}{
   backgroundcolor=\color{backcolour},   
   commentstyle=\color{codegreen},
   numberstyle=\tiny\color{codegray},
   stringstyle=\color{codepurple},
   basicstyle=\normalsize\ttfamily,
   breakatwhitespace=false,         
   breaklines=true,                 
   captionpos=b,                    
   keepspaces=true,                 
   numbers=none,                    
   numbersep=5pt,                  
   showspaces=false,                
   showstringspaces=false,
   showtabs=false,                  
   tabsize=4, 
   lineskip=.1cm
  }



\lstset{style=mystyle}

 \begin{document}
      \tikzstyle{Container} = [draw=none, fill=gray, thick,
      rectangle, rounded corners, inner sep=10pt, inner ysep=20pt]
      \tikzstyle{ProgramBox} = [draw=black, fill=white,thick,
      rectangle, rounded corners, inner sep=10pt, inner ysep=20pt,drop    shadow={color=black}
      ]

     \tikzstyle{ExampleBox} = [draw=black, fill=white, thick,
      rectangle, rounded corners, inner sep=10pt, inner ysep=20pt,drop     shadow={color=black}]

{\centering  
        \begin{tikzpicture}
        \label{num}
        \node [Container](container){   
                    \begin{tikzpicture}
                    \node [ProgramBox] (pbox){%
                        \begin{minipage}{\dimexpr\textwidth-40pt\relax}
                        \hrule width \hsize height 1pt


                        \lstinputlisting[language=Java]{FristProgram.java}
                        \hrule width \hsize \kern 1mm \hrule width \hsize height 1pt

                        \end{minipage}      
                    };      
                    \end{tikzpicture}
        };
        \node [ExampleBox, anchor=north west] at (container.south west) {
                \begin{minipage}{0.3\textwidth}
                    this\\
                    is \\
                    the \\
                    first \\
                    example                     
                \end{minipage}
        };  

        \node [ExampleBox, anchor=north east] at (container.south east) {
                \begin{minipage}{0.3\textwidth}
                    this\\
                    is \\
                    the \\
                    second \\
                    example \\
                    which \\
                    is \\
                    larger\\
                    than \\
                    first\\
                    example                 
                \end{minipage}
            };
        \end{tikzpicture}%
\par}

   \end{document}

答案1

lineskip=中的参数控制\lstdefinestyle这一点。尝试将其更改为lineskip=-.1cm,例如:

在此处输入图片描述

使用原始设置,lineskip=.1cm则得到如下结果:

在此处输入图片描述

答案2

只是表明,Steven B. Segletes 的解决方案也适用于我的答案上一个问题

\begin{filecontents*}{FristProgram.java}
import java.io.*;
class ShowFile
{
}
 \end{filecontents*}

 \documentclass[svgnames]{report}
\usepackage{tikz}
\usetikzlibrary{arrows,
                backgrounds,
                fit,
                positioning,
                shadows}
\usepackage{listings}
\usepackage{graphicx}

\definecolor{codegreen}{rgb}{0,0,0}
   \definecolor{codegray}{rgb}{0,0,0}
   \definecolor{codepurple}{rgb}{0,0,0}
   %\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
   \definecolor{backcolour}{rgb}{1,1,1}
   \lstdefinestyle{mystyle}{
   backgroundcolor=\color{backcolour},
   commentstyle=\color{codegreen},
   numberstyle=\tiny\color{codegray},
   stringstyle=\color{codepurple},
   basicstyle=\normalsize\ttfamily,
   breakatwhitespace=false,
   breaklines=true,
   captionpos=b,
   keepspaces=true,
   numbers=none,
   numbersep=5pt,
   showspaces=false,
   showstringspaces=false,
   showtabs=false,
   tabsize=4,
   lineskip=-2ex % <---
  }



\lstset{style=mystyle}
\begin{document}

\begin{center}
    \begin{tikzpicture}[
   node distance = 8pt and 24pt,
      box/.style = {rectangle, rounded corners, draw, thick, fill=white,
                    text width=#1, inner xsep=10pt, inner ysep=20pt,
                    drop shadow={color=black}
                    },
container/.style = {rectangle, rounded corners, fill=gray,
                    text width=\linewidth, inner xsep=10pt, inner ysep=20pt
                    }
                        ]
%\label{num}
\node [box=0.95\linewidth,align=center] (list)
    {
    \hrule width \hsize height 1pt
    \lstinputlisting[language=Java]{FristProgram.java}
    \hrule width \hsize \kern 1mm 
    \hrule width \hsize height 1pt
    };
\scoped[on background layer]
    \node [container, fit=(list)] {};
%\label{num}
\node [box=0.3\linewidth, below right=of list.south west]
    {this\\
     is \\
     the \\
     first \\
     example};
\node [box=0.3\linewidth,below left=of list.south east]
    {this\\
     is \\
     the \\
     second \\
     example \\
     which \\
     is \\
     larger\\
     than \\
     first\\
     example};
     \end{tikzpicture}%
\end{center}
\end{document}

在此处输入图片描述

相关内容