参考书目中的 URL 有误,超出 TeX 容量

参考书目中的 URL 有误,超出 TeX 容量

当我尝试将以下网站添加到我的参考书目时,我收到一条错误消息,提示 TeX 容量已超出。非常感谢您的帮助。我将其与 JabRef 集成到一个文件中。之后,您将找到我的主文件。如果您还有其他需要,请随时询问。

@Misc{uni.utah.mm,
author = {Peter Alfeld},
note   = {[Online; Stand 10.08.2020]},
title  = {The Mandelbrot Set.},
url    = "\url{https://www.math.utah.edu/~alfeld/math/mandelbrot/mandelbrot.html}",
}
\documentclass[12pt, a4paper, bibliography=totocnumbered]{scrartcl}

\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[headsepline, automark]{scrlayer-scrpage}
\usepackage{tabularx}
\usepackage[bottom, perpage]{footmisc}
\usepackage{amsmath, amssymb}
\usepackage{amsfonts}
\usepackage{color}
\usepackage{transparent}
\usepackage{graphicx}
\usepackage{caption}
\usepackage[onehalfspacing]{setspace}
\captionsetup[figure]{font=small,labelfont=small}
\newcommand*{\captionsource}[2]{%
  \caption[{#1}]{%
    #1%
    \\\hspace{\linewidth}%
    \textbf{Quelle:} #2%
  }%
}
\usepackage{float}
\usepackage[printonlyused]{acronym}
\usepackage[
    pdftitle={Maturitätsarbeit - Die Darstellung Mandelbrot-artiger Mengen im dreidimensionalen Raum},
    colorlinks=true,
    urlcolor=blue,
    linkcolor=black,
    citecolor=black
]{hyperref}
\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault} 
\makeatletter
\def\thickhline{%
  \noalign{\ifnum0=`}\fi\hrule \@height \thickarrayrulewidth \futurelet
   \reserved@a\@xthickhline}
\def\@xthickhline{\ifx\reserved@a\thickhline
               \vskip\doublerulesep
               \vskip-\thickarrayrulewidth
             \fi
      \ifnum0=`{\fi}}
\makeatother
\renewcommand{\arraystretch}{1.3}
\bibliographystyle{unsrtdin}
\setcounter{secnumdepth}{8}
\newlength{\thickarrayrulewidth}
\setlength{\thickarrayrulewidth}{2\arrayrulewidth}
\setlength{\parindent}{0pt}

\makeindex

\urlstyle{same}
\usepackage[a4paper,left=2cm,right=2cm,top=3cm,bottom=3cm]{geometry}
\pagestyle{scrheadings}
\clearpairofpagestyles
\ihead{\small \rightmark}
\ofoot{\small \pagemark} 
\renewcommand*{\sectionmark}[1]{%
    \markright{\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat}{}#1}}%
}

\begin{document}
\font\myfont=cmr16
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}

\begin{singlespace}
\subject{\large Maturitätsarbeit}
\title{\Large Die Darstellung Mandelbrot-artiger Mengen im dreidimensionalen Raum}
\end{singlespace}
\maketitle
\hrule
\newpage

\tableofcontents
\newpage

\addcontentsline{toc}{section}{Abbildungsverzeichnis}
\listoffigures
\newpage

\addsec{Abkürzungsverzeichnis}
\begin{acronym}
\acro{mm}[MM]{Mandelbrot-Menge}
\end{acronym}
\pagebreak

\input{vorwort.tex}
\pagebreak
\input{einleitung.tex}
\newpage
\bibliography{literatur}
\end{document}

确切的错误信息是

! TeX capacity exceeded, sorry [input stack size=5000].\@makeother #1->\catcode `#112\relax .../~alfeld/math/mandelbrot/mandelbrot.html}}

答案1

第一个 BibTeX 样式比 URL 协议的标准化早几年。这意味着基本 BibTeX 样式没有专用字段url。较新的样式可能支持url字段,但该字段的具体实现和处理在各个样式中并不统一。

但是,对于支持字段的大多数样式url,规则是提供不做任何更改且不添加额外标记的 URL,因为它们与url/交互(或或多或少可以很容易地与这些包交互)。当在字段中提供hyperrefURL 时,您无需将其包装起来,也无需转义其他特殊字符,如或。\url{...}url%_

这对于您的样式来说是正确的,它与和unsrtdin交互并按原样接受 URL。只需将 URL 指定为urlhyperref

url = {https://www.math.utah.edu/~alfeld/math/mandelbrot/mandelbrot.html},

.bbl修复文件后,您可能需要删除临时文件.bib,因为未修复文件中的旧代码.bib可能会保留在.bbl文件中。(生成参考书目的程序和.bbl文件的作用在使用问号或粗体引用关键字代替引用编号如果您想了解更多。

完整版(请注意,MWE.bib通过 创建文件filecontents,这只是为了使示例自包含,在实际文档中,该.bib文件将存在于.tex文件之外)

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{hyperref}

\bibliographystyle{unsrtdin}

\begin{filecontents}{\jobname.bib}
@misc{uni.utah.mm,
  author = {Peter Alfeld},
  note   = {[Online; Stand 10.08.2020]},
  title  = {The Mandelbrot Set},
  url    = {https://www.math.utah.edu/~alfeld/math/mandelbrot/mandelbrot.html},
}
\end{filecontents}

\begin{document}
\cite{uni.utah.mm}
\bibliography{\jobname}
\end{document}

Alfeld,Peter:曼德布洛特集。https://www.math.utah.edu/~alfeld/math/mandelbrot/mandelbrot.html。– [在线;截止日期 2020 年 8 月 10 日]

需要注意的是unsrtdin(作为din1505风格束) 实现了符合 DIN 1505-2 的引用样式。德国标准 DIN 1505-2(自 1984 年起)于 2013 年被 DIN ISO 690 取代,并且做出了一些(至少在我看来)值得商榷的排版决定。如果您不必使用该样式,您可能需要寻找其他样式。

相关内容