コード スニペットを灰色の背景に丸いフレームで強調表示したいと思います。 で部分的にこれを実現できますが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
?\end
lstlisting
それは可能ですか?