标题上方带有规则的列表看起来像 \floatstyle{ruled}

标题上方带有规则的列表看起来像 \floatstyle{ruled}

我正在使用这个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}

相关内容