URL乳胶换行

时间:2010-04-14 18:45:19

标签: latex line-breaks

当URL在一条线上并进入第二行时,超链接仅使用第一行。有没有办法绕过这个但仍然有多行的URL?

10 个答案:

答案 0 :(得分:32)

您应该使用url包:

\usepackage{url}
...
\url{http://long.url.com/...     .../stuff}

它会在适当的地方为你打破它。

答案 1 :(得分:14)

在序言中,只需将\usepackage{breakurl}放在\usepackage{hyperref}之后的某处。 \burl命令已定义,默认情况下,程序包还会将\url命令转换为\burl的同义词。

答案 2 :(得分:12)

我建议使用软件包:

\ usepackage {xurl}

这对我的背面很有效。

示例:

\url{https://www.tudelft.nl/ewi/over-de-faculteit/afdelingen/intelligent-systems/pattern-recognition-bioinformatics/pattern-recognition-laboratory/data-and-software/dd-tools/}

答案 3 :(得分:9)

按以下方式进行。你很高兴!

\begin{document}
\sloppy

答案 4 :(得分:4)

对我来说这只有效:

\PassOptionsToPackage{hyphens}{url}
\usepackage{hyperref}

并使用此代码在每个普通字母字符后添加换行符并使用* - 〜'":

\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks% save the current one
  \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
  \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
  \do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D%
  \do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N%
  \do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X%
  \do\Y\do\Z\do\*\do\-\do\~\do\'\do\"\do\-}%

回答来自这个网站: https://tex.stackexchange.com/questions/3033/forcing-linebreaks-in-url/10401

答案 5 :(得分:3)

您使用的是什么包(hyperref,url)和驱动程序(pdftex,dvips等)?您是否使用breaklinks选项进行hyperref?

根据TeX FAQ您可能想要尝试breakurl套餐,虽然看起来在某些情况下您可能只是运气不好。

答案 6 :(得分:0)

使用public void run() { int updatesPerSecond = 5; /* The target time is the time each update should take. * You want the target time to be in milliseconds. * so 5 updates a second is 1000/5 milliseconds. */ int targetTime = 1000 / updatesPerSecond; long currentTime; long lastTime = System.nanoTime(); long elapsedTime; long sleepTime; while (running) { // get current time (in nanoseconds) currentTime = System.nanoTime(); // get time elapsed since last update elapsedTime = currentTime - lastTime; lastTime = currentTime; // run your update update(); // compute the thread sleep time in milliseconds. // elapsed time is converted to milliseconds. sleepTime = targetTime - (elapsedTime / 1000000000); // don't let sleepTime drop below 0 if (sleepTime < 0) { sleepTime = 1; } // attempt to sleep try { Thread.sleep(sleepTime); } catch(Exception e) { e.printStackTrace(); } } } 时,路径段中包含下划线(_)的长网址不会被破坏。但是,我发现我可以通过使用\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref}手动打破显示标签中的行来解决此问题,如下所示:

\\\\

根据Debajyoti Mondal的建议,这会产生比使用\href{http://www.researchgate.net/profile/Nick\_Brooks2/publication/220012411\_Cultural\_responses\_to\_aridity\_in\_the\_Middle\_Holocene\_and\_increased\_social\_complexity/links/0922b4f398ad68bc96000000.pdf}{http://www.researchgate.net/profile/Nick\_Brooks2/publication/220012411\_\\Cultural\_responses\_to\_aridity\_in\_the\_Middle\_Holocene\_and\_increased\_social\_\\complexity/links/0922b4f398ad68bc96000000.pdf} \usepackage{breakurl}更漂亮的网址(IMO),并允许您根据需要显示完整的网址。< / p>

答案 7 :(得分:0)

最适合我的(使用 pdflatex)是

\usepackage[pdftex]{hyperref}

然后只需 \url{http://stackoverflow.com/} 创建 URL。它只破坏了 ./ 处的 URL,这对我的文档来说没问题。重要的是,我尝试过的其他方法创建的 PDF 中只有 URL 的第一行是可点击的链接,目标 URL 被截断到这一部分,这非常混乱和糟糕。

答案 8 :(得分:0)

使用为您加载到 url 包中的 xurl package 解决了我的问题。它让 url 在我理解的任何地方中断

答案 9 :(得分:-3)

有一个简单的答案。在\ begin {document}前使用\ usepackage [hidelinks] {hyperref}