AfonsoPortuga / abntex2

Automatically exported from code.google.com/p/abntex2
1 stars 0 forks source link

Criar modelo de sumário conforme recomendação da ABNT NBR 6027:2012 #44

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What is the task?
Uma nova versão norma ABNT NBR 6027 (Informação e documentação — 
Sumário — Apresentação) foi publicada em 11/12/2012 com vigência a partir 
de 11/01/2013.
É necessário conhecer a norma e verificar se é necessário atualizar algo no 
abnTeX2.

What is the final product?
Modelos de exemplo e classe abntex2.cls atualizada, se for necessário.

Where should it be put?
No repositório do projeto.

Additional information:
Catálogo da ABNT com informações sobre a norma: 
http://www.abntcatalogo.com.br/norma.aspx?ID=193721

Original issue reported on code.google.com by laurocesar on 18 Mar 2013 at 12:01

GoogleCodeExporter commented 9 years ago
Link para a discussão no grupo de desenvolvedores: 
https://groups.google.com/d/msg/abntex2/VK-aR4tmt1c/QALdhJx7lAYJ

Original comment by laurocesar on 18 Mar 2013 at 12:04

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Conteúdo do exemplo de Sumário da norma 6027:2012.

Original comment by laurocesar on 20 Mar 2013 at 1:40

Attachments:

GoogleCodeExporter commented 9 years ago
Conforme discussão no grupo de desenvolvedores, ficou decidido que o modelo de 
sumário atual está em conformidade com a nova ABNT NBR 6027:2012. 

De todo modo, esta issue ainda fica em aberta como sugestão para que alguém 
proponha um modelo mais elegante de sumário para o abnTeX2.

Original comment by laurocesar on 21 Mar 2013 at 11:26

GoogleCodeExporter commented 9 years ago
Código que ajusta o indicativo de seção pelo indicativo mais extenso e 
remove a indentação dos elementos:

% ajusta o sumario conforme as regras da ABNT NBR 6027:2012
\setlength\cftpartnumwidth{\cftparagraphnumwidth}
\setlength\cftchapternumwidth{\cftparagraphnumwidth}
\setlength\cftsectionnumwidth{\cftparagraphnumwidth}
\setlength\cftsubsectionnumwidth{\cftparagraphnumwidth}
\setlength\cftsubsubsectionnumwidth{\cftparagraphnumwidth}
\setlength\cftsectionindent{0pt}
\setlength\cftsubsectionindent{0pt}
\setlength\cftsubsubsectionindent{0pt}
\renewcommand*{\cftsectionfont}{\bfseries}

É necessário:

1) Ajustar as seções sem indicativo de seção (elementos não numerados 
criados com \chapter* ou \section*, por exemplo), para que o texto se inicie na 
mesma posição dos elementos com indicativo de seção;
2) Ajustar os apêndices e anexos para que o texto "Anexo A" faça parte do 
nome do elemento, e não do indicativo da seção, conforme exemplo da norma.

Original comment by laurocesar on 21 Mar 2013 at 11:31

GoogleCodeExporter commented 9 years ago
Ajusta a prioriridade.

Original comment by laurocesar on 21 Mar 2013 at 12:55

GoogleCodeExporter commented 9 years ago

Original comment by laurocesar on 21 Mar 2013 at 9:50

GoogleCodeExporter commented 9 years ago
Quanto a geração do sumário, estou enfrentando problemas na justificação 
dos títulos, seções,etc, os quais estão passando da borda direita da 
página quando são longos. Existe algum meio de corrigir este problema, como 
realizar a hifenação das palavras ou quebras de linhas?

Original comment by eduxb...@gmail.com on 17 Jun 2013 at 2:50

GoogleCodeExporter commented 9 years ago
Acabei de fazer um teste e os títulos nunca ultrapassam a borda direita. Se 
uma ou outra palavra não estiver hifenizando, hifenize-a manualmente com \- 
etc.
Se você não gostar de um sumário graduado, utilize o código de #5 acima (ou 
então o pacote tocstyle).

Original comment by yche...@gmail.com on 17 Jun 2013 at 9:45

