Legenda abaixo do quadro gerado por meio do pacote listings. \IBGEtab incompatível?

617 views
Skip to first unread message

Ulysses Coelho de Souza Junior

unread,
Feb 26, 2015, 2:56:51 PM2/26/15
to abn...@googlegroups.com
Olá,

Quero inserir a legenda abaixo de cada código, tal como funciona o comando \IBGEtab, ou seja, abaixo do quadro que contém o código, e alinhada à margem esquerda do quadro.

Seguem algumas mudanças realizadas (baseadas na adaptação do Thiago para a UECE):


\renewcommand{\baselinestretch}{1.5}
\setlength{\beforechapskip}{-\onelineskip}
\setlength{\afterchapskip}{\onelineskip} 
 
\setlrmarginsandblock{3cm}{2cm}{*} 
\setulmarginsandblock{3cm}{2cm}{*}                             


\renewcommand{\foottextfont}{\small}                                    % Define o tamanho da fonte das notas de rodapé para 10pt
\renewcommand{\IBGEtabfontsize}{\small}
\renewcommand{\ABNTEXfontereduzida}{\foottextfont}
\captionsetup{justification=centering,labelfont=small,textfont=small,skip=4pt}   % Altera fonte das legendas e dos captions para tamanho 10 (fonte padrão do documento=12pt)

