
Lo estoy usando biblatex
por primera vez. Cuando hago una compilación rápida en el documento, no se compila ningún problema, luego ejecuto el comando BibTeX y también funciona. Después de eso intento una compilación rápida nuevamente para generar el pdf con la bibliografía pero obtengo este tipo de errores para todas las fuentes citadas en mi archivo .bib:
! Undefined control sequence.
<to be read again> \edef \lbx@tempa {{wen-mei}z
w.hwu}
l.90 \end{document}
Este es mi archivo principal de LaTeX.
% 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 es el segundo archivo tex, el que se llama capitulo_01_test.tex
\cite{brasnett2007} \cite{chapman2007} \cite{duda1972} \cite{kirk2010} \cite{vanginkel2004}.
Cuando elimino \usepackage{listings} de mi archivo tex principal, el problema desaparece. ¿Pero por qué? y necesito el paquete de listados.
Este es mi archivo 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},
}
Escuché que podría ser el "-" entre Wen-mei, por ejemplo, pero lo cambié varias veces y no funcionó.
Cuando estaba usando bibtex no tenía este problema.
Nota (Editar): edité la pregunta para seguir la sugerencia de CFR y descubrí que si elimino la \usepackage{listings}
parte de mi archivo .tex principal, la compilación no tiene problemas. ¿Alguna idea de por qué?
Respuesta1
Es un error listings
que deja un error \lccode
en ~
. No pude encontrar la razón por la cual el error aparece solo cuando el idioma es español, pero el problema seguramente está en esa mala configuración.
Resuelves tu problema agregando
\lccode`~=0
después
\usepackage{listings}
En otras palabras, el preámbulo debería 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
El código incorrecto listings.sty
es la definición 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}
donde debería estar la línea 888
\begingroup\lccode`\~=#2\lccode`\/=#2\lowercase{\endgroup\lst@CCPut@~{#1/}}%
También hay otra configuración incorrecta listings
que debe corregirse; en \lst@RestoreCatcodes
la tarea equivocada
\lccode`\/=`\/
se realiza, la cual deberá ser removida o anulada por
\lccode`\/=0
igual que el de ~
.