abntex / abntex2

:books: Classe LaTeX e estilo bibliográfico compatíveis com as normas da ABNT
http://www.abntex.net.br
LaTeX Project Public License v1.3c
1.03k stars 219 forks source link

Adequação do elementos dos floats: tabelas, ilustrações, etc #78

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What is the task?
As tabelas em trabalhos acadêmicos deve seguir a norma ABNT NBR 14724:2011 que 
diz que tabelas têm sua tipografia como as tabelas do IBGE.
Na especificação do IBGE o título da legenda (caption) mais o texto da 
legenda são alinhados ao começo da respectiva tabela e têm sua largura igual 
à largura da tabela. Além disso o texto da legenda (caption) é alinhado como 
bloco separado do título da legenda (hangcaption no memoir).

What is the final product?
1 - Um comando \parboxtab com três argumentos: a tabela (imagem, etc), o 
material que vai acima da tabela, o material que vai abaixo da tabela; com os 
três tendo a mesma largura e alinhados à esquerda com a tabela.
2 - configurações específicas do memoir para captions e configurações 
específicas para o pacote caption e dependentes, como subfig, (o memoir emula 
o pacote ccaption e subfiguras nativamente)
3 - Um comando \fonte com um argumento que imprime "Fonte: " e o argumento do 
comando \fonte alinhado como bloco, funcionando igual à configuração 
hangcaption do mamoir ou format=hang do pacote caprion.

Where should it be put?
Não sei dizer ao certo.
Penso em disponibilizar o comando e as configurações dos captions nativas do 
memoir no abntex2.cls.
No manual deixaria para explicitar como fazer as configurações nativas do 
memoir, assim como as configurações necessárias caso algum usuário use o 
pacote subfig ou caption.

Additional information:
Ok, na norma diz que não pode haver subfiguras, mas nada contra partes de uma 
mesma figura.
Os comandos criados podem ser usados com tabular, tabular*, includegraphics.

Original issue reported on code.google.com by sggra...@gmail.com on 17 Aug 2013 at 9:23

GoogleCodeExporter commented 9 years ago
Tenho as seguintes configurações:

% ---
% Para uso do memoir nativamente
\hangcaption
\captionstyle[\raggedright]{}
\captionnamefont{\normalsize\normalfont}
\captiontitlefont{\normalsize\normalfont}
% ---

