列表环境问题(边距和白线)

列表环境问题(边距和白线)

请考虑以下示例:

\documentclass{article}
\usepackage{listings}
\usepackage{color}
\begin{document}
\definecolor{light-gray}{gray}{0.95}
\lstset{columns=fullflexible, basicstyle=\ttfamily,
    backgroundcolor=\color{light-gray},xleftmargin=0.5cm}
\begin{lstlisting}
Test code
\\ a bit of comments
\end{lstlisting}
\end{document}

看起来像这样: 在此处输入图片描述

现在我有两个问题:

  1. 我该如何去掉这条白线(显然是无意的)?
  2. 如何在代码框中添加(一点)“灰色”空间(不是白色空间(例如 xleftmargin=0.5cm)?代码就在框的边缘,在我看来,看起来很草率,格式也不太好。

基本上我希望它看起来有点像这样: 在此处输入图片描述

答案1

  1. 这句话只是观者的产物。

  2. frame在左侧(和右侧)声明一个不可见的,并使用所需的值framesep

一个例子:

\documentclass{article}
\usepackage{listings}
\usepackage{color}
\begin{document}
\definecolor{light-gray}{gray}{0.95}
\lstset{columns=fullflexible, basicstyle=\ttfamily,
    backgroundcolor=\color{light-gray},xleftmargin=0.5cm,frame=lr,framesep=8pt,framerule=0pt}
\begin{lstlisting}
Test code
\\ a bit of comments
\end{lstlisting}
\end{document}

在此处输入图片描述

在四个侧面使用框架:

\documentclass{article}
\usepackage{listings}
\usepackage{color}
\begin{document}
\definecolor{light-gray}{gray}{0.95}
\lstset{columns=fullflexible, basicstyle=\ttfamily,
    backgroundcolor=\color{light-gray},xleftmargin=0.5cm,frame=tlbr,framesep=4pt,framerule=0pt}
\begin{lstlisting}
Test code
\\ a bit of comments
\end{lstlisting}
\end{document}

在此处输入图片描述

为了独立控制每一侧的分离,您可以使用包装mdframed将周围围上lstlisting具有所需规格的框架:

\documentclass{article}
\usepackage{listings}
\usepackage{color}
\usepackage[framemethod=tikz]{mdframed}

\definecolor{light-gray}{gray}{0.95}
\lstset{columns=fullflexible,basicstyle=\ttfamily}
\surroundwithmdframed[
  hidealllines=true,
  backgroundcolor=light-gray,
  innerleftmargin=15pt,
  innertopmargin=0pt,
  innerbottommargin=0pt]{lstlisting}

\begin{document}

\begin{lstlisting}
Test code
\\ a bit of comments
\end{lstlisting}

\end{document}

在此处输入图片描述

相关内容