请考虑以下示例:
\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}
看起来像这样:
现在我有两个问题:
- 我该如何去掉这条白线(显然是无意的)?
- 如何在代码框中添加(一点)“灰色”空间(不是白色空间(例如 xleftmargin=0.5cm)?代码就在框的边缘,在我看来,看起来很草率,格式也不太好。
基本上我希望它看起来有点像这样:
答案1
这句话只是观者的产物。
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}