[H]“放在这里”放置选项不适用于 floatrow

[H]“放在这里”放置选项不适用于 floatrow

我正在使用minted、、floatrowcaptionlisting来创建如下代码块:

我的代码块

为了做到这一点,我使用了一个基于这个答案。这是我所拥有的:

...
\usepackage{listings}
\usepackage{floatrow}
\usepackage{minted}
...

% the number style (from fancyvrb package):
\renewcommand{\theFancyVerbLine}{\textcolor{Gray}{\scriptsize\arabic{FancyVerbLine}}}

% caption style
\usepackage{caption}
\DeclareCaptionStyle{code_style}{margin=-1mm}
\DeclareCaptionFont{code_font}{\color{white}\footnotesize\bfseries}
\DeclareCaptionFormat{code_format}{\colorbox{MidnightBlue}{\parbox{\textwidth}{#1#2#3}}}
\captionsetup[listing]{%
style=code_style,format=code_format,labelfont=code_font,textfont=code_font}
% this is from floatrow package:
\floatsetup[listing]{capposition=top,rowpostcode=rule}

\makeatletter
\newenvironment{mycode}[3]
 {\VerbatimEnvironment
  \minted@resetoptions
  \setkeys{minted@opt}{linenos,fontfamily=courier,fontsize=\scriptsize, xleftmargin=21pt}
  \renewcommand{\minted@proglang}[1]{#1}
  \begin{listing}[H]
    \caption{#2}\label{#3}
      \begin{VerbatimOut}{\jobname.pyg}}
 {\end{VerbatimOut}
  \minted@pygmentize{\minted@proglang{}}
  \DeleteFile{\jobname.pyg}
  \end{listing}}
\makeatother

mycode这样称呼:

\begin{mycode}{ruby}{Código do método Project\#tasks\_by\_position (versão 3)}{code:tdd_code3}
# app/models/project.rb
def tasks_by_position position
  tasks.select { |item| item.position.to_s == position.to_s }
end
\end{mycode}

问题是,当使用floatrow包裹[H]“放在这里”放置选项不起作用,我的代码放在了文本的末尾。如果我删除包floatrow,代码可以正常工作,但我无法将标题放在顶部,将行放在底部。


編輯(2012年1月30日)

作为埃格尔问,我做了一个最小的例子,并意识到问题是我使用的\documentclass{abnt}来自abntex 包。例如,如果我使用\documentclass{book},它就可以工作。不幸的是,这个包只有巴西葡萄牙语文档和自 2006 年以来就没有更新过

相关内容