% ---
% Para uso com pacotes subfig e caption, mas necessita testarse algum destes 
pacotes foi carregado e
%\usepackage{subfig}
\AtBeginDocument{
\DeclareCaptionLabelSeparator{barr}{~--~}
\captionsetup{format=hang,
              justification=justified,singlelinecheck=false,
              labelseparator=barr}
}
% ---
% ---
% Defino o comando \fonte
% ---
\newlength{\fontetextwidth}
%---
\newcommand{\fonte}[1]{%
    \small%
    \settowidth{\fontetextwidth}{Fonte:~}%
    \addtolength{\fontetextwidth}{-2\fontetextwidth}%
    \addtolength{\fontetextwidth}{\linewidth}%
    \null\par%
    Fonte:~%
    \parbox[t]{\fontetextwidth}{#1}%
}
%---

% ---
% Define um comando \pboxtab{}{}{} com caption e legenda da largura do 
conteúdo tabular, tabular*, etc
% Parece funcionar com qualque pacote

\newcommand{\pboxtab}[3]{%
    \savebox{\mytabbox}{#1}%
    \settowidth{\mytabboxwidth}{\usebox{\mytabbox}}%
    \centering%
    \parbox{\mytabboxwidth}{%
    #2%
    \par%
    \usebox{\mytabbox}%
    \par%
    #3}%
}

Original comment by sggra...@gmail.com on 17 Aug 2013 at 9:30

GoogleCodeExporter commented 9 years ago
Como usar em um exemplo de tabela
\begin{table}
\pboxtab{%
\begin{tabular}{ccc}
\toprule
 Nome & Nascimento & Documento \\
\midrule \midrule
 Maria da Silva & 11/11/1111 & 111.111.111-11 \\
\bottomrule
\end{tabular}%
}{%
\caption{Um Exemplo de tabela alinhada que pode ser longa ou curta.}%
}{%
\fonte{Material criado pelos autores}}
\end{table}

Original comment by sggra...@gmail.com on 17 Aug 2013 at 9:42

GoogleCodeExporter commented 9 years ago
Modificação nas configurações automáticas para pacote caption ou subfig, 
se carregados:

\AtBeginDocument{%
    \@ifpackageloaded{captionc}{%
        \DeclareCaptionLabelSeparator{barr}{~--~}
        \DeclareCaptionLabelSeparator{fill-newline}{\hfill\null\par}
        \captionsetup{format=hang,
                      justification=justified,
                      singlelinecheck=false,
                      labelseparator=barr}
    }
    {\relax}
}

Original comment by sggra...@gmail.com on 17 Aug 2013 at 10:00

GoogleCodeExporter commented 9 years ago
Silvio

Em geral, prefiro sempre usar os comandos e ambientes já existentes nas 
classes padrões. Por exemplo, o ambiente "citação" é um dos que não gosto, 
porque já existe o "quote" e o "quotationg", por exemplo. Porém, tive que 
reimplementá-lo no abntex2 porque ele já existia no abntex1.

Por isso, precisamos sempre verificar o balanço ideal entre trazer a 
implementação para a classe abntex2.cls e colocar apenas como exemplos nos 
documentos modelos.

No caso do \fonte, o memoir já fornece o comando \legend, que é o comando que 
usamos nos exemplos. Mas, nesse caso, acredito que podemos fornecer o novo 
comando \fonte, uma vez que ele padroniza o texto "Fonte: ". Mas seria 
interessante que ele usasse o \legend do memoir.

O pacote caption também é emulado pelo memoir, então acredito que ele não 
seja necessário. Porém, você está usando o captionc. Por quê?

Entendi o porque de criar um comando próprio para padronizar o formato das 
tabelas conforme o IBGE, que é o caso do \pboxtab. Porém, nesse caso, 
acredito que ele deveria se chamar \ibgetable, por exemplo, o que acha? Mas um 
ponto importante: esse comando funcionaria com longtable,? Isso é muito 
importante, uma vez que longtable é um dos pacotes mais usados.

Estou atribuindo a propriedade desta atividade a você ok? Vamos nos falando.

Abraços!

Original comment by laurocesar on 18 Aug 2013 at 1:32

GoogleCodeExporter commented 9 years ago
Olá Lauro.

Deixe me esclarecer o que fiz: dois comandos e configurações para os captions.
1 - Os comandos \pboxtab e \fonte independem de pacote ou classe e são, por 
assim dizer, feitos com ferramentas nativas do abntex2/memoir. 

2 - O problema com tabelas é que não ENCONTREI nenhuma configuração do 
memoir que fizesse tudo que vai dentro do ambiente table com a mesma largura do 
ambiente tabular. Encontrei algo na rede para fazer isso, mas era a inclusão 
de pacotes: floatrow  ou threetable, mas poderíamos ter problemas de 
compatibilidade. Por isso a criação do comando \pboxtab. 

3 - O comando \fonte é uma proposta a ser analisada, pois o \legend não faz 
recuo a partir da segunda linha, que PARECE ser o comportamento de tabelas do 
IBGE quando se tem "Fonte: blblblbl". Assim o comando \fonte faz o que o 
\legend não faz e, além do mais, notas, comentários e outras informações 
que não são relativas à Fonte ainda são colocadas no \legend.

4 - Aqui tenho que corrigí-lo, pois eu tambem tinha cometido o mesmo equívoco:
  O memoir NÃO EMULA o pacote "caption". O memoir emula o pacote "ccaption", com dois cc mesmo e eles têm comandos distintos para configiração.
  O memoir tem nativamente tratamento para "subfiguras" e não emula o pacote "subfig". Mas o subfig depende do caption.
  O memoir tem internamente comandos para tratar qualquer float que seja interrompido e recomeçado em outra página. É o \contcaption{ text }, que faz mais ou menos o que o longtable faz para tabelas, mas tem de ser feito a mão.
  ERRO MEU: no código acima não era para ter "captionc", e sim "caption", pois muitos usuários carregam o caption ou o subfig (que depende do caption).
  As configurações que indiquei são nativas do memoir, as as que usam \@ifpackageloaded não são, mas são apenas configurações adicionais para o caso do pacote "caption" ser carregado inadvertidamente ou propositalmente.

5 - Não sei se o \pboxtab vai funcionar com o longtable. Acho (não sei) que o 
pacote lontable deve ter algo para tratar caption internamente, pois tudo vai 
na longtable. Temos que verificar isso.

6 - No caso do nome do comando pboxtab tinha pensado em vários:pboxIBGE, 
boxtabIBGE, etc. Pois, usa o \parbox e segue o formato do IBGE. \ibgetable 
restringe a interpretação do usuário para apenas tabelas, mas o comando pode 
ser usado com figuras também. Contudo não lembro se as formatações de 
figuras seguem este mesmo conceito do IBGE para tabelas. Talvez \ibgetab, para 
não confundir table com tabular. ibgetable, IBGEtable, ibgetab ou IBGEtab 
estão bons para mim.

Eu entendi o conceito minimalista do abntex2 em não ficar criando 
comandos/ambientes sem a necessidade e sem a inclusão de pacotes externos ao 
memoir.

Vamos conversando para entrar num consenso.
Obs.: consenso não é acordo. Consenso é quando todos pensam do mesmo jeito, 
sem acordos ou concessões. 

Original comment by sggra...@gmail.com on 18 Aug 2013 at 5:49

GoogleCodeExporter commented 9 years ago
Silvio

Bom dia!

Agora entendi o que você quis fazer. Excelente! Estamos entrando num consenso!

Eu fiz o seguinte: 

1) peguei o exemplo que você havia postado na iteração #2 
(https://code.google.com/p/abntex2/issues/detail?id=78#c2) e o coloquei no 
exemplo abntex2-modelo-trabalho-academico.tex (seção 1.4 Tabelas);

2) compilei o documento e recebi os seguintes erros:

Description Resource    Path    Location    Type
Missing $ inserted. (Occurance: 
/usr/local/texlive/2013/texmf-dist/tex/context/base/supp-pdf.mkii)  abntex2-model
o-trabalho-academico.tex    /abntex2/doc/latex/abntex2  Unknown Texlipse Build Error
Missing $ inserted. \begin{document} (followed by: 
)   abntex2-modelo-trabalho-academico.tex   /abntex2/doc/latex/abntex2  line 
168 Texlipse Build Error
Missing $ inserted. \fonte{Material criado pelos autores}} (followed by: 
)   abntex2-modelo-include-comandos.tex /abntex2/doc/latex/abntex2  line 
145 Texlipse Build Error
Undefined control sequence:  \begin{document} (followed by: 
)   abntex2-modelo-trabalho-academico.tex   /abntex2/doc/latex/abntex2  line 
168 Texlipse Build Error
Undefined control sequence:  \fonte{Material criado pelos autores}} (followed 
by: )   abntex2-modelo-include-comandos.tex /abntex2/doc/latex/abntex2  line 
145 Texlipse Build Error
You can't use `\spacefactor' in internal vertical mode. \fonte{Material criado 
pelos autores}} (followed by: 
)   abntex2-modelo-include-comandos.tex /abntex2/doc/latex/abntex2  line 
145 Texlipse Build Error
You can't use `\spacefactor' in math mode. \fonte{Material criado pelos 
autores}} (followed by: 
)   abntex2-modelo-include-comandos.tex /abntex2/doc/latex/abntex2  line 
145 Texlipse Build Error
You can't use `\spacefactor' in vertical mode. \begin{document} (followed by: 
)   abntex2-modelo-trabalho-academico.tex   /abntex2/doc/latex/abntex2  line 
168 Texlipse Build Error

