列出删除水平线并自动裁剪到代码片段的大小

列出删除水平线并自动裁剪到代码片段的大小

我正在尝试将代码包含到我的演示文稿中。有两件事需要修复:

  • 代码行之间出现水平线
  • 我不想使用整个页面,需要自动裁剪到代码的大小

代码行之间的灰色水平线:

在此处输入图片描述

梅威瑟:

\documentclass[10pt]{article}
\usepackage[usenames,dvipsnames]{xcolor} %used for font color
\usepackage[utf8]{inputenc} %useful to type directly diacritic characters
\usepackage{listings}
\begin{document}
\definecolor{lbcolor}{rgb}{0.1,0.1,0.1} 
\lstset{
     basicstyle=\ttfamily\color{White},
     language=Java,
     tabsize=1,
     xleftmargin=20pt,
     keywordstyle=\color{Red}\bf,
     showstringspaces=false,
     morekeywords={public, class},
     backgroundcolor=\color{Black}
 }

\begin{lstlisting}

public class MyObject{

    public MyObject(){
        System.out.println("MyObject");
    }
}
\end{lstlisting}

\end{document}

答案1

tcolorbox

首先,我们mystyle通过定义一个新的列表样式\lstdefinestyle,而不是定义\lstset。这是之后需要的。backgroundcolor删除该选项很重要

然后我们mylisting通过定义一个新的列表环境\newtcblisting。选项listing options={style=mystyle}是使用先前定义的样式mystyle。选项hbox则会将列表的内容裁剪为其大小。

此时,使用环境mylisting代替lstlisting。由于框中填充了黑色,因此白线会消失,而使用正常方式时,lstlisting背景会逐行打印。

梅威瑟:

\documentclass[10pt]{article}
\usepackage[usenames,dvipsnames]{xcolor} %used for font color
\usepackage[utf8]{inputenc} %useful to type directly diacritic characters
\usepackage{listings}
\usepackage{tcolorbox}
\tcbuselibrary{listings}

\begin{document}

\definecolor{lbcolor}{rgb}{0.1,0.1,0.1}

\lstdefinestyle{mystyle}{
     basicstyle=\ttfamily\color{White},
     language=Java,
     tabsize=1,
     keywordstyle=\color{Red}\bf,
     showstringspaces=false,
     morekeywords={public, class}
 }

\newtcblisting{mylisting}{
      arc=0pt,
      top=0mm,
      bottom=0mm,
      left=0mm,
      right=0mm,
      boxrule=0pt,
      colback=black,
      listing only,
      listing options={style=mystyle},
      hbox
}

\begin{mylisting}
public class MyObject{

    public MyObject(){
        System.out.println("MyObject");
    }
}
\end{mylisting}

\end{document} 

输出:

在此处输入图片描述

相关内容