abntex2
abntex2 copied to clipboard
Comando \autoref referente Anexos retorna "Apêndice"
Ao usar o comando \autoref retorna sempre como Apêndice XXX e não como Anexo
xxx.
Teste realizado no modelo canônico.
Original issue reported on code.google.com by [email protected] on 14 Aug 2013 at 9:06
Original comment by laurocesar on 14 Aug 2013 at 9:21
- Added labels: Type-Defect, Milestone-Release2.0, OpSys-All, Component-Logic
- Removed labels: Type-Task
Tentei as soluções seguintes e não deu certo
http://tex.stackexchange.com/questions/137432/whats-the-difference-between-ref-a
nd-autoref
http://linorg.usp.br/CTAN/macros/latex/contrib/hyperref/doc/manual.html
Example for a redefinition if babel is used:
.....
\newcommand{\PRIVATEapendiceconfig}[2]{%
\setboolean{abntex@apendiceousecao}{true}%
\renewcommand{\appendixname}{#1}
comando passou aqui #1
\addto\extrasbrazil{%
\def\appendixnameautorefname{#1} %%%%%%% wfs teste ... depois apagar comentário
}
\ifthenelse{\boolean{ABNTEXsumario-abnt-6027-2012}}{
\renewcommand{\appendixtocname}{\uppercase{#2}}
}{%
\renewcommand{\appendixtocname}{#2}}
\renewcommand{\appendixpagename}{#2}
\switchchapname{#1}% Corrected from \switchapname -> \switchchapname
\renewcommand*{\cftappendixname}{#1 \space}
}
Coloquei este comando no \PRIVATEapendiceconfig do abntex2
Se alguem tiver sugestões...
Olhei o manual do memoir e do hyperref mas não falo inglês...
Original comment by [email protected] on 4 Jul 2014 at 6:48
Esta questão realmente é problemática. Vamos ter que continuar pesquisando.
Eu também não encontrei uma solução até agora...
Original comment by laurocesar on 6 Jul 2014 at 11:26
- Changed state: Accepted
Se colocar a partir da linha 293 do abntex2:
\addto\captionsbrazil{% portugues-brasil
%% ajusta nomes padroes do babel
\renewcommand{\bibname}{Refer\^encias}
\renewcommand{\indexname}{\'Indice}
\renewcommand{\listfigurename}{Lista de ilustra\c{c}\~{o}es}
\renewcommand{\listtablename}{Lista de tabelas}
%% ajusta nomes usados com a macro \autoref
\renewcommand{\pageautorefname}{p\'agina}
\renewcommand{\sectionautorefname}{se{\c c}\~ao}
\renewcommand{\subsectionautorefname}{subse{\c c}\~ao}
\renewcommand{\subsubsectionautorefname}{subse{\c c}\~ao}
\renewcommand{\paragraphautorefname}{subse{\c c}\~ao}
\renewcommand{\appendixautorefname}{Anexo} %%%% ===> aqui o teste
}
Tudo passa a ser "Anexo"
Logo o hyperref está de fato usando o babel e procurando pelo nome da parte
seguida de "autorefname".
Noutro giro para o memoir tudo é appendix..... logo não adiantaria usar
\renewcommand{\enclautorefname}{Anexo}, aliás aqui deu erro ao tentar.
Teria que fazer a renomeação dentro do comando na linha 997 que é onde o
abntex2 faz a mudança de nomes usando o memoir, salvo engano.
\newcommand{\PRIVATEapendiceconfig}[2]{%
mas dá erro...
os comandos do hyperref são protegidos. seria preciso, creio, usar o
\makeatletter e \makeatother mas não sei se têm jeito... ou se têm outro
jeito.
Lauro, vá registrando aqui o que você tentar.
Vamos pensando juntos.
t+
Wagner F Silva
Original comment by [email protected] on 6 Jul 2014 at 6:43
Combinado Wagner!
Original comment by laurocesar on 6 Jul 2014 at 7:32
De fato, é preciso investigar mais a parte de apêndices do memoir, porque o
problema que cheguei foi exatamente o que você disse: para o memoir, tudo é
appendix. Tanto é que a solução atual do abntex2.cls para manter Apêndice
para Anexo num mesmo documento é um "gato" dos mais pintados, porque ele muda
o nome durante a expansão das macros. Como essa mudança é "forçada", ela
não é reconhecida pelo hyppref. No caso, isso é feito aqui:
% ---
% Definicoes compartilhadas entre Apendices e Anexos
% ---
\makeatletter
\newcommand\@switch[1]{ \@writefile{toc}{\renewcommand*{\cftappendixname}{#1
\space}} }
\newcommand{\switchchapname}[1]{ \protected@write \@auxout
{}{\string\@switch{#1} }}
\makeatother
Acredito que o próximo passo é olhar no manual da hyperref e verificar como
definir os nomes do \autoref da forma como precisamos, ou mesmo continuar a
investigar no manual do memoir uma forma mais elegante de ter apêndices e
anexos num mesmo documento.
Por fim, se não acharmos nada, poderíamos até enviar um e-mail ao criador do
memoir.
Abraços!
Original comment by laurocesar on 6 Jul 2014 at 7:38
Wagner,
Por acaso você conseguiu algum resultado nesta questão dos nomes dos
apêndices?
Original comment by laurocesar on 6 Jan 2015 at 10:06
Até que se obtenha solução definitiva, é possível usar esse workaround:
\newcommand{\refanexo}[1]{\hyperref[#1]{Anexo~\ref{#1}}}
\refanexo{anexo_xxx}
Original comment by laurocesar on 18 Jan 2015 at 1:12
Bom dia.
Refiz o teste e aqui funcionou.
Estou usando kubuntu 14.10
Creio que era realmente uma falha do hyperref que já foi corrigida pelos desenvolvedores.
Se mais alguém puder testar...
Bom dia.
Referente a este bug, já conseguiram a solução ou tem alguma alternativa para contorna-lo?
Att.
A solução definitiva ainda não, mas o contorno já está disponível nesta thread desde 14 de março. Veja acima.
Correção: o contorno eu apliquei e funciona. A única coisa que tenho de entender é o descrito:
Quando faço o \autoref do "apendice A", ele retorna "apendice 6". O mesmo acontece com o anexo A, retornando "apendice 6". Já se eu chamo o apendice D (no meu caso o último incluído), ele retorna "apendice C".
Vou entrar de gaiato na conversa... Não sei se o que vou falar se aplica ao caso em questão, mas verifiquei na documentação do pacote "appendix" que existe um conhecido problema dele com o comando \include.
No meu caso, bastou incluir o comando \anexos no arquivo do primeiro anexo (antes de \chapter, obviamente). Dessa forma ao incluir o primeiro anexo com \include{Anexo1} tudo funcionou: o nome e a numeração do anexo no sumário, no texto e no bookmark do pdf.
Também funcionou com o \anexos seguido de um \input{Anexo1}.
That's all folks!
Até que se obtenha solução definitiva, é possível usar esse workaround: \newcommand{\refanexo}[1]{\hyperref[#1]{Anexo~\ref{#1}}} \refanexo{anexo_xxx}Original comment by
laurocesaron 18 Jan 2015 at 1:12
Assim como eu, acredito que muitas pessoas podem ter problemas ao tentar reproduzir esse workaround devido à ignorância no mundo LaTeX :)
Portanto, deixo aqui umas dicas para quem quiser testá-lo:
- A declaração do capítulo anexo permanece inalterada:
% Primeiro anexo---------------------------------------------------------------
\chapter{Parecer do Comitê de Ética}
\label{chap:comite}
% Conteúdo
% [...]
- A referência deve ser chamada utilizando-se o
\refanexoao invés do\autoref:
O parecer do comitê de ética é exibido no \refanexo{chap:comite}.
% Era: O parecer do comitê de ética é exibido no \autoref{chap:comite}.
- O comando
\newcommand{\refanexo}[1]{\hyperref[#1]{Anexo~\ref{#1}}}deve ser "lido" pelo compilador antes do comando\refanexo. Portanto, caso eles sejam inseridos em arquivos separados, deve-se prestar atenção na sequência dos\includes desses arquivos.
Até que se obtenha solução definitiva, é possível usar esse workaround: \newcommand{\refanexo}[1]{\hyperref[#1]{Anexo~\ref{#1}}} \refanexo{anexo_xxx}Original comment by
laurocesaron 18 Jan 2015 at 1:12Assim como eu, acredito que muitas pessoas podem ter problemas ao tentar reproduzir esse workaround devido à ignorância no mundo LaTeX :)
Portanto, deixo aqui umas dicas para quem quiser testá-lo:
- A declaração do capítulo anexo permanece inalterada:
% Primeiro anexo--------------------------------------------------------------- \chapter{Parecer do Comitê de Ética} \label{chap:comite} % Conteúdo % [...]
- A referência deve ser chamada utilizando-se o
\refanexoao invés do\autoref:O parecer do comitê de ética é exibido no \refanexo{chap:comite}. % Era: O parecer do comitê de ética é exibido no \autoref{chap:comite}.
- O comando
\newcommand{\refanexo}[1]{\hyperref[#1]{Anexo~\ref{#1}}}deve ser "lido" pelo compilador antes do comando\refanexo. Portanto, caso eles sejam inseridos em arquivos separados, deve-se prestar atenção na sequência dos\includes desses arquivos.
Cara, sensacional, você ajudou de mais aqui no TCC. Muito obrigado.