Mensagem estranha de “sequência de controle indefinida”

Mensagem estranha de “sequência de controle indefinida”

Estou usando biblatexpela primeira vez. Quando faço uma compilação rápida no documento ele compila sem problemas, depois executo o comando BibTeX e também funciona. Depois disso tento uma compilação rápida novamente para gerar o pdf com a bibliografia, mas recebo esses tipos de erros para todas as fontes citadas no meu arquivo .bib:

! Undefined control sequence.
<to be read again> \edef \lbx@tempa {{wen-mei}z
                                               w.hwu}
l.90 \end{document}

Este é meu arquivo LaTeX principal

% El documento está pensado para ser impreso en hojas por ambos lados (twoside)
% openright causa que los capítulos empiecen en hoja impar
\documentclass[12pt,letterpaper,twoside,openright]{report}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc} %Uso de tildes si desarrolla en Linux
\usepackage[backend=bibtex]{biblatex}
\addbibresource{mybib_test.bib}
\usepackage{listings}

\begin{document}

\pagenumbering{arabic}
\include{capitulo_01_test}  % 1. Introducción


% ------------ Comienza la bibliografí­a ---------------
\printbibliography
\end{document}

Este é o segundo arquivo tex chamado capitulo_01_test.tex

\cite{brasnett2007} \cite{chapman2007} \cite{duda1972} \cite{kirk2010} \cite{vanginkel2004}. 

Quando eu excluo \usepackage{listings} do meu arquivo tex principal, o problema desaparece. Mas por que? e preciso do pacote de listagens.

Este é o meu arquivo bibtex

% This file was created with JabRef 2.6.
% Encoding: UTF-8

@INPROCEEDINGS{brasnett2007,
    author = {P. Brasnett and M. Z. Bober},
    title = {Robust Visual Identifier Using the Trace Transform},
    booktitle = {Visual Information Engineering Conference (VIE 2007)},
    year = {2007},
    pages = {25-27}
}

@BOOK{chapman2007,
  title = {Using OpenMP: Portable Shared Memory Parallel Programming},
  year = {2007},
  author = { Barbara Chapman and Gabriele Jost and Ruud van van der Pas},
  publisher = "The MIT Press",
  address   = "Massachusetts, Estados Unidos"
}

@ARTICLE{duda1972,
  author = {Richard O. Duda and Peter E. Hart},
  title = {Use of the Hough Transformation to Detect Lines and Curves in Pictures},
  journal = {Communications of the ACM},
  year = {1972},
  volume  = "15",
  number  = "1",
  pages   = "11--15"
}

@BOOK{kirk2010,
  title = {Programming Massively Parallel Processors: A Hands-on Approach},
  year = {2010},
  author = {David B. Kirk and {Wen-mei} W. Hwu},
  publisher = "Morgan Kaufmann",
  address   = "Massachusetts, Estados Unidos"
}

@TECHREPORT{vanginkel2004,
  author = {Michael van Ginkel and Cris L. Luengo Hendriks and Lucas J. van Vliet},
  title = {A short introduction to the Radon and Hough transforms and how they relate to each other},
  institution = {Quantitative Imaging Group, Delft University of Technology},
  year = {2004},
  address  = {Delft, Holanda},
}

Ouvi dizer que poderia ser o "-" entre Wen-mei por exemplo, mas mudei várias vezes e não funcionou.

Quando eu estava usando o bibtex não tive esse problema.

Nota (editar): editei a pergunta para seguir a sugestão do cfr e descobri que se eu deletar a \usepackage{listings}parte do meu arquivo .tex principal a compilação não terá problemas. Alguma ideia do porquê?

Responder1

É um bug listingsque deixa para trás um erro \lccodepara ~. Não consegui encontrar o motivo pelo qual o bug aparece apenas quando o idioma é o espanhol, mas o problema certamente está nessa configuração ruim.

Você resolve seu problema adicionando

\lccode`~=0

depois

\usepackage{listings}

Em outras palavras, o preâmbulo deve ser

\documentclass[12pt,letterpaper,twoside,openright]{report}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc} %Uso de tildes si desarrolla en Linux
\usepackage[backend=bibtex]{biblatex}
\addbibresource{mybib_test.bib}
\usepackage{listings}
\lccode`~=0

O código errado listings.styé a definição de\lst@CCPut

884 \def\lst@CCPut#1#2{%
885     \ifnum#2=\z@
886         \expandafter\@gobbletwo
887     \else
888         \lccode`\~=#2\lccode`\/=#2\lowercase{\lst@CCPut@~{#1/}}%
889     \fi
890     \lst@CCPut#1}

onde a linha 888 deveria estar

\begingroup\lccode`\~=#2\lccode`\/=#2\lowercase{\endgroup\lst@CCPut@~{#1/}}%

Há também outra configuração errada deixada para trás listingsque deve ser corrigida; na \lst@RestoreCatcodestarefa errada

\lccode`\/=`\/

é realizada, o que deve ser removido ou anulado pelo

\lccode`\/=0

assim como aquele para ~.

informação relacionada