abntex2
abntex2 copied to clipboard
Warning do comando "\partanexos" com "\uppercase" e hyperref
What steps will reproduce the problem?
1. Compilar o documento com o comando "\partanexos" dentro do ambiente
"{anexosenv}"
What is the expected output? What do you see instead?
Era esperada uma compilação "limpa", sem warnings e erros.
O documento compila normalmente, mas retorna um Warning
"Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\uppercase' on input line 585"
Esta linha é a linha seguinte à do comando "\partanexos"
What version of the product are you using? On what operating system?
Debian Jessie (8) com os pacotes do repositório.
Additional information:
Ao buscar pela expressão "\uppercase" nos arquivos temporários gerados pela
compilação encontrei o seguinte:
dissertacao.aux:\@writefile{toc}{\contentsline {part}{\uppercase
{Anexos}}{109}{section*.14}}
dissertacao.log:(hyperref) removing `\uppercase' on input line
585.
dissertacao.toc:\contentsline {part}{\uppercase {Anexos}}{109}{section*.14}
Creio que seja algum erro no comando "\partanexos" mesmo, que está adicionando
este "\uppercase" e que está gerando o problema.
(se precisar testar aqui tem uma versão em que ocorre o problema:
http://github.com/diraol/tcc_graduacao
Tenho um script para compilar o documento (full_compile.sh), basta jogar a
saída do comando num arquivo de texto e buscar "Package hyperref Warning:
Token not allowed in a PDF string (PDFDocEncoding)" nele.
Original issue reported on code.google.com by [email protected]
on 2 Dec 2014 at 9:50
Analisando o código do abntex2.cls
(https://code.google.com/p/abntex2/source/browse/tex/latex/abntex2/abntex2.cls),
a única menção à \uppercase é neste trecho:
% ---
% 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
\newcommand{\PRIVATEapendiceconfig}[2]{%
\setboolean{abntex@apendiceousecao}{true}%
\renewcommand{\appendixname}{#1}
\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}
}
% ---
Tente substituir o \uppercase por algo similar, de modo a atingir o mesmo
objetivo. Poste aqui as evoluções...
Original comment by laurocesar
on 3 Dec 2014 at 11:05
- Added labels: Milestone-Release1.0, Component-Logic
Eu verifiquei isto e na verdade não encontrei a mensagem de erro apontando
para o local indicado. Ao que parece, trata-se de uma mensagem envolvendo algo
que vem do resultado da compilação de uma option do abntex2cite. É
necessário investigar mais... Você aceita ficar como owner da issue?
Original comment by laurocesar
on 4 Dec 2014 at 10:26
- Changed state: Proposed
Só alterando o título da issue de Erro para "Warning"
Original comment by laurocesar
on 4 Dec 2014 at 10:27
- Changed title: Warning do comando "\partanexos" com "\uppercase" e hyperref
Olá,
Até onde eu sei, isso é devido ao "problema" do hyperref em mostrar strings
formatadas na parte de bookmarks[1]. A solução recomendada nestes casos é
substituir:
\uppercase{<texto>}
pelo comando:
\texorpdfstring{<texto formatado>}{<texto sem formatação>}
ou, mais especificamente:
\texorpdfstring{\uppercase{#2}}{#2}
[1] - http://tex.stackexchange.com/a/53514
Original comment by [email protected]
on 9 Dec 2014 at 5:35
Original comment by laurocesar
on 11 Dec 2014 at 10:10
- Changed state: Started
Original comment by laurocesar
on 6 Jan 2015 at 10:04
- Added labels: Priority-High, Milestone-Release2.0
- Removed labels: Priority-Medium, Milestone-Release1.0
Olá,
Aqui no modelo que estou usando ocorreu o mesmo problema e eu usei a solução mencionada acima para solucionar o problema. Funcionou! Contudo, erro semelhante estava acontecendo nas referências. Como vi no abntex.cls que o comando \uppercase{} estava sendo usado somente nas Referências e no local do comando \partanexos (e também \partapendices, já que compartilham as definições), testei alteração análoga à sugerida acima substituindo o comando \uppercase{\bibname} pelo comando \texorpdfstring{\uppercase{\bibname}}{\bibname}
A mensagem de erro era: ./trabalho.bbl:3 Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing '\uppercase' on output line 3. Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing '\uppercase'
Isso foi resolvido em parte na issue #159, commit 112e503.
Faltou fazer o mesmo para a linha 883. de: \renewcommand{\appendixtocname}{\uppercase{#2}} para: \renewcommand{\appendixtocname}{\texorpdfstring{\MakeTextUppercase{#2}}{#2}}
patch -Naur por favor:
@@ -880,7 +880,7 @@
\setboolean{abntex@apendiceousecao}{true}%
\renewcommand{\appendixname}{#1}
\ifthenelse{\boolean{ABNTEXsumario-abnt-6027-2012}}{
- \renewcommand{\appendixtocname}{\uppercase{#2}}
+ \renewcommand{\appendixtocname}{\texorpdfstring{\MakeTextUppercase{#2}}{#2}}
}{%
\renewcommand{\appendixtocname}{#2}}
\renewcommand{\appendixpagename}{#2}`
Esse warning aparece no modelo para trabalhos acadêmicos, e a solução do @jbsilva o resolve. Ela será incorporada ao abntex2? Para incorporá-la ao meu projeto sem ter que alterar o abntex2.cls, coloquei um \renewcommand{\PRIVATEapendiceconfig}...
no meu preâmbulo.