Percebi que o primeiro erro é devido ao trecho abaixo:

% Para uso com pacotes subfig e caption dentro do memoir se estes forem 
carregados ou não.
% É necessário para que os comandos \IBGEtab e \fonte funcionem 
% independente do carregamento de pacotes externos ao memoir que tratam 
captions.
\AtBeginDocument{%
    \@ifpackageloaded{caption}{%
           \DeclareCaptionLabelSeparator{barr}{~--~}
           \captionsetup{format=hang,
                         labelseparator=barr,
                         labelfont=\ABNTEXfontereduzida,
                         font=\ABNTEXfontereduzida}
           \def\configurecaptions{%
                          \captionsetup{justification=justified,%
                                        singlelinecheck=false}}
           \def\configureseparator{\captionsetup{labelsep=colon}}
           }
           {\def\configurecaptions{\captionstyle[\raggedright]{}}
            \def\configureseparator{\captiondelim{: }}
     }
}

Percebi que os fecha-chaves estão desalinhados. Então, acredito que seja 
algum detalhe bobo...

Uma vez que concluirmos esses ajustes, podemos incluir no manual como usar os 
novos comandos.

Abraços!

Original comment by laurocesar on 19 Aug 2013 at 10:12

GoogleCodeExporter commented 9 years ago
É verdade.

