开发者

URL latex linebreak

开发者 https://www.devze.com 2022-12-27 10:43 出处:网络
When a URL is ove开发者_StackOverflowr a line and goes onto a second line, the hyperlink only uses the first line. Is there a way to get around this and yet still have the URL on multiple lines?You sh

When a URL is ove开发者_StackOverflowr a line and goes onto a second line, the hyperlink only uses the first line. Is there a way to get around this and yet still have the URL on multiple lines?


You should use the url package:

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

and it will break it for you at an appropriate place.


I suggest using package:

\usepackage{xurl}

This works fine for me on overleaf.

Example:

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


At the preamble, just put \usepackage{breakurl} somewhere after \usepackage{hyperref}. The \burl command is defined and, by default, the package also turns the \url command into a synonym of \burl.


Do it the following way. You are good to go!

\begin{document}
\sloppy


For me only this worked:

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

and with this code to add line breaks after every normal alphabetic character and with *-~'":

\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\-}%

answer complited from this site: https://tex.stackexchange.com/questions/3033/forcing-linebreaks-in-url/10401


What packages (hyperref,url) and drivers (pdftex, dvips, etc.) are you using? Are you using the breaklinks option to hyperref?

According to the TeX FAQ you might want to try the breakurl package, though it appears you may simply be out of luck in some cases.


What worked best for me (with pdflatex) was

\usepackage[pdftex]{hyperref}

and then just \url{http://stackoverflow.com/} to create URLs. It only broke URLs at . and /, which was okay for my document. Importantly, other approaches I tried created PDFs where only the first line of the URL was a clickable link, and the destination URL was truncated to this portion, which is pretty confusing and bad.


Long URLs that contain underscores (_) in path segments will not be broken when using \PassOptionsToPackage{hyphens}{url}\usepackage{hyperref}. However, I found that I could solve this problem by manually breaking lines in the displayed label using \\\\, like this:

\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}

This results in URLs that are a bit prettier (IMO) than the use of \usepackage{breakurl} and \burl, as suggested by Debajyoti Mondal, and allows you to display the full URL if you wish.


There is a simple answer. Use \usepackage[hidelinks]{hyperref} before \begin{document}

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号