\documentclass{article}
\usepackage{hyperref}
\makeatletter
\def\UrlAlphabet{%
      \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}
\def\UrlDigits{\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0}
\g@addto@macro{\UrlBreaks}{\UrlOrds}
\g@addto@macro{\UrlBreaks}{\UrlAlphabet}
\g@addto@macro{\UrlBreaks}{\UrlDigits}
\makeatother
\begin{document}
\url{http://foo.bar.com/documentclassarticleusepackagehyperrefbegindocumenturlenddocument}
\end{document}

在这里,\UrlOrds 里记录了一些特殊符号(例如 -_),而 \UrlAlphabet 记录了 26 个英文字母的大小写,\UrlDigits 则记录了 10 个阿拉伯数字。 而后,我们使用 LaTeX 内核提供的 \g@addto@marco,依次将上述三个宏的内容,续接在 \UrlBreaks 之后。这就是说,我们允许在上述所有字符处断行。 如此,编译出的结果也是符合预期的。选自:https://liam0205.me/2017/05/17/help-the-url-command-from-hyperref-to-break-at-line-wrapping-point/

点赞(1)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部