Uppercase em section na TOC da classe Memoir abntex2.cls (Dúvida sobre como deixar a "Section" em letras maiúsculas no Sumário)

483 views
Skip to first unread message

Rafael Holanda

unread,
Jun 1, 2014, 8:23:18 AM6/1/14
to abn...@googlegroups.com
Saudações

Depois de muita pesquisa e de ler manuais do abntex2 e do memoir (classe na qual o abntex2 se baseou) estou postando minha dúvida na esperança que alguém possa me ajudar.

Estou tentando configurar um sty personalizado para a minha faculdade (UFERSA) com base no manual de padronização de TCC's de lá. Estava indo tudo muito bem até que me deparei com um pequeno problema para o qual não encontrei solução em nenhum lugar que pesquisei (dois dias de pesquisa intensiva).

A questão é que na minha faculdade existe uma peculiaridade muito interessante no Sumário. 

Os capítulos devem ser em "Caixa Alta" e Negrito; 1 CAPÍTULO
A seções devem aparecer em "Caixa Alta" (Uppercase ou Maiúsculas); 1.1 SEÇÃO
As subseções devem ser em Negrito; 1.1.1 Subseção
As subsubseções devem ser normais; 1.1.1.1 Subsubseção
As subsubsubseções devem ser Negrito, Itálico; 1.1.1.1.1 Subsubsubseção

(Eu sei que é estranho mas... fazer o que né...)

Para todos os casos acima eu consegui deixar conforme a norma na faculdade, exeto para a seção. Deixe eu mostrar porque:

Como o abntex2 utiliza o pacote "hyperref" então não é possível fazer um:

\renewcomand{\cftsectionfont}{\MakeTextUppercase}

pois isso irá gerar um erro (conforme manual do Memoir pág 158)

   Without hyperref one can simply end the \cftKfont with say \MakeTextUppercase
and the K-type entry will be upper cased.
   With hyperref the possibilities are limited. Explanation: The upper/lower casing
macros are not that robust, and need the content to be simple.7 When hyperref is used,
the hyperlink is wrapped around the entry before \cftKfont gains access to it, and is
thus generally too complicated for, say, \MakeTextUppercase to handle.

e como section não possui o placeholder f@rtoc também não é possível fazer:

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

pois no comando settocpreporcessor{type}{code}, o type pode ser "chapter", "part" ou "book" e não "section".

No manual do memoir fala, numa nota de rodapé, que se for necessário colocar uppercase em outros níveis do sumário além de chapter, part e book, o mantenedor da classe memoir deve ser contactado. (kkkkkkk)

Existe alguma forma de forçar um UpperCase na seção do sumário?

Bem, vou continuar a padronização sem esse detalhe, se alguém tiver alguma solução favor me avisar.

Desde já agradeço

Youssef Cherem

unread,
Jun 1, 2014, 8:51:28 AM6/1/14
to abn...@googlegroups.com
No caso de um limite estranho como esse, e de incompatibilidade entre o hyperref e memoir, acho que o melhor a fazer é realmente fazer "à mão" o uppercase: "\section{SEÇÃO...}"...

Se o uppercase for somente no sumário, você pode fazer: \section[SEÇÃO DO SUMÁRIO]{Seção no texto}

Fazendo um exemplo para o usuário ficará claro.





--
abnTeX2 - http://abntex2.googlecode.com/
---
Você recebeu essa mensagem porque está inscrito no grupo quot;abnTeX2" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para abntex2+u...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para abn...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/abntex2/915f0ab9-cc75-43ae-b31f-00787db9e018%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Lauro César

unread,
Jun 1, 2014, 8:51:48 AM6/1/14
to abn...@googlegroups.com
​Rafael

Parabéns por sua pesquisa! 

Uma solução paliativa que você pode adotar é usar versalete (small caps). Isso não é exatamente caixa alta, mas é algo similar. Ao menos deixa claro que você observou o detalhe da formatação da seção. Nesse caso, você usaria assim (não testei):


\renewcomand{\cftsectionfont}{\scshape}

Infelizmente não tenho outras alternativas para você. Caso versalete não seja adequado, acredito que você terá que deixar essa pendência registrada. Talvez contatar o mantenedor do memoir seja uma boa opção. Sempre que precisei falar com os criadores de alguma classe, eles me atenderam prontamente. Não creio que seja diferente com o memoir. Mas talvez demore um pouco...

Quando a customização estiver pronta, avise-nos para que a adicionemos aqui:


Abraços!

Lauro Cèsar


2014-06-01 9:23 GMT-03:00 Rafael Holanda <rafaelho...@gmail.com>:

--

Rafael Holanda

unread,
Jun 1, 2014, 9:13:01 AM6/1/14
to abn...@googlegroups.com
Muito Obrigado ao Youssef Cherem e ao Lauro César pela resposta incrivelmente rápida (nem deu tempo terminar de tomar o cafezinho... ehhehehehe)

Ambas as soluções foram testadas e funcionaram muito bem.

Como se trata de um sty vou preferir o \scshape (Small Caps) para não onerar o usuário com o detalhe de escrever o título do sumário e o título da seção.
Não ficou exatamente Uppercase mas duvido muito que notem a diferença.

de qualquer forma entrei em contato com o suporte do memoir (estou aguardando resposta)

qualquer novidade eu postarei no grupo

mais uma vez muito obrigado!!!

Rafael Holanda

unread,
Jun 1, 2014, 2:31:06 PM6/1/14
to abn...@googlegroups.com
Bem, o mantenedor da classe memoir, Lars Madsenrespondeu. Perguntei se era possível atribuir o placeholder f@rtoc para o tipo "section". Ele respondeu que não, porque as seções são feitas utilizando uma construção diferente e precisariam ser reescritas.

Perguntei também se existia alguma maneira de tornar a section em Uppercase. Ele responteu que não tem certeza mas que talvez a o pacote etoc possa ajudar.

Alguém já utilizou o pacote? sabe se isso é possível? desde já agradeço.


Guilherme dos Santos

unread,
Nov 15, 2015, 11:01:27 AM11/15/15
to abnTeX2
Olá pessoal,

Não sei como está a manutenção desses tópicos e qual o interesse nessa solução mas eu estava com exatamente o mesmo problema do Rafael Holanda, e enlouquecendo procurando muito por uma solução, esbarrando aqui com esse não do Lars Madsen me deixou um pouco descrente mas eu continuei minha pesquisa e encontrei essa solução funcionando com o hyperref no grande TeX StackExchange, eu achava que funcionava somente para a classe article mas aparentemente não. Basta implementar o código abaixo no preâmbulo que as seções na ToC serão tipografadas em caixa alta.

\makeatletter
\let\oldcontentsline\contentsline
\def\contentsline#1#2{%
\expandafter\ifx\csname l@#1\endcsname\l@section
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{%
\oldcontentsline{#1}{\MakeTextUppercase{#2}}%
}{%
\oldcontentsline{#1}{#2}%
}%
}
\makeatother

Obrigado Lauro, pela classe abntex2, foi muito útil para mim agora no final da faculdade.

Abraços.
Reply all
Reply to author
Forward
0 new messages