Mas o código no preâmbulo do meu documento funciona.
Só dá problema dentro do código do abntex2.cls.

O que pode ser?

Original comment by sggra...@gmail.com on 19 Aug 2013 at 4:38

GoogleCodeExporter commented 9 years ago
Silvio

Vi seus ajustes. Agora funcionou perfeitamente.

Eu adicionei a documentação dos comandos que você criou ao documento 
abntex2.tex. Está na seção 6.5. Peço gentileza de revisar. Fique à vontade 
em alterar, remover e acrescentar o que quiser. Quando concluir essa revisão, 
você pode fechar esta issue. Se não houver mais nada, gerarei o release 1.8. 
Se quiser aproveitar para fazer mais alguma coisa, por favor me avise que te 
aguardo.

Abraços!

Original comment by laurocesar on 20 Aug 2013 at 11:02

GoogleCodeExporter commented 9 years ago
Olá a todos,

Estava olhando a NORMAS DE APRESENTAÇÃO TABULAR do IBGE e verifiquei que a 
legenda principal (\caption em latex) é apresentada em fonte normal enquanto 
fonte e notas em fonte reduzida. Vi também que as notas são identadas a 
partir da segunda linhas como o comando \fonte faz.

Proponho mudar o tamanho da fonte dos captions no abntex2.cls por padrão e vou 
incluir uma modificação no \fonte para incluir opção de mudar o título ao 
desejo do usuário, ou criar um comando \notas.

Ambos os comandos \fonte e \notas serão dependentes das configurações dos 
captions, mas apenas teriam fonte reduzida como padrão.

Original comment by sggra...@gmail.com on 20 Aug 2013 at 2:30

GoogleCodeExporter commented 9 years ago
As normas são disponibilizadas gratuitamente em 
http://www.ufrgs.br/bibicta/downloads/ibge-normas-de-apresentacao-tabular/view

Original comment by sggra...@gmail.com on 20 Aug 2013 at 3:26

GoogleCodeExporter commented 9 years ago
Silvio

Concordo: "Proponho mudar o tamanho da fonte dos captions no abntex2.cls por 
padrão e vou incluir uma modificação no \fonte para incluir opção de mudar 
o título ao desejo do usuário, ou criar um comando \notas."

Sobre o comando \notas, mande-me, por favor, um parágrafo de documentação 
para que eu coloque no manual abntex2.tez, ou fique à vontade em adicionar 
você mesmo.

Abraços!

Original comment by laurocesar on 20 Aug 2013 at 4:28

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Olá Lauro e a todos.

Que susto me causou não compilar meu modelo de teste. Até que descobri que as 
opções no \IBGEtab foram alteradas. Vi que criou uma outra designação 
\ibgetab. Ok, vamos usar somente um comando, e como \ibgetab é mais fácil ele 
vai ficar.

Ok, entendi  a inversão de argumentos do comando: menor trabalho nas tabelas 
já prontas.

Sobre a documentação:

"O abntex2 dispõe de dois comandos, \fonte e \notas que são úteis na 
citação da fontes do conteúdo dentro de um ambiente float. Eles se comportam 
de forma semelhante ao \legend e \namedlegend da classe memoir. A diferença é 
que eles incluem um título padronizado "Fontes:" e "Notas:", respectivamente. 
Estes comandos só tem uso dentro de ambientes floats, como os ambientes table 
e figure. Por exemplo,
\begin{figure}{H}
   \caption{Exemplo de uma figura simples com fonte e nota abaixo dela.}
   \includegraphics[width=0.8\linewidth]{figura}
   \fonte{Este conteúdo é baseado nos testos de March (2015), sendo uma cópia legítima do original.}
   \notas{Dados são baseados na regressão linear.}
\end{figure}
geram as seguintes frases logo abaixo da figura
    Fonte: Este conteúdo é baseado nos testos de March (2015), sen-
           do uma cópia legítima do original.
    Notas: Dados são baseados na regressão linear.

Os comando \fonte e \notas aceitam um argumento opcional que altera seus 
títulos, respectivametne. Por exemplo,
     \fonte[Origem]{Este conteúdo é baseado nos testos de March (2015), sendo uma cópia legítima do original.}
     \notas[Anotações]{Dados são baseados na regressão linear.}
