作为序言,我使用 MikTex 2.8、最新的适用于 Windows 的 TeXworks、natbib、hyperref 和 pdftex 包、JabRef 来管理我的引用,以及 TeXworks 中的 pdfLatex 选项进行编译。
一切都按预期正确运行——除非我包含我引用的电子论文的 URL。然后,编译崩溃,并出现以下错误:
! Missing $ inserted.
<inserted text>
$
l.321 ....com/sol3/papers.cfm?abstract_id=1697352}
以下是产生此错误的最小示例:
\documentclass[12pt, letter]{article}
\usepackage[pdftex]{graphicx}
\usepackage{natbib}
\bibpunct{(}{)}{;}{a}{}{,}
\usepackage[pdftex,
urlcolor=rltblue, % \href{...}{...} external (URL)
filecolor=rltgreen, % \href{...} local file
linkcolor=rltred, % \ref{...} and \pageref{...}
citecolor=black,
colorlinks=true,
hypertexnames=false,
bookmarks=true,
bookmarksnumbered=true,
bookmarksopen=false]{hyperref}
\begin{document}
\pagestyle{plain}
Testing. \cite{Shor:2011all}
\bibliographystyle{apsr}
\bibliography{testurl}
\end{document}
该testurl.bib
文件以这种方式包含有问题的项目:
@ELECTRONIC{Shor:2011all,
author = {Boris Shor},
year = {2011},
title = {All Together Now: Putting Congress, State Legislatures, and Individuals
in a Common Ideological Space to Assess Representation at the Macro
and Micro Levels},
url = {http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1697352},
owner = {Boris},
timestamp = {2010.04.04}
}
如您所见,它引用了我试图从 SSRN 引用的电子文档(未发表的论文)的 url:http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1697352
生成的.bbl 文件包含以下项目:
\harvarditem{Shor}{2011}{Shor:2011all}
Shor, Boris. 2011.
\newblock ``All Together Now: Putting Congress, State Legislatures, and
Individuals in a Common Ideological Space to Assess Representation at the
Macro and Micro Levels.''.
\newline\harvardurl{http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1697352}
发生什么问题了?
答案1
由于您使用了hyperref
,因此无需加载url
包。加载后hyperref
,您可以重新定义\harvardurl
:
\renewcommand{\harvardurl}[1]{\textbf{URL:} \url{#1}}
最初,natbib
它定义为
\newcommand\harvardurl[1]{\textbf{URL:} \textit{#1}}
此定义不适用于参数中的下划线。\url
修复了这个问题。如果您想要斜体 URL,您可以通过以下方式实现
\renewcommand*{\UrlFont}{\itshape}