둥근 회색 프레임에 코드 조각을 넣으시겠습니까?

둥근 회색 프레임에 코드 조각을 넣으시겠습니까?

둥근 프레임이 있는 회색 배경의 코드 조각을 강조하고 싶습니다. 를 사용하여 부분적으로 이를 달성할 수 있지만 mdframed캡션은 프레임 내부에 있습니다.

나는 또한 codebox다음과 같이 시도했습니다.

\newtcblisting{codebox}[1]{
    arc=4pt,
    colback=GitHubGray,
    boxrule=0.5pt,
    breakable,
    listing only,
    listing options={
        caption={#1},
        label=lst:label
    }
}

그러나 해결책은 그다지 아름답지 않습니다. 나중에 사용할 수 있는 전통적인 캡션을 선호합니다 \listoflistings.

\documentclass{article}

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

\definecolor{GitHubGray}{rgb}{0.9,0.9,0.9}

\lstset{
    language=c,
    breaklines=true,
    keywordstyle=\bfseries\color{black},
    basicstyle=\ttfamily\color{black}\fontsize{9pt}{10pt}\selectfont,
    emphstyle={\em \color{gray}},
    keepspaces=true,
    showspaces=false,
    showtabs=true,
    tabsize=2,
    upquote=true,
    aboveskip=2pt,
    belowskip=2pt,
    framexleftmargin=2pt,
    extendedchars=true,
    inputencoding=utf8,
}

\mdfsetup{%
  roundcorner=4pt,
  innerleftmargin=2mm,
  innertopmargin=4.5mm, % Magical value
  %linecolor=black!50,%
  innerbottommargin=1mm, % Magical value
  backgroundcolor=GitHubGray
}

\begin{document}
\section{Example}
\lipsum[1]

\begin{mdframed}
\begin{lstlisting}[caption={caption text},label=lst:label]
#include <stdio.h>

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

\lipsum[2]
\end{document}

마법의 상수(상단/하단 여백)와 이상적으로는 더 적은 상용구 \begin( .\endlstlisting

그게 가능합니까?

여기에 이미지 설명을 입력하세요

관련 정보