geram as frases:
    Origem: Este conteúdo é baseado nos testos de March (2015),
            sendo uma cópia legítima do original.
    Anotações: Dados são baseados na regressão linear."

Acho que é bom para um começo quanto à documentação

Original comment by sggra...@gmail.com on 20 Aug 2013 at 11:01

GoogleCodeExporter commented 9 years ago
Nossa! Desculpa! Esqueci de avisar que tinha mudado a ordem. Desculpe-me por 
favor. 

Original comment by laurocesar on 21 Aug 2013 at 1:26

GoogleCodeExporter commented 9 years ago
Sem problemas.

Original comment by sggra...@gmail.com on 23 Aug 2013 at 12:52

GoogleCodeExporter commented 9 years ago
Silvio

Eu havia escrito várias coisas nesta issue, e só agora vi que provavelmente 
não cliquei no botão Save changes. Mas vou tentar recordar:

1) incluí a ideia da sua documentação no arquivo abntex2.tex. Eu tive que 
mudar o texto para manter o "estilo" do restante do documento, que usa recursos 
da classe ltxdoc (como \marg, por exemplo), e que não inclui exemplos de 
resultados, apenas de códigos. Os exemplos de resultados ficam somente nos 
modelos. Veja, por exemplo, o modelo de trabalho acadêmico, no qual exercito 
as macros que criou; t
2) integrei o seu código ao esquema de traduções do abnTeX2, baseado no 
babel. Assim, a string "Fonte", e "Nota" podem ser facilmente traduzidas;
3) eu mudei o nome da macro de \notas para \nota, de modo a padronizar tudo no 
singular. Eu consultei o documento do IBGE (inclusive fiz referência a ele no 
manual) e vi que é possível tanto uma coisa quanto outra. Acredito que por 
isso já tenha criado o parâmetro opcional;

Um último ponto para fecharmos essa issue e podermos lançarmos o release 1.8 
é referente à questão do tamanho da fonte nos captions. Você disse que a 
norma do IBGE diz que o tamanho dos captions devem ser o mesmo do texto, mas a 
norma da ABNT NBR 14724:2011 diz que eles devem ser de tamanhos reduzidos e 
uniformes. Daí, destacamos que se trata de mais uma confusão das normas da 
ABNT, mas acredito que o ideal seria usarmos o texto mais recente. Ou seja, no 
caso, o ideal seria manter o tamanho reduzido nos captions das tabelas e 
imagens. O que acha?

Original comment by laurocesar on 23 Aug 2013 at 1:28

GoogleCodeExporter commented 9 years ago
Caro Silvio

Acredito que você tenha razão: a ABNT NBR 14724:2011 diz que legendas e notas 
de tabelas e figuras devem ser escritas em tamanho menor e uniforme. Porém, na 
seção referente às tabelas, ela não cita "legenda" ou "nota", e sim "nome 
da tabela". Desse modo, pelo visto, não há mesmo inconsistência entre a 
norma ABNT e a norma do IBGE: os nomes das tabelas e das figuras devem ser no 
mesmo tamanho da fonte do documento!

Isso realmente é ponto interessante de se observar, porque acredito que a 
esmagadora maioria dos que têm coragem de tentar entender o que essas normas 
abordam interpretam que o tamanho do nome da tabela deva também ser reduzido. 
E, de fato, isso é o que vemos na maioria dos trabalho.

Porém, que fique isto registrado: títulos das tabelas e figuras são no mesmo 
tamanho das fontes do texto! 

Portanto, mantemos exatamente como você havia proposto. Vou fechar esta issue.

Abraços!

Original comment by laurocesar on 25 Aug 2013 at 1:40

GoogleCodeExporter commented 9 years ago
Como botar o título da tabela de acordo com as normas afinal? Fiz o que estava 
escrito no começo, mas deu um monte de erro.

Original comment by npsnata...@gmail.com on 13 Sep 2013 at 2:31

GoogleCodeExporter commented 9 years ago
Olá npsnatalia

Observe que as funcionalidades descritas nesta issue foram disponibilizadas no 
abnTeX2 versão 1.8. Observe se está usando a versão correta.

Além disso, há exemplo de como usar as novas macros nos modelos de 
documentos, bem como no manual abntex2cite.pdf

Original comment by laurocesar on 13 Sep 2013 at 5:02