
Ich bin ein ziemlicher Neuling in Sachen Latex und arbeite unter Linux mit Textlive und VSCode mit der Erweiterung Latex-Workshop. Es hat mich einige Zeit gekostet, die beiden zum Laufen zu bringen, aber letztendlich funktioniert es gut, außer dass ich bei einem bestimmten Eintrag in meiner Bib-Datei immer wieder die Fehlermeldung „Fehlender Endcsname eingefügt“ im Titel bekomme:
@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 handelt sich lediglich um einen Dummy-Artikel aus einem Latex-Kurs. 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}
Beim Überprüfen der generierten Dateien weist die Datei main.bbl in der Zeile vor dem Ende einen Fehler auf:
\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}
Habe bereits nach vorherigen Fragen gesucht, aber die einzigen, die auch nur annähernd ähnlich waren, waren solche, bei denen Schlüssel mit seltsamen Zeichen in der Bib-Datei oder Unterstriche in einigen Feldern verwendet wurden.
Antwort1
Als Einstieg: Bitte kürzen Sie in Zukunft Ihr MWE besser. Die meisten der Pakete, die Sie geladen haben, werden im Dokument nicht verwendet. Wenn Sie vorab einige Kürzungen vornehmen (indem Sie jedes Paket einzeln auskommentieren und prüfen, ob es das Problem beeinflusst), sind Sie möglicherweise zu dem Schluss gekommen, dass das Folgende ein viel minimalistischeres Beispiel ist
\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}
und dass der Schuldige babel
bei der spanish
Option liegt.
Das Problem besteht darin, dass Babel-Spanisch mehrere Abkürzungen erstellt, um das schnelle Eintippen von Akzentzeichen mit dem Standard-ASCII-Zeichensatz zu ermöglichen. Dazu gehört die Möglichkeit, es einzugeben ~n
und es als kompilieren zu lassen ñ
. Leider fügt das Zeichen außerhalb des spanischen Babel ~
auch ein (bestimmtes) Leerzeichen ein und verwendet es natbib
(insbesondere im chicago
Stil) für einige Formatierungen der Bibliografieeinträge.
Zwei mögliche Lösungen
Wenn Sie die Babel-Abkürzungen überhaupt nicht verwenden (basierend auf dem von Ihnen geposteten MWE scheint es, als würden Sie das Dokument in Unicode eingeben und Zeichen wie
ñ
direkt eingeben können), ist es am einfachsten, die Abkürzungen in Babel vollständig auszuschalten. Sie tun dies, indem Sie entsprechende Optionen hinzufügen\uspackage[...]{babel}
. Versuchen Sie es beispielsweise mit\usepackage[spanish, es-noshorthands, shorthands=off]{babel}
Wenn Sie tatsächlich Babel-Abkürzungen verwenden, können Sie die störende Abkürzung auch ausschalten, bevor Ihre Bibliographie gedruckt wird. Versuchen Sie, die letzten Zeilen Ihres Codes durch
\newpage
\shorthandoff{~} % <- turns off the ~ short hand
\bibliography{sources}
\bibliographystyle{chicago}
\end{document}