我有一个 LaTeX 文件,其中包括一个使用该命令的项目的 BibTeX 文件\url
。但是在编译时,对于每个\url
命令都会出现此错误:
Undefined control sequence. \newblock{\urlhttp
。
例如:
% tex file
\usepackage{hyperref}
\usepackage{url}
\usepackage{some,more}
. . .
\bibliographystyle{plain}
\bibliography{my.bib}
% my.bib file
@misc{maxmind,
howpublished = {{\url{https://www.maxmind.com/en/geoip2-services-and-databases}}},
author = {{MaxMind, Inc.}},
title = {{MaxMind GeoIP2}},
}
% bbl file
...
\bibitem{maxmind}
{MaxMind, Inc.}
\newblock {MaxMind GeoIP2}.
\newblock {\urlhttps://www.maxmind.com/en/geoip2-services-and-databases}.
...
如您所见,在.bbl
-file 中,命令周围没有“花括号”(抱歉,如果这不是正确的措辞)\url
。当 bib 文件中括号较少时也会发生这种情况,例如:
howpublished = {\url{https://www.maxmind.com/en/geoip2-services-and-databases}},
有人知道这是怎么发生的吗?
也许与其他软件包有冲突?为了以防万一,以下是所有使用的软件包:
\usepackage[printonlyused,withpage]{acronym}
\usepackage[]{algorithm2e}
\usepackage{algorithmic}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[english]{babel}
\usepackage{booktabs}
\usepackage{cite}
\usepackage{color}
\usepackage{comment}
\usepackage{enumitem}
\usepackage{epsfig}
\usepackage{eurosym}
\usepackage[Bjarne]{fncychap}
\usepackage{graphicx}
\usepackage[hidelinks]{hyperref}
\usepackage[weather]{ifsym}
\usepackage[utf8x]{inputenc}
\usepackage{listings}
\usepackage{lscape}
\usepackage[tracking=true]{microtype}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{paralist}
\usepackage{pdfpages}
\usepackage{rotating}
\usepackage[digitsep=comma]{siunitx}
\usepackage{subfigure}
\usepackage{tabularx}
\usepackage{tikz}
\usepackage{url}
\usepackage{wrapfig}
\usepackage{xspace}
我不知道为什么.bbl
-file 中的花括号被删除了,但这会导致编译崩溃。您能给我提示如何解决这个问题吗?
答案1
我不知道我是否完全理解了这个问题。但问题是:如果您希望像这样在参考书目中用花括号排版 URL,则{tex.stackexchange.com}
必须在.bib
文件中使用\{
,而不仅仅是{
。就像在以下 MWE 中一样:
\documentclass{article}
\usepackage{hyperref,filecontents}
\begin{filecontents}{bibliography.bib}
@misc{maxmind,
howpublished = "\{\url{https://www.maxmind.com/en/geoip2-services-and-databases}\}",
author = "MaxMind, Inc.",
title = "MaxMind GeoIP2"
}
\end{filecontents}
\begin{document}
Some random text \cite{maxmind}
\bibliographystyle{plain}
\bibliography{bibliography}
\end{document}
此外,通过加载hyperref
包,您已经拥有命令\url{<some URL>}
。此外,您可以使用natbib
提供url
可直接使用的字段的样式,例如url = "<some-URL>"
。我还建议使用"
而不是花括号作为 bibitems 字段的边界,因为花括号用于保留字母大小写。查看维基