
저는 Textlive와 vscode를 확장한 Latex-Workshop을 사용하여 Linux에서 작업하는 라텍스를 처음 접했습니다. 함께 작동하는 데 약간의 시간이 걸렸지만 결국 "Missing"이라는 제목의 오류가 계속 발생하는 것을 제외하고는 잘 작동합니다. 내 bibfile의 특정 항목에 endcsname이 삽입되었습니다.
@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}
}
그것은 라텍스 강좌의 더미 기사일 뿐입니다. 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}
생성된 파일을 확인하면 main.bbl 파일의 끝 앞 줄에 오류가 있습니다.
\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}
이미 이전 질문을 찾았지만 턱받이 파일에서 이상한 문자가 있는 키를 사용하거나 일부 필드에서 밑줄을 사용하는 질문과 원격으로 유사한 유일한 질문입니다.
답변1
여담으로, 앞으로는 MWE를 더 잘 다듬어 주시기 바랍니다. 로드한 패키지의 대부분은 문서에서 사용되지 않으며, 사전 정리(각 패키지를 하나씩 주석 처리하고 문제에 영향을 미치는지 확인)를 수행하면 다음과 같은 결론에 도달할 수 있습니다. 훨씬 더 최소한의 예입니다
\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}
범인은 옵션 babel
에 있습니다 spanish
.
문제는 babel-spanish가 표준 ASCII 문자 세트를 사용하여 악센트 문자를 빠르게 입력할 수 있도록 몇 가지 단축어를 생성한다는 것입니다. 그 중에는 입력 ~n
하고 ñ
. 불행하게도 스페인어 바벨 밖에서 ~
도 캐릭터는 (특정 유형의) 공백을 삽입합니다.natbib
(특히 스타일에서 chicago
) 이를 사용하여 참고문헌 항목의 일부 형식을 지정합니다.
두 가지 가능한 솔루션
바벨 속기를 전혀 사용하지 않는 경우(게시한 MWE에 따르면 문서를 유니코드로 입력하고 문자를
ñ
직접 입력할 수 있는 것으로 나타남) 가장 쉬운 방법은 바벨에서 짧은 손을 완전히 끄는 것입니다. 에 적절한 옵션을 추가하면 됩니다\uspackage[...]{babel}
. 예를 들면 다음과 같습니다.\usepackage[spanish, es-noshorthands, shorthands=off]{babel}
실제로 바벨 속기를 사용하는 경우 참고문헌이 인쇄되기 전에 문제가 되는 속기를 끌 수도 있습니다. 코드의 마지막 몇 줄을 다음으로 바꿔보세요.
\newpage
\shorthandoff{~} % <- turns off the ~ short hand
\bibliography{sources}
\bibliographystyle{chicago}
\end{document}