GoogleCodeExporter commented 9 years ago
Olá tenho uma "workaround" para se fazer a identação nos trechos que são 
necessários.

Por exemplo, as "Referências" estão desalinhadas, e para isso é só colocar 
no texto
\postextual
\addtocontents{toc}{\cftsetindents{chapter}{3.9em}{3.9em}}%
\bibliographystyle{abntex2-alf}

Não me recordo de onde retirei isso e pode ter sido até do forum de usuários 
mesmo.

Outra coisa. O problema que o eduxbass enfrenta pode ser do hyperref (que por 
sinal nos dá um baile em muita coisa) e pode ser resolvido com a opção 
breaklinks=true nas configurações dele.

Original comment by sggra...@gmail.com on 15 Aug 2013 at 1:34

GoogleCodeExporter commented 9 years ago
Uma opção para elementos prétextuais não numerados (se alguém usar), 
textuais (numerados, os não numerados falham) e póstextuais (não numerados, 
é claros)

\addtodef{\pretextual}{\addtocontents{toc}{\cftsetindents{chapter}{\cftparagraph
numwidth}{\cftparagraphnumwidth}}}{\null}
\addtodef{\textual}{\addtocontents{toc}{\cftsetindents{chapter}{0em}{\cftparagra
phnumwidth}}}{\null}
\addtodef{\postextual}{\addtocontents{toc}{\cftsetindents{chapter}{\cftparagraph
numwidth}{\cftparagraphnumwidth}}}{}

Original comment by sggra...@gmail.com on 2 Sep 2013 at 7:33

GoogleCodeExporter commented 9 years ago
Há uma forma mais robusta, porém necessita do pacote etoc que já está 
disponível no TeXLive 2013.

Seria o código a seguir (cuidado com o \makeatletter e \makeatother)

%% re-styling the TOC with etoc:
\usepackage{etoc}

% \makeatletter  % necessário dependendo do caso
\let\old@chapter\l@chapter
\let\old@chapternumberline\chapternumberline
\etocsetstyle{chapter}{}{}
     {\old@chapter{\old@chapternumberline{\etocnumber}%
                       \etoclink{\ABNTEXchapterupperifneeded\etocthename}}{\etocpage}}{}%
\let\old@section\l@section
\etocsetstyle{section}{}{}
     {\old@section{\numberline{\etocnumber}\etoclink{\ABNTEXsectionupperifneeded\etocthename}}{\etocpage}}{}%
