我正在使用这个listings
包。
我希望我的列表在标题上方有一个粗线,因此它看起来像\floatstyle{ruled}
。
因此它看起来像:
粗线 ===
标题
规则 - -
代码
规则 - -
答案1
该软件包listings
提供了在环境本身上方和下方绘制一条线的选项frame=single
。因此,您必须在设置标题之前添加一条粗线。因此,我使用pretocmd
提供的命令etoolbox
。
\documentclass{article}
\usepackage{listings}
\usepackage{etoolbox}
\makeatletter
\lstset{frame=lines}
\pretocmd\lst@makecaption{\noindent{\rule{\linewidth}{2pt}}}{}{}
\makeatother
\begin{document}
\begin{lstlisting}[caption={Some Caption}]
static uint64_t i = 0;
void every_cycle()
{
if (i > 0)
i--;
}
uint64_t next_num()
{
return (i += 0x100);
}
\end{lstlisting}
Text
\begin{lstlisting}
static uint64_t i = 0;
void every_cycle()
{
if (i > 0)
i--;
}
uint64_t next_num()
{
return (i += 0x100);
}
\end{lstlisting}
\end{document}
答案2
您可以直接以ruled
这种方式使用该样式:
\usepackage{float}
\floatstyle{ruled}
\newfloat{code}{thp}{lop}
\floatname{code}{Listing}
\numberwithin{code}{chapter}
然后\begin{code} ... \end{code}
围绕列表进行操作而不是\begin{figure} ... \end{figure}
。