abntex2 icon indicating copy to clipboard operation
abntex2 copied to clipboard

Warning do comando "\partanexos" com "\uppercase" e hyperref

Open GoogleCodeExporter opened this issue 9 years ago • 10 comments

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

GoogleCodeExporter avatar Mar 14 '15 11:03 GoogleCodeExporter

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

GoogleCodeExporter avatar Mar 14 '15 11:03 GoogleCodeExporter

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

GoogleCodeExporter avatar Mar 14 '15 11:03 GoogleCodeExporter

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

GoogleCodeExporter avatar Mar 14 '15 11:03 GoogleCodeExporter

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

GoogleCodeExporter avatar Mar 14 '15 11:03 GoogleCodeExporter

Original comment by laurocesar on 11 Dec 2014 at 10:10

  • Changed state: Started

GoogleCodeExporter avatar Mar 14 '15 11:03 GoogleCodeExporter

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

GoogleCodeExporter avatar Mar 14 '15 11:03 GoogleCodeExporter

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'

frsilva avatar Sep 28 '15 05:09 frsilva

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}}

jbsilva avatar May 10 '18 05:05 jbsilva

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}`

sljunkie avatar Aug 02 '18 19:08 sljunkie

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.

jjosenaldo avatar Feb 17 '21 22:02 jjosenaldo