
Soy bastante nuevo en latex trabajando en Linux con textlive y vscode con la extensión Latex-Workshop, me costó un poco de tiempo hacerlo funcionar en conjunto pero al final funciona bien, excepto que sigo recibiendo el error en el título "Falta endcsname insertado" en una entrada particular en mi bibfile:
@article{llavearticulo,
author = {Arthur B Cummings and David Eftekhary and Frank G House},
title = {The accurate determination of college students
coefficients of friction},
journal = {Journal of Sketchy Physics},
volume = {13},
year = {2003},
number = {2},
pages = {46--129}
}
Es sólo un artículo ficticio de un curso de látex. MWE:
\documentclass[12pt]{report}
\usepackage[a4paper, margin=2.54cm, head=1.27cm, foot=1.27cm]{geometry}
\usepackage[spanish]{babel}
\usepackage{natbib}
\usepackage{fancyhdr}
\usepackage{import}
\usepackage{hyperref}
\usepackage{xcolor}
\usepackage[table]{xcolor}
\usepackage{pdflscape}
\usepackage{ulem}
\usepackage{amsmath}
\usepackage{multicol}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{cellspace}
\usepackage{graphicx}
\usepackage[spanish]{cleveref}
\usepackage{url}
\graphicspath{{./images}}
\newcommand{\mychapter}[2]{
%\setcounter{chapter}{#1}
%\setcounter{section}{0}
\chapter*{#1 #2}
\addcontentsline{toc}{chapter}{#1 #2}
\refstepcounter{chapter}
}
\fancypagestyle{plain}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}
\pagestyle{plain}
\renewcommand{\contentsname}{Índice general}
\renewcommand{\listfigurename}{Índice de cuadros}
\renewcommand{\listtablename}{Índice de figuras}
\title{My title}
\author{My myself}
\date{}
\begin{document}
\maketitle
Otras formas de citas
\begin{itemize}
\item \cite[p.12]{llavearticulo}
\item \cite[e.g.][p.12]{llavearticulo}
\item \cite[e.g.][]{llavearticulo}
\item \cite[][]{llavearticulo}
\item \citep{llavearticulo}
\item \cite*{llavearticulo}
\item \citep*{llavearticulo}
\end{itemize}
\newpage
\bibliography{sources}
\bibliographystyle{chicago}
\end{document}
Al verificar los archivos generados, el archivo main.bbl tiene el error en la línea antes del final:
\begin{thebibliography}{}
\bibitem[\protect\citeauthoryear{Cummings, Eftekhary, and House}{Cummings et~al.}{2003}]{llavearticulo}
Cummings, A.~B., D.~Eftekhary, and F.~G. House (2003).
\newblock The accurate determination of college students coefficients of friction.
\newblock {\em Journal of Sketchy Physics\/}~{\em 13\/}(2), 46--129.
\end{thebibliography}
Ya busqué preguntas anteriores, pero las únicas remotamente similares eran las que usaban claves con caracteres extraños en el archivo bib o usaban guiones bajos en algún campo.
Respuesta1
Como apertura aparte: en el futuro, haga un mejor trabajo recortando su MWE. La mayoría de los paquetes que ha cargado no se utilizan en el documento, y si realiza algunos recortes preliminares (comentando cada paquete uno por uno y viendo si afecta el problema), es posible que haya llegado a la conclusión de que lo siguiente es un ejemplo mucho más mínimo
\documentclass[12pt]{report}
\usepackage[spanish]{babel}
\usepackage{natbib}
\title{My title}
\author{My myself}
\date{}
\begin{document}
\maketitle
Otras formas de citas
\begin{itemize}
\item \cite[p.12]{llavearticulo}
\item \cite[e.g.][p.12]{llavearticulo}
\item \cite[e.g.][]{llavearticulo}
\item \cite[][]{llavearticulo}
\item \citep{llavearticulo}
\item \cite*{llavearticulo}
\item \citep*{llavearticulo}
\end{itemize}
\newpage
\bibliography{sources}
\bibliographystyle{chicago}
\end{document}
y que el culpable esbabel
con la spanish
opción.
El problema es que babel-spanish crea varias taquigrafías para permitir la escritura rápida de caracteres acentuados utilizando el conjunto de caracteres ASCII estándar. Entre ellas está la capacidad de escribirlo ~n
y compilarlo para que sea ñ
. Desafortunadamente, fuera de Babel en español, el ~
personaje también inserta un (tipo particular de) espacio y natbib
(especialmente en el chicago
estilo) lo usa para dar formato a los elementos de la bibliografía.
Dos posibles soluciones
Si no usa las taquigrafías de Babel en absoluto (según el MWE que publicó, parece que escribe el documento en Unicode y puede escribir caracteres
ñ
directamente), lo más fácil es desactivar completamente las taquigrafías en Babel. Para ello, agregue las opciones apropiadas a\uspackage[...]{babel}
. Pruebe, por ejemplo,\usepackage[spanish, es-noshorthands, shorthands=off]{babel}
Si de hecho utiliza taquigrafías de Babel, también puede desactivar la taquigrafía ofensiva antes de que se imprima su bibliografía. Intente reemplazar las últimas líneas de su código con
\newpage
\shorthandoff{~} % <- turns off the ~ short hand
\bibliography{sources}
\bibliographystyle{chicago}
\end{document}