如何将(C/C++)代码插入具有灰色背景的文档中?

如何将(C/C++)代码插入具有灰色背景的文档中?

我正在使用该listings包将文件中的代码插入到我的 .tex 文档中,如下所示 -https://stackoverflow.com/a/21344989/4647107
我的 .tex 文档中有一些实例,我使用 插入来自文件的代码\lstinputlisting,也有一些实例,我使用 插入手写代码片段\begin{lstlisting}..\end{lstlisting}

我希望插入的代码(以上述任何一种/两种方式插入)具有灰色背景。
我找到了这个答案 -https://tex.stackexchange.com/a/177019/193728它提供了一个解决方案,但代码周围似乎有额外的灰色空间(作为边框?),特别是在顶部和底部。

以下是一个例子 - 例如额外的灰色空间

我该如何避免这种情况?
或者有更好的方法吗?

答案1

事实上,答案https://tex.stackexchange.com/a/177019/81639基本上解决了您的问题,您只需修改 mdframed 参数中的边距。

\documentclass{article}

\usepackage{listings} %code extracts
\usepackage{xcolor} %custom colours
\usepackage{mdframed} %nice frames

\definecolor{light-gray}{gray}{0.95} %the shade of grey that stack exchange uses

\begin{document}

\begin{mdframed}[backgroundcolor=light-gray, roundcorner=10pt,leftmargin=1, rightmargin=1, innerleftmargin=1, innertopmargin=1,innerbottommargin=1, outerlinewidth=1, linecolor=light-gray]
\begin{lstlisting}
    #include <stdio.h>

    int main(int argc, char ** argv)
    {
      printf("Hello world!\n");
      return 0;
    }
\end{lstlisting}
\end{mdframed}


\end{document}

相关内容