原始答案

原始答案

我有一个很大的参考书目,其中有些项目由于 URL 过长而导致水平盒子未满。类似问题的答案提出了一些解决此问题的全局选项;例如

强制在 \url 中换行

hyperref url 中断

参考书目中的 URL 换行

但是,我不想要一个全局解决方案(例如将\sloppy\raggedright应用于整个书目),因为所有其他书目项目都按照我希望的方式运行。

在大多数情况下,我能够通过在 .bib 文件中 URL 条目的开头插入手动换行符来解决问题。但是,在一种情况下,这种方法不起作用。MWE:

\documentclass[natbib]{svmono}
\usepackage{url}

\begin{document}
\cite{koepke2009naturalness}
\bibliographystyle{harvard}
\bibliography{test}
\end{document}

测试文件

@article{koepke2009naturalness,
  year={2009},
  title={Naturalness in formal mathematics},
  journal={\\\url{http://www.math.uni-bonn.de/people/koepke/Preprints/Naturalness_in_formal_mathematics.pdf}},
  author={Koepke, Peter}
}

我尝试\\在 URL 内的各个点插入;它打破了行,但仍然导致水平盒子未满。我怎样才能打破 URL 而不导致水平盒子未满?

编辑:http://www.springer.com/computer/lncs?SGWID=0-164-6-793341-0<-- svmono http://iccle.googlecode.com/svn-history/r2130/trunk/doc/harvard.bst<-- 哈佛.bst

答案1

更新:这个问题的 OP 本人已经在额外内容\\和有效的超链接之间找到了一个很好的解决方案。

hyperrefunpublished可以编写的包(由于显然没有期刊,因此示例更改为出版物):

@unpublished{koepke2009naturalness,
  year={2009},
  title={Naturalness in formal mathematics},
  note={\\
        \href{http://www.math.uni-bonn.de/people/koepke/Preprints/Naturalness_in_formal_mathematics.pdf}
             {\nolinkurl{http://www.math.uni-bonn.de/people/}}
        \\
        \href{http://www.math.uni-bonn.de/people/koepke/Preprints/Naturalness_in_formal_mathematics.pdf}
             {\nolinkurl{koepke/Preprints/Naturalness_in_formal_mathematics.pdf}}
       },
  author={Koepke, Peter}
}

这使
带有两个 \hrefs 的输出

如果只\href使用一个,例如

  note={\\
        \href{http://www.math.uni-bonn.de/people/koepke/Preprints/Naturalness_in_formal_mathematics.pdf}
             {\nolinkurl{http://www.math.uni-bonn.de/people/}
             \\
              \nolinkurl{koepke/Preprints/Naturalness_in_formal_mathematics.pdf}
             }
       },

链接活动区域跨越整个第一行: 输出一个 \href

原始答案

水平盒子未满并不一定意味着一定出了问题。它只是一个警告。

比较以下代码的参考书目条目。
带有额外内容的那个\\不会发出警告(但会破坏超链接),另一个会发出警告,但看起来是一样的。

(无论如何,字段的斜体设置journal都会弄乱间距。)

代码

\documentclass[natbib]{svmono}
\usepackage{url}
\usepackage[showframe,pass]{geometry}
\begin{filecontents}{test.bib}
@article{koepke2009naturalness,
  year={2009},
  title={Naturalness in formal mathematics},
  journal={Same Journal Name},
  note={\\\url{http://www.math.uni-bonn.de/people/koepke/Preprints/Naturalness_in_}\\\url{formal_mathematics.pdf}},
  author={Koepke, Peter}
}
@article{koepke2009naturalnessa,
  year={2009},
  title={Naturalness in formal mathematics},
  journal={Same Journal Name},
  note={\\\url{http://www.math.uni-bonn.de/people/koepke/Preprints/Naturalness_in_formal_mathematics.pdf}},
  author={Koepke, Peter}
}
\end{filecontents}
\begin{document}
\cite{*}
\bibliographystyle{harvard}
\bibliography{test}
\end{document}

输出

输出

相关内容