如何处理 Mendeley 中 url 中的波浪符号?

如何处理 Mendeley 中 url 中的波浪符号?

如果 URL 中的链接包含~,Mendeley 会将其更改为$\sim$hyperref链接将不起作用。我使用 pdflatex 和 biblatex。有没有快速手动更改 Mendeley 中的链接以解决此问题的方法?手动编辑library.bibMendeley 导出的文件对我来说不是一个选择。

答案1

这绝对是您需要在 Mendeley 层面解决的问题,软件需要确保导出正确的.bib文件,但http://example.edu/$\sim$elk/bronto.pdf几乎不正确。URL 应该以无修改的形式详细导出。

但是使用 Biber 的源映射,我们可以尝试保存你的文件,假设你有

@online{bronto,
  author  = {Anne Elk},
  title   = {Towards a Unified Theory on Brontosauruses},
  date    = {1972-11-16},
  url     = {http://example.edu/$\sim$elk/bronto.pdf},
  urldate = {2015-09-07},
}

然后

\DeclareSourcemap{
  \maps{
    \map{
      \step[fieldsource=url,
            match=\regexp{\$\\sim\$},
            replace=\regexp{\~}]
    }
  }
}

会将其$\sim$重新变成~

平均能量损失

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@online{bronto,
  author  = {Anne Elk},
  title   = {Towards a Unified Theory on Brontosauruses},
  date    = {1972-11-16},
  url     = {http://example.edu/$\sim$elk/bronto.pdf},
  urldate = {2015-09-07},
}
\end{filecontents*}

\documentclass{article}

\usepackage{biblatex}
\usepackage{hyperref}

\addbibresource{\jobname.bib}

\DeclareSourcemap{
  \maps{
    \map{
      \step[fieldsource=url,
            match=\regexp{\$\\sim\$},
            replace=\regexp{\~}]
    }
  }
}

\begin{document}
\nocite{bronto}
\printbibliography
\end{document}

具有正确 URL 的示例输出

答案2

因此,只需将 Mendeley 中的 url 替换~为即可\textasciitilde{}。然后就可以了。请注意,我在 Mendeley 中有“不转义 latex 特殊字符”选项。

相关内容