\makeatletter                                                                                    % Redefinição do comando \fonte para tamanho \small (necessário para que a fonte na lista de figuras, etc não fosse afetada)
\renewcommand{\fonte}[2][\fontename]{%
 
\M@gettitle{#2}%
 
\memlegendinfo{#2}%
 
\par
 
\begingroup
     
\@parboxrestore
     
\if@minipage
       
\@setminipage
     
\fi
     
\small
     
\configureseparator
     
\@makecaption{\small #1}{\ignorespaces\small #2}\par
 
\endgroup}
\makeatother

\newcommand{\Caption}[1]{ %
 
\begin{Spacing}{1.5} %
       
\caption{#1} %
       
\end{Spacing} %
}

\newcommand{\Fonte}[2][\fontename]{ %
% \vspace{-3pt}
 
\vspace{10pt}
 
\fonte[#1]{#2}
 
\vspace{-5pt}
}

% Cria o comando para notas nas figuras e nas tabelas
\newcommand{\Nota}[2][\notaname]{\fonte[#1]{#2}}

\newcommand{\mecod}[3]{\IBGEtab{#1}{#2}{#3}} % Não funcionou. Incompatível com o pacote listings?


%**************** Nova lista para códigos
\usepackage{listings}                                                      % Para os códigos

\renewcommand{\lstlistingname}{Código}                                     % Redefinições do pacote listings
\renewcommand{\lstlistlistingname}{Lista de Códigos}
\newfloat[chapter]{codigo}{loc}{\lstlistingname}                           % lol  (??)
\newlistof{listofcodigos}{loc}{\lstlistlistingname}
\newlistentry{codigo}{loc}{0}

\counterwithout{codigo}{chapter} % ABNT
\renewcommand{\cftcodigoname}{\lstlistingname\space}
\renewcommand*{\cftcodigoaftersnum}{\hfill--\hfill}

% Macro para imprimir a lista de códigos
\newcommand{\imprimirlistadecodigos}{ %
        \pdfbookmark[0]{\lstlistlistingname}{loc}
\begin{KeepFromToc}                                        % Retira a lista de códigos do sumário
    \listofcodigos
   \end{KeepFromToc}
\cleardoublepage %
}

\lstset{
   %float=tp,                                                          
    extendedchars=false,
    inputencoding=utf8,
    language=[LaTeX]{TeX},
   %linewidth=13cm,
    backgroundcolor=\color{SkyBlue},
    keywordstyle=\color{black},
    rulecolor=\color{black},                                     % Cor da linha da moldura
    commentstyle=\color{black}\ttfamily,
    basicstyle=\footnotesize\normalfont\ttfamily,                % Tamanho da fonte dos códigos
    numberstyle=\small,                                          % Tamanho da fonte dos números das linhas
    frame=single,                                                        % Moldura do box
    framesep=2pt,
   %rulesep=2pt,                                                 % Espaço entre duas linhas do frame, quando duplo
    xleftmargin=1.5cm,                                           % Controla margem à esquerda
    xrightmargin=1.5cm,                                              % Controla margem à direita
   %framexleftmargin=2pt,                                        % Controlam as margens do frame (padrão 0pt)
   %framexrightmargin=2pt,
   %framextopmargin=,
   %framexbottommargin=
    stepnumber=1,                                                % Numeração das linhas
    numbers=left,                                                % Posição dos números das linhas
    numbersep=8pt,                                               % Distância do número da linha para o frame
    tabsize=2,                                                           % Tabulação
    upquote=true,
    columns=[c]flexible,                                         % Controla o alinhamento das colunas verticais para cada caracter
    showstringspaces=false,
    breaklines=true,
   %frameround=ftff,                                             % Cantos arredondados do frame
    belowskip=-12pt,
    belowcaptionskip=18pt,
   %numberbychapter=false,                                       % Se true, a numeração dos rótulos é feita por capítulo
    breaklines=true,                                             % Ativa a quebra automática de linhas longas
    upquote=false                                                % Desativa aspas inglesas. Se true, imprime `'
}


Teste: 
\begin{document}


\begin{codigo}[h!]
   
\Caption{Código do Exemplo 1}\label{cod:cod1}
     
\begin{lstlisting}
       
\begin{document}
               
Teste
         
\end{document}
     
\end{lstlisting}%
\Fonte{Elaborado pelo autor}
\end{codigo}




\end{document}


Estou obtendo o seguinte resultado, que não é o desejado, pois a Fonte está centralizada e muito próxima do frame (10 pt ou uma linha é a distância desejada). 

Acho que seria necessário criar um outro comando do tipo \Fonte (para a legenda) que funcione da mesma forma que para os quadros, tabelas e figuras segundo o exemplo: 


TALVEZ não seja muito complicado resolver, mas meu prazo é curto e agradeço de antemão se alguém puder ajudar.

[]'s


Ulysses.




Ulysses Coelho de Souza Junior

unread,
Feb 27, 2015, 1:27:04 PM2/27/15
to abn...@googlegroups.com
Encontrei uma solução meio forçada, mas que funciona:

\newcommand{\fontcod}{%
\hfill\\
\begin{minipage}[c]{13.2cm}
Fonte: Just me.
\end{minipage}\\
}

\lstset{
    float=tb,                                          
    extendedchars=false,
    inputencoding=utf8,
    language=[LaTeX]{TeX},
    linewidth=13cm,
    backgroundcolor=\color{SkyBlue},
    keywordstyle=\color{black},
    rulecolor=\color{black},                           
    basicstyle=\footnotesize\normalfont\ttfamily,      
    numberstyle=\small,                                
    frame=single,                                      
    framesep=2pt,
    xleftmargin=0cm,                                      
    xrightmargin=0cm,                                     
    stepnumber=1,                                    
    numbers=left,                                    
    numbersep=8pt,                                   
    tabsize=2,                                       
    upquote=true,
    columns=[c]flexible,                             
    showstringspaces=false,
    breaklines=true,
    belowskip=0pt,
    breaklines=true,                                                
    upquote=false                                          
}

\begin{document}

\begin{codigo}[h]
\Caption{\label{cod1}Test}
\centering
   \begin{tabular}{c}
      \begin{minipage}[t]{13cm}
          \begin{lstlisting}
                A very ugly solution.
          \end{lstlisting}
      \end{minipage}\\
   \fontcod
   \end{tabular}
\end{codigo}

\end{document}
Reply all
Reply to author
Forward
0 new messages