1. 简介
在编写学术论文或技术文档时,插入 URL 是一个常见需求。但如果不加处理,LaTeX 默认的排版方式可能会导致 URL 超出页面边界,影响阅读体验。
本文将介绍如何使用 LaTeX 的 url
和 xurl
包来优雅地插入和排版 URL。⚠️注意:本文重点在于 显示 URL,而不是创建可点击的超链接(这部分由 hyperref
包负责)。
如果你的文档是用于打印或归档,而非电子发布,那么正确显示 URL 比可点击性更重要。
2. 使用 url
包
最简单的方法是使用 url
包。在导言区引入它:
\usepackage{url}
然后在正文中使用 \url{}
命令插入 URL:
Three popular news websites are \url{www.cnn.com}, \url{www.bbc.com}, and \url{news.google.com}.
输出效果如下图所示:
✅优点:简单易用
❌缺点:URL 不会自动换行,容易超出页面宽度
3. 修改 URL 字体样式
默认情况下,url
使用等宽字体(typewriter)。我们可以通过 \urlstyle{}
来修改显示字体:
\urlstyle{sf}
支持的字体样式有:
tt
:等宽字体(typewriter)rm
:罗马体(roman)sf
:无衬线字体(sans-serif)same
:与正文一致
比如使用 sf
:
使用 same
:
4. 不同用途使用不同样式
有时我们希望区分不同类型的 URL,比如 email、网站、文件路径等。可以使用 \DeclareUrlCommand
自定义命令:
\usepackage{url}
\DeclareUrlCommand\email{\urlstyle{tt}}
\DeclareUrlCommand\website{\urlstyle{sf}}
\DeclareUrlCommand\directory{\urlstyle{same}}
\begin{document}
You can contact me at \email{john.doe@example.com}. My website is \website{www.circus.com}.
All files referred to in this article are available in \directory{/home/circus/utilities}.
\end{document}
输出效果如下:
这种做法让文档更清晰、结构更清晰,是推荐的实践方式。
5. 多行 URL 显示问题
默认情况下,url
包 不会在 URL 中插入换行符,这可能导致 URL 超出页面边界。
比如:
The website for Cormen, Leiserson, Rivest, and Stein's famous book is
\url{mitpress.mit.edu/9780262046305/introduction-to-algorithms/}.
The title of the book is {\em Introduction to Algorithms, Fourth Edition}.
输出如下:
解决方法是使用 hyphens
选项:
\usepackage[hyphens]{url}
这样允许在 URL 中已有的连字符处换行:
[](/wp-content/uploads/sites/4/2022/09/img_6332792a114fa.svg)
6. 使用 xurl
实现更灵活的换行
如果你希望 URL 能在任意位置换行(不只是连字符),可以使用 xurl
包。它扩展了 url
的能力,支持在以下字符处换行:
/
,.
,:
,\
,*
,-
,'
,"
,~
示例代码如下:
\usepackage{xurl}
\begin{document}
Xxxxx yyyy zzzz wwwww ppppp qqqq rrrrrrrr aaaa bbbbb ccccc
\url{www.theshop.biz/The-Best-Speaker/ms/G0AQ69421N?ref"=Jan.xnum=DR9DZXAPHRMGW}.
\end{document}
输出如下:
另一个例子:
Xxxxx yyyy zzzz wwwww ppppp qqq
\url{www.theshop.biz/The-Best-Speaker/ms/G0AQ69421N?ref"=Jan.xnum=DR9DZXAPHRMGW}.
输出:
⚠️注意:虽然 xurl
更灵活,但在某些场合中 URL 被“断开在单词中间”可能影响可读性,需根据实际排版需求权衡使用。
7. 总结
本文介绍了如何在 LaTeX 中插入 URL:
包名 | 特点 |
---|---|
url |
简单实用,仅在连字符处换行 |
xurl |
更灵活,支持在任意字符处换行 |
✅推荐做法:使用 xurl
包 + \url{}
命令,兼顾美观与实用性。
如果你希望 URL 可点击,可以结合 hyperref
和 url
使用,但本文不涉及这部分内容。