\let\old@subsection\l@subsection
\etocsetstyle{subsection}{}{}
     {\old@subsection{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
\let\old@subsubsection\l@subsubsection
\etocsetstyle{subsubsection}{}{}
     {\old@subsubsection{\numberline{\etocnumber}{\etocname}}{\etocpage}}{}%
\let\old@paragraph\l@paragraph
\etocsetstyle{paragraph}{}{}
     {\old@paragraph{\numberline{\etocnumber}{\etocname}}{\etocpage}}{}%
     \let\old@paragraph\l@paragraph
\etocsetstyle{subparagraph}{}{}
     {\old@subparagraph{\numberline{\etocnumber}{\etocname}}{\etocpage}}{}%

% \makeatother  % necessário dependendo do caso

Original comment by sggra...@gmail.com on 2 Sep 2013 at 7:42

GoogleCodeExporter commented 9 years ago
Esqueci de comentar que as soluções #11 ou #12 devem ser combinadas com a 
solução #5 para se ter o efeito desejado.

Original comment by sggra...@gmail.com on 2 Sep 2013 at 7:45

GoogleCodeExporter commented 9 years ago
Silvio

Nós já temos o conjunto completo da solução desta issue? Podemos incorporar 
o código à próxima versão?

Abraços!

Original comment by laurocesar on 29 Sep 2013 at 11:11

GoogleCodeExporter commented 9 years ago
Soluções eu não tenho certeza, mas contornos sim.

O que tenho usado é o seguinte:

% % Adição de definição à macro \postextual e \textual

\newcommand{\feisindent}{\cftsubsubsectionnumwidth}

\addtodef{\pretextual}{\addtocontents{toc}{\cftsetindents{chapter}{\feisindent}{
\feisindent}}}{}
\addtodef{\textual}{\addtocontents{toc}{\cftsetindents{chapter}{0em}{\feisindent
}}}{}
\addtodef{\postextual}{\addtocontents{toc}{\cftsetindents{chapter}{\feisindent}{
\feisindent}}}{}

\cftinsertcode{A}{\renewcommand{\cftchapteraftersnum}{ -- }}

\addtodef{\apendices}{%
\addtocontents{toc}{\cftsetindents{chapter}{\feisindent}{2em}}%
\cftinserthook{toc}{A}}{}

\addtodef{\anexos}{%
\addtocontents{toc}{\cftsetindents{chapter}{\feisindent}{2em}}%
\cftinserthook{toc}{A}}{}

Estas últimas adições nos apêndices e anexos são pra adicionar o "--" 
somente neles e não em todos os capítulos.

Mas realmente não sei se vai dar algum problema no futuro com estas 
alterações dos comandos \pretextual, \textual e \postextual

Original comment by sggra...@gmail.com on 30 Sep 2013 at 12:28

GoogleCodeExporter commented 9 years ago
Silvio

Testei a combinação das soluções:
  #5+#11
  #5+#12
  #15
  #5+#15

E infelizmente ainda não temos um sumário como o exemplo da #3. Acho que 
vamos ter continuar deixando essa issue aberta para que o futuro nos ajude a 
resolvê-la...

Abraços!

Original comment by laurocesar on 30 Sep 2013 at 10:15

GoogleCodeExporter commented 9 years ago
O que dá errado em cada uma das combinações?

Original comment by sggra...@gmail.com on 30 Sep 2013 at 3:36

GoogleCodeExporter commented 9 years ago
Não tem uma coisa específica que está errada. Elas simplesmente não ficam 
conforme a imagem na iteração #3. Compare para você ver.

Original comment by laurocesar on 30 Sep 2013 at 4:30

GoogleCodeExporter commented 9 years ago
Lauro, esqueci de avisar que eu mudei para adaptação para teste de 
\cftparagraphnumwidth para  cftsubsubsectionnumwidth

Assim a macro correspondente dessa issue seria 
\newcommand{\feisindent}{\cftparagraphnumwidth}

Seria isso o problema?

Original comment by sggra...@gmail.com on 30 Sep 2013 at 5:00

GoogleCodeExporter commented 9 years ago
O meu código usa \cftsetindents{}{}{}:

% \newcommand{\feisindent}{\cftparagraphnumwidth}
\newcommand{\feisindent}{\cftsubsubsectionnumwidth}

\cftsetindents{part}{0em}{\feisindent}
\cftsetindents{chapter}{0em}{\feisindent}
\cftsetindents{section}{0em}{\feisindent}
\cftsetindents{subsection}{0em}{\feisindent}
\cftsetindents{subsubsection}{0em}{\feisindent}
\cftsetindents{paragraph}{0em}{\feisindent}
\cftsetindents{subparagraph}{0em}{\feisindent}

% % Adição de definição à macro \postextual e \textual
\addtodef{\pretextual}{\addtocontents{toc}{\cftsetindents{chapter}{\feisindent}{
\feisindent}}}{}
\addtodef{\textual}{\addtocontents{toc}{\cftsetindents{chapter}{0em}{\feisindent
}}}{}
\addtodef{\postextual}{\addtocontents{toc}{\cftsetindents{chapter}{\feisindent}{
\feisindent}}}{}

\cftinsertcode{A}{\renewcommand{\cftchapteraftersnum}{ -- }}

\addtodef{\apendices}{%
\addtocontents{toc}{\cftsetindents{chapter}{\feisindent}{2em}}%
\cftinserthook{toc}{A}}{}

\addtodef{\anexos}{%
\addtocontents{toc}{\cftsetindents{chapter}{\feisindent}{2em}}%
\cftinserthook{toc}{A}}{}

Original comment by sggra...@gmail.com on 30 Sep 2013 at 5:08

GoogleCodeExporter commented 9 years ago
Olá Lauro, a solução que encontrei foi modificar o abntex2.cls.

Por favor veja em anexo as modificações: procure por \cftlastnumwidth

Testei com o abtex2-modelo-trabalho-academico.tex que tem seu PDF em anexo.

Até mais.

Original comment by sggra...@gmail.com on 30 Sep 2013 at 10:40

Attachments:

GoogleCodeExporter commented 9 years ago
CARACA! Agora tirei o chapéu para você Sílvio! Parabéns!

Acho que para fechar com chave de ouro e atender até o último detalhe, seria 
achar um jeito de tornar os títulos dos capítulos caixa alta. Se bem que não 
sei se isso é necessário, uma vez que o usuário pode usar o segundo 
parâmetro dos comandos de seções para isso: \section{Título do 
texto}{TÍTULO DO SUMÁRIO}{Título do cabeçalho}

Acredito que podemos criar uma opção na classe para alternar entre os estilos 
de sumário. Talvez algo como 

\documentclass[sumario-tradicional]{abntex2}: Sumário tradicional do 
LaTeX/Memoir)
\documentclass[sumario-abnt-6027-2012]{abntex2}: Novo sumário

A opção sumario-abnt-6027-2012 seria a opção padrão, acredito.

O que acha?

Original comment by laurocesar on 30 Sep 2013 at 10:52

GoogleCodeExporter commented 9 years ago
Eu concordo, pois as modificações que incorporei engessam a diagramação do 
sumário.

Original comment by sggra...@gmail.com on 1 Oct 2013 at 12:04

GoogleCodeExporter commented 9 years ago
from:    Ricardo Carlini Sperandio <rcarlini@gmail.com>
reply-to:    abntex2@googlegroups.com
to:  abntex2@googlegroups.com
date:    Wed, Oct 2, 2013 at 10:37 AM

Moçada,
  estou meio boiando com relação a essa modificação.
Mas se pelo que entendi é deixar o título dos capitulos em caixa ALTA no 
sumário eu já havia implementado isso aqui na pucminas.sty:

% Modifica a formatacao dos textos

% Secao Primaria (Chapter): Caixa alta, Negrito, tamanho 12
\makeatletter
\settocpreprocessor{chapter}{%
  \let\tempf@rtoc\f@rtoc%
  \def\f@rtoc{%
  \texorpdfstring{\bfseries\MakeTextUppercase{\tempf@rtoc}}{\tempf@rtoc}}%
}
\makeatother

No caso precisa modificar apenas o \bfseries para pegar o valor da variavel no 
abntex.

Att

from:    Lauro César <laurocesar@gmail.com>
to:  "abntex2@googlegroups.com" <abntex2@googlegroups.com>
date:    Wed, Oct 2, 2013 at 11:19 AM

Ricardo

Obrigado pela sugestão, mas acredito que tenha uma solução mais "light" com 
memoir puro, não?

Abraços!

from:    Ricardo Carlini Sperandio <rcarlini@gmail.com>
to:  abntex2@googlegroups.com
date:    Wed, Oct 2, 2013 at 11:56 AM

Lauro,
  essa dica é usando o memoir, peguei no manual deles:
comando  \settocpreprocessor na página 158 (cap 9)

\subsubsection{About upper og lower casing TOC entries}
\label{sec:about-upper-og}

Some designs call for upper (or lower casing) TOC entries. This
\emph{is} possible but the solution depends on whether the
\Lpack{hyperref} package is used or not.

Without \Lpack{hyperref} one can simply end the \cs{cftKfont} with say
\cs{MakeTextUppercase} and the \texttt{K}-type entry will be upper cased.

With \Lpack{hyperref} the possibilities are limited. Explanation: The
upper/lower casing macros are not that robust, and need the content to
be simple.\footnote{For some definition of simple.} When
\Lpack{hyperref} is used, the hyperlink is wrapped around the entry
before \cs{cftKfont} gains access to it, and is thus generally too
complicated for, say, \cs{MakeTextUppercase} to handle. The follow
workaround draw inspiration from
\url{http://tex.stackexchange.com/q/11892/3929}.
\begin{syntax}
  \cmd{\settocpreprocessor}\marg{type}\marg{code}
\end{syntax}
\glossary(settocpreprocessor)%
  {\cs{settocpreprocessor}\marg{type}\marg{code}}
  {Provide a method for preprocessing certain TOC entries before they
    are written to the \texttt{.toc} file.}
Here \meta{type} is one of \texttt{chapter}, \texttt{part} or
\texttt{book}.\footnote{If needed we will attempt to add a similar
  feature to the rest of the sectional types, please write the
  maintainer.} And \meta{code} can be something like this example:

\makeatletter
\settocpreprocessor{chapter}{%
  \let\tempf@rtoc\f@rtoc%
  \def\f@rtoc{%
    \texorpdfstring{\MakeTextUppercase{\tempf@rtoc}}{\tempf@rtoc}}%
}
\makeatother

Where \cs{f@rtoc} is a placeholder inside \cmd{\chapter}, \cmd{\part}
and \cmd{\book}, holding the material to be written to the actual TOC
file before \Lpack{hyperref} accesses it. This way the upper casing is
sneaked into the TOC file, and the bookmark part of \Lpack{hyperref}
will not complain about the \cmd{\MakeTextUppercase} in the data. Of
course, you will not have upper cased titles in the bookmark list.

from:    Lauro César <laurocesar@gmail.com>
to:  "abntex2@googlegroups.com" <abntex2@googlegroups.com>
date:    Wed, Oct 2, 2013 at 1:27 PM

Hum... legal. Então, é só ver se o seu código funciona com o código do 
sggranja, que contém os demais ajustes.

Se funcionar, então está pronto! Podemos incorporar a customização do 
glossário à classe abntex2.cls. Imagino que devemos criar uma nova opção:

option: sumario-tradicional (código atual, que inclui o que você acabou de 
atualizar)

option: sumario-abnt-6027-2012 (default) (novo código do sggranja, combinado 
com a sua alteração da issue 89 e também com o código que enviou que torna 
os títulos dos capítulos em letras maiúsculas somente no sumário).

Você poderia testar essa última combinação?

Com isso, podemos fechar a issue!

Abraços!

Original comment by laurocesar on 2 Oct 2013 at 4:36

GoogleCodeExporter commented 9 years ago

Original comment by laurocesar on 2 Oct 2013 at 4:37

GoogleCodeExporter commented 9 years ago

Original comment by laurocesar on 11 Oct 2013 at 10:41

GoogleCodeExporter commented 9 years ago

Original comment by laurocesar on 11 Oct 2013 at 10:42

GoogleCodeExporter commented 9 years ago
Excelente Silvio! Já vi seu commit. Ficou excelente!

Aproveitei e já escrevi a documentação das novas oções.

Agradeço a todos que colaboraram que essa longa empreitada. Foram 7 meses de 
discussões! 

Agora fechamos esta issue. Se for o caso, criamos novas issues com detalhes 
adicionais que eventualmente queiramos incorporar.

Original comment by laurocesar on 12 Oct 2013 at 2:01

GoogleCodeExporter commented 9 years ago
Olá Lauro,

Acho que podemos abrir uma nova issue relativa ao código que o  Ricardo 
Carlini Sperandio propôs sobre caixa alta (uso da macro \MakeTextUppercase) no 
sumário.

Deve ter um teste para verificar se a versão do memoir é a que tem 
\MakeTextUppercase nativa ou não e suprimir (ou não) o carregamento do pacote 
textcase (menos um pacote a ser carregado).

Outra coisa, quando da inclusão do quinto nível de secionamento devemos mudar 
o \cftlastnumwidth para \cftparagraphnumwidt, pois está ajustado para 
\cftsubsubsectionnumwidth.

Forte abraço.

Original comment by sggra...@gmail.com on 12 Oct 2013 at 7:25

GoogleCodeExporter commented 9 years ago
Feito!

Original comment by laurocesar on 12 Oct 2013 at 8:52

GoogleCodeExporter commented 9 years ago
Sílvio

Precisei fazer algumas alterações no código do sumário 6027. Ele não 
estava como padrão, e quando o marcava como tal, verifiquei que havia um 
pequeno erro de lógica entre o tradicional e o 6027. Fiz os ajustes.

Peço gentileza de verificar se está tudo correto.

Obrigado!

Original comment by laurocesar on 26 Oct 2013 at 8:52